Conteúdo


Desenvolvendo aplicativos rapidamente (parte 2): criando uma arquitetura com microsserviços

Comments

[Kyle Brown (IBM Distinguished Engineer/CTO) e Rick Osowski (IBM Distinguished Engineer/CTO) colaboraram com o Roland 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 2: apresentamos os recursos comuns de uma arquitetura para o rápido desenvolvimento de aplicativos com base em um microsserviço. Você precisará desses recursos tanto se estiver transformando um aplicativo monolítico quanto desenvolvendo um aplicativo nativo da nuvem.

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

Recursos comuns

Os componentes dos aplicativos são executados como microsserviços na nuvem, comunicando-se uns com os outros por meio da malha de microsserviços. Embora os padrões sejam diferentes dependendo do tipo de aplicativo, todos os aplicativos baseados em microsserviços incluem alguns componentes e recursos comuns de maior escala.

Ao analisar este diagrama da direta para a esquerda, observamos que os microsserviços de back-end são expostos por meio de APIs e consumidos por meio de um gateway de API.

Um gateway de API pode ser tão simples quanto um proxy de terminais. Alguns deles são mais sofisticados, empregando segurança no primeiro contato, monitorando e atribuindo versões de API, além de contar com sistemas completos de gerenciamento de API com um portal de desenvolvedor para consumo por terceiros.

DevOps

A criação de uma arquitetura de microsserviços bem-sucedida requer uma forte estratégia de automação usando DevOps. Sua automação de DevOps deve abordar provisionamento e implementação/liberação contínua.

  • Provisionamento. Cada componente de microsserviço de seu aplicativo é executado em seu próprio contêiner autossuficiente. A plataforma de nuvem instancia um contêiner com cada microsserviço e todas as suas dependências de software e orquestra o modo como o conjunto de contêineres é atribuído à infraestrutura subjacente. Se você executar uma infraestrutura de contêiner sobre uma camada de Infraestrutura como Serviço usando mecanismos de orquestração do Docker, como data center do Docker ou Kubernetes, por exemplo, você automatizará o modo como esses ambientes provisionam software em contêineres por meio de uma máquina virtual ou servidor bare metal. Geralmente, uma equipe de operações e de desenvolvimento de software usa uma plataforma de nuvem como serviço (PaaS) de um fornecedor, que gerencia toda a complexidade do provisionamento.
  • Implementação contínua. Para iterar rapidamente um aplicativo de microsserviços, deve-se configurar um sistema eficiente para construir e atribuir versões do Docker. Se você tiver uma estratégia com diversas nuvens, deverá construir e implementar necessidades de automação para abstrair as diferenças no modo como você faz as coisas, como dimensionamento automático ou aplicação de políticas de nuvem. Algumas plataformas de nuvem, como o IBM Bluemix, fornecem cadeias de ferramentas prontas para fazer isso.
  • Liberação contínua. Como na implementação contínua, sua plataforma de nuvem deve suportar um processo de desenvolvimento orientado a testes das unidades funcionais, testes de validação do ambiente e testes funcionais e de desempenho automatizados do aplicativo em geral.

Opções de computação de microsserviços

Dependendo do que melhor se ajusta ao seu aplicativo e à sua carga de trabalho, é possível escolher diferentes opções de computação em uma plataforma como serviço. Por exemplo, no IBM Bluemix, você tem esta gama de opções para executar microsserviços:

  • Contêineres do Docker no Kubernetes gerenciado: os contêineres do Docker fornecem mais portabilidade nos ambientes de nuvem e nas instalações e o Kubernetes oferece uma gama extraordinária de controles para gerenciar a complexidade de aplicativos de microsserviços em execução em escala.
  • Cloud Foundry: essa plataforma de software livre abstrai o software de microsserviços de todas as operações da plataforma abaixo do nível de tempo de execução, fornecendo uma vantagem poderosa para equipes com diferentes níveis de habilidades de codificação poliglota que não desejam gerenciar quaisquer operações do tempo de execução.
  • Sem servidor: o Apache OpenWhisk é uma plataforma de programação como serviço de software livre e baseada em eventos que abstrai operações e suporta o sequenciamento de pequenas funções independentes que são executadas com base em eventos, regras e acionadores definidos. Os desenvolvedores implementam gerenciadores de eventos simples para responder a eventos que ocorrem na plataforma de nuvem. Toda a virtualização é abstraída.
  • Máquinas virtuais ou bare metal: se preferir, você poderá criar aplicativos baseados em microsserviços e executá-los em máquinas virtuais (VMs). Isso requer muito mais provisionamento manual e DevOps para obter sucesso. As VMs e o bare metal oferecem mais flexibilidade à custa de

O que fazer a partir daqui:

Roland Barcia

Centro de arquiteturadevopsmicrosserviços


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=1051501
ArticleTitle=Desenvolvendo aplicativos rapidamente (parte 2): criando uma arquitetura com microsserviços
publish-date=07182017