Em 2021, para onde irão os nativos da nuvem?

Foto principal | Download pago na Visual China 

Tradução | Daixiang (Huawei Cloud Native Team)

Autor | Chris Aniszczyk (CNCF CTO)

 

Recentemente, a CNCF lançou um resumo anual de todo o trabalho no campo nativo da nuvem em 2020 [1]. Tivemos um ano sólido sob a situação de epidemia. Esperamos que os leitores e amigos leiam o relatório. Este artigo compartilhará meus pensamentos sobre a direção e tendência do desenvolvimento nativo da nuvem em 2021 e além.

Cloud Native IDE

No futuro, o ciclo de vida de desenvolvimento (código, construção, depuração) ocorrerá principalmente na nuvem, em vez de Emacs ou VSCode local. Cada PR terá um ambiente completo de desenvolvimento e implantação para atender às necessidades de desenvolvimento e depuração.

Atualmente, GitHub Code Space e GitPod são exemplos específicos dessa tecnologia. Embora o espaço de código do GitHub ainda esteja em fase de teste, você pode tentar o GitPod. Veja o Prometheus como exemplo: em cerca de um minuto, você terá um ambiente de desenvolvimento online completo, incluindo um editor e um ambiente de visualização. O mais louco é que este ambiente de desenvolvimento (espaço de trabalho) é descrito em código e pode ser compartilhado com outros desenvolvedores da equipe como outro middleware de código. 

Estou ansioso para ver os IDEs nativos da nuvem continuarem a inovar de forma incrível no futuro, especialmente quando o espaço de código do GitHub for amplamente usado no final da fase de teste, para que os desenvolvedores possam experimentar este novo conceito e se apaixonar por ele.

Edge Kubernetes

O Kubernetes nasceu em um data center em massa, mas o Kubernetes evoluirá para um novo ambiente como o Linux. O resultado final do Linux é que os usuários finais expandiram o kernel para oferecer suporte a vários novos cenários de implantação em diferentes campos, incluindo móvel e integrado.

Acredito firmemente que o Kubernetes passará por uma evolução semelhante. Vimos operadores (e startups) usarem o Kubernetes como uma plataforma de ponta, transformando VNFs em CNFs (Cloud Native Network Function) por meio de projetos de código aberto, como KubeEdge, k3s, k0s, LFEdge, e Eclipse ioFog.). O suporte de nuvens em hiperescala para operadores e cenários de ponta, a capacidade de reutilizar o software nativo da nuvem e a capacidade de construir no enorme ecossistema nativo da nuvem atual são forças motrizes que consolidam o Kubernetes como computação de ponta nos próximos anos. posição da plataforma dominante.

Cloud Native + WASM

Web Assembly (WASM) é uma tecnologia que está apenas começando, mas espero que possa se tornar uma função cada vez mais importante no ecossistema nativo da nuvem, especialmente à medida que o WASI amadurece e o Kubernetes é mais usado como a colaboração de ponta descrita acima Dispositivo. Um caso de uso é alimentar o mecanismo de extensão, como fazem LuaJIT e Envoy. Em vez de lidar com Lua diretamente, você pode usar um pequeno tempo de execução otimizado que oferece suporte a várias linguagens de programação.

O projeto Envoy está atualmente em processo de adoção do WASM. Espero que qualquer ambiente siga um padrão semelhante, e a linguagem de script como um mecanismo de extensão popular será completamente substituída por WASM no futuro.

No lado do Kubernetes, alguns projetos como o Krustlet da Microsoft estão explorando como oferecer suporte a tempos de execução baseados em WASI no Kubernetes. Isso não deve ser muito surpreendente, porque o Kubernetes foi estendido por meio de CRD e outros mecanismos para executar diferentes tipos de cargas de trabalho, como VM (KubeVirt). Além disso, se você for novo no WASM, recomendo este curso introdutório da Linux Foundation:

https://www.edx.org/course/introduction-to-webassembly-runtime。

A ascensão do FinOps (CFM)

