Conteúdo


Desenvolvendo aplicativos rapidamente (parte 3): implementando seu projeto de microsserviços

Comments

[Roland Barcia (IBM Distinguished Engineer/CTO) e Rick Osowski (Senior Technical Staff Member) colaboraram com o Kyle nesta publicação. - Ed.]

Nesta série em sete partes sobre desenvolvimento de aplicativos de microsserviços, fornecemos um contexto para definir um projeto piloto baseado em nuvem que melhor se ajusta às atuais necessidades e prepara para uma decisão de adoção da nuvem em mais longo prazo.

Aqui, na parte 3, fornecemos um método para a implementação de seus próprios projetos de microsserviços.

Esta é uma orientação para a série em geral:

Evoluindo um aplicativo existente

Agora, vamos nos aprofundar em como traçar um rumo para jornadas específicas de desenvolvimento de aplicativos de microsserviços de diferentes escalas e com uma visão de uma possível progressão de transformações de escalas menores para maiores dos aplicativos existentes.

Embora a criação de projetos de microsserviços sem um aplicativo prévio seja relevante ou importante, concordamos em uma abordagem de “aplicativo monolítico primeiro” ao criar microsserviços. Em suma, isso significa construir seu aplicativo da maneira que puder para primeiro validar sua ideia. Em seguida, você aplica os princípios desta série de blogs para dimensionar e evoluir seu aplicativo monolítico inicial para um projeto de microsserviços. Não há nenhum valor na criação de microsserviços puros em relação à arquitetura que não ofereçam valor aos negócios.

Há três áreas que você precisa entender para implementar um projeto de microsserviços bem-sucedido: seus negócios, sua cultura e conjunto de habilidades, e sua tecnologia.

Entenda e defina suas necessidades comerciais

Por que você está pensando em mudar para microsserviços? Para muitas empresas, práticas mais eficientes de desenvolvimento e operação de software são necessárias para fornecer valor à empresa mais rapidamente e entregar melhores experiências de usuários.

Antes que seja possível entender o impacto de um projeto de microsserviços em sua infraestrutura e aplicativos existentes, você precisa entender quais partes de seus negócios estão muitos lentas para produzir resultados satisfatórios. Em muitos casos, os sistemas de engajamento (SOE) da organização estão causando a lentidão. Esses sistemas estão disponíveis por meio de muitos canais: Web, dispositivos móveis, APIs, entre outros. A falta de velocidade é a principal razão para mudar para uma arquitetura baseada em microsserviços.

Antes que possa adotar uma abordagem orientada por microsserviços, você e as partes interessadas de sua empresa precisam saber o que não está chegando ao mercado de forma suficientemente rápida. Quais partes do aplicativo precisam de melhorias e modificações para torná-las mais rápidas? A resposta a essa pergunta envolve quais partes do aplicativo monolítico existente devem ser alvo da evolução de microsserviços.

Use fluxos de experiência do usuário ou diagramas de arquitetura para ajudar a equipe a identificar rapidamente as seções do aplicativo monolítico existente por meio de anotações no estilo mapa de calor. Por exemplo, usando uma escala de vermelho-amarelo-verde para prioridade de pontos problemáticos, este é um arquivamento de aplicativos da Web de uma fachada de loja:

Neste momento, sem ser exaustivo e com abertura para ser iterativo, os principais objetivos da avaliação são:

  • Identificar as funções comerciais separadas que seu aplicativo monolítico está fornecendo
  • Entender a velocidade e a complexidade relativas necessárias para mudar essas funções comerciais
  • Entender o desejo do proprietário do negócio de ver ciclos de feedback mais rápidos para essas funções comerciais específicas

Entenda sua cultura e seu conjunto de habilidades

Embora não seja específico às arquiteturas baseadas em microsserviços, um entendimento completo das equipes, da cultura e do conjunto de habilidades de uma organização é fundamental para uma transformação digital bem-sucedida.

Geralmente, em modelos monolíticos de engenharia, a maioria das organizações é construída em silos, com equipes participando ao longo do ciclo de vida de desenvolvimento do software conforme necessário. Muitas vezes, isso cria limites bem definidos, com funções e responsabilidades restritivas ao longo desses limites.

