O que é suporte nativo de nuvem?
Nativo de nuvem é o método de software de criação, implantação e gerenciamento de aplicações modernas em ambientes de computação em nuvem. As empresas modernas desejam criar aplicações altamente escaláveis, flexíveis e resilientes que possam ser atualizadas rapidamente para atender às demandas dos clientes. Para isso, elas usam ferramentas e técnicas modernas que dão suporte, de forma inerente, ao desenvolvimento de aplicações na infraestrutura de nuvem. Essas tecnologias nativas de nuvem são compatíveis com mudanças rápidas e frequentes nas aplicações sem afetar a entrega de serviços, proporcionando uma vantagem competitiva e inovadora a quem adotá-las.
Como uma abordagem nativa de nuvem beneficia as empresas?
As organizações obtêm vantagens competitivas de várias maneiras ao criar aplicações de software nativas de nuvem.
Aumentar a eficiência
O desenvolvimento nativo de nuvem proporciona práticas ágeis, como DevOps e entrega contínua (CD). Os desenvolvedores usam ferramentas automatizadas, serviços em nuvem e cultura de design moderno para criar aplicações escaláveis rapidamente.
Reduza custos
Ao adotar a abordagem nativa de nuvem, as empresas não precisam investir na aquisição e manutenção de infraestrutura física cara. Isso resulta em economias de longo prazo nas despesas operacionais. A economia resultante do desenvolvimento de soluções nativas de nuvem também pode beneficiar seus clientes.
Garantir a disponibilidade
A tecnologia nativa de nuvem permite que empresas criem aplicações resilientes e altamente disponíveis. As atualizações de recursos não causam tempo de inatividade, e as empresas podem aumentar a escala verticalmente dos recursos da aplicação durante as épocas de pico para proporcionar uma experiência positiva ao cliente.
O que são aplicações nativas de nuvem?
As aplicações nativas de nuvem são programas de software que consistem em vários serviços pequenos e interdependentes chamados microsserviços. Tradicionalmente, os desenvolvedores criavam aplicações monolíticas com uma única estrutura de bloco contendo todas as funcionalidades necessárias. Ao usar a abordagem nativa de nuvem, os desenvolvedores de software dividem as funcionalidades em microsserviços menores. Com isso, as aplicações nativas de nuvem tornam-se mais ágeis, pois esses microsserviços funcionam de modo independente e necessitam de recursos de computação mínimos para serem executadas.
Aplicações nativas de nuvem comparadas às aplicações empresariais tradicionais
As aplicações empresariais tradicionais foram criadas usando métodos de desenvolvimento de software menos flexíveis. Os desenvolvedores costumavam trabalhar em um grande lote de funcionalidades de software antes de liberá-las para teste. Dessa forma, as aplicações empresariais tradicionais levavam mais tempo para serem implantadas e não eram escaláveis.
Por outro lado, as aplicações nativas de nuvem usam uma abordagem colaborativa e são altamente escaláveis em diferentes plataformas. Os desenvolvedores usam ferramentas de software para automatizar intensamente os procedimentos de criação, teste e implantação em aplicações nativas de nuvem. É possível configurar, implantar ou duplicar microsserviços em um instante, uma ação que não é possível com aplicações tradicionais.
O que é o CNCF?
O Cloud Native Computing Foundation (CNCF) é uma base de código aberto que ajuda as organizações a dar o pontapé inicial na jornada para se tornarem nativas de nuvem. Fundado em 2015, o CNCF auxilia a comunidade de código aberto no desenvolvimento de componentes essenciais nativos de nuvem, incluindo o Kubernetes. A Amazon é membro do CNCF.
O que é arquitetura de aplicações nativas de nuvem?
A arquitetura nativa de nuvem combina componentes de software que as equipes de desenvolvimento usam para criar e executar aplicações nativas de nuvem escaláveis. O Cloud Native Computing Foundation (CNCF) lista infraestrutura imutável, microsserviços, APIs declarativas, contêineres e malhas de serviço como os blocos tecnológicos da arquitetura nativa de nuvem.
Infraestrutura imutável
Infraestrutura imutável significa que os servidores para hospedagem de aplicações nativas de nuvem permanecem inalterados após a implantação. Se a aplicação exigir mais recursos de computação, o servidor antigo será descartado, e a aplicação será movida para um novo servidor de alta performance. Ao evitar atualizações manuais, a infraestrutura imutável torna a implantação nativa de nuvem um processo previsível.
Microsserviços
Microsserviços são componentes de software pequenos e independentes que funcionam coletivamente como software nativo de nuvem completo. Cada microsserviço concentra-se em um pequeno problema específico. Os microsserviços são fracamente acoplados, ou seja, são componentes de software independentes que se comunicam entre si. Os desenvolvedores fazem alterações na aplicação trabalhando em microsserviços individuais. Dessa forma, a aplicação continua funcionando mesmo que um microsserviço falhe.
API
A interface de programação de aplicações (API) é um método que dois ou mais programas de software usam para trocar informações. Os sistemas nativos de nuvem usam APIs para unir os microsserviços fracamente acoplados. A API informa quais dados o microsserviço deseja e quais resultados ele pode fornecer, em vez de especificar as etapas para alcançar o resultado.
Malha de serviço
A malha de serviço é uma camada de software na infraestrutura de nuvem que gerencia a comunicação entre vários microsserviços. Os desenvolvedores usam a malha de serviço para introduzir outras funções sem escrever um novo código na aplicação.
Contêineres
Os contêineres são a menor unidade de computação em uma aplicação nativa de nuvem. São componentes de software que empacotam o código de microsserviço e outros arquivos necessários em sistemas nativos de nuvem. Ao conteinerizar os microsserviços, as aplicações nativas de nuvem são executadas de modo independente do sistema operacional e do hardware subjacentes. Isso significa que os desenvolvedores de software podem implantar aplicações nativas de nuvem on-premises, na infraestrutura de nuvem ou em nuvens híbridas. Os desenvolvedores usam contêineres para empacotar os microsserviços com suas respectivas dependências, como os arquivos de recursos, bibliotecas e scripts de que a aplicação principal necessita para ser executada.
Benefícios dos contêineres
Os contêineres oferecem benefícios como:
- Você usa menos recursos de computação do que a implantação convencional de aplicações
- Você pode implantá-los quase instantaneamente
- É possível escalar de forma mais eficiente os recursos de computação em nuvem necessários para a aplicação
O que é desenvolvimento de aplicações nativas de nuvem?
O desenvolvimento de aplicações nativas de nuvem descreve como e onde os desenvolvedores criam e implantam aplicações nativas de nuvem. Uma mudança cultural é importante para o desenvolvimento nativo de nuvem. Os desenvolvedores adotam práticas de software específicas para reduzir o cronograma de entrega de software e fornecer recursos precisos que atendam às mudanças de expectativas dos usuários. Veja abaixo algumas práticas comuns de desenvolvimento nativo da nuvem.
Integração contínua
A integração contínua (CI) é uma prática de software na qual os desenvolvedores integram alterações em uma base de código compartilhada com frequência e sem erros. Alterações pequenas e frequentes tornam o desenvolvimento mais eficiente, pois é possível identificar e solucionar problemas mais rapidamente. As ferramentas de CI avaliam automaticamente a qualidade do código para cada alteração para que as equipes de desenvolvimento possam adicionar novos recursos com mais confiança.
Entrega contínua
A entrega contínua (CD) é uma prática de software que oferece suporte ao desenvolvimento nativo de nuvem. Com a CD, as equipes de desenvolvimento garantem que os microsserviços estejam sempre prontos para implantação na nuvem. Elas usam ferramentas de automação de software para reduzir o risco ao fazer alterações, como a introdução de novos recursos e a correção de bugs em aplicações. CI e CD trabalham juntas para proporcionar uma entrega eficiente de software.
DevOps
DevOps é uma cultura de software que melhora a colaboração entre as equipes de desenvolvimento e operações. É uma filosofia de design que se alinha ao modelo nativo de nuvem. As práticas de DevOps permitem que as organizações acelerem o ciclo de vida de desenvolvimento de software. Desenvolvedores e engenheiros operacionais usam ferramentas de DevOps para automatizar o desenvolvimento nativo de nuvem.
Sem servidor
A computação com tecnologia sem servidor é um modelo nativo de nuvem em que o provedor de nuvem gerencia totalmente a infraestrutura de servidor subjacente. Os desenvolvedores usam a computação com tecnologia sem servidor porque a infraestrutura em nuvem é escalada e configurada automaticamente para atender aos requisitos da aplicação. Os desenvolvedores pagam apenas pelos recursos que a aplicação usa. A arquitetura com tecnologia sem servidor remove automaticamente os recursos de computação quando a execução da aplicação é interrompida.
Quais são os benefícios do desenvolvimento de aplicações nativas de nuvem?
Desenvolvimento mais rápido
Os desenvolvedores usam a abordagem nativa de nuvem para reduzir o tempo de desenvolvimento e obter aplicações de melhor qualidade. Em vez de depender de uma infraestrutura de hardware específica, os desenvolvedores criam aplicações conteinerizadas prontas para implantação com práticas de DevOps. Isso permite que os desenvolvedores reajam às alterações rapidamente. Por exemplo, eles podem fazer várias atualizações diárias sem desligar a aplicação.
Independência de plataformas
Ao criar e implantar aplicações na nuvem, os desenvolvedores têm a garantia da consistência e confiabilidade do ambiente operacional. Eles não precisam se preocupar com a incompatibilidade de hardware, pois o provedor de nuvem cuida disso. Portanto, os desenvolvedores podem se concentrar em entregar valores na aplicação em vez de configurar a infraestrutura subjacente.
Operações econômicas
Você paga apenas pelos recursos que suas aplicação realmente usa. Por exemplo, se o tráfego do usuário aumentar apenas durante certas épocas do ano, você pagará taxas adicionais somente para esse período. Não é necessário provisionar recursos a mais que ficam ociosos durante a maior parte do ano.
O que é pilha nativa de nuvem?
A pilha nativa de nuvem descreve as camadas de tecnologias nativas de nuvem que os desenvolvedores usam para criar, gerenciar e executar aplicações nativas de nuvem. São categorizadas da forma a seguir.
Camada de infraestrutura
A camada de infraestrutura é a base da pilha nativa de nuvem. Consiste em sistemas operacionais, armazenamento, rede e outros recursos de computação gerenciados por provedores de nuvem terceirizados.
Camada de provisionamento
A camada de provisionamento consiste em serviços de nuvem que alocam e configuram o ambiente de nuvem.
Camada de tempo de execução
A camada de tempo de execução fornece tecnologias nativas de nuvem para que os contêineres funcionem. Isso inclui armazenamento de dados em nuvem, capacidade de redes e um tempo de execução de contêineres, como containerd.
Camada de orquestração e gerenciamento
A orquestração e o gerenciamento são responsáveis por integrar os vários componentes da nuvem de modo que funcionem como uma única unidade. É semelhante ao modo como um sistema operacional funciona na computação tradicional. Os desenvolvedores usam ferramentas de orquestração como o Kubernetes para implantar, gerenciar e escalar aplicações em nuvem em diferentes máquinas.
Camada de definição e desenvolvimento de aplicações
Essa camada de pilha nativa de nuvem consiste em tecnologias de software para criar aplicações nativas de nuvem. Por exemplo, os desenvolvedores usam tecnologias de nuvem como banco de dados, sistemas de mensagens, imagens de contêiner e ferramentas de integração contínua (CI) e entrega contínua (CD) para criar aplicações em nuvem.
Ferramentas de observabilidade e análise
As ferramentas de observabilidade e análise monitoram, avaliam e melhoram a integridade do sistema de aplicações em nuvem. Os desenvolvedores usam ferramentas para monitorar métricas como uso da CPU, memória e latência para garantir que não haja interrupção na qualidade do serviço da aplicação.
O que é a computação em nuvem?
A computação em nuvem refere-se à infraestrutura de software hospedada em um datacenter externo que é disponibilizada aos usuários com base no pagamento por uso. As empresas não precisam pagar por servidores caros nem mantê-los. Em vez disso, podem usar serviços nativos de nuvem sob demanda, como armazenamento, banco de dados e análise de um provedor de nuvem.
Computação em nuvem comparada à nativa de nuvem
Computação em nuvem refere-se aos recursos, à infraestrutura e às ferramentas fornecidos sob demanda pelos fornecedores de nuvem. Por sua vez, a nativa de nuvem é uma abordagem que cria e executa programas de software com o modelo de computação em nuvem.
O que é habilitada para nuvem?
As aplicações habilitadas para nuvem são aplicações empresariais herdadas que estavam sendo executadas em um datacenter on-premises, mas foram modificadas para serem executadas na nuvem. Isso implica alterar parte do módulo de software para migrar a aplicação para servidores em nuvem. Assim, é possível usar a aplicação de um navegador, mantendo os recursos originais.
Nativa de nuvem comparada à habilitada para nuvem
O termo nativa de nuvem refere-se a uma aplicação que foi criada para residir na nuvem desde o início. Ser nativa de nuvem envolve tecnologias de nuvem como microsserviços, orquestradores de contêineres e escalabilidade automática. Uma aplicação habilitada para nuvem não tem a flexibilidade, resiliência ou escalabilidade de sua contraparte nativa de nuvem. Isso ocorre porque as aplicações habilitadas para nuvem retêm a estrutura monolítica, mesmo que tenham sido movidas para a nuvem.
Por que criar aplicações nativas de nuvem na AWS?
A AWS oferece as tecnologias, as ferramentas e os serviços necessários para desenvolver aplicações funcionais nativas de nuvem. Você pode se concentrar no desenvolvimento de produtos de software em vez de se preocupar com a infraestrutura subjacente:
- Migre para contêineres gerenciados na AWS para simplificar as operações e reduzir a sobrecarga de gerenciamento
- Desenvolva novas aplicações ou recursos usando tecnologias sem servidor com o AWS Lambda e bancos de dados com propósito específico com o Amazon DynamoDB
- Use ferramentas como o AWS Amplify e o AWS CDK para maximizar a agilidade e acelerar o desenvolvimento
- Escolha entre 15 bancos de dados da AWS relacionais e não relacionais com propósito específico para oferecer suporte à arquitetura de microsserviços e às necessidades de aplicações modernas, como o armazenamento de documentos e de pares de chave-valor
- Use nosso portfólio de serviços DevOps e nossa ampla rede de parceiros para ajudar a desenvolver e executar aplicações com mais rapidez e a criar aplicações em escala
Comece a usar aplicações nativas de nuvem criando uma conta da AWS hoje mesmo.
Próximas etapas na AWS
Obtenha acesso instantâneo ao nível gratuito da AWS.