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