Vantagens do produto
Por que o CCE?
O CCE é um serviço de container baseado nas populares tecnologias Docker e Kubernetes e oferece uma variedade de recursos mais adequados à demanda das empresas por executar clusters de container em dimensionamento. Com vantagens exclusivas na confiabilidade do sistema, desempenho e compatibilidade com comunidades de código aberto, o CCE pode atender às particularidades de empresas interessadas em construir nuvens de container.
Facilidade de uso
- Criar um cluster do Kubernetes é tão fácil quanto alguns cliques na interface do usuário da Web (WebUI). O cluster do Kubernetes suporta o gerenciamento de nós de VM ou nós bare-metal e aplica-se ao cenário em que VMs e máquinas físicas são usadas juntas.
- A implementação automática e o O&M de aplicações conteinerizadas podem ser executados em um só lugar durante todo o ciclo de vida da aplicação.
- Clusters e as cargas de trabalho podem ser redimensionadas em apenas alguns cliques na WebUI. Qualquer política de dimensionamento automático pode ser combinada de forma flexível para lidar com picos de carga no momento.
- A WebUI orienta você pelas etapas necessárias para atualizar os clusters do Kubernetes.
- Suporte para Application Service Mesh (ASM) e gráficos de Helm oferece usabilidade pronto para usar.
Alto desempenho
- O CCE se baseia em anos de experiência de campo em computação, rede, armazenamento e infraestrutura heterogênea. Você pode lançar containers em escala.
- A arquitetura bare-metal NUMA e as placas de rede InfiniBand de alta velocidade melhoram de três a cinco vezes o desempenho da computação.
Alta disponibilidade e seguro
- Alta confiabilidade: você pode implantar três nós principais em diferentes AZs para o plano de controle de cluster para garantir a alta disponibilidade dos seus serviços. Os nós e as cargas de trabalho em um cluster podem ser balanceadas entre as AZs para formar uma arquitetura multi ativa que garante a continuidade do serviço mesmo quando um dos hosts ou salas de equipamentos está inoperante, ou uma AZ é atingida por desastres naturais.
Figura 1 Configuração de alta disponibilidade de clusters
- Seguro: os clusters são privados e totalmente controlados por usuários com IAM e RBAC do Kubernetes profundamente integrados. Você pode definir permissões do RBAC diferentes para usuários do IAM no console.
Aberto e compatível
- CCE é baseado na tecnologia Docker de código aberto que automatiza a implementação, o agendamento de recursos, a descoberta de serviços e o dimensionamento dinâmico de aplicações conteinerizadas.
- CCE é baseado no Kubernetes e compatível com as APIs nativas do Kubernetes, kubectl (uma interface de linha de comando) e versões nativas do Kubernetes/Docker. As atualizações das comunidades do Kubernetes e do Docker são incorporadas regularmente ao CCE.
Análise comparativa do CCE e Sistemas de gerenciamento de cluster do Kubernetes no local
Área de foco |
Sistemas de gerenciamento de cluster do Kubernetes no local |
CCE |
---|---|---|
Facilidade de uso |
O gerenciamento de cluster é complexo. Você precisa lidar com toda a complexidade na instalação, operação, escalabilidade, configuração e monitoramento da infraestrutura de gerenciamento de cluster do Kubernetes. Cada atualização de cluster exige um tremendo ajuste manual, impondo um fardo pesado ao pessoal de O&M. |
Fácil de gerenciar e usar clusters Você pode criar e atualizar clusters de container do Kubernetes com apenas alguns cliques, sem precisar configurar ambientes Docker ou Kubernetes. A implementação automática e o O&M de aplicações conteinerizadas podem ser realizados no console em um só lugar durante todo o ciclo de vida da aplicação. O suporte para gráficos de Helm oferece usabilidade pronto para uso. Usar clusters do CCE é tão simples quanto escolher um cluster de container e os trabalhos que você deseja executar no cluster. Em seguida, o CCE completa o gerenciamento de clusters para que você possa se concentrar no desenvolvimento de aplicações conteinerizadas. |
Escalabilidade |
Você precisa avaliar manualmente a carga de serviço e a integridade do cluster antes de decidir redimensionar um cluster. |
Serviço de dimensionamento gerenciado O CCE pode redimensionar automaticamente clusters e cargas de trabalho à medida que o uso de recursos muda. O uso combinado de políticas de dimensionamento automático pode dimensionar clusters e cargas de trabalho de forma flexível para atender às demandas flutuantes. |
Confiabilidade |
Apenas um nó principal está disponível em um cluster. Quando o nó principal estiver inativo, todo o cluster, bem como todas as aplicações no cluster, ficarão fora de serviço. |
Alta disponibilidade Se High Availability estiver definida como Yes quando você criar um cluster, três nós principais serão criados no cluster, evitando pontos únicos de falha no plano de controle do cluster. |
Eficiência |
Você precisa criar repositórios de imagens ou reverter para repositórios de imagens de terceiros. As imagens são extraídas dos repositórios em série. |
Implementação rápida de imagens e integração contínua O CCE funciona com o SoftWare Repository for Container (SWR) para suportar pipelines do DevOps e eliminar a necessidade de escrever manualmente Dockerfiles ou manifestos do Kubernetes. Com os modelos de pipeline do ContainerOps, você pode definir como criar imagens de container, enviá-las para repositórios e implantá-las. As imagens são extraídas dos repositórios em paralelo. |
Custo |
É necessário um investimento inicial pesado na instalação, gerenciamento e dimensionamento da infraestrutura de gerenciamento de clusters. |
Custo efetivo Você paga apenas pelos recursos de infraestrutura necessários para armazenar e executar aplicações, bem como pelos nós principais no cluster. |
Por que Containers?
O Docker é escrito na linguagem de programação Go projetada pelo Google. Ele fornece virtualização no nível do sistema operacional: os processos de software são isolados uns dos outros usando grupos de controle do Linux (cgroups), namespaces e tecnologias Union FS (por exemplo, AUFS). Tudo o que é necessário para executar um processo de software é embalado em um container. Os containers são isolados uns dos outros e do host.
O Docker avançou para melhorar o isolamento de containers: os containers têm seus próprios sistemas de arquivos e não podem ver os processos ou interfaces de rede uns dos outros. Isso simplifica a criação e o gerenciamento de containers.
A tecnologia de virtualização tradicional fornece virtualização em nível de hardware. Ele cria um conjunto de máquinas virtuais, cada uma com um sistema operacional completo e aplicação dentro. Os containers, por outro lado, não têm seu próprio kernel e todos chamam para o mesmo kernel do sistema operacional host. Além disso, é desnecessário fazer qualquer tipo de virtualização da mesma forma que faz com as VMs. Portanto, os containers do Docker são menores e mais rápidos que as VMs.
Para resumir, os containers do Docker têm muitas vantagens sobre as VMs.
Utilização de recurso
Sem sobrecarga para virtualizar hardware e executar um sistema operacional completo, os containers podem superar as VMs em velocidade de execução de aplicações, perda de memória e velocidade de armazenamento de arquivos.
Velocidade de iniciar
Leva vários minutos para iniciar uma aplicação em uma VM. As aplicações conteinerizadas do Docker são executados diretamente no kernel do host e não há necessidade de iniciar um sistema operacional completo junto com as aplicações. O tempo de inicialização pode ser reduzido para segundos ou até milissegundos, economizando muito seu tempo em desenvolvimento, teste e implementação.
Ambiente consistente
Um dos maiores problemas que os desenvolvedores sempre têm que lidar é a diferença nos ambientes onde executam suas aplicações. A diferença entre os ambientes de desenvolvimento, teste e produção impede que alguns bugs sejam descobertos antes do lançamento. Uma imagem de container do Docker inclui tudo o que é necessário para executar uma aplicação e isola a aplicação de seu ambiente. Portanto, as aplicações conteinerizadas sempre serão executadas da mesma forma em ambientes de desenvolvimento, teste e produção.
Entrega e implementação contínuas
Para o pessoal de DevOps, seria ideal se as aplicações pudessem ser executados em qualquer lugar após criação ou configuração única.
O Docker fornece criação e implementação confiáveis e frequentes de imagens de container com reversões rápidas e fáceis (devido à imutabilidade da imagem). Os desenvolvedores escrevem Dockerfiles que contêm todas as instruções necessárias para construir imagens de container e mesclar instruções atualizadas regularmente em Dockerfiles, uma prática conhecida como Integração contínua (CI). A equipe de operações pode implantar rapidamente imagens no ambiente de produção, permitindo que o Docker leia instruções do Dockerfiles. A equipe de Ops pode até mesmo seguir a prática de Entrega/Implementação contínua (CD), na qual cada alteração de instrução é automaticamente criada, testada e, em seguida, enviada para um ambiente de teste que não seja de produção.
O uso de Dockerfiles torna o processo do DevOps visível para todos em uma equipe de DevOps. Desta forma, a equipe de desenvolvedores pode entender melhor as necessidades dos usuários e os problemas enfrentados pela equipe de Ops enquanto mantém a aplicação. Por outro lado, a equipe de Ops pode ter algum conhecimento das condições que devem ser atendidas para executar a aplicação. O conhecimento é útil quando o pessoal do Ops implementa imagens de container no ambiente de produção.
Portabilidade
O Docker garante a consistência ambiental no desenvolvimento, teste e produção, e assim os containers do Docker podem ser portáteis em qualquer lugar. Eles trabalham uniformemente, independentemente de serem executados em máquinas físicas, máquinas virtuais, nuvens públicas, nuvens privadas ou até mesmo laptops. Você pode migrar aplicações de uma plataforma para outra sem se preocupar que a mudança de ambiente fará com que as aplicações não funcionem.
Atualizações de aplicação
As imagens do Docker são compostas por camadas. Cada camada é armazenada apenas uma vez e imagens diferentes podem conter exatamente as mesmas camadas. Isso torna a distribuição eficiente porque as camadas que já foram transferidas como parte da primeira imagem não precisam ser transferidas novamente ao transferir a outra imagem que também possui essas camadas. Para atualizar uma aplicação conteinerizadada, você pode editar a camada superior mais gravável na imagem final ou adicionar camadas à imagem base. Além disso, o Docker colabora com equipes de projetos de código aberto para manter um grande número de imagens oficiais de alta qualidade. Você pode usá-los diretamente no ambiente de produção ou facilmente criar novas imagens com base neles.
Característica |
Containers |
VMs |
---|---|---|
Velocidade de iniciar |
Em segundos |
Em minutos |
Capacidade do disco |
MB |
GB |
Desempenho |
Desempenho quase nativo |
Fraca |
Capacidade por máquina |
Milhares de containers |
Dezenas de VMs |