O que são Cloud Native e CNCF?

1. Introdução ao CNCF

CNCF: O nome completo da Cloud Native Computing Foundation (Cloud Native Computing Foundation), criada em 11 de dezembro de 2015, é uma fundação de software de código aberto dedicada à popularização e desenvolvimento sustentável da tecnologia Cloud Native.

A intenção ou visão original do estabelecimento da organização CNCF, simplesmente colocada:

  • Promover o desenvolvimento sustentável da computação nativa em nuvem;
  • Ajude os desenvolvedores de tecnologia nativa da nuvem a criar excelentes produtos rapidamente:

 

2. Roteiro do CNCF Paisagístico

As saídas mais importantes do CNCF Landscape incluem um roteiro e um panorama. O Trail Map é o processo de recomendação do CNCF para usuários nativos da nuvem usarem projetos de código aberto e tecnologias nativas da nuvem. Em cada etapa do roteiro, os usuários podem escolher produtos suportados pelo fornecedor ou desenvolver seus próprios projetos de código aberto. 

Todo o roteiro é dividido em dez etapas, e cada etapa é uma questão que os usuários ou desenvolvedores de plataformas precisam pensar e lidar passo a passo ao implementar a tecnologia nativa da nuvem no ambiente real:

  1. conteinerizado . A tecnologia de conteinerização mais popular no momento é o Docker, e você pode conteinerizar aplicativos e dependências de qualquer tamanho, até mesmo alguns programas executados em emuladores. Você também pode particionar o aplicativo ao longo do tempo e escrever funcionalidades futuras como microsserviços.
  2. CI/CD (Integração Contínua e Liberação Contínua) . Crie um ambiente de CI/CD, para que qualquer modificação no código-fonte possa ser compilada automaticamente, testada por meio do contêiner e implantada no ambiente de pré-produção ou mesmo de produção.
  3. Orquestração de Aplicativos (Kubernetes) . Atualmente, o Kubernetes é a ferramenta mais usada no campo de orquestração de aplicativos no mercado. Os Helm Charts podem ser usados ​​para ajudar desenvolvedores e editores de aplicativos a atualizar aplicativos executados no Kubernetes.
  4. Monitoramento e Análise . Nesta etapa, os usuários precisam selecionar ferramentas relacionadas a monitoramento, registro e rastreamento para a plataforma, como o uso do Prometheus para monitoramento, Fluentd para registro e Jaeger para rastrear toda a cadeia de chamadas do aplicativo.
  5. Intermediação, descoberta e governança de serviços . CoreDNS, Envoy e LINKERD podem ser usados ​​para descoberta de serviço e governança de serviço, respectivamente, fornecendo funções como verificação de integridade do serviço, roteamento de solicitação e balanceamento de carga.
  6. rede . Softwares como Calico, Flannel e Weave Net são usados ​​para fornecer funções de rede mais flexíveis.
  7. Banco de dados e armazenamento distribuídos . Bancos de dados distribuídos podem fornecer melhor elasticidade e escalabilidade, mas ao mesmo tempo exigem armazenamento de contêiner profissional para suportá-los.
  8. Stream e processamento de mensagens . Quando o aplicativo requer desempenho superior ao modo JSON-REST, você pode considerar o uso de gRPC ou NATS. gRPC é uma estrutura RPC (chamada remota) geral (semelhante a chamadas RPC em várias estruturas) e NATS é um sistema de fila de mensagens de publicação/assinatura e balanceamento de carga.
  9. Biblioteca de imagens de contêiner e ambiente de tempo de execução . Harbour é atualmente a biblioteca de imagens de contêiner mais popular. Ao mesmo tempo, você também pode optar por usar diferentes ambientes de tempo de execução de contêiner para executar programas de contêiner.
  10. Lançamento de software . Por fim, softwares como o Notary podem ser usados ​​para liberação segura de software.

 

3. Panorama CNCF (Paisagem)

