Introdução aos aceleradores para soluções nativas em cloud

10 min de leitura
Patrocinado
Imagem de: Introdução aos aceleradores para soluções nativas em cloud
Avatar do autor

Equipe TecMundo

@tec_mundo

Por David Harris, Nathan Ziemann

Publicado em 12 de junho de 2020

As empresas estão cada vez mais cientes dos benefícios da construção de soluções nativas em cloud e procuram alavancar a tecnologia e as metodologias associadas para criarem e fornecerem rapidamente novas experiências digitais. No entanto, a fim de perceberem os benefícios do desenvolvimento nativo em cloud e entregarem produtos com mais rapidez, companhias devem superar os desafios de manter a governança corporativa e o custo de dar origem a novas habilidades, além de transformar as práticas de desenvolvimento de ponta a ponta.

Este artigo fornece uma visão geral dos aprimoramentos de visualização de tecnologia para o recurso Accelerators for Teams no IBM Cloud Pak for Applications, o qual oferece funcionalidades para construir soluções RESTful e orientadas a eventos nativas em cloud. De agora em diante, essas novas ferramentas serão chamadas simplesmente de aceleradores.

Os aceleradores permitem que você entregue com rapidez soluções nativas em cloud, agilizando desde a ideia até sua implementação na produção. Eles eliminam a complexidade e o atrito de equipes multidisciplinares, permitindo que seus desenvolvedores, arquitetos e operações codifiquem e gerenciem centralmente as decisões. Por meio de tal abordagem, suas equipes de desenvolvimento são capazes de inovar rapidamente com a confiança de que estão em conformidade com os padrões operacionais, de segurança e de tecnologia exclusivos de sua empresa.

Observação: este artigo se refere a ações relacionadas a disciplinas, como operações. Dependendo da sua organização, indivíduos e equipes podem ter responsabilidades em várias disciplinas, como por meio da adoção de DevOps ou DevSecOps.

O Accelerators for Teams fornece governança corporativa e maior produtividade para equipes multidisciplinares, reunindo Application Stacks, DevOps integrados desenvolvidos em Red Hat OpenShift Pipelines, Red Hat OpenShift Container Platform e uma escolha de ferramentas de desenvolvedor. Os aprimoramentos de visualização de tecnologia estendem esses recursos com uma abordagem para projetar e construir aplicações que são compostas de vários microsserviços e serviços dependentes e implantá-las por meio de um fluxo de trabalho GitOps para OpenShift.

Por meio da visualização de tecnologia para soluções RESTful e baseadas em eventos, os arquitetos podem projetar um Solution Blueprint composto de microsserviços e serviços conectados (um banco de dados, por exemplo). A partir do seu design, os aceleradores geram automaticamente todos os repositórios de código-fonte necessários no Git com microsserviços scaffoldados que são continuamente construídos em contêineres. Os microsserviços são implementados no OpenShift por meio de um fluxo de trabalho GitOps usando OpenShift Pipelines (construído no projeto de código aberto Tekton) e pré-configurados para fornecer os seguintes benefícios:

  • Descoberta de serviço: as conexões são estabelecidas para outros microsserviços e para os serviços necessários.

  • Verificações de integridade: os microsserviços podem ser gerenciados e reiniciados automaticamente conforme a necessidade.

  • Observabilidade: os rótulos são aplicados para que os microsserviços sejam exibidos como parte de uma aplicação no visualizador de topologia OpenShift. As métricas do Prometheus são expostas para que o desempenho possa ser monitorado e visualizado por meio dos painéis do Grafana.

Todas essas vantagens são obtidas antes que um desenvolvedor escreva uma única linha de código. O que antes exigia semanas de frustração (solicitações de acesso, configuração da infraestrutura e configuração da aplicação) agora se encontra automatizado. Para ver esse fluxo de trabalho em ação, assista ao vídeo a seguir.

As seções a seguir descrevem o fluxo de trabalho com mais detalhes. Para obter um passo a passo sobre como criar um aplicativo baseado em Reference Blueprints, leia os tutoriais para um aplicativo baseado em REST e um aplicativo orientado a eventos.

Acelere da ideia ao design

O IBM Garage ajuda as empresas a transformarem suas culturas e práticas e cocria soluções por meio de workshops de Design Thinking. Ele cria arquiteturas de referência ao aprender e se adaptar a cada contrato, que é publicado por meio do IBM Cloud Architecture Center. Essas arquiteturas de referência mostram as vantagens exclusivas dos padrões de design, permitindo que os arquitetos compreendam rapidamente o valor oferecido e aprendam as melhores práticas para implementação em suas próprias organizações.

Nos aceleradores, essas arquiteturas são disponibilizadas em uma ferramenta gráfica para o desenvolvimento de soluções colaborativas. O Solution Builder permite que os arquitetos trabalhem com analistas de negócios para projetarem um Solution Blueprint para uma aplicação nativa em cloud, utilizando as arquiteturas de referência como ponto de partida ou arrastando e conectando componentes em uma tela.

