O que é o desenvolvimento nativo de cloud?
Um aplicativo nativo de cloud consiste em componentes discretos e reutilizáveis, conhecidos como microsserviços, que são desenvolvidos para se integrar a qualquer ambiente de cloud.
Plano de fundo azul e preto
O que é o desenvolvimento nativo de cloud?

O desenvolvimento nativo de cloud não refere-se ao local em que um aplicativo é armazenado e sim a como ele é desenvolvido e implementado.

  • Um aplicativo nativo de cloud consiste em componentes discretos e reutilizáveis, conhecidos como microsserviços, que são desenvolvidos para serem integrados a qualquer ambiente de cloud.

  • Esses microsserviços atuam como blocos de construção e são frequentemente empacotados em contêineres.

  • Os microsserviços funcionam em conjunto para compor um aplicativo, mas cada um pode ser continuamente aprimorado, rapidamente iterado e ter a escala ajustada por meio de processos de automação e orquestração independentes.

  • A flexibilidade de cada microsserviço aumenta a agilidade e a melhoria contínua dos aplicativos nativos de cloud.

No vídeo "O que é nativo de cloud?", Andrea Crawford apresenta uma visão geral desses e outros conceitos importantes:

Microsserviços e contêineres

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.

Por que usar microsserviços e contêineres?
Vantagens e desvantagens

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

  • Em comparação com os aplicativos monolíticos tradicionais, os aplicativos nativos de cloud podem ser mais fáceis de gerenciar, pois ocorrem melhorias iterativas com os processos Agile e DevOps.

  • Composto de microsserviços individuais, aplicativos nativos da cloud podem ser melhorados de forma incremental e automática para adicionar continuamente novas e melhores características de aplicação.

  • As melhorias podem ser feitas de maneira não intrusiva, evitando tempo de inatividade ou interrupção da experiência do usuário final.

  • O ajuste de escala é mais fácil com a infraestrutura elástica que sustenta os aplicativos nativos de cloud.

  • O processo de desenvolvimento nativo de cloud combina perfeitamente a velocidade e a inovação que os ambientes de negócios de hoje demandam.

Desvantagens

  • Embora os microsserviços ofereçam uma abordagem iterativa para a melhoria do aplicativo, eles também criam a necessidade de gerenciar mais elementos. Em vez de um grande aplicativo, torna-se necessário gerenciar serviços bem menores e diferentes.

  • Os aplicativos nativos de cloud demandam conjuntos de ferramentas adicionais para gerenciar o pipeline de DevOps, substituir as estruturas de monitoramento tradicionais e controlar a arquitetura de microsserviços.

  • Os aplicativos nativos de cloud permitem um desenvolvimento e uma implementação mais rápidos, mas também demandam uma cultura de negócios que possa lidar com esse ritmo de inovação.
Exemplos de aplicativos

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.

  • American Airlines (2:50) fez uma parceria com a IBM para criar um aplicativo de reagendamento dinâmico que foi lançado durante um padrão de clima severo. O aplicativo melhorou a experiência do cliente, proporcionando aos usuários mais informações e um processo de reagendamento melhorado.

  • XComP Analytics (1:56), uma plataforma de análise para educação e treinamento, precisava resolver um problema de análise, mas no processo de correção de um problema, a empresa pôde desenvolver seis novos produtos após se envolver com o IBM Cloud Garage. A solução incluiu o uso da arquitetura de microsserviços e de uma conexão com o IBM Watson para resolver problemas de análise específicos.

  • UBank (2:45) precisava melhorar sua solução de empréstimos imobiliários e fazer com que os clientes concluíssem o processo de contratação desses empréstimos. O aplicativo de assistente inteligente da empresa, o RoboChat criado com a cadeia de ferramentas de DevOps da IBM, atendeu a essa demanda. Os clientes que usaram o RoboChat tiveram uma taxa de conclusão de empréstimos imobiliários 15% mais alta.

  • Um ponto crítico da pesquisa médica é aconselhar os médicos sobre as melhores práticas para o atendimento ao paciente. No entanto, pesquisas médicas que revelam melhores práticas levam 17 anos para ser incluídas na prática real. ThinkResearch  (2:06) usa a IBM Cloud para fornecer as melhores informações médicas no momento do atendimento. Ao usar a infraestrutura da IBM Cloud e os serviços gerenciados do Kubernetes, a equipe de DevOps da ThinkResearch pode se concentrar na inovação e no atendimento ao paciente em vez de na infraestrutura.

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.

Princípios de desenvolvimento

Seja para criar um novo aplicativo nativo de cloud ou para modernizar um existente, os desenvolvedores aderem a um conjunto consistente de princípios:

  • Siga a abordagem de arquitetura de microsserviços: segmente os aplicativos em serviços de função única conhecidos como microsserviços. Os microsserviços tem acoplamento fraco, mas permanecem independentes, permitindo a melhoria incremental, automatizada e contínua de um aplicativo sem causar tempo de inatividade.

  • Use os contêineres para obter maior flexibilidade e escalabilidade: os contêineres armazenam softwares com todos os códigos e dependências em um só lugar, permitindo que eles sejam executados em qualquer lugar. Isso permite oferecer máxima flexibilidade e portabilidade em um ambiente multilcloud. Os contêineres também possibilitam um ajuste de escala rápido com as políticas de orquestração do Kubernetes definidas pelo usuário.

  • Adote métodos Agile: os métodos Agile aceleram o processo de criação e melhoria. Os desenvolvedores podem iterar rapidamente as atualizações com base no feedback do usuário, permitindo que a versão do aplicativo em funcionamento corresponda o mais próximo possível às expectativas do usuário final.
Armazenamento

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.

Saiba mais sobre o armazenamento de dados nativo de cloud
Desenvolvimento nativo de cloud vs. aplicativos tradicionais

Nativo de cloud vs. habilitado para a 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.

Nativo de cloud vs. preparado para a cloud

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.

Nativo de cloud vs. baseado na 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.

Nativo de cloud vs. foco na 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.

Soluções relacionadas
IBM para nativo da cloud

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.

Conheça a IBM para nativo de cloud
Red Hat OpenShift on IBM Cloud

Implemente clusters Kubernetes altamente disponíveis e completamente gerenciados para seus aplicativos conteinerizados com um único clique

Conheça o Red Hat OpenShift on IBM Cloud
IBM Cloud Code Engine

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.

Conheça o IBM Cloud Code Engine
Recursos O que são os microsserviços?

Em uma arquitetura de microsserviços, cada aplicativo é composto por muitos serviços menores, fracamente acoplados e independentemente implementáveis.

O que são contêineres?

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.

O que é o Kubernetes?

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.

Dê o próximo passo

Nos últimos 20 anos, a IBM realizou diversos investimentos em softwares livres, comunidades e governança, incluindo a Cloud Native Computing Foundation.Com mais de 24.000 clusters de Kubernetes atualmente em produção e em execução, a IBM Cloud™ foi desenvolvida para entregar a melhor experiência possível.Ela oferece serviços de criptografia de dados de acordo com os padrões mais altos do mercado e aderiu a mais de 30 programas de conformidade.

Conheça os produtos nativos de cloud da IBM Cloud