Lar O negócio Microsserviços: o que são e por que sua empresa deve se importar

Microsserviços: o que são e por que sua empresa deve se importar

Vídeo: O novo índice de empresas ESG - SPBRESBP (Outubro 2024)

Vídeo: O novo índice de empresas ESG - SPBRESBP (Outubro 2024)
Anonim

O cenário de software corporativo está repleto de tecnologias buzzy. Escrevemos sobre muitos deles, seja blockchain, desenvolvimento de baixo código ou outras tendências emergentes que estão mudando a maneira como trabalhamos. Uma nova palavra da moda que você talvez nunca tenha ouvido falar antes é "microsserviços".

Isso é por design. Os microsserviços são uma maneira diferente de arquitetar software com base em um conjunto de componentes modulares entrelaçados, em vez da idéia tradicional de um "monólito" - um aplicativo composto por uma montanha de código cada vez maior. Os aplicativos baseados em microsserviços não parecem diferentes da interface do usuário (interface do usuário), seja em um aplicativo complexo de data center ou em um aplicativo da Web ou móvel hospedado em uma infraestrutura de nuvem escalável.

A razão pela qual as empresas devem se importar com os microsserviços é que, nos bastidores, a arquitetura pode ajudar suas equipes de desenvolvimento e TI a inovar mais rapidamente, gerenciar a infraestrutura e reduzir o custo e a complexidade de adicionar novos recursos e funcionalidades a um aplicativo. Al Hilwa, diretor de programa de pesquisa de software para desenvolvimento de aplicativos da IDC, explicou como ele forneceria microsserviços para um executivo, mantendo em mente os desafios culturais e tecnológicos.

"Ao construir novos sistemas, provavelmente o ponto principal é reconhecer que um único microsserviço deve ser construído por uma equipe pequena", disse Hilwa. "Em segundo lugar, a tolerância à diversidade nas linguagens de programação e nos fluxos de trabalho dos desenvolvedores é frequentemente implícita pela natureza independente de uma cultura geral de microsserviços. O passo principal para um executivo é criar software de forma incremental usando equipes pequenas, cada uma criando um módulo coerente com um código publicado. A vantagem é que os módulos independentes podem evoluir em um ritmo muito mais rápido independentemente, desde que as APIs publicadas sejam gerenciadas de maneira organizada ".

O que são microsserviços, realmente?

Hilwa escreveu um relatório da IDC de 2015 intitulado "O surgimento de microsserviços como uma nova abordagem arquitetônica para a construção de novos sistemas de software". No relatório, ele define microsserviços como uma arquitetura granular de software, na qual os componentes do aplicativo são projetados e evoluídos independentemente para atender aos requisitos de interoperabilidade definidos pela API (ou seja, vinculados ao aplicativo como um todo). Porém, os microsserviços não existem no vácuo. Uma nova arquitetura requer forte suporte organizacional e uma mudança na cultura de TI.

Os microsserviços também não são definidos por nenhuma tecnologia específica, mas pela evolução do conceito de longa data de arquitetura orientada a serviços (SOA), aumentada pelo advento dos contêineres e pelo aumento da automação por meio de abordagens de desenvolvimento, como entrega contínua (CD) e integração contínua (CI).

"As organizações que usam microsserviços hoje em dia geralmente são motivadas pelo desejo de um ritmo mais rápido de evolução do serviço", disse Hilwa. "Assim, na maioria dos casos, os microsserviços usam a automação de CI / CD em grande parte. No entanto, o ritmo da implantação real pode ser diferente entre os serviços. Acho que a chave é dar uma boa olhada na cultura interna e ser verifique se você deseja tolerar maior descentralização e diversidade na pilha de tecnologias ".

Por "cultura interna", Hilwa se refere amplamente ao DevOps, uma filosofia que combina desenvolvimento de software, operações de TI e garantia de qualidade (QA) em um único fluxo de trabalho colaborativo. A startup de software DevOps, a HashiCorp e seus fundadores, são há muito tempo defensores dos microsserviços. A empresa, que recentemente garantiu uma rodada de financiamento de US $ 24 milhões da Série B, conta com empresas como Cisco, DigitalOcean, Mozilla e Stripe entre seus usuários de código aberto e clientes corporativos.