Acelerador do Solution Blueprint

Esta versão de visualização de tecnologia inclui vários modelos de referência, componentes e serviços compartilhados.

Projetos de referência

StoreFront

Um cenário de e-commerce no qual os usuários podem pesquisar e comprar produtos. Apresenta microsserviços RESTful e inclui uma interface da web que depende de serviços de Backend for Frontend (BFF) para interagir com os dados de back-end.

CoffeeShop

Uma demonstração simples que se baseia em pedir um café para ajudar a explorar os microsserviços reativos. Os usuários escolhem se desejam realizar o pedido por meio de um serviço HTTP REST ou microsserviço Reactive apoiado por Apache Kafka.

Shipping

Um cenário criado em torno do envio (do inglês shipping) de contêineres refrigerados a fim de demonstrar os microsserviços reativos e o Kafka como um backbone de eventos.

Componentes

Microsserviço REST

Um microsserviço que pode ser vinculado a outros microsserviços ou um banco de dados.

Microsserviço Reactive

Um microsserviço que pode ler e gravar mensagens em um tópico Kafka para se comunicar entre microsserviços Reactive, bem como ser vinculado da mesma forma que um microsserviço REST.

Banco de dados PostgresSQL

Um banco de dados que pode ser vinculado a um microsserviço REST ou Reactive.

Tópico Kafka

Um tópico Kafka no qual as mensagens podem ser publicadas e consumidas por microsserviços.

Os microsserviços REST e Reactive utilizam Application Stacks com Starter Templates (Modelos Iniciais). Application Stacks são um recurso dos Accelerators for Teams que incluem sistemas de tempo de execução e estruturas otimizadas para microsserviços em contêineres. As stacks permitem que os arquitetos padronizem as opções de tecnologia para suas equipes, garantindo que estejam utilizando tecnologia compatível e com suporte e simplificando atualizações e manutenção. Saiba mais sobre como desenvolver com Application Stacks no IBM Knowledge Center. Com aceleradores para soluções nativas em cloud, você pode utilizar um conjunto padrão de stacks selecionadas que inclui Open Liberty, Quarkus, Spring Boot e Node.js com Express.

Serviços compartilhados

Apache Kafka

O Kafka pode ser implementado por meio do operador Strimzi e configurado como um serviço compartilhado por meio do painel Blueprint Properties (Propriedades do Blueprint).

Acelere de projetado para provisionado

O Solution Blueprint torna-se sua Lista de Materiais para acelerar o provisionamento no Git e a implementação no OpenShift. Quando você clica em Generate (Gerar) no Solution Builder, os repositórios de código-fonte são criados e preenchidos com microsserviços scaffoldados e configuração apropriada de conexão conforme projetado no Solution Blueprint.

A imagem a seguir mostra o blueprint de referência do CoffeeShop no Solution Builder.

Blueprint do CoffeeShop no Solution Builder

A imagem a seguir mostra os repositórios correspondentes que são criados no GitHub como resultado de clicar em Generate (Gerar).

Repositórios correspondentes criados no GitHub

Um repositório GitOps é criado para cada ambiente definido em seu blueprint, que atualmente é uma opção de desenvolvimento, teste e produção. A promoção por meio desses ambientes é descrita posteriormente neste artigo. A estrutura contém todas as configurações necessárias para se implementar os vários microsserviços e seus serviços dependentes, como um Kafka, no OpenShift. Ao usar sobreposições Kustomize, as operações podem adaptar as implementações a cada ambiente, como ajustando o número de conjuntos de réplicas necessários para o desenvolvimento ou produção.

Ao adotar o GitOps, você ganha os seguintes benefícios:

  • Uma única fonte de verdade para implementações;

  • Separação de interesses entre desenvolvimento e operações;

  • A capacidade de configurar no nível da solução e no nível do ambiente;

  • Controle de mudanças para implementações;

  • A capacidade de reverter facilmente ou de reproduzir seu cluster de forma rápida e confiável;

  • Promoção controlada de mudanças por meio de ambientes de desenvolvimento, teste e produção.

Leia mais sobre o conceito no útil Guia para GitOps fornecido pela Weaveworks.

Acelere de codificado para construído e implantado com observabilidade

Seus desenvolvedores agora podem clonar o repositório recém-criado para seus microsserviços e encontram nele uma Application Stack com um modelo inicial. A imagem a seguir é um exemplo de um microsserviço reativo baseado no Open Liberty.

Microsserviço do Reactive

O aplicativo scaffoldado permite que seus desenvolvedores se concentrem no código em vez de na configuração. Eles podem adicionar a lógica de negócios ao microsserviço usando seus editores de escolha e aproveitar o modelo de desenvolvimento de loop interno que é fornecido com o Cloud Pak for Applications para verem atualizações ao vivo em um contêiner em execução.