O surto do novo coronavírus acelerou a transição para o nativo da nuvem, e pelo menos metade das empresas estão acelerando seus planos de nuvem durante a crise ... Quase 60% dos entrevistados disseram que devido à pandemia COVID-19 (Estado do Cloud 2020 Report https: //info.flexera.com/SLO-CM-REPORT-State-of-the-Cloud-2020), a taxa de uso da nuvem excederá o plano anterior. Mais importante ainda, o gerenciamento financeiro da nuvem (FinOps) é um problema crescente e uma preocupação para muitas empresas.

Para ser honesto, nos últimos seis meses, algumas empresas e eu discutimos cerca de metade da jornada nativa da nuvem. Você também pode dizer que os provedores de nuvem não são incentivados a simplificar o gerenciamento financeiro da nuvem, porque isso tornaria mais fácil para os clientes reduzir despesas. A verdadeira dor é a falta de inovação e padronização de código aberto no gerenciamento financeiro em nuvem (todos os métodos de gerenciamento de custos em nuvem são diferentes). Não há muitos projetos de código aberto no CNCF que tentam tornar o FinOps mais simples. O projeto KubeCost atual ainda é muito jovem .

 Além disso, a Linux Foundation lançou recentemente a FinOps Foundation para promover a inovação neste campo. Eles têm muitos materiais de introdução nesse campo que valem a pena ler (https://www.edx.org/course/introduction-to-finops). Espero ver mais projetos de código aberto e especificações na área de FinOps nos próximos anos.

Mais projetos Rust nativos da nuvem

Rust ainda é uma linguagem de programação jovem e de nicho, especialmente se você tomar a classificação da linguagem de programação do Redmonk como exemplo. No entanto, minha sensação é que no próximo ano, você verá o Rust em mais projetos nativos da nuvem, porque alguns projetos CNCF começaram a tirar vantagem do Rust, como o microvm Firecracker. Embora a maioria dos projetos atuais do CNCF sejam escritos em Golang, espero que dentro de alguns anos após o amadurecimento da comunidade Rust, os projetos baseados em Rust serão iguais aos projetos baseados em Go.

GitOps + CD / PD cresceu significativamente

GitOps é um modelo operacional de tecnologia nativa da nuvem que fornece um conjunto de práticas recomendadas para implantação, gerenciamento e monitoramento de aplicativos unificados (originalmente proposto por Alexis Richardson da Weaveworks).

O aspecto mais importante do GitOps é descrever o estado do sistema desejado para o controle de versão declarativo no Git, o que realmente permite que um conjunto complexo de alterações do sistema seja aplicado corretamente e depois verificado (logs de auditoria habilitados pelo Git e outras ferramentas).

Do ponto de vista prático, o GitOps melhorou a experiência do desenvolvedor. Com o crescimento contínuo de projetos como Argo, GitLab e Flux, espero que as ferramentas do GitOps tenham mais impacto nas empresas este ano. Se você olhar os dados do GitLab, o GitOps ainda é uma prática emergente, a maioria das empresas ainda não o explorou, mas à medida que mais e mais empresas começam a adotar software nativo da nuvem em grande escala, o desenvolvimento do GitOps será naturalmente como eu disse .

Catálogo de serviços 2.0: Cloud Native Developer Kanban

O conceito de catálogo de serviços não é novo. Para aqueles de nós que cresceram na era ITIL, você pode se lembrar de coisas como CMDB, mas com o surgimento de microsserviços e o desenvolvimento de nativos da nuvem. A capacidade de catalogar e indexar vários itens em tempo real metadados de serviço são essenciais para conduzir a automação do desenvolvedor. Isso pode incluir o uso do catálogo de serviços para entender a propriedade de lidar com gerenciamento de incidentes, gerenciamento de SLOs, etc.

No futuro, você verá que o painel do desenvolvedor não é apenas um catálogo de serviços, mas pode ser estendido com vários recursos de automação. Exemplos típicos de código aberto são Backstage e Clutch de Lyft, mas qualquer empresa que usa nuvem nativa geralmente tem uma equipe de infraestrutura de plataforma que tenta construir algo semelhante. Conforme os painéis de código aberto com um grande ecossistema de plug-ins amadurecem, você verá mais e mais equipes de engenharia de plataforma acelerando o uso deles.

A nuvem cruzada não é mais um sonho

O Kubernetes e o movimento nativo da nuvem provaram que, em um ambiente de produção, as abordagens nativas e de várias nuvens são possíveis. Os dados mostram que 93% das empresas usam os serviços de vários fornecedores de nuvem, como Microsoft, Amazon e Google (Relatório do Estado da Nuvem 2020 https://info.flexera.com/SLO-CM-REPORT-State-of- the-Cloud -2020).

Como o mercado de nuvem continua a amadurecer, o Kubernetes deve abrir serviços de gerenciamento programático entre nuvens. Um exemplo específico é refletido no projeto Crossplane, que usa a escalabilidade da API Kubernetes para fornecer um plano de controle de nuvem cruzada de código aberto para alcançar o gerenciamento de carga de trabalho de nuvem cruzada (consulte https://thenewstack.io/gitlab-deploys-the -crossplane- control-plane-to-offer-multicloud-deployments).

eBPF se torna mainstream

O eBPF permite que você execute programas no kernel do Linux sem alterar o código do kernel ou carregar módulos, você pode pensar nisso como um mecanismo de extensão sandbox. O eBPF permite que uma nova geração de software estenda o comportamento do kernel do Linux para suportar uma variedade de funções diferentes, incluindo rede aprimorada, monitoramento e segurança. A desvantagem do eBPF é que ele requer uma versão alta da versão do kernel para usá-lo e, por muito tempo, essa não é uma escolha realista para muitas empresas.

No entanto, a situação está mudando e mesmo as versões mais recentes do RHEL começam a suportar o eBPF, e você verá mais projetos usando-o. Se você olhar o último relatório de contêiner da Sysdig (https://sysdig.com/blog/sysdig-2021-container-security-usage-report/), você pode ver que o uso do Falco usando eBPF para verificações de segurança de contêiner está aumentando cada vez mais. Portanto, fique atento e procure mais projetos baseados no eBPF!

Links Relacionados:

[1] Relatório anual da CNCF 2020: 

https://www.cncf.io/blog/2020/12/29/2020-cncf-annual-report



更多阅读推荐

Acho que você gosta

Origin blog.csdn.net/FL63Zv9Zou86950w/article/details/113207217
Recomendado
Clasificación