Os microsserviços são essenciais para a maneira como a HashiCorp aborda o desenvolvimento da infraestrutura do DevOps e os fluxos de trabalho de aplicativos em suas populares ferramentas de código aberto e no crescente conjunto de produtos empresariais. Armon Dadgar, CTO e co-fundador da HashiCorp, quebrou a diferença entre monólitos e microsserviços usando uma analogia simples: Amazon e eBay.

"Pense na Amazon e no eBay como aplicativos únicos. Do ponto de vista do usuário final, eles se parecem, mas, nos bastidores, as empresas adotaram abordagens opostas na maneira como criaram e arquitetaram seus aplicativos", disse Dadgar. "A Amazon desde o início tem sido um pacote de microsserviços; atua como um único aplicativo. Mas se você fizer a pesquisa, o catálogo de produtos, carrinho de compras, faturas, fluxos de pedidos e dividir essas funções, os dois aplicativos estão executando em diferentes máquinas ".

A analogia da Amazon também se estende à forma como a própria Amazon está estruturada. Dadgar explica abordagens tecnológicas, como microsserviços, como ferramentas para apoiar o movimento maior do processo em direção ao DevOps. "Two Pizza Rule", de Jeff Bezos, funciona para que apenas cinco a oito pessoas estejam em uma equipe da Amazon. Se a equipe aumentar, ela se divide em duas.

A hierarquia organizacional da Amazon começa a mapear em direção ao que Dadgar descreveu como "decomposição de funcionalidade". Separadas em um nível de arquitetura organizacional e modular, toda equipe tem a capacidade de desenvolver e experimentar mais livremente, sem a necessidade de coordenar todas as mudanças - enquanto continua funcionando como parte de um único aplicativo coeso.

"O eBay adotou a abordagem monolítica; eles construíram todo o eBay como uma longa linha de 50 milhões de aplicativos de código", disse Dadgar. "A abordagem dos microsserviços é mais dolorosa no começo, porque os problemas de modularidade e interoperabilidade são aqueles que não existem em um monólito. Mas as coisas começam a se deteriorar quando o aplicativo cresce muito. Em um monólito, não há decomposição.

"Pense em centenas ou milhares de desenvolvedores colaborando em uma única base de código e tentando coordenar. Uma equipe de controle de qualidade que adiciona funcionalidade em um lado do aplicativo pode quebrar algo do outro lado porque não há uma separação clara de funções e responsabilidades. Para corrigir você começa a precisar de mais e mais coordenação entre os gerentes de projeto e um processo de controle de qualidade que pode levar semanas e desenvolvimento de gargalos, não importa a rapidez com que essa equipe trabalhe. São muitos cozinheiros na cozinha ".

Contêineres e microsserviços em um mundo DevOps

A maneira como sua empresa implementa uma arquitetura de microsserviços ajudará bastante a determinar se o investimento é ou não compensador. Os microsserviços são muito trabalhosos, principalmente na integração da API necessária para garantir que todos os serviços se comuniquem. Hilwa explicou que é ainda mais complicado ao tentar integrar microsserviços em um sistema existente; ele recomenda que as empresas criem novos sistemas sempre que possível, em vez de re-arquitetar um aplicativo monolítico legado para microsserviços.

"As arquiteturas tradicionais de sistemas geralmente envolvem sistemas de banco de dados grandes e complexos com esquemas normalizados elaborados", disse Hilwa. "A fatoração desses sistemas em componentes menores com seus próprios sistemas independentes requer muito trabalho de design de banco de dados e reescreve efetivamente a maior parte da lógica do aplicativo principal. Isso geralmente é proibitivo em termos de custo e tempo na maioria dos casos".

Se você re-arquitetar um aplicativo herdado, Hilwa o aconselha a fazê-lo de forma incremental. Embora ainda mais importantes que a integração da API, os microsserviços não funcionam sem a cultura do DevOps. Dadgar, da HashiCorp, disse que, quando se trata do guarda-chuva maior do DevOps, os microsserviços se tornam uma ferramenta para facilitar uma mudança maior no processo, para mudar fundamentalmente os fluxos de trabalho pelos quais entregamos aplicativos. Ele apontou o Tao da HashiCorp estabelecido quando ele e o cofundador Mitchell Hashimoto fundaram a empresa: simples, modular e compostável.