Os webhooks podem ser configurados nos repositórios de microsserviços e GitOps para que, quando um desenvolvedor submeter as alterações, o webhook acione um pipeline Tekton que é executado em pipelines OpenShift. O pipeline executa as seguintes tarefas:

  • Constrói o microsserviço em um contêiner;

  • Envia a imagem resultante para um registro;

  • Gera uma solicitação de pull (PR) contra o repositório GitOps para atualizar os artefatos de implementação com a nova imagem de microsserviço.

As operações podem, então, escolher se querem mesclar o PR; se o fizerem, o webhook no repositório GitOps aciona outro pipeline para implementar o microsserviço atualizado. O processo de levantar PRs e dar a você o controle sobre quem pode aprová-los faz parte de como o GitOps possibilita a ideia de governança.

Os microsserviços são implementados por meio de um Kubernetes Operator, criado a partir do Runtime Component Operator, que é habilitado para usar o Service Binding Operator da Red Hat. Essa abordagem de implementação permite a vinculação de microsserviços a serviços apoiados por operadoras, como bancos de dados e Kafka. As vinculações de serviço fornecem descoberta de serviço e configuração dinâmica entre microsserviços e serviços implantados no Kubernetes. Isso fornece portabilidade de microsserviços em ambientes OpenShift e remove a configuração codificada de microsserviços, resolvendo o desafio significativo de automação de implementação e vinculação de microsserviços a seus serviços dependentes em ambientes Kubernetes. Observe que cada serviço apoiado pelo operador deve ser ativado para o Service Binding Operator.

O blueprint da sua solução contém informações de configuração para serviços persistentes e software de integração, que são armazenadas nos repositórios GitOps e implementadas por meio de seu Kubernetes Operator. Para esta amostra de tecnologia, o PostgresSQL é fornecido como um serviço persistente e o Strimzi é fornecido para o Kafka.

A promoção entre os ambientes de desenvolvimento, teste e produção é controlada por meio do GitOps. As operações podem utilizar os serviços CLI, onde o comando gera um PR com as mudanças necessárias no repositório GitOps que representa o ambiente de destino. Depois de aprovados, os pipelines de implantação podem ser acionados da mesma maneira descrita anteriormente.

Conforme mencionado no início deste artigo, esses microsserviços podem ser contemplados no visualizador de topologia OpenShift como aplicativos lógicos. As verificações de integridade integradas permitem que sejam gerenciados e reiniciados conforme necessário pelo OpenShift, e seus desempenhos podem ser monitorados e visualizados por meio de métricas do Prometheus e painéis Grafana.

Com esses recursos, seus desenvolvedores podem entregar produtos mais rapidamente e focarem em seu código, pois seus pontos de partida são um microsserviço que já é implementado por meio de integração e entrega contínuas (CI / CD) para OpenShift. Com o GitOps, sua equipe de operações se beneficia de uma única fonte de verdade e pode configurar e controlar implementações para OpenShift.

Resumo

Contêineres e Kubernetes estão se tornando tecnologias cada vez mais difundidas em diversos setores, com a plataforma de contêineres se tornando a próxima plataforma de cloud para novas soluções. Como parte dessa transição, os fluxos de trabalho Git para desenvolvedores e equipes de operações se tornarão essenciais, exigindo que os clientes combinem Git para código-fonte, DevOps para automação e GitOps para configuração de Kubernetes. A visualização de tecnologia dos aceleradores reúne essas abordagens em um fluxo de trabalho acelerado que permite criar soluções inovadoras nativas em cloud com mais rapidez, agilizando da ideia à produção.

Um projeto de entrega de software bem-sucedido requer alinhamento entre várias disciplinas, como desenvolvimento, operações, segurança e conformidade. Aceleradores permitem que essas equipes multidisciplinares codifiquem e gerenciem de forma centralizada as decisões, permitem uma mudança para a esquerda e capacitam os desenvolvedores a entregarem produtos mais rapidamente e com mais confiança, pois eles podem se concentrar na codificação em vez de na configuração.

Saiba mais sobre os aprimoramentos de visualização de tecnologia para aceleradores, seguindo os tutoriais para a criação de soluções nativas em cloud RESTful e Reactive.

Visite a IBM Middleware User Community para fornecer feedback sobre o conteúdo de visualização de tecnologia.

...

Quer ler mais conteúdo especializado de programação? Conheça o IBM Blue Profile e tenha acesso a matérias exclusivas, novas jornadas de conhecimento e testes personalizados. Confira agora mesmo, consiga as badges e dê um upgrade na sua carreira!

…..

Quer dar o próximo grande passo na sua jornada profissional? Participe do Cloud Training, um curso online e gratuito que vai te preparar para o exame da certificação IBM Cloud Foundations. Inscreva-se já!