Embora não haja mais um grande debate sobre se você deve ou não migrar para a nuvem, ainda não há um consenso sobre se você deve ou não adotar uma abordagem nativa ou agnóstica da nuvem ao criar seu aplicativo. 

Vamos analisar a diferença entre as duas abordagens para que você possa tomar uma decisão informada quando chegar a hora de escolher qual delas funciona melhor para a sua equipe de desenvolvimento e organização.

O que é nativo da nuvem?

Nativo da nuvem refere-se a uma maneira moderna de criar e executar aplicativos de software projetados para trabalhar especificamente com a tecnologia de computação em nuvem. Em outras palavras, em vez de criar aplicativos de software que funcionam em um servidor ou computador tradicional, os aplicativos nativos da nuvem são criados para serem executados na nuvem.

Aqui estão alguns exemplos do que torna um aplicativo nativo da nuvem:

    • Ele foi projetado para ser dividido em partes menores e independentes de código (chamadas microsserviços) que podem trabalhar juntos para fornecer a funcionalidade do aplicativo. Esse design facilita o desenvolvimento e a atualização do aplicativo.
    • Ele é implantado usando a tecnologia de conteinerização, como o Docker, que permite que o aplicativo seja empacotado com todas as suas dependências e executado de forma consistente em diferentes ambientes. Essa implementação facilita a transferência do aplicativo de uma plataforma de nuvem para outra.
    • Ele é gerenciado usando uma ferramenta de orquestração como Kubernetesque automatiza a implantação, o dimensionamento e o gerenciamento do aplicativo. O uso de uma ferramenta como o Kubernetes facilita o gerenciamento do aplicativo à medida que ele cresce e muda com o tempo.

As tecnologias nativas da nuvem são projetadas para dar suporte ao desenvolvimento e à implantação de aplicativos em ambientes de nuvem, permitindo que as empresas criem aplicativos altamente dimensionáveis, flexíveis e resilientes que podem ser atualizados rapidamente para atender às demandas dos clientes.

Aqui estão os pilares de um aplicativo nativo da nuvem com exemplos:

Pillars of cloud native architecture

Containerização: Os aplicativos são empacotados e implantados em contêineresque fornecem uma maneira leve e portátil de executar software em diferentes ambientes. Os exemplos incluem o Docker, o Kubernetes e o Red Hat OpenShift.

Microsserviços: Os aplicativos são projetados como coleções de serviços pequenos e independentes, cada um executado em seu próprio contêiner e se comunicando com outros serviços por meio de APIs. Exemplos incluem Netflix, Amazon e Uber.

DevOps: As equipes de desenvolvedores e operações trabalham juntas para automatizar e otimizar o processo de desenvolvimento e implantação de aplicativos. Os exemplos incluem GitLab, Jenkins e CircleCI.

Entrega contínua: As alterações de código são testadas e implantadas automaticamente, reduzindo o tempo e o esforço necessários para lançar novos recursos e atualizações. Os exemplos incluem o Travis CI, o AWS CodePipeline e o GitHub Actions.

Serviços de apoio: Os aplicativos dependem de serviços externos, como bancos de dados ou filas de mensagens, que são gerenciadas de forma independente e podem ser facilmente substituídas ou ampliadas ou reduzidas conforme necessário. Os exemplos incluem o Amazon RDS e o RabbitMQ.

Em projetos modernos nativos da nuvem, observabilidade é um dos pilares a serem considerados ao projetar aplicativos. Portanto, quando os aplicativos são projetados para fornecer métricas detalhadas, logs e informações de rastreamento, fica mais fácil monitorar e depurar problemas em diferentes ambientes. A observabilidade também ajuda a identificar padrões desconhecidos, para que você possa ser proativo e estar pronto com soluções antes que ocorra um problema. 

Para obter mais contexto sobre os pilares nativos da nuvem do Google e da Microsoft, você pode conferir os recursos abaixo:

O que é diagnóstico de nuvem?

Agnóstico em relação à nuvem refere-se a uma abordagem de desenvolvimento de software projetada para funcionar em qualquer plataforma de nuvem. Isso significa que o aplicativo de software pode ser implantado em diferentes provedores de nuvem sem nenhuma modificação no código.

Por exemplo, pense em um aplicativo que você usa no seu telefone. Você pode baixar o mesmo aplicativo da App Store, se tiver um iPhone, ou da Google Play Store, se tiver um telefone Android. O aplicativo foi projetado para funcionar em ambas as plataformas sem modificar o código. Este exemplo agnóstico de nuvem é semelhante ao funcionamento do aplicativo.

De acordo com StatistaDe acordo com a pesquisa de mercado, os provedores de nuvem mais populares são AWS, Azuree GCP. Outros provedores de nuvem incluem Alibaba, IBM e Oracle.

Os aplicativos agnósticos de nuvem são criados usando tecnologias padrão não específicas de nenhum provedor de nuvem. Por exemplo, um aplicativo pode ser criado usando linguagens de programação como Java ou Python ou tecnologias da Web como HTML e CSS. Essas tecnologias são amplamente utilizadas e podem ser executadas em qualquer plataforma de nuvem.

Exemplos de aplicativos agnósticos à nuvem:

    1. Kubernetes: Um sistema de orquestração de contêineres de código aberto que pode ser executado em qualquer plataforma de nuvem. Ele permite que os desenvolvedores implementem e gerenciem aplicativos em contêineres em várias nuvens.
    2. Docker: Uma plataforma de código aberto para criar, enviar e executar aplicativos em contêineres. Ela pode ser executada em qualquer plataforma de nuvem e oferece um ambiente consistente para a execução de aplicativos, independentemente da infraestrutura subjacente.
    3. NGINX: Um servidor da Web de código aberto que pode ser executado em várias plataformas de nuvem, incluindo AWS, GCP e Azure.
    4. Elasticsearch: Um mecanismo de pesquisa distribuído que pode ser executado como um serviço em várias plataformas de nuvem, incluindo AWS, GCP e Azure.

Essa abordagem de desenvolvimento de software é útil porque permite que as organizações escolham a melhor plataforma de nuvem para elas com base no custo, no desempenho e na confiabilidade. Ela também oferece flexibilidade para mudar de provedor de nuvem, se necessário, sem exigir nenhuma alteração no aplicativo.

Nativo da nuvem vs. diagnóstico da nuvem: Arquitetura, benefícios e desvantagens

Agora que revisamos os conceitos básicos de como as abordagens nativa e agnóstica da nuvem diferem, é importante analisar os benefícios e as desvantagens de cada abordagem para projetar e implementar aplicativos na nuvem. A escolha entre nativa e agnóstica em relação à nuvem terá implicações significativas para a arquitetura, o desempenho, a escalabilidade, a segurança e o custo do seu aplicativo.

Por exemplo, se um aplicativo exigir altos níveis de desempenho, escalabilidade e resiliência, uma abordagem nativa da nuvem pode ser mais adequada, pois aproveita os recursos e as capacidades específicas da plataforma de nuvem subjacente para atingir esses objetivos. No entanto, se um aplicativo precisar ser mais flexível e portátil em diferentes provedores ou infraestruturas de nuvem, uma abordagem agnóstica em relação à nuvem pode ser mais adequada, pois foi projetada para ser executada em qualquer plataforma de nuvem sem estar vinculada a um provedor específico.

Vamos analisar os benefícios e as desvantagens de cada abordagem:

Abordagem nativa da nuvem

Abordagem de diagnóstico de nuvem

Benefícios Escalabilidade: Pode ser dimensionado horizontalmente e lidar com o aumento do tráfego e da carga de trabalho sem interrupções.

Resiliência: Pode se recuperar rapidamente de falhas, garantindo alta disponibilidade e tempo de atividade.

Agilidade: Pode ser facilmente atualizado e implementado, permitindo que as organizações se adaptem rapidamente às necessidades comerciais em constante mudança.

Eficiência: Pode ser otimizado para ambientes de nuvem, resultando em custos de infraestrutura mais baixos e maior desempenho.

Flexibilidade: Pode ser executado em qualquer plataforma de nuvem, dando às organizações a liberdade de escolher o melhor provedor de nuvem com base em suas necessidades.

Redução da dependência de fornecedores: Os aplicativos agnósticos à nuvem não estão vinculados a uma plataforma de nuvem específica.

Custo: Os aplicativos agnósticos à nuvem podem ser mais econômicos do que os aplicativos nativos da nuvem, pois não dependem de tecnologias e serviços especializados de nuvem.

Desvantagens Complexidade: As arquiteturas nativas da nuvem podem ser complexas e exigir habilidades especializadas para gerenciar e manter.

Bloqueio do fornecedor: Pode depender de serviços e tecnologias de nuvem específicos, o que dificulta a mudança para um provedor de nuvem diferente.

Custo: O custo da criação de uma arquitetura nativa da nuvem pode ser maior do que o de uma arquitetura de aplicativo tradicional.

