Quais são os princípios básicos de um bom design de API?
8 de fevereiro de 2024CTO da Pixar em OpenUSD, Vision Pro Future e USD Web Tools
8 de fevereiro de 2024Conforme descrito no artigo anterior da série, criar uma plataforma de desenvolvedor interna (IDP) para computação nativa em nuvem é um desafio porque a computação nativa em nuvem é diferente e complexa e, portanto, é um desafio acertar.
Fazer tudo certo, no entanto, é fundamental para obter benefícios nativos da nuvem para os negócios, permitindo que os desenvolvedores criem e implantem aplicativos de forma mais rápida, confiável e com menor custo.
Entender por que as plataformas de desenvolvedores são diferentes para a computação nativa em nuvem é um primeiro passo essencial para acertar.
A diferença nativa da nuvem
Os aplicativos nativos da nuvem diferem significativamente dos aplicativos tradicionais, principalmente porque são projetados e desenvolvidos para infraestrutura de “escala horizontal” nativa da nuvem e normalmente usam vários serviços de provedores de nuvem.
Os provedores de nuvem pública oferecem centenas de serviços de software de sistema, muitos dos quais podem ser relevantes (ou não) para a tarefa em questão. Pode ser muito demorado classificar esses serviços para identificar aqueles que você precisa incorporar ao seu PDI.
Além disso, o desenvolvimento de aplicativos nativos da nuvem normalmente envolve dividir funções em microsserviços, empacotar o código do microsserviço em uma imagem de contêiner com os artefatos necessários e implantar os contêineres em clusters Kubernetes.
Seguir esse caminho ajuda a obter benefícios nativos da nuvem, mas nem todas as ferramentas de software são iguais quando se trata de microsserviços, contêineres e suporte ao Kubernetes.
As ferramentas tradicionais muitas vezes não oferecem suporte a desenvolvedores nativos da nuvem porque não foram projetadas para o ambiente de computação nativo da nuvem de contêineres de microsserviços e Kubernetes.
Adotando microsserviços com sucesso
Um microsserviço é uma unidade de trabalho discreta, normalmente um recurso ou função de aplicativo. Um microsserviço expõe uma API para encapsular sua função e interagir com outros microsserviços na rede.
Os desenvolvedores nativos da nuvem precisam desenvolver e implantar microsserviços rapidamente e em escala para acompanhar o ritmo moderno das mudanças e precisam responder rapidamente aos comentários e incidentes dos clientes.
As organizações que adotam microsserviços com sucesso obtêm os maiores benefícios com pequenas equipes autônomas apoiadas por uma plataforma central de desenvolvimento interno que impõe padrões organizacionais e ferramentas consistentes.
É muito mais fácil corrigir e atualizar um microsserviço individual do que reimplantar um aplicativo monolítico apenas para corrigir um bug, por exemplo.
O sucesso com este modelo requer a estrutura organizacional e governança corretas, a disciplina para coordenar cuidadosamente as mudanças radicais que afetam vários microsserviços e a combinação certa de tecnologias e ferramentas nativas da nuvem em seu IDP.
Engenharia de plataforma para a nuvem
O objetivo da engenharia de plataforma é criar um IDP que funcione como um produto para desenvolvedores que abstraia problemas de infraestrutura e preocupações com ferramentas.
E devido às diferenças no ambiente nativo da nuvem em comparação com os ambientes de TI tradicionais, essas abstrações precisam funcionar com microsserviços, contêineres, Kubernetes e serviços de provedores de nuvem.
As práticas recomendadas nativas da nuvem impõem responsabilidades adicionais aos desenvolvedores. Em ambientes de TI tradicionais, os desenvolvedores solicitam que a equipe de operações provisione seus bancos de dados, armazenamentos de eventos e cofres de segredos, por exemplo. Os ambientes nativos da nuvem não possuem equipes de operações que provisionam manualmente o software necessário.
Em vez disso, os desenvolvedores usam um IDP que expõe APIs declarativas, arquivos de configuração e scripts para que os desenvolvedores possam servir por conta própria.
Considere uma solicitação para provisionar um banco de dados. O engenheiro de confiabilidade do site ou as equipes de operações teriam configurado bancos de dados disponíveis no IDP que atendessem às preocupações de segurança, disponibilidade e confiabilidade e ao monitoramento imediato.
Um desenvolvedor declara um requisito para um banco de dados relacional, por exemplo, sem precisar especificar qual. Este nível de abstração permite que o banco de dados seja trocado por outro banco de dados sem afetar a aplicação.
Observabilidade para desenvolvimento nativo da nuvem
Vamos supor que você trabalhe em um ambiente nativo de nuvem e desenvolva microsserviços usando contêineres e Kubernetes.
Suponhamos também que você siga a prática recomendada de organizar seus desenvolvedores em pequenas equipes autônomas responsáveis por pelo menos um microsserviço durante todo o ciclo de vida de desenvolvimento, incluindo suporte à produção.
Tudo isso para proporcionar uma ótima experiência ao cliente, desenvolver e implantar rapidamente, aumentar a produtividade do desenvolvedor e liberar código de aplicação para produzir mais rapidamente e com maior qualidade e resiliência.
O sucesso destas escolhas depende significativamente da inclusão das ferramentas de observabilidade corretas no PDI.
As ferramentas tradicionais de observabilidade monitoram apenas o código pós-implantação – ou seja, monitoram o código na preparação e na produção. É claro que isso é importante, mas também é importante para reduzir o número de incidentes e interrupções que levam tempo ao desenvolvimento e à implantação de códigos que melhoram a experiência do cliente e a competitividade dos negócios.
Soluções de observabilidade que simplesmente capturam dados são ineficientes e prejudicam a produtividade. O mundo nativo da nuvem de microsserviços, contêineres e Kubernetes exige uma solução que filtre e adapte dados especificamente para pequenas equipes autônomas que desenvolvem, implantam e dão suporte a microsserviços.
A visão do Intellyx
A engenharia para aplicativos nativos da nuvem é a maneira de obter o melhor valor e o maior benefício da computação nativa da nuvem.
Projetar um IDP para ambientes nativos de nuvem requer não apenas abstrair a infraestrutura de serviços do provedor de nuvem, mas também incorporar uma solução de observabilidade que forneça feedback imediato o mais cedo e frequentemente possível no processo de desenvolvimento.
A observabilidade no IDP projetado para aplicativos nativos da nuvem fornece dados úteis aos desenvolvedores o mais rápido possível para mantê-los produtivos e satisfeitos.
O Google Cloud e o Chronosphere oferecem uma solução de observabilidade pronta para produção que pode ser incluída no seu IDP para ajudar a aproveitar plenamente os benefícios dos ambientes nativos da nuvem.
A postagem Por que a engenharia de plataforma é diferente para aplicativos nativos da nuvem apareceu pela primeira vez em The New Stack.