"DevOps, em certo sentido, é um termo ainda mais sobrecarregado do que microsserviços", disse Dadgar. "Mas um negócio é composto por pessoas com diferentes especialidades de conhecimento: desenvolvedores, operadores, agentes de segurança. E então você tem processo, a maneira como organiza essas pessoas. Depois, você tem as ferramentas para apoiar esse processo, que é onde microsserviços e contêineres entre."

Os contêineres, popularizados pela explosão de código aberto do Docker, estão longe de ser a única ferramenta que as empresas podem usar para facilitar os microsserviços. Hilwa, da IDC, disse que os contêineres são usados ​​em aplicativos modernos como parte dos fluxos de trabalho de CI / CD e, em alguns casos, durante a implantação na produção. Mas ele disse que os microsserviços também podem alavancar máquinas virtuais (VMs), sem a necessidade de contêineres.

Dito isso, quando se trata de como as nuvens de negócios estão evoluindo, os contêineres e microsserviços do Docker são uma combinação de ferramentas potente que está sendo adotada por empresas de todas as formas e tamanhos - desde startups como HashiCorp a gigantes empresariais como Oracle. Dadgar, da HashiCorp, disse que os contêineres são os meios convenientes pelos quais Dev e Ops (e, por associação, equipes e serviços diferentes) se comunicam.

"Qual é o artefato que estamos passando entre desenvolvedores e operadores? O que estamos fluindo e construindo? Os contêineres são uma unidade conveniente para repassar", disse Dadgar. "Pense em um produto de remessa empresarial global em todo o mundo. Seja um navio cargueiro, um trem de carga ou um caminhão, é a mesma unidade que flui por todo o sistema".

DevOps e microsserviços ainda estão longe da adoção generalizada das empresas, mas o mercado está crescendo apenas. De acordo com o relatório da IDC, a arquitetura de microsserviços entrará em uma fase de maturação nos próximos cinco anos. Essa maturidade ocorrerá logo após a cultura DevOps atingir 50% das organizações até 2020, a evolução contínua das ferramentas de automação de software e o domínio da infraestrutura de nuvem escalável e barata fornecida por empresas como Amazon Web Services (AWS) e Microsoft Azure.

Dadgar disse que, mesmo com a pequena fração de empresas adotando DevOps e microsserviços no momento, a HashiCorp já está com excesso de assinaturas. Ele atingiu sua primeira receita de sete dígitos após apenas nove meses de vendas corporativas, além de uma comunidade de código aberto no GitHub de vários milhões de usuários ativos mensais. Os microsserviços são apenas uma parte do pipeline de ferramentas de aplicativos de fluxo de trabalho da HashiCorp e do maior roteiro de infraestrutura do DevOps. Mas a modularidade e a interoperabilidade abaixo de tudo o que a empresa cria alimentou a ascensão meteórica de uma das mais recentes startups de software do Vale do Silício.

"Quatro anos atrás, quando começamos, participávamos de reuniões e apresentávamos nossa visão de como a infraestrutura seria gerenciada", disse Dadgar. "Não rimos muito da sala; sabíamos que era cedo. Mas agora nossas ferramentas como a Terraform estão a caminho de se tornar padrões da indústria. O que veremos é um efeito dominó da pressão da concorrência e, no a longo prazo, nosso papel estará trabalhando com CIOs e CTOs para entender a mudança de processo que eles precisam realizar.

"Pense na Toyota naquela época", continuou Dadgar. "Você tinha várias montadoras construindo produtos, mas o custo era mais alto do que deveria ser. A Toyota não reinventou o que era um carro; eles eram apenas mais rigorosos e incrementais sobre o processo, e passaram do riso ao estoque, forçando o O restante do setor adota o mesmo conjunto de práticas para permanecer competitivo.Neste momento, temos líderes do setor perguntando como eles podem obter uma vantagem competitiva, e sua resposta é adotar as práticas dos Googles e Amazonas do mercado. ponto, atingirá uma massa crítica ".

Microsserviços: o que são e por que sua empresa deve se importar