Microservices & DevOps
30 de novembro de 2016O mercado está discutindo estratégias para a criação de microservices com o objetivo de escalar o processamento das aplicações. Essa transição de conceitos é fundamental nos projetos de software modernos e é um trabalho que deve nascer desde o início durante a concepção da arquitetura.
Na prática o resultado de uma implementação de microservices é permitir escalar o processamento de porções especificas de regras do negócio. Em aplicações mal projetadas e/ou legadas ou aplicações “monolíticas” não viável visto que, você replica toda a aplicação gerando o consumo de recursos desnecessário apenas para expor aquela porção necessária.
Um projeto de software tem uma série de ciclos e um deles é justamente a publicação da aplicação pelos ambientes. Uma aplicação monolítica segue um único fluxo até chegar o momento de liberar e publicar em produção. Para gerenciar esse fluxo manualmente já é muito trabalhoso e se pensarmos na decomposição em micro serviços você ampliará o seu risco e a complexidade para ter que orquestrar as publicações paralelas dos serviços como se fossem várias aplicações.
A metodologia DevOps oferece justamente um fluxo para que você possa orquestrar a gestão da aplicação e serviços do momento que entra em desenvolvimento até a publicação e operação no ambiente produtivo. Por isso eu recomendo inclusive adiantar os processos de maturidade em DevOps permitindo ganhos de escala, automação e segurança na gestão dos microservices.
O modelo de microservices é bastante relevante principalmente para escalar a inteligência do negócio em contêineres e serviços de nuvem. Porém a sustentação do desenvolvimento não pode ser ignorada como o planejamento e gestão do projeto, desenvolvimento orientado a qualidade continua com automação de testes, projeto de arquitetura e serviços, automação de build, automação de release e o monitoramento em produção já previstos no DevOps.
Toda a estratégia do DevOps pode ser suportada em uma plataforma como VSTS (Visual Studio Team Services) garantindo aderência aos processos de gestão ágil como Scrum / Kanban e demais ferramentas de apoio a Continous Integration / Continous Delivery independente da sua plataforma de desenvolvimento.
Portanto a minha recomendação é que você inicie higienizando a aplicação, de preferência em um projeto novo sem dependências e cima dele construa o seu barramento de serviços de forma que possa instanciar micro serviços e atrele toda a gestão ao DevOps.
Até a próxima !!!
Ramon Durães
CEO, 2PC
MVP, Visual Studio
PSM, CSM, LKU
Esse artigo é um oferecimento da 2PC. Entre em contato para modernização de aplicações, Devops, Visual Studio e arquitetura de software.