As arquiteturas de microsserviços só podem ser bem-sucedidas quando as equipes têm o poder de controlar todo o ciclo de vida de desenvolvimento e operação do software. A montagem de equipes multifuncionais que representem todas as funções e responsabilidades é fundamental para a implementação de arquiteturas baseadas em microsserviços. Todo mundo, do projeto e do desenvolvimento às operações e o proprietário do negócio, trabalha em conjunto e, geralmente, lado a lado.

Como cada parte interessada é representada na equipe por projeto, desenvolvimento e operações, o trabalho pode seguir em frente mais rapidamente, de forma mais eficiente e com uma clara concentração na melhoria da experiência do usuário para atingir os objetivos comerciais.

Uma equipe multifuncional também suporta o rápido crescimento de habilidades individuais em toda a equipe. Quando uma equipe controla aquilo pelo qual o microsserviço é responsável, do projeto e das operações até os dados de tempo de execução, nenhum membro individual da equipe executa uma única tarefa. Frequentemente, os engenheiros de front-end desenvolvem suas habilidades de administração de bancos de dados, enquanto os membros da equipe orientada a operações aprendem mais sobre as diferenças nas estruturas da interface com o usuário. Expandir o conjunto de habilidades dessa maneira ajuda toda a organização de TI a ser bem-sucedida com microsserviços, já que é muito mais fácil montar novas equipes de membros qualificados que buscar constantemente por especialistas para preencher funções muito específicas.

Entenda a tecnologia

A menos que você aborde o problema comercial e a cultura e o conjunto de habilidades de sua equipe, não será possível implementar de forma efetiva a tecnologia de microsserviços e você manterá os mesmos processos e estruturas implementados.

Uma análise apropriada das pilhas de tecnologias existentes varia de forma significativa de uma organização para a outra, mas a abordagem simplificada que descrevemos ajuda a garantir o sucesso inicial e sustentável de seus projetos de microsserviços. Começar aos poucos e definir metas de sucesso iterativas e progressivas é uma abordagem muito mais atingível e frutífera que uma abordagem rápida de transformação total.

A primeira fase para entender sua tecnologia é identificar os serviços brutos existentes no aplicativo monolítico. A identificação desses serviços brutos ajudará você a entender a complexidade das estruturas de dados, o nível de acoplamento entre os componentes atuais, as equipes que são responsáveis por esses serviços brutos, etc. Uma revisão bem-sucedida dos serviços brutos proporciona um entendimento claro dos limites dos dados, seja dentro de um serviço específico ou entre os serviços.

Após identificar os serviços brutos, você deve criar um plano para evoluí-los, transformando-os em microsserviços refinados. Esses microsserviços, baseados em seu trabalho anterior, devem estar todos funcionando com dados semelhantes, possuir seus “próprios” dados e entender de onde devem ler quais dados e quais dados devem gravar em outros serviços. A partir disso, é possível identificar e implementar resiliência, escalabilidade e agilidade nos microsserviços individuais refinados.

As APIs e os microsserviços são duas partes de um todo mais amplo. Quando você tiver um melhor entendimento de seus microsserviços refinados, também entenderá melhor suas interfaces, quais interfaces estão no caminho crítico, quais são opcionais e quais não são mais necessárias. Se não for possível mapear uma interface ou uma API existente a um de seus microsserviços brutos ou refinados, muito provavelmente você poderá eliminá-la.

Dimensionando o esforço de microsserviços

O trabalho pesado de entender os negócios, a estrutura da equipe e a tecnologia garante que suas equipes e sua organização maior estejam preparadas para entender a totalidade da evolução dos microsserviços de qualquer modelo monolítico específico, seja no escopo de uma prova de conceito, de um piloto ou de uma evolução de grande escala.

Com todo o trabalho de análise e planejamento concluído, a próxima etapa é definir cronogramas, velocidades de entrega e resultados esperados.

Na próxima publicação, consideraremos padrões de desenvolvimento e de operações que podem ser aplicados ao realizar uma transformação de microsserviços.

O que fazer a partir daqui:

Kyle Brown


Recursos para download


Comentários

Acesse ou registre-se para adicionar e acompanhar os comentários.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Big data e análise de dados
ArticleID=1051506
ArticleTitle=Desenvolvendo aplicativos rapidamente (parte 3): implementando seu projeto de microsserviços
publish-date=10252017