Principais alternativas de KUBERNETES: Um olhar sobre Swarm, DC / OS, Nomad

Provavelmente já ouvimos o suficiente sobre como o Kubernetes é o Linux para a nuvem, com a taxa de adoção mais rápida de todos os tempos, etc. Mas o Kubernetes não é de forma alguma a única opção de formato por aí, e há uma boa quantidade de alternativas ao Kubernetes. Kubernetes, Docker Swarm, Mesos e Nomad (e muitos mais) se enquadram na categoria de Ferramentas de gerenciamento de infraestrutura Para DevOps, conhecido como Mecanismos de consolidação de contêineres (COEs). A sincronização deles nos dá uma camada de abstração muito necessária por meio de Recipientes de aplicativos Isso funciona para proteger nossos recursos e pools de recursos reais.

trabalhar com Contêineres na nuvem É tudo uma questão de alocar recursos de forma eficaz. As coisas ficam complicadas ao usar várias nuvens ao lado de um data center local e implementar uma variedade de aplicativos nele. Especialmente porque esses aplicativos podem ser algo tão simples como um pequeno banco de dados relacional ou algo mais avançado como um serviço de streaming de vídeo ao vivo.

Melhores alternativas KUBERNETES: Um olhar sobre Swarm, DC / OS, Nomad - The Best /

Noções básicas de sincronicidade

Embora todas as alternativas do Kubernetes possam variar em relação à facilidade ou à dificuldade de uso e ao tipo de recursos que oferecem suporte, há alguns princípios básicos que todas parecem cobrir bem. Um bom exemplo disso é a descoberta de serviço, que é usada para determinar onde muitos serviços estão localizados em uma rede em uma arquitetura de computação distribuída. Outro bom exemplo são as solicitações de balanceamento de carga, sejam elas criadas internamente em um bloco ou externamente de clientes externos.

Melhores alternativas KUBERNETES: Um olhar sobre Swarm, DC / OS, Nomad - The Best /

Essas são apenas algumas das tarefas básicas que um mecanismo de sincronização de alto nível executa, e a lista é interminável com coisas como agendamento de contêineres, verificações de integridade e gerenciamento de armazenamento. Pode ser uma boa ideia apontar agora que eles estão se desenvolvendo tão rapidamente que o que sabemos sobre eles hoje pode estar desatualizado em alguns meses. Além disso, todos os meses há novas atualizações importantes do Kubernetes, Mesos e Swarm, que não são as únicas.

Os recursos de design tradicionais forçam você a enviar atualizações como compilações completas. A instalação da atualização pode demorar horas e isso significa muito tempo de inatividade para os usuários. Os microsserviços de contêiner são uma maneira amigável e radical de resolver esse problema. Os contêineres são essencialmente operações autônomas e todas as suas dependências são agrupadas para operação. Tudo o que o processo de contêiner precisa é executá-lo nesse contêiner, o que o torna muito portátil.

Como funcionam os contêineres?

Aqui está uma analogia fácil. Pense em seu aplicativo de nuvem como microsserviços de navio e contêiner como várias partes de um volume selado. Se houver apenas uma cabine, seu navio afundará se for inundado. Mas se você tiver vários compartimentos, seu navio está bem, mesmo se um dos compartimentos inundar. Os aplicativos projetados com a arquitetura de microsserviços podem conter dezenas ou até centenas de microsserviços alojados em contêineres que funcionam juntos. Os microsserviços podem fornecer funcionalidade exclusiva (por exemplo, apenas a parte de mensagens da plataforma de mídia social). Você também obtém muitos microsserviços que realizam funções redundantes de balanceamento de carga em vários servidores.

Melhores alternativas KUBERNETES: Um olhar sobre Swarm, DC / OS, Nomad - The Best /

Em vez de ter um servidor de mensagens o tempo todo (vasculhando sua carteira), você pode executar o serviço de mini mensagens em vários servidores. Eles podem aumentar ou diminuir o uso de seu servidor com base na demanda desse serviço específico. Assim, você terá menos uso à noite, o que atende à menor demanda e economiza dinheiro. Mas você poderá aumentar o uso durante os horários de pico.

