Tornar-se “nativo da nuvem” é frequentemente citado como o objetivo final da migração ou criação de aplicativos atualmente. Dependendo de para quem você perguntar, provavelmente terá muitas definições diferentes do que isso significa. Em geral, quase tudo se resume a isso: a nativo da nuvem é uma abordagem para criar e executar aplicativos escalonáveis e aproveitar ao máximo os serviços baseados na nuvem e os modelos de entrega.
Nativo da nuvem significa adaptar-se às muitas novas possibilidades, mas um conjunto muito diferente de restrições arquitetônicas, oferecidas pela nuvem em comparação com a infraestrutura local tradicional.
Ao contrário dos aplicativos monolíticos, que precisam ser criados, testados e implantados como uma única unidade, as arquiteturas nativas da nuvem decompõem os componentes em serviços acoplados com flexibilidade para ajudar a gerenciar a complexidade e melhorar a velocidade, a agilidade e o escalonamento de entrega de software.
Quer saber onde está o desempenho da entrega de software da sua organização em relação a outros negócios do setor? Faça a verificação rápida do DevOps da DORA para descobrir.
Um aplicativo nativo da nuvem é projetado desde o início para aproveitar a elasticidade e natureza distribuída da nuvem. Para entender melhor o que é um aplicativo nativo da nuvem, é melhor começar com o que não é: um aplicativo tradicional e monolítico.
Os aplicativos monolíticos funcionam como uma única unidade, geralmente com sistemas de operação personalizados, middleware e pilhas de linguagem para cada aplicativo. A maioria dos scripts e processos também é desenvolvida especificamente para criação, teste e implantação. No geral, essa arquitetura de aplicativos cria dependências aproximadas, dificultando a mudança, o teste, a implantação e a operação de sistemas à medida que eles crescem. O que começa como algo simples para projetar e implantar logo se torna complexo, difícil de evoluir e desafiador de operar.
Em comparação, os aplicativos nativos da nuvem aproveitam ao máximo a natureza dinâmica e distribuída da infraestrutura moderna para alcançar maior velocidade, agilidade, escalonabilidade, confiabilidade e eficiência de custos.
Os aplicativos nativos da nuvem costumam ser divididos em vários serviços autônomos por meio do uso de tecnologias e metodologias, ou seja, DevOps, entrega contínua e integração contínua, contêineres, microsserviços e APIs declarativas. Isso permite que as equipes implantem e escalonem componentes de maneira independente, para que possam fazer atualizações, corrigir problemas e fornecer novos recursos sem qualquer interrupção do serviço.
Ainda assim, os fundamentos das arquiteturas nativas da nuvem são baseados em cinco pilares principais:
Microsserviços: quase todas as arquiteturas de nuvem são baseadas em microsserviços, mas o principal benefício que elas oferecem é a composição, que detalha um aplicativo em uma coleção de serviços menores e leves que podem ser facilmente compostos e conectados entre si por meio de interfaces de programação do aplicativo (APIs). Por exemplo, um aplicativo de e-commerce pode ser composto por um serviço específico para o carrinho de compras, outro para pagamento e outro que se comunica com o back-end sobre o gerenciamento de inventário. A composição também permite que as equipes troquem e recomponham componentes para atender a novos requisitos de negócios sem interromper outra parte do aplicativo.
Contêineres e orquestração: os contêineres são componentes executáveis leves e que contêm todos os elementos necessários, incluindo o código-fonte e as dependências do app, para executar o código em qualquer ambiente. Os contêineres oferecem portabilidade de cargas de trabalho que aceitam códigos "criar uma vez, executar em qualquer lugar", facilitando o desenvolvimento e a implantação. Eles também ajudam a reduzir a chance de atrito entre linguagens, bibliotecas e frameworks, já que podem ser implantados de maneira independente. Essa portabilidade e flexibilidade tornam os contêineres ideais para a criação de arquiteturas de microsserviços.
A orquestração de contêineres também é essencial à medida que o número de microsserviços aumenta para ajudar a gerenciar contêineres e executá-los sem problemas como um aplicativo. Uma plataforma de orquestração de contêineres, como o Kubernetes, fornece supervisão e controle de onde e como os contêineres são executados, repara quaisquer falhas e balanceia a carga entre os contêineres.
DevOps: o desenvolvimento de aplicativos nativos da nuvem exige a mudança para uma metodologia de entrega ágil, como DevOps , em que os desenvolvedores e as equipes de operações de TI colaboram para automatizar processos de entrega de infraestrutura e software. O DevOps permite que as equipes de desenvolvimento e operações se comuniquem de maneira mais próxima e se unam em uma finalidade compartilhada, criando uma cultura e um ambiente em que é possível criar, testar e lançar aplicativos com mais rapidez.
Integração contínua e entrega contínua (CI/CD): a automação pode consertar, escalonar e implantar sistemas muito mais rapidamente do que as pessoas. Os pipelines de CI/CD ajudam a automatizar a criação, teste e implantação de alterações de aplicativos sem a necessidade de programar inatividade ou aguardar uma janela de manutenção. A entrega contínua garante que os lançamentos de software sejam mais confiáveis e menos arriscados, permitindo que as equipes ofereçam novos serviços e recursos com mais rapidez e frequência.
As tecnologias e os serviços nativos da nuvem ajudam você a criar, executar e implantar aplicativos escalonáveis em qualquer ambiente. Embora seus clientes e usuários comerciais se beneficiem de um aplicativo regular, os serviços nativos da nuvem operam em segundo plano para manter as coisas funcionando sem problemas.
Por exemplo, serviços nativos da nuvem podem descrever as ofertas como serviço de provedores de serviços de nuvem (por exemplo, IaaS e PaaS e modelos de serviço SaaS), os microsserviços de um aplicativo e as APIs que conectam e permitem a comunicação entre os serviços.
Na verdade, há uma diferença entre nuvem e nativo da nuvem. A nuvem se refere à computação em nuvem, em que empresas ou indivíduos pagam para acessar recursos de computação como um serviço sob demanda.
Embora seja frequentemente usada como uma descrição abrangente das ferramentas e técnicas usadas para desenvolver software na nuvem, o termo "nativo da nuvem" não se resume apenas à adoção da nuvem. Em vez disso, o termo se refere a como os aplicativos são criados e entregues, não apenas onde são implantados. Em alguns casos, um aplicativo pode nem ser executado na nuvem. É possível criar aplicativos com princípios nativos da nuvem e executá-los no local ou em ambientes híbridos.
Inovação mais rápida Serviços menores e acoplados com flexibilidade permitem que as equipes trabalhem e se desenvolvam de maneira autônoma. As abordagens nativas da nuvem aumentam a produtividade e a velocidade do desenvolvedor, facilitando a inovação. | Versões confiáveis Com arquiteturas nativas da nuvem, os desenvolvedores podem criar, testar e implantar rapidamente serviços novos e atuais. Isso permite lançar produtos e serviços com mais rapidez e reduz o risco de implantações. | Escalonabilidade As arquiteturas nativas da nuvem empregam automação de infraestrutura, o que ajuda a eliminar o tempo de inatividade devido a um erro humano. É possível equilibrar a carga com base na demanda, permitindo otimizar o custo e o desempenho. |
Custos mais baixos Um processo de entrega de software simplificado reduz os custos de entrega de novos recursos e atualizações. Os aplicativos nativos da nuvem também permitem compartilhar recursos e consumo sob demanda, reduzindo significativamente os custos operacionais. | Maior disponibilidade As arquiteturas nativas da nuvem oferecem alta disponibilidade e confiabilidade porque reduzem a complexidade operacional, simplificam as alterações de configuração e oferecem escalonamento automático e autocorreção. | Portabilidade Os aplicativos nativos da nuvem são projetados para serem executados em praticamente qualquer lugar, facilitando a migração deles de um ambiente a outro sem fazer alterações em todo o aplicativo. |
Mais segurança Os aplicativos nativos da nuvem ajudam a reduzir a área de superfície de ataque e facilitam a detecção e resposta a ataques ou novas vulnerabilidades. Eles também são muito mais fáceis de corrigir e atualizar à medida que seguem a implantação e o gerenciamento padronizados. | Compliance aprimorado É muito mais fácil e barato de implementar e demonstrar conformidade com os aplicativos nativos da nuvem, já que a maioria dos controles de segurança de dados é implementada no nível da plataforma. Os provedores de nuvem também mantêm conformidade com frameworks de gerenciamento de riscos, facilitando o cumprimento dos padrões de conformidade com controles residuais. |
Inovação mais rápida
Serviços menores e acoplados com flexibilidade permitem que as equipes trabalhem e se desenvolvam de maneira autônoma. As abordagens nativas da nuvem aumentam a produtividade e a velocidade do desenvolvedor, facilitando a inovação.
Versões confiáveis
Com arquiteturas nativas da nuvem, os desenvolvedores podem criar, testar e implantar rapidamente serviços novos e atuais. Isso permite lançar produtos e serviços com mais rapidez e reduz o risco de implantações.
Escalonabilidade
As arquiteturas nativas da nuvem empregam automação de infraestrutura, o que ajuda a eliminar o tempo de inatividade devido a um erro humano. É possível equilibrar a carga com base na demanda, permitindo otimizar o custo e o desempenho.
Custos mais baixos
Um processo de entrega de software simplificado reduz os custos de entrega de novos recursos e atualizações. Os aplicativos nativos da nuvem também permitem compartilhar recursos e consumo sob demanda, reduzindo significativamente os custos operacionais.
Maior disponibilidade
As arquiteturas nativas da nuvem oferecem alta disponibilidade e confiabilidade porque reduzem a complexidade operacional, simplificam as alterações de configuração e oferecem escalonamento automático e autocorreção.
Portabilidade
Os aplicativos nativos da nuvem são projetados para serem executados em praticamente qualquer lugar, facilitando a migração deles de um ambiente a outro sem fazer alterações em todo o aplicativo.
Mais segurança
Os aplicativos nativos da nuvem ajudam a reduzir a área de superfície de ataque e facilitam a detecção e resposta a ataques ou novas vulnerabilidades. Eles também são muito mais fáceis de corrigir e atualizar à medida que seguem a implantação e o gerenciamento padronizados.
Compliance aprimorado
É muito mais fácil e barato de implementar e demonstrar conformidade com os aplicativos nativos da nuvem, já que a maioria dos controles de segurança de dados é implementada no nível da plataforma. Os provedores de nuvem também mantêm conformidade com frameworks de gerenciamento de riscos, facilitando o cumprimento dos padrões de conformidade com controles residuais.
Apesar dos vários benefícios nativos da nuvem, esse modelo tem algumas vantagens e desvantagens a serem consideradas. A computação nativa da nuvem nem sempre é simples de implementar, já que, além de adotar novas ferramentas e tecnologias, ela também exige mudanças culturais para que o uso dela seja bem-sucedido.
Veja alguns desafios comuns nativos da nuvem:
No entanto, todas as opções acima podem ser gerenciadas com a experiência e a estratégia certas. Por exemplo, adotar uma abordagem de migração lift-and-shift é um bom ponto de partida, mas não oferece muitos dos benefícios nativos da nuvem listados acima. Muitas organizações acabam ficando estagnadas neste estágio porque não anteciparam a despesa e a complexidade da reestruturação para uma arquitetura nativa da nuvem.
Recomendamos não tratar nativo da nuvem como um projeto big-bang de vários anos. Em vez disso, ele deve ser considerado uma jornada contínua de iteração constante para aprender e melhorar à medida que você avança.
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.