Microsserviços: entendendo o que são e seus benefícios
Até cerca de 2013, as empresas geralmente criavam software corporativo construindo aplicativos como unidades únicas com grandes bases de código e uma arquitetura monolítica. À medida que o software se tornou mais complexo e a computação em nuvem ganhou popularidade, essa abordagem se tornou menos prática.
O advento dos produtos de software como um serviço (aplicativos fornecidos na nuvem) permitiu que as empresas usassem provedores, como a Amazon Web Services, para criar novos servidores e adicionar redundância rapidamente. Isso garantiu que os serviços permanecessem on-line durante upgrades. Também estabeleceu uma nova era de velocidade e agilidade. Os usuários começaram a esperar upgrades e melhorias rápidos, levando as empresas a alterar seus processos de desenvolvimento.
As empresas começaram a dividir os aplicativos em serviços ou microsserviços menores e independentes. Por exemplo, em vez de incluir uma caixa de entrada de mensagens como parte de uma plataforma monolítica de comércio eletrônico, elas podem criar um microsserviço separado para essa funcionalidade.
Paralelamente, os desenvolvedores começaram a trabalhar em grupos menores e mais especializados, modificando e aprimorando serviços individuais sem risco para todo o aplicativo. Esses grupos geralmente assumiam também a responsabilidade pelas operações de seu código — um modelo chamado DevOps. Para facilitar essas alterações, os gerentes de projeto começaram a desenvolver novas metodologias, como a abordagem ágil, que divide os projetos em lançamentos menores e mais frequentes.
Continue lendo para saber mais sobre a anatomia dos aplicativos baseados em microsserviços. Além disso, descubra como o Compass da Atlassian reduz a complexidade e permite que os desenvolvedores colham os benefícios desse modelo arquitetônico.
Teste o Compass grátis
Aprimore a experiência de desenvolvedor, catalogue todos os serviços e melhore a integridade do software.
O que são microsserviços?
Um microsserviço é uma função responsável por uma única parte da lógica (exceto pelos microsserviços de domínio, explicados abaixo). Vários microsserviços se combinam para criar aplicativos distribuídos, como o Jira Software.
Há três tipos de microsserviços:
- Os microsserviços de domínio combinam vagamente os serviços com a funcionalidade relacionada.
- Os microsserviços de integração facilitam a interação entre aplicativos não relacionados.
- Os microsserviços de unidade de trabalho lidam com funções singulares.
Os microsserviços interagem entre si usando interfaces de programação de aplicativos (APIs). Os desenvolvedores que trabalham em serviços individuais podem aprender o funcionamento interno dos outros microsserviços, o que é outra vantagem sobre a arquitetura monolítica.
A arquitetura baseada em microsserviços oferece muitos benefícios, mas também aumenta a complexidade. É por isso que a Atlassian desenvolveu o Compass — para ajudar as empresas a simplificarem os processos à medida elas que crescem. Essa plataforma extensível para experiência do desenvolvedor reúne todas as informações sobre resultados de engenharia e colaboração da equipe em um local central e pesquisável.
Princípios fundamentais dos microsserviços
A arquitetura baseada em microsserviços tem várias funções. Os desenvolvedores podem desenvolver e implementar seus serviços de forma independente usando as linguagens e tecnologias adequadas aos seus componentes.
A comunicação entre microsserviços é baseada em API, permitindo o acesso a dados de várias fontes sem modificação. Os serviços individuais podem ser dimensionados com base na demanda, economizando custos e garantindo a disponibilidade.
Esses atributos tornam os aplicativos distribuídos baseados em microsserviços flexíveis e fáceis de manter.
Benefícios dos microsserviços
Os microsserviços oferecem muitas vantagens. Eles simplificam o desenvolvimento e o gerenciamento de projetos. Às vezes, podem eliminar a necessidade de equipes de operações separadas, pois os desenvolvedores podem lidar com as operações dos microsserviços que criam.
Alguns outros benefícios dos microsserviços incluem:
Resiliência e isolamento de falhas
Um erro afeta todo o aplicativo em arquiteturas monolíticas. Mas os microsserviços são independentes. Uma falha não afetará as outras partes do aplicativo.
Agilidade
Dividir os aplicativos em partes menores acelera o desenvolvimento. Isso permite que as equipes criem, testem e implementem software com mais rapidez.
Diversidade tecnológica
Os microsserviços permitem que os desenvolvedores escolham as ferramentas e as tecnologias certas para o trabalho. Isso aumenta a eficiência e a produtividade.
Manutenção aprimorada
A capacidade de testar componentes individuais facilita a localização e a correção de bugs sem colocar todo o aplicativo off-line.
Desafios dos microsserviços
A arquitetura baseada em microsserviços tem muitos benefícios, mas também traz desafios.
Um desafio dos microsserviços é que os serviços independentes geram registros. Essa é uma desvantagem em comparação com os registros centralizados dos monólitos, que fornecem uma única fonte confiável para desenvolvedores e equipes de operações. O monitoramento e o gerenciamento da infraestrutura também são mais complicados, pois existem muitas peças móveis. É um desafio testar e depurar porque, diferentemente dos monólitos, não existe um ambiente de desenvolvimento integrado (IDE).
O Compass da Atlassian pode ajudar com todos esses desafios. O Compass facilita a colaboração e permite que as empresas gerenciem as complexidades das arquiteturas distribuídas à medida que elas são dimensionadas. Ele faz isso reunindo as informações desconectadas em um local central e pesquisável.
Para que é usada a arquitetura de microsserviços?
Sites de grandes consumidores geralmente usam centenas ou milhares de microsserviços. Os microsserviços são particularmente úteis nos seguintes casos de uso e setores:
- Sites de comércio eletrônico, como o eBay, usam microsserviços separados para carrinhos de compras, aplicativos móveis e mensagens.
- Instituições financeiras como o Bank of America usam microsserviços para se comunicar com serviços externos. Elas também usam os microsserviços para lidar com funções como autorizações de usuários e exibição de transações.
Plataformas de redes sociais como Instagram e Facebook usam microsserviços para exibir feeds de notícias, mensagens, notificações e redes de amigos dos usuários.
Práticas recomendadas para gerenciar microsserviços
Ao longo dos anos, os desenvolvedores criaram dezenas de práticas recomendadas essenciais para o desenvolvimento de microsserviços. Abaixo estão alguns exemplos:
- O princípio de responsabilidade única (SRP) especifica que cada módulo ou microsserviço deve ter apenas uma função. A integração contínua (IC) do SRP é uma metodologia de controle de código-fonte que automatiza as verificações de qualidade do código antes da fusão em um projeto, permitindo a velocidade ao eliminar a necessidade de um processo de controle de qualidade separado. Essa prática recomendada de DevOps ajuda na velocidade. A IC precede a entrega contínua (CD), que executa ferramentas de construção automatizadas para manter o software pronto para implementação.
- Os Gateways de API simplificam a comunicação entre microsserviços, gerenciam a autenticação e a autorização e aumentam a segurança.
- A comunicação assíncrona entre microsserviços preserva a autonomia, reduzindo as dependências que podem retardar o funcionamento do aplicativo.
-
O controle de versão de microsserviços é fundamental quando os desenvolvedores implementam mudanças importantes, como a remoção de uma operação inteira. Essa prática suaviza as transições e minimiza a probabilidade de interrupção do serviço.
O Open DevOps da Atlassian, desenvolvido com o Jira Software, facilita que as equipes integrem automaticamente as ferramentas da Atlassian e dos parceiros, permitindo que elas se concentrem na criação e operação do software.
Gerencie melhor sua arquitetura de microsserviços com o Compass
O Compass da Atlassian é uma plataforma de experiência do desenvolvedor que reúne arquitetura de software distribuída e equipes colaborando em um só lugar. Ele fornece uma visão geral conveniente de todos os componentes e serviços onde a equipe trabalha. Ele também inclui um catálogo de componentes de software para ajudar os desenvolvedores a encontrar facilmente o que desejam.
O Compass permite fácil gerenciamento de componentes, rastreamento de propriedade e monitoramento de relacionamentos. Ele também acompanha as mudanças em tempo real.
Integrar o Compass em seu ambiente de desenvolvimento é simples devido à sua interface de usuário personalizável e à compatibilidade com ferramentas internas e de terceiros. Aprenda a gerenciar sua arquitetura de microsserviços com o Compass e como ele reúne informações desconectadas em um local central e unificado.
Microsserviços: perguntas frequentes
Quais ferramentas as pessoas costumam usar em microsserviços?
As empresas costumam usar ferramentas de conteinerização, como Kubernetes e Docker. Elas também usam frequentemente gateways de API entre microsserviços e seus clientes. Esses gateways executam funções de tráfego de API, como autenticação, controle de acesso e balanceamento de carga.
Como os microsserviços diferem da arquitetura monolítica?
Monólitos são grandes bases de código que funcionam como um só sistema. Eles exigem tempo de inatividade do sistema para atualizações e depuração. As arquiteturas de microsserviços são aplicativos distribuídos com fragmentos de funcionalidade menores e independentes. Os desenvolvedores podem atualizar, melhorar e depurar esses módulos sem que todo o aplicativo fique off-line. Isso simplifica o dimensionamento e ajuda na velocidade de desenvolvimento.
Como os microsserviços afetam o DevOps?
Aqueles que entendem de DevOps sabem que a integração e a entrega contínuas (o pipeline de DevOps IC/CD) são os pilares das metodologias de DevOps. A natureza modular dos microsserviços se alinha perfeitamente a essa abordagem. Os microsserviços possibilitam aos desenvolvedores criar, testar e implementar rapidamente versões pequenas e frequentes.
Participe da Comunidade da Atlassian para ver mais artigos e discussões sobre microsserviços.