BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Microservices no Spotify

Microservices no Spotify

Há alguns anos, o Spotify já adota os microservices em grande escala. O vice presidente de engenharia do Spotify, Kevin Goldsmith, abordou durante a conferência GOTO Berlin 2015 o uso dos microservices e como são importantes na descentralização da arquitetura da companhia. Foi explicitado que os microservices são de fácil aplicabilidade e também são úteis em aplicações monolíticas.

Goldsmith comenta que os sistemas devem ser construídos de modo que possam ser escalados de forma independente. Um sistema que possui baixo acoplamento entre diversos módulos, poderia ser um exemplo. O Spotify trabalha com equipes autônomas que são formadas por colaboradores com o perfil full-stack. Cada equipe tem a liberdade de atuar da forma que lhe convier. Com a utilização da abordagem de microservices, o Spotify possui a facilidade de criar diversas equipes autônomas.

Isso faz com que os produtos possam se tornem escaláveis, contribuindo com a redução dos gargalos que geralmente ocorrem no dia a dia dos sistemas. Além disso, os microservices são mais fáceis de se testar, implantar e monitorar, além de serem facilmente integradas com as aplicações monolíticas.

Uma grande vantagem, é que os microservices podem ser executados em servidores que possuem versões mais antigas, e podem continuar sendo executados até que sejam descontinuados ou atualizados por versões mais recentes.

O microservice tem como foco, apenas uma única responsabilidade. Consequentemente, essa prática diminui o impacto em uma aplicação que esteja com algum tipo de problema.

Para se trabalhar com microservices, é necessária uma boa documentação e ferramentas de discovery. O Spotify utiliza uma ferramenta que apresenta uma visão geral de todo o sistema e a iteração com seus componentes, além de possuir uma documentação que demonstra todos os microservices disponíveis.

Os microservices também possui desvantagens, e uma delas é necessidade dos serviços se comunicarem, o que acaba gerando uma enorme latência no sistema. O Spotify tem realizado algumas ações para diminuir a latência, e uma das delas é a construção de serviços de agregação. Esse tipo de prática, faz com que o sistema envie somente a quantidade de dados necessários para que o cliente possa interagir com as informações requisitadas ao sistema. Isso faz com o que tráfego de dados melhore e por consequência a latência diminui.

O risco da utilização dos microservices, é que as equipes autônomas possam produzir o mesmo conteúdo. O Spotify impede que isso aconteça, fazendo com que cada equipe demonstre o que está sendo feito. Cada equipe possui a sua missão, e as mesmas não se sobrepõem. Painéis são utilizados por pessoas em múltiplas equipes, para que possam aprender umas com as outras.

Os desenvolvedores implantam os seus próprios microservices e também possuem suas responsabilidades sobre as operações. Eles possuem o apoio de ferramentas, que tornam o desenvolvimento mais fácil.

Durante a sua fala, Goldsmith disse que o Spotify recolhe uma "quantidade muito pequena de dados" para análise de desempenho do lado do cliente, e que possuem equipes dedicadas nessa função.

Um espectador perguntou a Goldmisth como o Spotify consegue manter a sincronia entre às equipes. O engenheiro respondeu da seguinte maneira: "Nós não as sincronizamos". O objetivo é fazer com que existam poucas dependências no sistemas, e os microservices são muito úteis nesse quesito. Quando o sistema está realizando múltiplas atividades, é sugerido que haja uma refatoração, e o transforme em múltiplos sistemas independentes.

É necessário que exista um equilíbrio nas equipes e consequentemente com os requisitos gerais que devem ser construídos. As equipes devem possuir as ferramentas necessárias para a realização das suas atividades. No Spotify, não existem rigidez para às regras, mas às vezes torna-se doloroso em situações não tão obvias. Essa abordagem permite a criação das próprias práticas, e com o passar do tempo, as mesmas evoluem naturalmente. As equipes que buscam outras formas de trabalho, devem ter a consciência que durante a caminhada, serão necessários muitos esforços para que possam alcançar os seus objetivos.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT