Prévia do material em texto
Prática de microsserviços Desafio Os projetos de sistema são cada vez mais demandados para terem entregas rápidas e custos reduzidos. Nesse sentido, muitas linguagens de programação, frameworks e sistemas gerenciadores de bancos de dados são disponibilizados, buscando entregar ao desenvolvedor ferramentas que proporcionem grande produtividade. Entretanto, as evoluções tecnológicas ocorrem de forma muito veloz, e, muitas vezes, sistemas desenvolvidos há alguns anos já são incompatíveis com tecnologias de lançamento recente, as quais podem ser a melhor alternativa para solucionar um problema em particular. Na qualidade de desenvolvedor de sistemas da empresa SegSoft, a qual desenvolve aplicativos para empresas de crédito financeiro, considere o cenário proposto a seguir. Ilustração Diante do problema, você sugeriu o desenvolvimento desse novo relatório como um microsserviço, deixando-o desacoplado do sistema existente e usufruindo de outros benefícios da arquitetura de microsserviços que poderiam atender aos requisitos solicitados pelo novo módulo. A fim de justificar esses benefícios, responda: de que forma a solução baseada em microsserviço poderia proporcionar alta disponibilidade e alto desempenho? Padrão de resposta esperado A alta disponibilidade do microsserviço poderia ser entregue ao desenvolver o serviço como um processo de software independentemente do restante do sistema, podendo ser disponibilizado com apoio de alguma ferramenta de conteinerização, como Docker. Isso possibilitaria a existência simultânea de mais de uma instância do serviço, de modo que, mesmo quando uma instância estivesse indisponível, outra pudesse atender às requisições. A alta disponibilidade ainda poderia ser ampliada com a adoção de algum provedor de cloud computing para publicação dos microsserviços, de forma a garantir a disponibilidade deles e a possibilidade de escalar a quantidade de instâncias conforme a demanda de acesso aumenta. Já o alto desempenho poderia ser realizado ao criar uma cópia local de todos os dados necessários para elaboração desses relatórios, evitando que o serviço precise consultar as diversas fontes de dados heterogêneas a cada requisição de emissão de relatórios. Porém, para desenvolver essa solução, é necessária a programação de um integrador de dados que, periodicamente, irá consultar essas fontes externas e atualizar as bases de dados locais ao microsserviço. Isso implicaria custo adicional no desenvolvimento, mas atenderia bem às necessidades dos usuários