25 de março de 2024
Mesosphere DC/OS
Revolução na gestão de clusters com DC/OS
Hoje em dia todo administrador de sistemas conhece Apache Mesos, mas talvez não tanto a empresa Mesosphere e seu projeto DC/OS (DataCenter Operating System).
Para quem não ouviu falar do Apache Mesos, saiba que é um software para a gestão de clusters que proporciona um isolamento dos recursos. Permite executar múltiplos sistemas distribuídos em um mesmo cluster de máquinas e compartilhar de forma dinâmica e eficiente os recursos. Nesse processo intervêm os nós master, slaves e o bootstrap. Esses nós montam a infraestrutura e decidem os papéis dos outros nós.
A Mesosphere deu uma nova abordagem e criou o DC/OS, um sistema operacional de centros de dados. O DC/OS permite a gestão de múltiplas máquinas como se fossem uma só. Além disso, automatiza a gestão de recursos, facilita a comunicação entre processos e simplifica a instalação e gestão dos serviços distribuídos. Este sistema inclui uma interface web intuitiva e permite também interagir por CLI.
Não exageramos quando dizemos que simplifica a instalação dos serviços distribuídos. Com alguns cliques podemos dispor de mais de 40 serviços como Cassandra, Jenkins, Chronos, Kafka, Spark, Zeppelin entre outros. Agora bem, considerando que o DC/OS não tem nem um ano de vida comercial, com o tempo serão muitos mais.
Arquitetura do DC/OS
Não se pode dizer que o DC/OS é um sistema operacional, já que estes gerenciam os recursos de uma única máquina. O DC/OS é um sistema operacional distribuído que abstrai os recursos de um conjunto de máquinas e fornece serviços comuns.
O kernel do DC/OS é composto por máquinas Mesos, os mestres e os agentes (escravos). Em um nível mais alto, temos os componentes do sistema, como serviços DNS e Marathon. Em um nível superior, temos a camada de usuário onde residem todos os processos e serviços.
Integração com Dockers
O DC/OS é um sistema facilmente integrável com tecnologia de contêineres. No entanto, para a integração de microsserviços será necessário um orquestrador de dockers.
Tanto para Mesos quanto para DC/OS em particular, o orquestrador de contêineres que devemos usar é o Marathon, que se integra facilmente e cria uma base sólida sobre a qual serão lançados os microsserviços e aplicações web.
De fato, o DC/OS já inclui o Marathon como componente principal para orquestrar tanto serviços com dockers quanto cargas de trabalho que não trabalham com contêineres. O Marathon te dá a possibilidade de programar infinitas tarefas em milhares de nós paralelamente.
Escalabilidade e alta disponibilidade
Como é de se prever, DC/OS é altamente escalável, tanto manualmente adicionando e eliminando as instâncias necessárias como configurando um modelo de autoescalonamento baseado no número de sessões através do balanceador de Marathon.
DC/OS dispõe de alta disponibilidade, dado o número de instâncias nas quais trabalha, mas mesmo para os serviços que gerencia, também existe a possibilidade de configurá-los com alta disponibilidade. Para isso, o Marathon monitora todos os serviços e em caso de falha são reiniciados.
Conceitos de Segurança
Visto que o kernel do DC/OS é baseado em Linux, o sistema aplica todas as melhores práticas deste. Além disso, para o nível de serviços e processos são aplicadas três zonas de segurança diferenciadas:
Zona de administração: Zona acessível através de HTTP/HTTPS e por SSH, a qual proporciona acesso aos nós mestres. Também atua como proxy reverso para os outros nós do cluster.
Zona privada: É uma rede que não é roteável e somente pode ser acessada a partir da zona de administração ou da zona pública através do edge router. Nesta zona geralmente são implantados os nós agentes (escravos).
Zona pública: É onde são executadas as aplicações que requerem acesso público. O edge router será o responsável por enviar o tráfego aos nós agentes que estão na rede da zona privada.
DC/OS sobre Amazon Web Services
Mesosphere disponibiliza aos usuários um template de CloudFormation para a criação e configuração automática da infraestrutura, o inconveniente é que não é uma configuração personalizada e somente oferece as opções de escolher entre 1 ou 3 masters e em qual região deseja implantá-lo.
Recomendamos seguir a configuração avançada para poder implantar DC/OS sob medida.
Como resumo deixamos alguns benefícios de utilizar DC/OS e Mesos:
- A execução de tarefas com cargas incrementais através de todo o cluster
- Ter uma configuração a nível global, em masters e slaves, faz com que a configuração seja mais simples de administrar.
- A facilidade de levantar algum serviço e/ou aplicação, além de nos proporcionar propriedades como escalabilidade horizontal e tolerância a falhas.
Em conclusão
DC/OS faz uso de Mesos por baixo para a execução de tarefas e frameworks. Por padrão, ao instalar DC/OS, temos Mesos instalado, já que, como mencionamos, DC/OS adiciona algumas funcionalidades ao Mesos.
Quando executamos uma tarefa em um agente do Mesos, ele faz uso dos cgroups (contêineres de processos) para restringir o uso de CPU e RAM, dessa forma, isso ajuda a evitar que uma tarefa exceda os recursos atribuídos.
Os frameworks no Mesos são uma aplicação que utiliza a API do Mesos para receber ofertas de recursos do Mesos e responder às ofertas de recursos para indicar ao Mesos que execute tarefas se o framework precisar de tarefas para serem executadas e a oferta tiver recursos suficientes.
É importante esclarecer que um framework pode ter “n” quantidade de tarefas, podemos vê-lo como se um framework fosse o processo pai e este tivesse processos que atuariam como os filhos.
Share