Como ajudar contêineres

Os contêineres também podem ajudar a reduzir significativamente o tempo de inatividade. Se seu aplicativo consistir em vários contêineres e houver um bug em um serviço específico, todo o resto ainda funcionará enquanto você o corrige. Além disso, ao clicar em atualizações adicionais, você não precisa desligar totalmente os servidores. Você só precisa atualizar os serviços individuais. Os usuários podem nem perceber o tempo de inatividade.

O que é Kubernetes?

Aqui está uma boa analogia Para o que é Kubernetes. Mas, na prática, gerenciar e monitorar (coordenar) aplicativos criados com serviços de micros pode ser muito desafiador. Você precisará de um sistema que monitore e modifique serviços essenciais em centenas ou milhares de servidores. Felizmente, o Google desenvolveu uma ferramenta poderosa criando Kubernetes. A palavra “Kubernetes” significa governante em grego, e é basicamente isso. É uma plataforma que ajuda a monitorar e controlar aplicativos baseados em microsserviços.

Melhores alternativas KUBERNETES: Um olhar sobre Swarm, DC / OS, Nomad - The Best /

O Kubernetes tem suas falhas. Inclui uma curva de aprendizado íngreme, embora seja muito difícil construir sua própria sincronização. Ao mudar para o modelo de serviço de microsserviço, também é necessário que os desenvolvedores alterem a maneira como visualizam o código. Eles próprios precisam ter uma boa ideia de como ele será escalonado e como será implantado, em vez de apenas deixá-lo para as operações. Preparamos uma lista selecionada de alternativas ao Kubernetes aqui, caso uma solução baseada no Google não seja a certa para você. Continue a ler para saber mais.

Alternativas de Kubernetes

1. Enxame Docker

para quem: Usuários que desejam uma alternativa fácil de configurar ao Kubernetes

O Docker (o projeto total, não apenas o Swarm) foi o pioneiro na ideia de microsserviços em contêineres em 2013. O Docker Swarm é uma plataforma de sincronização do Docker. Ele tem várias vantagens sobre o Kubernetes. Para começar, embora seja menos versátil do que o Kubernetes, é muito amigável e fácil de instalar do que o Kubernetes. O Docker Swarm usa CLI com semântica semelhante ao GIT.

Esse conhecimento significa que os desenvolvedores podem integrar facilmente o Swarm em seu fluxo de trabalho existente. Em segundo lugar, encaixar a base para escalonar manualmente os serviços, em comparação com o uso da função kubectl no Kubernetes. O Docker também ganha em termos de suporte. O próprio Docker fornece suporte corporativo oficial para clientes do Docker Enterprise Edition (que inclui Swarm). O Google não oferece suporte a Kubernetes. No entanto, o Kubernetes é uma plataforma de código aberto, portanto, existem outros vendedores por aí. Ele fornece suporte para suas próprias versões.

Melhores alternativas KUBERNETES: Um olhar sobre Swarm, DC / OS, Nomad - The Best /

O Docker Swarm também tem desvantagens. O registro e o monitoramento são os principais pontos fracos. Embora o Kubernetes tenha ferramentas de monitoramento integradas, o Docker Swarm exige que você use ferramentas de terceiros, como Sumo Logic e Retrace. Além disso, a comunidade Docker Swarm é muito menor do que a comunidade Kubernetes.

Positivos:

  1. Mais fácil de instalar e configurar do que o Kubernetes
  2. Suporte oficial para a edição Enterprise

Negativos:

  1. Funções limitadas de controle e gravação
  2. Uma comunidade menor que o Kubernetes

Baixar Docker swarm

2. DC/SO

para quem: Usuários que desejam saber a carga de trabalho do contêiner ou não em uma plataforma distribuída

DC / OS é uma abreviatura de Data Center Operating System. Ele funciona em um nível de abstração mais alto do que o Kubernetes. O Kubernetes apenas coordena microsserviços em contêineres. Você ainda está lidando com vários servidores premium e vários pools de recursos. No entanto, o DC / OS está retirando recursos dos próprios dispositivos. O DC / OS pode apresentar todo o data center como um conjunto gigante de recursos - armazenamento de petabytes, terabytes de RAM e milhares de núcleos de CPU.

