Aplicativos nativos em cloud

menu icon

Aplicativos nativos em cloud

Conheça os aplicativos nativos em cloud e saiba como eles impulsionam a inovação e a velocidade em sua empresa.

O que é o desenvolvimento nativo em cloud?

O desenvolvimento nativo em cloud consiste menos no local de um aplicativo e mais em como ele é desenvolvido e implementado.

  • Um aplicativo nativo em cloud consiste em componentes discretos e reutilizáveis, conhecidos como microsserviços, que são desenvolvidos para se integrar 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 "What is Cloud Native?" (4:36), Andrea Crawford apresenta uma visão geral de alguns dos principais conceitos:

Também é possível saber mais sobre o IBM Cloud Podcast, que tem uma minissérie de sete episódios intitulada "Everything Cloud Native".

Microsserviços e contêineres

Os microsserviços (ou a arquitetura de microsserviços) é uma abordagem arquitetônica na qual um único aplicativo é composto por muitos componentes ou serviços menores que têm acoplamento fraco e são implementáveis de forma independente. Esses serviços (também chamados de microsserviços) normalmente têm a própria stack 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 brokers de mensagens.

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 seu uso para 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. É possível saber mais sobre suas perspectivas com relação aos benefícios e desafios dos microsserviços com a ferramenta interativa abaixo:

(Fonte:'Microservices in the enterprise 2021: Real benefits, worth the challenges'.)

Os desenvolvedores costumam implementar os microsserviços em contêineres, componentes de aplicativos leves e executáveis que combinam o código-fonte do aplicativo (neste caso, o código dos microsserviços), com todas as dependências e bibliotecas de sistema operacional (S.O.) 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 em cloud modernos.

Os contêineres ampliam os benefícios dos microsserviços, permitindo uma implementação e uma experiência de gerenciamento consistentes em um ambiente híbrido de multicloud, ou seja, clouds públicas, clouds privadas e infraestruturas on-premises. No entanto, à medida que os aplicativos nativos em 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.

Para obter informações adicionais sobre contêineres e conteinerização, consulte "Containers: A Complete Guide" e "Containerization: A Complete Guide".

Saiba mais sobre por que usar os microsserviços e os contêineres como uma construção arquitetônica.

Vantagens e desvantagens

Os clientes IBM precisam sempre melhorar 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 em cloud podem ser mais fáceis de gerenciar, pois ocorrem melhorias iterativas com os processos Agile e DevOps.
  • Compostos por microsserviços individuais, os aplicativos nativos em cloud podem ser melhorados de maneira incremental e automática, a fim de incluir recursos de aplicativo novos e aprimorados de modo contínuo.
  • 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 em cloud.
  • O processo de desenvolvimento nativo em cloud combina perfeitamente a velocidade e a inovação que os ambientes de negócios de hoje demandam.

Desvantagens

  • Embora os microsserviços permitam 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 em 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 em cloud permitem um desenvolvimento e uma implementação rápidos, mas também demandam uma cultura de negócios que possa lidar com o ritmo dessa inovação.

Exemplos de aplicativos

Aplicativos nativos em cloud frequentemente têm funções bastante específicas. Considere como os aplicativos nativos em 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 em cloud.

O IBM Cloud Garage fornece aos clientes da IBM consultoria especializada para desenvolver aplicativos nativos em 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.

A 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.

A 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 foi capaz de desenvolver seis novos produtos após adotar 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.

O UBank (2:45) precisava melhorar sua oferta de empréstimos imobiliários e fazer com que os clientes concluíssem o processo 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. A ThinkResearch (2:06) usa a IBM Cloud para fornecer as melhores informações médicas no ponto de atendimento. Ao usar a infraestrutura IBM Cloud e os serviços do Kubernetes gerenciado, a equipe de DevOps da ThinkResearch pode se concentrar na inovação e no atendimento ao paciente em vez de na infraestrutura.

Princípios de desenvolvimento

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

  • Seguir a abordagem arquitetônica 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.
  • Usar os contêineres para obter maior flexibilidade e escalabilidade: 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 máxima flexibilidade e portabilidade em um ambiente multilcloud. Os contêineres também permitem um ajuste de escala rápido com as políticas de orquestração do Kubernetes definidas pelo usuário.
  • Adotar 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 em cloud frequentemente utilizam 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 maneiras de abordar o armazenamento em cloud.

Assim como o desenvolvimento de aplicativos nativos em cloud adota uma abordagem modular e de microsserviços, o armazenamento nativo em cloud também deve adotar. Os dados nativos em 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 em cloud.

Descubra como o IBM Cloud Object Storage cria um armazenamento de dados persistente para os aplicativos nativos em cloud.

Desenvolvimento nativo em cloud vs. aplicativos tradicionais

Desenvolvimento nativo em cloud vs. Ativado para cloud

Um aplicativo ativado em cloud é aquele que foi desenvolvido para implementação em um data center tradicional, mas foi mudado posteriormente para também ser executado em um ambiente em cloud. Os aplicativos nativos em cloud, no entanto, são desenvolvidos para operar somente na cloud. Os desenvolvedores criam aplicativos nativos em cloud com microsserviços para facilitar o ajuste de escala e o uso de diferentes plataformas.

Desenvolvimento nativo em cloud vs. Preparado para a cloud

Na breve história da computação em cloud, 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 em cloud" tem um histórico muito mais breve e se refere a um aplicativo desenvolvido completamente 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 em cloud.

Nativo em cloud vs. Com base em cloud

Um serviço ou aplicativo com base em cloud é entregue pela Internet. Esse é um termo geral aplicado a diversas ofertas de cloud. Nativo em 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 em cloud vs. Com 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 os recursos em cloud primeiro 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 em cloud são ideais para uma a abordagem com foco na cloud porque usam somente os recursos em cloud e são projetados para aproveitar as características dessa arquitetura.

Nativo em cloud e a IBM

Atender às expectativas dos usuários mais exigentes significa adotar as arquiteturas, práticas e tecnologias certas. Ao aprimorar a experiência do usuário criando novos aplicativos e modernizando os existentes em sua jornada para a cloud, os aplicativos nativos em cloud melhoram o desempenho , a flexibilidade e a extensibilidade.

Dê o próximo passo:

Comece a usar hoje mesmo com uma conta IBM Cloud.