O roteiro do CNCF Landscape ajuda os usuários a classificar o melhor processo de todo o aplicativo nativo da nuvem a partir das etapas práticas. No entanto, em todos os elos de todo o processo de prática, os usuários precisam saber quais softwares específicos e opções de produtos estão disponíveis.É aqui que entra o panorama CNCF Landscape (https://landscape.cncf.io/).

Este panorama tenta permitir que os usuários entendam a visão geral do sistema nativo da nuvem a partir da perspectiva da hierarquia nativa da nuvem e de diferentes componentes funcionais, e ajuda os usuários a escolher software e ferramentas apropriados para suporte em diferentes níveis de componentes.

4. Introdução ao Cloud Native

Nativo da nuvem (nuvem nativo) é uma ideia de arquitetura de software baseada na nuvem , e uma nuvem distribuída baseada em implantação distribuída e operação e gerenciamento unificados, e um conjunto de tecnologias de nuvem baseadas em contêiner, microsserviço, DevOps e outras tecnologias Sistema de produto.

  • Literalmente, o nativo da nuvem pode ser dividido em duas partes : nuvem e nativo .
  • A nuvem é oposta ao local. Os aplicativos tradicionais devem ser executados em servidores locais. Agora, os aplicativos populares são executados na nuvem. A nuvem inclui IaaS, PaaS e SaaS.
  • Nativo significa nativo. Quando começamos a projetar aplicativos, consideramos que os aplicativos serão executados no ambiente de nuvem no futuro. Devemos aproveitar ao máximo as vantagens dos recursos da nuvem, como: a elasticidade e as vantagens distribuídas dos serviços em nuvem.

Como desenvolver um programa adequado para implantação em um ambiente de nuvem? Na verdade, existem vários princípios de desenvolvimento que precisam ser seguidos:

 

1. Containerização (docker + k8s)

A vantagem da conteinerização é que não é mais necessário se preocupar com a pilha de tecnologia utilizada por cada serviço durante a operação e manutenção. Cada serviço é encapsulado em um container indistintamente, podendo ser gerenciado e mantido indistintamente. Agora é mais um ferramenta popular É docker e k8s.

2. Microsserviços

Os microsserviços resolvem o baixo acoplamento + alta coesão que buscamos no desenvolvimento de software, e os microsserviços correspondem ao nosso tradicional aplicativo único. Os microsserviços também recomendam o uso de APIs RESTful para comunicação.

3. Sem servidor

A arquitetura sem servidor não significa que os servidores não serão mais necessários no futuro, mas que ela não se concentrará mais na infraestrutura subjacente, e mais atenção pode ser dada a algumas implementações lógicas mais relacionadas ao negócio . Por exemplo, os fragmentos de código de algumas funções, a plataforma implanta e inicia automaticamente de acordo com a carga sob demanda e dimensiona automaticamente a lógica do código para atender às necessidades de processamento de negócios.

4, DevOps

DevOps (uma combinação de Desenvolvimento e Operações) é a integração de desenvolvimento, operação e manutenção. Envolve desenvolvimento contínuo, teste contínuo, integração contínua, implantação contínua e monitoramento contínuo de software durante todo o seu ciclo de vida de desenvolvimento.

  • A definição de DevOps da Wikipédia é um pouco exagerada. De fato, para simplificá-lo, o DevOps defende um alto grau de colaboração entre desenvolvimento e operação e manutenção de TI , de modo a melhorar a confiabilidade, estabilidade, elasticidade e segurança do ambiente de produção ao concluir a implantação de alta frequência.
  • De outra dimensão, em sentido amplo, o DevOps não precisa apenas romper as barreiras departamentais entre desenvolvimento e operação e manutenção, mas acreditamos que o DevOps precisa considerar todo o ciclo de vida do aplicativo para concretizar a abertura total do link e automação de ferramentas ao longo do ciclo de vida, recursos de colaboração on-line entre equipes .

5. Malha de Serviço

Service Mesh é um tema que tem surgido nos últimos anos.Baseado em microsserviços de containers, o Service Mesh permite que os usuários gerenciem a comunicação entre serviços de forma mais refinada e inteligente . O Istio, o principal projeto da comunidade Service Mesh, está ganhando popularidade rapidamente.

6. Nuvem

A nuvem é a base do cloud-native , e não existe cloud-native sem cloud. Sem um entendimento correto da nuvem, é impossível ter uma maneira correta de abrir a nuvem nativa. Para pessoal não técnico, pelo menos entenda os vários modelos de serviço da nuvem, como: IaaS, PaaS, SaaS, e os cenários de aplicação e valores de vários modelos de serviço.

 

V. Resumo

Não é difícil descobrir que cloud native é um conceito muito amplo. Não é difícil desenvolver uma aplicação que suporte cloud native. Pode ser uma implementação simples que pode ser implantada com base em containers, orquestrada e agendada usando Kubernetes, CI integrado /CD ferramentas e ferramentas de monitoramento Prometheus , etc.

 

 

Acho que você gosta

Origin blog.csdn.net/summer_fish/article/details/131981608
Recomendado
Clasificación