• Nenhum resultado encontrado

Visando tornar a Implantação e Manutenção de Serviço mais flexível, a estrutura de alocação de sistemas da SET foi repensada para favorecer a Entrega contínua de serviços, bem como o Suporte e Feedback a partir do uso. Nesse sentido, os serviços de Recolhimento e Repasse foram construídos seguindo padrões de implantação de microsserviços, afim de serem implantados e mantidos como um produto independentes, de modo a favorecer seu Monitoramento, a Descoberta de suas capacidades, bem como o

Versionamento e Retirada de Serviço no ambiente de produção.

Para a entrega dos microsserviços, foram configurados na solução de software scripts para integração de código e compilação de pacotes de implantação de microsserviços no ambiente de produção: um pacote para o microsserviço de Recolhimento e um pacote de implantação do microsserviço de Repasse. Para acompanhar o processo de implantação, foram adotada ferramentas alinhadas com as práticas de DevOps que fornecessem relatórios contendo logs das etapas de integração e compilação do código-fonte. Além disso, um portal de Repositório de Serviço foi customizado para que as capacidades dos serviços em produção fossem passíveis de descoberta. Por fim, foram adotadas ferramentas de monitoramento para que as equipes de suporte acompanhem o consumo dos recursos de infraestrutura, bem como para as equipes de gestão entender a dinâmica do negócio através do consumo dos serviços. Detalhamos cada uma dessas fases na sequência.

Antes da migração, todo o núcleo do sistema UVT precisava ser completamente compilado para a entrega de novas funcionalidades ou manutenções corretivas no sistema. Ou seja, até mesmo um pequeno ajuste isolado forçava a recompilação e publicação do sistema por inteiro. Um fato agravante nesse processo era a necessidade de parada do sistema, provocada pelo uso inapropriado de mecanismos para lidar com o estado de sessão e a ausência de distribuição.

Para lidar com essa complexidade e tornar a implantação e manutenção de servi- ços mais flexível, os componentes de software dos serviços foram desenvolvidos seguindo

padrões de implantação de microsserviços, afim de serem mantidos como um produto independente. Isso foi possível porque cada API é um projeto auto-compilável que en- capsulam componentes de negócio e demais dependências em pacotes de publicação que podem ser distribuídos, conteinerizado e replicados em servidores de aplicação web como IIS, NGinx, Apache etc. A Figura 34 ilustra a capacidade de autonomia e distribuição dos microsserviços de Recolhimento e Repasse na estrutura de alocação da SET.

Figura 34 – Estrutura de alocação de serviços SET - publicação de microsserviços de Arrecadação e Prefeituras (fonte-própria).

No caso dos serviços da SET, esse processo de publicação foi suportado por ferramentas automatizadas que dão suporte a práticas contínuas do DevOps. Esse novo cenário demandou da equipe da SET uma melhor gerência de configuração para lidar com integração contínua de código, associada à execução de testes automatizados, para garantir a segurança e qualidade de implantação dos pacotes entregáveis. Nesse sentido, o processo de publicação de serviços da SET precisaria ser assistido por ferramentas automatizadas que dão suporte a práticas contínuas do DevOps.

Para esse propósito, foi adotada a solução TFS (Team Foundation Server ) da Microsoft, que fornece as principais operações vinculadas às práticas de DevOps, como Integração Contínua (CI), Entrega Contínua (CDE) e Implantação Contínua (CD). Além disso, o TFS fornece artefatos importantes para a gerência de configuração e é aderente e

extensível às ferramentas de desenvolvimento adotadas pela equipe do SET, como Git, Jenkis, Visual Studio etc. A Figura 35 ilustra como o TFS apresenta as informações detalhadas do processo e resultados associados a uma compilação.

Figura 35 – Detalhamento do processo de build no TFS (fonte-própria).

Definidas infraestrutura de alocação e as ferramentas para suporte de implantação de serviços, o próximo passo foi configurar cada Inventário de serviços (Visual Studio

Solution) para responder a um processo de publicação independente, atendendo assim,

tanto ao princípio de Autonomia da Orientação a serviço, como a uma abordagem tática para implantar microsserviços. Em relação ao monitoramento, foram adotadas ferramentas para se obter dados sobre o uso dos serviços implantados no ambiente de produção. As ferramentas utilizadas para este propósito foram o RabbitMQ, que enfileirava os objetos de log das diversas instâncias de microsserviços; a pilha de tecnologia ELK (Elastic search, Logstash e Kibana), uma solução ponta-a-ponta que fornece insights com base em dados monitorados em tempo real e apresentados de forma iterativa através de dashboards, como ilustra a Figura 36.

No tocante a Descoberta de serviços, foram gerados um conjunto de Metadados a partir do código-fonte das APIs, que auxiliaram a formalização de contratos dos Inventários de serviços e na descoberta das capacidades associadas a eles. O conjunto desses metadados dos Inventários de serviços foram gerados a partir da especificação OpenAPI pelo suporte da ferramenta Swagger 2. Esses metadados são publicados juntos ao seu inventário e compõem o Repositório de serviços da SET. Esse repositório tem sido uma importante ferramenta no processo de análise de requisitos de negócio, uma vez que tem possibilitado

Figura 36 – Dashboard de monitoramento ativo de serviços da SET (fonte-própria).

aos agentes de negócio incorporar às novas demandas de software, serviços já disponíveis na camada de serviços da SET, o que tem colaborado com uma melhor gestão dos recursos de software, diminuído o custo de análise e evitado o retrabalho.

Documentos relacionados