우리는 현재 새로운 Apache Mesos 클라우드 설정의 아키텍처를 설계하는 과정에 있습니다. 목표는 서로 다른 스택을 동일한 아키텍처로 이동하여 시스템을 통합하는 것입니다. 주요 워크로드는 Apache Spark와 웹서버, 메일서버 등 기업 인프라를 활용한 빅데이터 분석입니다.
아이디어는 Mesos(Marathon/Chronos, Aurora 또는 Singularity)에 사용 가능한 스케줄러 중 하나 위에서 실행되는 Docker 컨테이너에서 웹 서비스를 실행하는 것입니다. 따라서 이것은 최초의 Mesos 프레임워크 그룹이 될 것입니다. 그 옆에는 Apache Spark 프레임워크와 데이터 저장을 위한 여러 데이터베이스 프레임워크가 있습니다. 이것은 Mesos 프레임워크의 두 번째 그룹이 됩니다. 테스트를 위해 병렬로 실행한 후 세부 사항을 선택하겠습니다.
그러나 우리는 메소스 자체를 어떤 기반으로 운영할지 결정하는 데 어려움을 겪고 있습니다. 이상적으로는 가능한 한 금속에 가깝게 실행하는 것이 좋습니다. 또한 Mesos 및 프레임워크 데몬이 실패 시 항상 실행/다시 시작되는지 확인하기 위해 오케스트레이션 솔루션을 사용하고 싶습니다. 우리가 고려하고 있는 옵션은 다음과 같습니다.
1) 최소 OS에서 Mesos 및 프레임워크를 도커 컨테이너로 실행합니다. 이러한 점에서 우리는 현재 CoreOS와 Fleet에 기대고 있습니다.
2) Mesos 및 프레임워크를 Ubuntu/Debian 서버에서 직접 실행합니다. 이 옵션의 경우 Foreman 및 Puppet에 기대고 있습니다.
질문에 대해 우리는 중요한 순서에 따라 다음과 같은 솔루션을 식별하려고 합니다.
- 구성이 가장 덜 복잡합니다.
- 유지 관리 및 업데이트 유지가 가장 쉽습니다.
- 오버헤드가 가장 적다
우리는 이전에 CoreOS를 사용해본 적이 없지만 우리가 향하고 있는 옵션인 것 같습니다. 이에 대해 제가 겪고 있는 한 가지 큰(주관적) 문제는 Docker 컨테이너에서 Mesos를 실행한 다음 Mesos에서 Docker 컨테이너를 실행한다는 것입니다. 이것은 나에게 "부정"하고 잘못된 것 같습니다. 이것이 가치가 없는 고려인가?
비슷한 생각은 레이어 간의 중복성에 관한 것입니다. 내가 어디에서 왔는지 설명하기 위해 Mesos가 금속 위에서 바로 실행되는 실제 OS라면 더 좋을 것 같습니다. 어떤 기반을 사용하더라도 둘 이상의 아키텍처 계층에서 동일한 의도된 기능을 갖게 되는 것 같습니다(예: CoreOS&Fleet&SystemD == Mesos&Marathon&Chronos). 이것은 불가피한가?
기준을 염두에 두고 고려하지 못한 Mesos 아래 레이어를 실행하는 다른 좋은 옵션이 있습니까?
답변1
Mesos에서 서비스를 구성하고 실행하는 것은 복잡할 수도 있고 쉬울 수도 있으며, 원하는 영혼을 얻으려면 필요와 목표에 따라 먼저 Mesos에서 실행하려는 서비스의 스키마를 정의해야 합니다.
Mesos-DNS 및 Marathon, Api 게이트웨이, Chronos, Jenkins, Docker, Collectd 및 Graphite 등을 사용한 동적 로드 밸런싱을 위해 HAProxy에서 70개가 넘는 머신 설정과 다양한 서비스를 실행합니다.
이제 직접적인 질문에 답해 보겠습니다.
- Mesos는 다음을 사용하여 구성하는 것이 가장 복잡하지 않습니다."좋아하는" Linux 배포판당신에게 가장 친숙한 것입니다.
- 유지 관리가 가장 쉬운 것은 가장 친숙한 배포판입니다.
- 오버헤드와 관련하여 Mesos는 자체 OS 라이브러리와 기타 소프트웨어 기능을 사용하는 소프트웨어 시스템이며 Mesos를 OS(하드웨어 및 소프트웨어 모두와 함께 작동...)로 사용하는 것은 완전히 잘못된 그림입니다.
따라서 제가 드릴 수 있는 최선의 대답은 귀하가 선호하는 Linux 배포판을 사용하고 Mesos를 설치하는 것입니다. 또는 새로운 것을 빠르고 쉽게 배우고 싶다면 다음을 사용하십시오.(오픈소스) DCOS그리고코어OS.