A arquitetura nativa da nuvem é a metodologia de projeto que permite o desenvolvimento dinâmico e ágil de aplicações nativas da nuvem. Esse modelo de arquitetura de nuvem fornece uma infraestrutura modular personalizável com maior escalabilidade que pode aumentar a eficiência e a produtividade e facilitar a transferência de cargas de trabalho entre provedores de nuvem ou a implantação de serviços de forma independente.
Uma visão geral das aplicações nativas da nuvem
Uma aplicação nativa da nuvem é um programa de software criado para ser executado dentro de um ambiente de computação em nuvem. As aplicações nativas da nuvem aproveitam a natureza do modelo de entrega na nuvem, utilizando a elasticidade, a escala, a resiliência e a flexibilidade que a nuvem oferece para permitir que as organizações se movam com maior velocidade e agilidade. Desenvolvidas com uma arquitetura de microsserviços, as aplicações nativas da nuvem permitem atualizações rápidas e frequentes de aplicações sem afetar a prestação de serviços, proporcionando às organizações uma vantagem competitiva.
Quais são os componentes das aplicações nativas da nuvem?
As aplicações nativas da nuvem são criadas com várias tecnologias importantes.
- Os microsserviços são os componentes básicos das aplicações nativas da nuvem. Esses programas reutilizáveis e livremente associados são projetados para se integrar a qualquer ambiente de nuvem. Os microsserviços trabalham em conjunto para executar a aplicação, mas cada um pode ser dimensionado de forma independente e melhorado continuamente por meio de iterações, tornando o desenvolvimento de aplicações nativas da nuvem mais rápido e flexível. Os microsserviços geralmente são implantados dentro de contêineres.
- Os contêineres combinam todas as dependências de uma aplicação, incluindo código-fonte, sistema operacional e bibliotecas, permitindo que o código da aplicação seja executado em qualquer ambiente. Os contêineres permitem que uma variedade de aplicações nativas da nuvem sejam executadas simultaneamente no mesmo servidor, mesmo quando dependem de diferentes sistemas operacionais.
- APIs (interfaces de programação de aplicações) são coleções de recursos, mais notavelmente pontos de extremidade de URL, que facilitam a comunicação e a integração de uma aplicação com outra.
- A infraestrutura definida por software substitui hardware como switches por funcionalidade de hardware virtualizada que pode ser dimensionada facilmente.
- A orquestração dinâmica minimiza a complexidade do gerenciamento de ciclos de vida de contêineres, gerenciamento de recursos, balanceamento de carga, agendamento de reinicializações após uma falha interna e nós de provisionamento de clusters de servidores.
- A malha de serviço é uma camada de software usada para gerenciar a comunicação entre vários microsserviços. A malha de serviço roteia o tráfego entre todas as partes de uma aplicação que precisam se comunicar entre si.
- Os serviços de apoio incluem recursos como intermediários de mensagens, armazenamentos de dados, serviços de segurança e recursos de monitoramento.
- A automação permite que os ambientes de nuvem sejam rapidamente provisionados com recursos e atualizações, acelerando lançamentos e melhorias sem causar interrupção na experiência do usuário.
Como as aplicações nativas da nuvem são desenvolvidas?
Os desenvolvedores usam várias ferramentas para gerenciar o processo de desenvolvimento de aplicações nativas da nuvem. O Kubernetes é uma plataforma projetada para gerenciamento e orquestração de contêineres Linux. O Docker é uma plataforma de código aberto para criar, implantar e gerenciar contêineres de aplicações virtualizados que usam um sistema operacional comum. O GitLab é um sistema de controle de versão de código que apresenta software de integração contínua/desenvolvimento contínuo (CI/CD) que automatiza o teste e a implantação. Várias linguagens de programação podem ser usadas para criar microsserviços em tempo real, como feeds de notícias e chat. A infraestrutura, que inclui ferramentas de código como a Terraform, gerencia versões de implantações para que os desenvolvedores possam ver quando e onde os recursos foram alterados.
Qual a diferença entre aplicações nativas da nuvem e aplicações baseadas na nuvem?
As aplicações nativas da nuvem são projetadas especificamente para a nuvem. As aplicações baseadas na nuvem são hospedadas na nuvem e podem aproveitar a elasticidade e a escalabilidade da infraestrutura de nuvem, mas não aproveitam ao máximo o design inerente da arquitetura em nuvem.
Quais são as vantagens das aplicações nativas da nuvem?
- Custos mínimos. As aplicações nativas da nuvem permitem que as organizações aproveitem a escalabilidade dos serviços em nuvem, eliminando o custo do excesso de provisionamento. Elas também permitem que as organizações evitem o custo de compra e manutenção de hardware e software no local.
- Mais agilidade. Os microsserviços em aplicações nativas da nuvem podem ser dimensionados de forma independente, permitindo que alguns componentes de um programa de software sejam atualizados rapidamente sem a necessidade de atualizar toda a aplicação. As aplicações nativas da nuvem oferecem implantação flexível em toda a rede e são mais fáceis de desenvolver e iterar.
- Portabilidade. Como as aplicações nativas da nuvem podem ser facilmente portadas entre diferentes infraestruturas, as organizações podem evitar ficar vinculadas aos serviços de um único fornecedor.
- Maior confiabilidade. O uso de contêineres e aplicações nativas da nuvem significa que, quando um microsserviço falha, uma aplicação nativa da nuvem pode continuar a operar com o mínimo de tempo de inatividade.
- Gerenciamento automatizado. As aplicações nativas da nuvem dependem da automação para implantar recursos e atualizações, simplificando tarefas para as equipes de TI.
- Visibilidade clara. O isolamento inerente a uma arquitetura de microsserviços facilita para as equipes de TI entender como as aplicações funcionam juntas.
- Imensa escalabilidade. As aplicações nativas da nuvem usam a infraestrutura definida por software para minimizar a dependência de hardware, adicionando servidores de commodity adicionais que permitem escalabilidade horizontal.
- Sem tempo de inatividade. As soluções de orquestração, como o Kubernetes, permitem que as aplicações nativas da nuvem sejam atualizadas praticamente sem tempo de inatividade.
Quais são os desafios das aplicações nativas da nuvem?
- A implementação da arquitetura nativa da nuvem requer práticas de DevOps estabelecidas que podem lidar com o fluxo de trabalho distribuído e com as responsabilidades necessárias para desenvolver microsserviços.
- Gerenciar as muitas iterações de aplicações nativas da nuvem é uma tarefa altamente complicada que pode ser desgastante para as equipes de desenvolvimento e de TI.
- O rápido dimensionamento dos contêineres necessários para aplicações nativas da nuvem pode trazer riscos à segurança da nuvem corporativa que, quando não monitorados e corrigidos corretamente, podem levar a violações.
- A migração de aplicações herdadas para aplicações criadas em microsserviços e contêineres pode levar a problemas complexos com interdependências ou funcionalidade de aplicações.
- Os regulamentos e os requisitos relativos à localização de dados, demandas de retenção e privacidade de dados exigem que os desenvolvedores encontrem novas soluções para armazenamento em nuvem e bancos de dados em nuvem que possam corresponder à flexibilidade da arquitetura nativa da nuvem.
Como funciona o desenvolvimento de aplicações nativas da nuvem?
A criação de aplicações nativas da nuvem depende de práticas de integração contínua (CI) e entrega contínua (CD). A CI consiste em fazer pequenas alterações frequentes no código, facilitando a identificação e a correção de problemas mais rapidamente. A CD garante que os microsserviços estejam sempre prontos para serem implantados na nuvem, contando com ferramentas de automação de software para reduzir o risco ao fazer alterações.
Qual a diferença entre aplicações nativas da nuvem e aplicações tradicionais?
Os programas de software monolíticos tradicionais demoram mais para serem criados e são lançados com muito menos frequência do que as aplicações nativas da nuvem.
Quando aplicações nativas da nuvem podem ser executadas em sistemas operacionais que foram abstraídos, as aplicações tradicionais exigem dependências estreitas entre SO, hardware e armazenamento subjacentes, dificultando a migração e o dimensionamento de aplicações em uma nova infraestrutura.
As aplicações nativas da nuvem permitem o provisionamento do tamanho certo, em que as equipes de TI podem alocar recursos conforme necessário, em vez de provisionar uma infraestrutura dimensionada e construída em excesso, projetada para atender às necessidades de potenciais picos de demanda.
Perguntas frequentes (FAQ)
Uma aplicação nativa da nuvem é um programa de software criado para ser executado dentro de um ambiente de computação em nuvem. As aplicações nativas da nuvem aproveitam a natureza do modelo de entrega na nuvem, utilizando a elasticidade, a escala, a resiliência e a flexibilidade que a nuvem oferece para permitir que as organizações se movam com maior velocidade e agilidade.
O Kubernetes é uma plataforma de código aberto para gerenciamento de clusters de aplicações e serviços dentro de contêineres. Com o Kubernetes gerenciado, as equipes de desenvolvimento de software podem ficar livres das tarefas de configuração e manutenção de uma implantação do Kubernetes.
Cloud Native Computing Foundation, ou CNCF, é uma base de software de código aberto que funciona para garantir que a tecnologia nativa da nuvem seja acessível e facilmente adotada.
Uma rede de entrega de conteúdo, ou CDN, é uma rede geograficamente distribuída de servidores que permite aos usuários acessar conteúdo mais rapidamente e desfrutar de melhores experiências online. As CDNs armazenam ou colocam em cache conteúdo em servidores proxy em uma variedade de locais ao redor do mundo, servindo conteúdo dos servidores mais próximos de cada usuário para reduzir a latência. Uma CDN em nuvem depende de recursos de computação em nuvem para gerenciar e operar uma CDN, em vez de depender de serviços de telecomunicações.
Por que os clientes escolhem a Akamai
A Akamai é uma empresa de cibersegurança e cloud que potencializa e protege negócios online. Nossas soluções de segurança líderes de mercado, inteligência avançada contra ameaças e equipe de operações globais oferecem defesa em profundidade para garantir a segurança de dados e aplicativos empresariais em todos os lugares. As abrangentes soluções de computação em nuvem da Akamai oferecem desempenho e acessibilidade na plataforma mais distribuída do mundo. Empresas globais confiam na Akamai para obter a confiabilidade, escala e experiência líderes do setor de que precisam para expandir seus negócios com confiança.