14 benefícios de uma arquitetura cloud native

CLOUD NATIVE 20 de Jul de 2022

Para o arquiteto de sistemas Tom Grey, especialista Google Cloud, “um sistema cloud native bem arquitetado deve ser amplamente auto recuperável, econômico e facilmente atualizado e mantido via processos automatizados de Continuous Integration/Continuous Delivery (CI/CD)”. Se esse paradigma parece complexo a organizações ainda não familiarizadas com a ideia, a boa notícia é que todas as melhores práticas aplicadas à infraestrutura tradicional de sistemas “pré-cloud” valem também para aplicações cloud native. E com inúmeros benefícios inerentes à nuvem: computação distribuída, elasticidade, escalabilidade, flexibilidade e resiliência, entre várias outras vantagens que iremos abordar neste post.


Antes, uma breve introdução


É importante ressaltar que o termo “cloud native” faz referência a um paradigma de design difundido pela Cloud Native Computing Foundation (CNCF). A CNCF é uma entidade internacional criada para fomentar a comunidade em torno de projetos e ecossistemas sustentáveis de alta complexidade que orquestram containers como parte de uma arquitetura de microsserviços.

Assim, a partir da definição da CNCF, as aplicações cloud native podem ser tecnicamente definidas como sendo aplicações executadas em um ambiente conteinerizado e dimensionado horizontalmente com base em diferentes tipos de workloads. Abstraída a infraestrutura subjacente - o que não ocorre na infraestrutura tradicional de sistemas - a implementação de microsserviços segue um pipeline DevOps (e muitas vezes usando Kubernetes para operação de containers, como é o que fazemos aqui na O2B para nossos clientes).

Por fim, é importante notar ainda que aplicações executadas na nuvem não são necessariamente cloud native. Um simples “lift and shift” de uma arquitetura on-premises para a nuvem por si só não irá garantir o máximo proveito dos benefícios que a nuvem oferece. Isto posto, vamos aos 14 benefícios proporcionados por uma arquitetura cloud native, ou seja, aquela que é construída diretamente na nuvem para entregar as vantagens que só a computação distribuída oferecida pelo modelo cloud é capaz de proporcionar para o seu negócio.

#1. Lançamentos mais ágeis

O “time to market” é o diferencial chave entre as empresas mais inovadoras no mercado. Assim, quanto mais rapidamente uma organização puder prototipar, construir e entregar valor para seus clientes, maior o sucesso em seu segmento de atuação.

A abordagem DevOps pressupõe automação em todo o processo de entrega de software, desde a construção, à fase de testes, implementação e manutenção. Uma aplicação cloud native suporta todos os processos envolvidos nessa abordagem, que por definição é mais ágil e colaborativa do que a “antiga” de desenvolvimento local com servidor limitado.

#2. Customer experience aprimorada

Construir uma ótima experiência do cliente requer não apenas a entrega rápida de novas features do produto de software como também iterações contínuas para que ele se mantenha sempre bem atualizado. Também significa adotar uma abordagem mobile-first para o desenvolvimento de aplicativos e boas práticas de UX, incluindo Design Thinking.

A integração baseada em API é a forma moderna de conectar o armazenamento de um volume gigantesco de dados corporativos a aplicativos frontend mais ágeis - e melhor conectados à experiência do usuário. Uma integração que é bastante facilitada quando os apps são nativos na nuvem, dando nova vida a esses sistemas.

#3. Facilidade de gerenciamento

O modelo cloud native também oferece opções serverless para simplificar o gerenciamento de infraestrutura, como é o caso da AWS Lambda e Azure Functions, usadas pelos times de desenvolvimento da O2B. As plataformas de computação serverless permitem carregar código em forma de funções, que são executadas de forma que os times não precisem se preocupar em provisionar instâncias na nuvem, configurar redes ou alocar armazenamento suficiente.

#4. Custo reduzido por conteinerização e padrões de nuvem

Os containers facilitam o gerenciamento e a segurança das aplicações independentemente da infraestrutura que os suporta. O Kubernetes também tem se consolidado como a plataforma de escolha para o gerenciamento desses containers em grande escala. Além do Kubernetes, que é open source, há uma série de ferramentas cloud native padronizadas e poderosas disponíveis no mercado atualmente. E padronização de infraestrutura com ferramentas open source significa redução de custos. Combinadas com recursos serverless, workloads dinâmicos podem ser executados em milissegundos em um modelo pay-per-use.


#5. Sistemas mais confiáveis

O tempo de inatividade era algo normal muitos anos atrás, e atingir a tolerância a falhas era algo muito difícil e caro. Mas com uma arquitetura baseada em Kubernetes e microsserviços, é possível criar aplicações tolerantes a falhas com resiliência e auto recuperação integrada. Dessa forma, quando ocorrem falhas, é fácil isolar o incidente para que ele não afete toda a aplicação. Em vez de servidores e aplicações monolíticas, os microsserviços cloud native ajudam a obter sistemas mais confiáveis e com maior tempo de atividade para seus usuários.

#6. Evita o chamado “vendor lock-in”


Até pouco tempo atrás, os fornecedores de sistemas legados emitiam licenças de 3 anos para hardware proprietário. Mas isso já é coisa do passado: com o aumento da oferta de tecnologias de cloud open source, a nuvem híbrida e a multi-cloud têm se tornado norma no mercado.