Limitações: Os aplicativos agnósticos à nuvem podem não ser capazes de aproveitar as vantagens de tecnologias e serviços específicos da nuvem.

Complexidade: Pode ser complexo e exigir habilidades especializadas para gerenciar e manter.

Compatibilidade: Pode exigir trabalho adicional para garantir a compatibilidade com diferentes plataformas de nuvem.

De modo geral, a nuvem nativa oferece alto desempenho e escalabilidade, mas pode ser mais cara e exigir habilidades especializadas para ser gerenciada. A nuvem agnóstica oferece melhor flexibilidade e custos mais baixos, mas pode ser limitada em termos de funcionalidade e desempenho.

Quais empresas usam uma estratégia nativa da nuvem?

Muitas empresas usam estratégias nativas da nuvem para criar, implementar e gerenciar seus aplicativos na nuvem. Veja a seguir alguns exemplos de empresas que adotaram abordagens nativas da nuvem:

    1. Netflix: A Netflix foi uma das primeiras a adotar o sistema de estratégias nativas da nuvem, usando ferramentas de código aberto como Apache Cassandra, Apache Kafka e Netflix OSS para criar e gerenciar seus aplicativos na nuvem.
    2. Spotify: O Spotify usa uma abordagem nativa da nuvem para gerenciar sua enorme plataforma de streaming. Eles usam o Kubernetes e outras tecnologias nativas da nuvem para dimensionar seus aplicativos e lidar com picos de tráfego.
    3. Airbnb: O Airbnb adotou uma abordagem nativa da nuvem para criar e gerenciar seus aplicativos na nuvem. Eles usam tecnologias como AWS, Docker e Kubernetes para melhorar a escalabilidade, a confiabilidade e o desempenho.
    4. Capital One: A Capital One adotou uma abordagem nativa da nuvem para melhorar a agilidade e reduzir o tempo de lançamento de seus aplicativos no mercado. Eles usam ferramentas nativas da nuvem, como o AWS Lambda e o Kubernetes, para gerenciar seus aplicativos na nuvem.

Esses são apenas alguns exemplos de empresas que adotaram estratégias nativas da nuvem. Muitas outras empresas, de startups a grandes empresas, também usam abordagens nativas da nuvem para criar e gerenciar seus aplicativos na nuvem.

Quais empresas usam uma estratégia de diagnóstico de nuvem?

Muitas empresas, especialmente aquelas com infraestrutura complexa e aplicativos de missão crítica, adotaram uma estratégia agnóstica de nuvem para evitar a dependência de fornecedores e maximizar a flexibilidade. Aqui estão alguns exemplos de empresas que usaram uma estratégia agnóstica de nuvem:

Aqui estão algumas empresas que adotaram uma estratégia agnóstica de nuvem:

    1. Floco de neve: Uma solução gerenciada de data warehouse disponível em todos os três provedores de nuvem: AWS, Azure e GCP, mantendo a mesma experiência do usuário final.
    2. HashiCorp: Uma empresa de automação de infraestrutura de nuvem que usa um estratégia agnóstica de nuvem para oferecer suporte a várias plataformas de nuvem, incluindo AWS, GCP e Azure.
    3. PagerDuty: A Plataforma SaaS de resposta a incidentes para os departamentos de TI. Sua plataforma integra dados de suas ferramentas para fornecer uma visão holística de sua infraestrutura de TI em serviços e ambientes híbridos.

Conclusão

Como cada empresa tem requisitos exclusivos, é fundamental avaliar as vantagens e desvantagens de empregar uma abordagem nativa ou agnóstica da nuvem. Explorando as principais características de cada uma, tendo em mente as implicações que as abordagens terão para a arquitetura, o desempenho, a escalabilidade, a segurança e o custo do seu aplicativo, e analisando algumas das empresas que usaram cada abordagem, você estará em uma posição melhor para tomar uma decisão informada sobre qual estratégia será mais adequada à sua organização.

Autor

Postado por Jeff Morris, vice-presidente de marketing de produtos

Jeff Morris é vice-presidente de marketing de produtos e soluções da Couchbase. Ele passou mais de três décadas comercializando ferramentas de desenvolvimento de software, bancos de dados, ferramentas analíticas, serviços em nuvem e outros produtos de código aberto. Ele seria o primeiro a dizer que qualquer pessoa que esteja procurando um banco de dados como serviço rápido, flexível, familiar e acessível da nuvem para a borda pode parar de procurar depois de conhecer o Couchbase.

Deixar uma resposta