O desenvolvimento nativo de cloud não refere-se ao local em que um aplicativo é armazenado e sim a como ele é desenvolvido e implementado.
No vídeo "O que é nativo de cloud?", Andrea Crawford apresenta uma visão geral desses e outros conceitos importantes:
Os microsserviços (ou a arquitetura de microsserviços) é uma abordagem de arquitetura na qual um único aplicativo é composto por muitos componentes ou serviços menores que têm acoplamento fraco e que podem ser implementados de forma independente. Esses serviços (também chamados de microsserviços) normalmente têm a própria pilha de tecnologia, incluindo um banco de dados e um modelo de dados, e se comunicam por meio de uma combinação de APIs de REST, fluxos de eventos e message brokers.
Como os microsserviços podem ser implementados e reimplementados de forma independente, sem impactar uns aos outros ou interromper a experiência do usuário final, eles são uma combinação perfeita para as metodologias de entrega iterativa e automatizada, como integração contínua/implementação contínua (CI/CD) ou DevOps.
Além de criar novos aplicativos nativos de cloud, os microsserviços podem ser usados para modernizar aplicativos monolíticos tradicionais.
Em uma pesquisa recente da IBM com executivos de TI, executivos de desenvolvimento e desenvolvedores, 87% dos usuários de microsserviços concordaram que a adoção deles oferece benefícios logísticos e econômicos.
Os desenvolvedores geralmente implementam microsserviços em contêineres, como componentes de aplicativos executáveis e leves que combinam código-fonte de aplicativos (nesse caso, o código de microsserviços) com todas as bibliotecas do sistema operacional (SO) e as dependências necessárias para executar o código em qualquer ambiente. Menores, com um consumo de recursos mais eficiente e mais móveis do que as máquinas virtuais (VMs), os contêineres são as unidades de computação mais usadas nos aplicativos nativos de cloud modernos.
Os contêineres ampliam os benefícios dos microsserviços, pois proporcionam uma experiência de gerenciamento e implementação consistente em todo o ambiente híbrido de multicloud, que contém cloud pública, cloud privada e infraestrutura local. No entanto, à medida que os aplicativos nativos de cloud se multiplicam, isso também acontece com os contêineres e com a complexidade envolvida no gerenciamento deles. A maioria das empresas que utilizam microsserviços conteinerizados também utilizam uma plataforma de orquestração de contêineres, como o Kubernetes, para automatizar a implementação e o gerenciamento de contêineres em escala.
Os clientes IBM devem sempre contribuir com melhorias para os aplicativos existentes, criar novos aplicativos e aprimorar a experiência do usuário. Os aplicativos nativos de cloud atendem a essas demandas melhorando o desempenho, a flexibilidade e a extensibilidade do aplicativo.
Vantagens
Desvantagens
Os aplicativos nativos de cloud geralmente têm funções bastante específicas. Considere como os aplicativos nativos de cloud podem ser usados em um website de viagens. Cada tópico coberto pelo site, como voos, hotéis, carros, itens especiais, é um microsserviço em si. Cada microsserviço pode lançar recursos de maneira independente de outros microsserviços. Os itens especiais e os descontos também podem ter sua escala ajustada de maneira independente. Embora o site de viagens seja apresentado aos clientes como um todo, cada microsserviço permanece independente e pode ser ajustado em escala ou atualizado conforme necessário, sem afetar outros serviços. Veja a seguir alguns exemplos de outros aplicativos nativos de cloud.
O IBM Cloud Garage oferece aos clientes da IBM consultoria especializada para desenvolver aplicativos nativos de cloud rapidamente, que sejam escaláveis e inovadores. Ele oferece um hub de inovação no qual empresas de todos os tamanhos podem desenvolver e criar aplicativos que atendam às suas necessidades de negócios reais.
Seja para criar um novo aplicativo nativo de cloud ou para modernizar um existente, os desenvolvedores aderem a um conjunto consistente de princípios:
Os aplicativos nativos de cloud geralmente usam contêineres. Os contêineres são populares porque são flexíveis, leves e móveis. O uso inicial de contêineres tendia a se concentrar em aplicativos sem estado que não precisavam salvar dados do usuário de uma sessão para outra.
No entanto, à medida que mais funções de negócios importantes são movidas para a cloud, o problema do armazenamento persistente deve ser tratado em um ambiente nativo de cloud. Isso requer que os desenvolvedores considerem novas formas de abordar o armazenamento em cloud.
Assim como o desenvolvimento de aplicativos nativos de cloud adota uma abordagem modular e de microsserviços, o armazenamento nativo de cloud também deve adotar. Os dados nativos de cloud podem estar em muitos lugares, como logs de eventos ou de sistema, bancos de dados relacionais e armazenamentos de documentos ou objetos.
Localização de dados, demandas de retenção, portabilidade, compatibilidade de plataforma e segurança são somente alguns dos aspectos que os desenvolvedores devem considerar ao planejar o armazenamento nativo de cloud.
Um aplicativo habilitado para a cloud é aquele que foi desenvolvido para implementação em um data center tradicional, mas foi alterado posteriormente para também ser executado em um ambiente de cloud. Os aplicativos nativos de cloud, no entanto, são desenvolvidos para operar somente na cloud. Os desenvolvedores criam aplicativos nativos de cloud com microsserviços para facilitar o ajuste de escala e o uso de diferentes plataformas.
Na breve história da cloud computing, o significado de "preparado para a cloud" mudou diversas vezes. Inicialmente, o termo se aplicava a serviços ou softwares projetados para funcionar pela Internet. Hoje, o termo é usado com mais frequência para descrever um aplicativo que funciona em um ambiente de cloud ou em um aplicativo tradicional que foi reconfigurado para um ambiente desse tipo. O termo "nativo de cloud" é muito mais recente e se refere a um aplicativo desenvolvido para funcionar somente na cloud e aproveitar as características dessa arquitetura ou em um aplicativo existente que foi refatorado e reconfigurado com princípios nativos de cloud.
Um serviço ou aplicativo baseado na cloud é oferecido pela Internet. Esse é um termo geral aplicado a diversas soluções da cloud. Nativo de cloud é um termo mais específico. Ele descreve aplicativos projetados para trabalhar em ambientes de cloud. O termo denota aplicativos que contam com microsserviços, integração contínua e entrega contínua (CI/CD) e podem ser usados com qualquer plataforma de cloud.
A abordagem com foco na cloud consiste em uma estratégia de negócios na qual as empresas se comprometem a usar primeiro os recursos em cloud ao lançar novos serviços de TI, atualizar serviços existentes ou substituir tecnologias anteriores. Essa estratégia promove economia de custo e eficiências operacionais. Os aplicativos nativos de cloud são ideais para uma a abordagem com foco na cloud porque usam somente os recursos da cloud e são projetados para aproveitar as características dessa arquitetura.
A IBM Cloud é líder no desenvolvimento de aplicativos nativos da cloud e um parceiro confiável para criar seus aplicativos corporativos rapidamente em uma plataforma altamente aberta, segura e integrada.
Implemente clusters Kubernetes altamente disponíveis e completamente gerenciados para seus aplicativos conteinerizados com um único clique
Execute imagens de contêineres, trabalhos em lote ou código-fonte como cargas de trabalho serverless, sem a necessidade de realizar dimensionamento, ajuste a escala, implementação ou criação de rede.
Em uma arquitetura de microsserviços, cada aplicativo é composto por muitos serviços menores, fracamente acoplados e independentemente implementáveis.
Os contêineres são unidades executáveis de software que oferecem um pacote de código de aplicativos com sua estrutura de biblioteca e que podem ser executados em qualquer lugar, seja no desktop, TI tradicional ou na cloud.
Kubernetes é uma plataforma de orquestração de contêiner de software livre que automatiza a implementação, o gerenciamento e o ajuste de escala de aplicativos em contêineres.