Os desenvolvedores podem codificá-lo como se estivessem trabalhando com um sistema gigantesco e a mágica do DC / OS distribui a carga de forma inteligente para todos os seus servidores. Isso significa que o sistema DC / OS também pode ser usado para distribuir a funcionalidade de carga de trabalho não contêiner. DC / OS tem falhas perceptíveis, no entanto.

Melhores alternativas KUBERNETES: Um olhar sobre Swarm, DC / OS, Nomad - The Best /

Embora DC / OS seja de código aberto, há uma edição Enterprise que possui vários recursos principais que ficam bloqueados por trás de um firewall de assinatura. Você terá que pagar por algumas das funções com suporte do Kubernetes.

Positivos:

  1. Permite saber a carga de trabalho em contêineres ou não contêineres
  2. Ele se apresenta como um pool de recursos unificado, o que reduz a complexidade para desenvolvedores

Negativos:

  1. Os recursos premium estão bloqueados atrás do acesso pago

Baixar DC / SO

3. nômade

para quem: Usuários que desejam um serviço de orquestração limitado, mas focado

Uma das principais desvantagens de grandes players de sincronização, como Kubernetes e Docker Swarm, é que eles são muito complexos. Ele foi projetado com os requisitos de gigantes como o Spotify - que atendem centenas de milhões de usuários diariamente - em mente. Se o seu aplicativo precisa ser escalado em milhares de servidores e fornecer dezenas de serviços a milhões de pessoas, você precisa desse nível de complexidade. Mas se você for um jogador júnior ou intermediário, seus requisitos de formatação são muito mais simples.

O Nomad faz muito pouco sozinho. Ele apenas permite gerenciar grupos de contêineres e programar essas operações. Em caso de erros, seus clusters de contêiner ainda funcionarão, mas isso é tudo. Quaisquer outras funções de que você precise, em termos de gravação, monitoramento ou rede, precisam ser tratadas por outras ferramentas. Se você tiver requisitos adicionais, o Nomad também é fácil de integrar com outras ferramentas. Hashicorp, o desenvolvedor líder do Nomad, garante a integração próxima do Nomad com outros produtos de software como Consul e Vault.

Melhores alternativas KUBERNETES: Um olhar sobre Swarm, DC / OS, Nomad - The Best /

O Nomad tem algumas falhas bastante notáveis, no entanto. Para começar, é finito e é uma faca de dois gumes. Se você precisa de política de rede avançada e funcionalidade de monitoramento integrada, o Kubernetes é a melhor solução. Além disso, o Nomad é um player muito menor do que o Kubernetes. Ambos são projetos de código aberto que dependem muito da contribuição da comunidade. Quase 10% faz com que o Github mal se prenda ao Kubernetes. Isso geralmente significa desenvolvimento lento e velocidades de correção de bugs.

Positivos:

  1. Fácil de usar em comparação com as outras opções listadas

Negativos:

  1. O escopo e tamanho limitados tornam difícil a implementação em projetos realmente grandes
  2. Comunidade relativamente pequena

Baixar Nômade 

Embalagem

Cada um desses sistemas de sincronização tem vantagens e desvantagens. O próprio Kubernetes é a solução perfeita para empresas que desejam selecionar aplicativos que atendam às necessidades de milhões de usuários. Documentação ambígua, uma curva de aprendizado íngreme e suporte relativamente pobre significam que não é para todos.

O Docker Swarm é muito mais fácil de configurar e usar, mas não possui ferramentas de monitoramento ou gravação integradas. O DC / OS permite que você faça mais do que apenas organizar microsserviços em contêineres, mas a funcionalidade premium está atrás de um firewall. Embora o principal destaque do Nomad seja sua simplicidade - o que o torna ideal para projetos menores - a própria simplicidade o torna menos do que ideal para grandes esforços de nível empresarial.

Ir para o botão superior