Empresas estão adotando a arquitetura nativa da nuvem para desenvolver e implantar aplicativos e assim obter maior eficiência, disponibilidade, segurança, escalabilidade e produtividade. Apesar dos desafios, a cloud native se mostra mais vantajosa que as arquiteturas monolíticas, mais limitantes à medida que os sistemas e serviços se tornam maiores e mais complexos.
Equipes de alto desempenho de organizações orientadas à nuvem já apresentam melhores resultados que aquelas baseadas na arquitetura monolítica. Seus desenvolvedores não só aumentam a produtividade, como também fazem implantações várias vezes por dia, sobem as alterações em produção em menos de um dia, restauram os serviços em até 60 minutos e atingem uma taxa de falha de alteração de 0 a 15%.
Mas mesmo com tantos benefícios, muitas empresas que iniciam a migração para a nuvem não obtêm o sucesso esperado ou não sabem como aproveitar todos os recursos dessa arquitetura.
Neste long post, vamos apresentar as diretrizes para adoção da cloud native, uma inovação que pode começar hoje mesmo na sua empresa.
Boa leitura!
O termo arquitetura nativa da nuvem, ou cloud native, se refere a uma abordagem para design, implementação e desenvolvimento de aplicativos que aproveita ao máximo os serviços e modelos de entrega baseados na computação em nuvem. Devido aos recursos escaláveis e elásticos oferecidos pela cloud computing, diversas organizações já estão adotando esse tipo de arquitetura para obter maior disponibilidade, escalabilidade e segurança, assim como redução de custos.
Apesar da facilidade de projeção e implantação de softwares e aplicativos monolíticos, essa abordagem pode se tornar um problema para a sua equipe de TI. À medida que se tornam mais complexos, os sistemas monolíticos demandam mais colaboradores, limitando a produtividade e a velocidade da implantação. Os testes ficam mais trabalhosos, assim como a inclusão de novos recursos, a manutenção e a disponibilidade dos softwares, afinal, estes são criados como uma única unidade.
Para lidar com o crescimento dos sistemas monolíticos, muitas empresas optam por dividir suas equipes de TI por função e então reatribuem tarefas a cada uma. Essa é uma estratégia válida, porém resulta no aumento do tempo de entrega e dos lotes, além de uma alta quantidade de retrabalho.
Segundo pesquisa da equipe DORA do Google, equipes de alto desempenho têm duas vezes mais chances de desenvolver e entregar softwares com uma única equipe multifuncional.
A arquitetura nativa da nuvem não se restringe a um tipo específico de arquitetura de aplicativo, design ou processo de entrega, mas sim a diferentes formas de criar um software na nuvem.
Alguns recursos, no entanto, são comuns a todos os sistemas cloud native:
Entrega rápida, versões confiáveis, conformidade mais simples e barata, custos menores e mais segurança. Conheça os principais benefícios arquitetura nativa da nuvem:
Os aplicativos da nuvem são implantados em ambientes distribuídos, o que é vantajoso em caso de falhas e interrupções. Uma falha de um único servidor, ou mesmo de vários servidores, não irá causar falha no aplicativo, já que os serviços podem ser reimplantados em outros ambientes.
A computação em nuvem facilita a escalabilidade, pois permite que os aplicativos sejam divididos em partes menores. Assim, cada porção pode ser dimensionada — e redimensionada — individualmente, o que proporciona mais eficiência e agilidade nesse processo. Você pode, portanto, ampliar apenas um serviço do software, mantendo a capacidade normal do restante do aplicativo.
Os sistemas nativos da nuvem se destacam pelo custo e desempenho, pois é possível consumir do seu provedor apenas os recursos necessários. Serviços compartilhados e padronizados são fornecidos pelo serviços de nuvem e os aplicativos são executados em uma infraestrutura compartilhada.
Uma equipe multifuncional responsável por um aplicativo consegue atuar de forma mais autônoma, já que os serviços são divididos em partes menores e acoplados com flexibilidade. Dessa forma, os desenvolvedores podem aumentar a produtividade, acelerar o desenvolvimento e entregar mais rapidamente os serviços.
A cloud native divide os aplicativos em diversos componentes para que possam ser desenvolvidos individualmente com as bases de código disponíveis na plataforma. Inovações e novos recursos também são mais facilmente elaborados, pois metodologias para incentivar o desenvolvimento contínuo e interativo são aplicadas, como a CI/DI — continuous integration/continuous delivery ou integração contínua/entrega contínua, em português.
Os servidores de plataformas na nuvem mantém os serviços compartilhados atualizados, com patches aplicados e em conformidade. Como o gerenciamento e a implantação dos provedores também são padronizados, atualizar e corrigir os serviços se torna uma tarefa mais fácil.
A arquitetura nativa da nuvem facilita o uso de ferramentas de automação na implantação e no gerenciamento de aplicativos. Ao implantar um sistema usando contêineres, por exemplo, você pode orquestrá-lo utilizando ferramentas como o Kubernetes, que lida automaticamente com tarefas como balanceamento de carga e posicionamento do workload.
Os benefícios da computação em nuvem são claros, mas muitas empresas ainda adotam uma abordagem de migração “lift-and-shift” para migrar serviços para a nuvem, pois esse processo exige poucas alterações.
Nesses casos, no entanto, a nuvem é tratada como um datacenter tradicional, aproveitada apenas para armazenar softwares e cargas de trabalho. Dessa forma não é possível, portanto, desfrutar dos benefícios da arquitetura nativa da nuvem.
Muitas organizações não vão além devido aos custos e à complexidade da operação, uma vez que é preciso repensar todo o ciclo de vida de entrega de software. E não são poucas as empresas de grande porte que realmente perderam dinheiro ao optarem por uma migração “tudo ou nada”.
Por isso, a melhor estratégia é adotar uma abordagem evolutiva, incremental e iterativa para que, pouco a pouco, suas equipes aprendam a trabalhar na nuvem enquanto oferecem novas funcionalidades já nativas.
Ao invés de escrever sistemas completamente do zero, os desenvolvedores podem escrever novos recursos baseados no nativo da nuvem, garantindo a interação com o aplicativo monolítico original para ter a funcionalidade atual. À medida que se aprimoram na nova arquitetura, a equipe pode mudar a funcionalidade atual para ter a integridade conceitual dos serviços novos.
Veja três etapas fundamentais para ter sucesso na recriação de aplicativos no nativo da nuvem:
Num primeiro momento, não dedique tempo e esforço à reprodução da funcionalidade atual. É mais importante começar a entregar novas funcionalidades usando novos serviços para logo aprender e comunicar as práticas recomendadas adquiridas durante o trabalho no nativo da nuvem.
Utilize os serviços nativos da plataforma de nuvem para CDN, DBMS, rede, mensagens, armazenamento de blob e assim por diante, e, quando possível, aproveite os stacks de aplicativos padronizados do provedor. Armazene os serviços em contêineres e automatize os processos de compilação, teste e implantação.
Isso é fundamental para que cada equipe possa testar e implantar seus próprios serviços, garantindo uma alta produtividade e rápida entrega. Se uma equipe conseguir responder “sim” para as perguntas abaixo, os resultados serão melhores:
Você não precisa levar tudo para a nuvem. Lembre-se de que é importante adotar a abordagem “migrar e aprimorar”. Só assim sua organização pode se beneficiar da arquitetura nativa da nuvem.
Busque uma equipe com capacidade e experiência para desenvolver uma prova de conceito — ou que já tenha feito isso.
Divulgue na sua organização todas as lições aprendidas no desenvolvimento da prova de conceito.
Suas equipes devem mover os serviços de maneira incremental e iterativa para a nuvem, conforme fornecem funcionalidades novas. Isso é o que chamamos de padrão strangler fig.
Para obter sucesso na migração, suas equipes multifuncionais precisam ter não só capacidade técnica, mas recursos e autonomia. Metas claras devem ser definidas — considerando as seis perguntas mencionadas —, mas seus desenvolvedores devem ter liberdade para decidir atingi-las.
A cloud computing é uma inovação cada vez mais fundamental nos negócios de todos os setores. Por isso, o mais importante é não esperar para começar a sua migração para a arquitetura nativa da nuvem. Só esteja certo de investir na plataforma mais completa.
O Google conta com uma solução com foco em aplicativos conteinerizados, o Google Cloud Platform. Além de uma infraestrutura completa, a multinacional conta com profissionais com profunda experiência em tecnologia nativa da nuvem e empresas parceiras para orientar organizações inovadoras em projetos de inovação na nuvem.
A Qi Network é Google Cloud Partner e pode ajudar sua empresa na migração para a nuvem do Google. Nossos especialistas vão ajudá-lo a entender seus principais desafios e planejar todas as etapas até suas cargas de trabalho migrarem.
Em nossa Jornada de Modernização de Infra, orientamos a migração, modernização e sustentação da infraestrutura no Google Cloud.
Fale com um de nossos especialistas e veja como a Qi Network pode se tornar sua parceira na inovação em nuvem.