As empresas normalmente usam uma combinação de datacenter on-premises (local) com uma plataforma de nuvem pública. E mesmo entre diferentes plataformas de nuvem já existe a possibilidade de fazer a portabilidade entre nuvens, para que o cliente não tenha que se manter preso a um único fornecedor, o chamado “vendor lock-in”.

#7. Melhor custo-benefício

Com aplicações cloud native, todas as soluções são projetadas para funcionar diretamente na nuvem. Essa compatibilidade com a infraestrutura nativa da nuvem tem a vantagem de reduzir custos com backup, manutenção, desenvolvimento e uso de recursos. Com um sistema open source e recursos serverless - que adotam um modelo de pagamento por uso - os custos para as empresas são reduzidos consideravelmente.


#8. Facilita uma abordagem mobile-first

A migração de apps para a nuvem é uma maneira eficiente de não ter que abandonar décadas de trabalho e investimento em desenvolvimento de software. De quebra, ainda aloca recursos em plataformas mais modernas, escaláveis e flexíveis. Mas não é só isso: a migração para aplicações cloud native ajuda a adotar uma abordagem mobile-first no design de aplicativos, onde se encontra a maior fatia do público atualmente. Com ferramentas que focam em um ciclo de feedback x deploy, as soluções nativas da nuvem alteram (para melhor!) todo o ciclo de desenvolvimento e enfatizam a experiência do usuário (UX) muito mais que os aplicativos tradicionais do passado.

#9. Adaptabilidade e escalabilidade

Aplicações cloud native se adaptam conforme os requisitos de cada negócio e permitem atualizações e modificações frequentes de software com base no feedback dos usuários. Da mesma forma, essas aplicações também possibilitam a escalabilidade horizontal na medida em que a organização expande seus negócios, eliminando a necessidade de soluções de hardware específicas ou infraestrutura dependente de software.


#10. Automação e flexibilidade

Adotar práticas Agile e DevOps leva à automação em todo o ciclo de desenvolvimento de software. Com colaboração e processos CI/CD, o deploy, teste e coleta de feedback se firma como um ciclo contínuo de aumento da produtividade e satisfação do cliente. Com a flexibilidade, aplicações cloud native eliminam as restrições que a arquitetura tradicional introduziu, permitindo que as organizações trabalhem em várias plataformas de nuvem simultaneamente, sejam elas públicas, privadas ou híbridas.


#11. Resolução de problemas facilitada

Aplicações cloud native apresentam um mecanismo inerente de tolerância a falhas devido ao uso de microsserviços. No caso de qualquer resolução de problemas (troubleshooting) no pós deploy, rastrear a origem do problema será muito mais fácil na infraestrutura nativa da nuvem, já que toda a aplicação é dividida em microsserviços, onde cada um atua como uma função de serviço. Feito o rastreamento, o serviço pode ser isolado e o problema corrigido em sua origem, sem tempo de inatividade no servidor.



#12. Projetado para a “era 5G”

Com a implementação do 5G em todo o mundo, a procura por tecnologias mais rápidas começará a crescer substancialmente. Aplicações cloud native contam com uma Internet ultra rápida para respostas mais ágeis. Usando aplicativos nativos da nuvem, as organizações podem embarcar décadas de desenvolvimento que as melhores tecnologias devem trazer a partir do advento do 5G.


#13. Analytics em tempo real e compliance

Aplicações nativas na nuvem são projetadas para lidar com a enxurrada de dados disponíveis, algo que é mais temporário do que permanente no mundo atual. Na infraestrutura tradicional, as organizações tinham a opção de armazenar os dados, mas sem o acesso imediato a eles. Algo que não ocorre nas aplicações cloud native, que permitem analisar e utilizar dados em tempo real para detectar problemas de desempenho, resolução de problemas, comportamento do cliente e assim por diante. Os dados podem ser atribuídos a uma vida útil específica e podem ser descartados ou redirecionados para um meio de armazenamento. Outra vantagem dos fornecedores de infraestrutura nativa da nuvem é que a maioria garante a conformidade com a LGPD e outras regulamentações relacionadas a cada país de origem.



#14. Segurança aprimorada

Dada a robusta infraestrutura proporcionada pela nuvem, bem como as comunicações dentro de uma estrutura descentralizada, a segurança é sem dúvida uma questão crucial. Os provedores de nuvem são responsáveis pela segurança da infraestrutura e o armazenamento de dados de responsabilidade do cliente, pois são constantemente compartilhados entre diferentes serviços e entre a organização e o usuário. Isso leva a vários gateways que podem funcionar como possíveis pontos de violação de segurança em uma infraestrutura nativa da nuvem.

É necessário garantir que cada unidade seja exposta apenas a dados e campos relevantes e auditar o acesso aos dados. Garantir várias camadas de segurança, como autenticação multifator, acesso restrito e compartilhamento, são medidas que as empresas podem tomar, além das medidas de segurança fornecidas pelo provedor de infraestrutura cloud native.


Para saber mais


Quer entender mais a fundo como funcionam as aplicações cloud native, seus principais padrões de comunicação e conectividade, sua arquitetura de gerenciamento descentralizado de dados, ferramentas e padrões mais usados para consumo de API? Deixo aqui uma dica de livro: “Design Patterns for Cloud Native Applications: Patterns in Practice Using APIs, Data, Events, and Streams”, disponível na Amazon.com.