JA

Por que você deveria estar falando sobre microsserviços

por= Neveen Awad, Stuart Scantlebury e FIRAS SLEIMAN
Artigo
Saved To Meu conteúdo salvo
Download Artigo

On their leaner-faster-better to-do lists, many companies have already checked off practices like agile and DevOps , que promove a colaboração e a capacidade de resposta ao atender às necessidades dos clientes. Mas eles ainda não devem colocar suas canetas. Os microsserviços também ajudam as empresas a criar recursos e valor - em velocidade digital. Eles são comprovados e potentes. Eles também tendem a ser pouco compreendidos. Em vez de escrever um aplicativo como um grande bloco de código "monolítico", os desenvolvedores vinculam peças pequenas, independentes e facilmente reutilizáveis. Cada peça - um microsserviço - contém todo o código, interfaces e dados (ou links para os dados) necessários para executar um serviço específico ou um pequeno conjunto de serviços, como atualizar o endereço de um cliente ou excluir informações do cliente. Apreciado e pronto para uso, os microsserviços podem ser conectados a uma ampla variedade de aplicativos. Eles podem ser compartilhados - e alavancados - por uma organização.

Yet the idea behind microservices is actually simple. Instead of writing an application as one large “monolithic” block of code, developers link small, independent, easily reusable pieces. Each piece—a microservice—contains all of the code, interfaces, and data (or links to the data) necessary to perform a particular service or small set of services, such as updating a customer’s address or deleting customer information. Self-contained and ready to go, microservices can be plugged into a wide array of applications. They can be shared—and leveraged—throughout an organization.

Os microsserviços não são um segredo. Empresas como Netflix e Uber as usam há anos, criando catálogos extensos que facilitam o desenvolvimento de software em ritmo acelerado. Mas o paradigma não é apenas para nativos digitais. Ao entender como os microsserviços funcionam, seus requisitos e uma advertência ou duas, empresas de todas as origens podem se beneficiar da flexibilidade e eficiência que esses programas de tamanho morto prometem.

Os microsserviços não são apenas para nativos digitais.

Microservices Coloque os recursos e o valor da frente e do centro

Microsserviços oferecem muitos motivos para gostar deles. Por um lado, eles jogam bem com os outros. As equipes que desejam usar um microsserviço não precisam saber como funciona - o que a linguagem de programação é construída, onde seus dados são armazenados ou como é a lógica de software interna. Eles só precisam "conversar" com esse microsserviço, enviando uma solicitação - normalmente por meio de uma interface de programação de aplicativos (API) - e recebendo uma resposta. Isso significa que os desenvolvedores podem explorar de maneira fácil e rápida o que os microsserviços atendem às suas necessidades. Uma companhia de seguros de vida, por exemplo, pode construir um microsserviço "sugerir a próxima melhor ação" (levando a um agente ou consultor a fazer uma sugestão para um cliente) para seus negócios de avaliação fixa e, em seguida, reutilizá-lo em seus negócios de vida útil.

While microservices can be used to write or rewrite an application, their real value becomes apparent when they work as reusable components in multiple applications. A life insurance company, for example, might build a “suggest next best action” microservice (prompting an agent or advisor to make a suggestion to a customer) for its fixed-annuities business, and then reuse it in its term-life business.

Meanwhile, the decoupled nature of microservices allows teams to create and improve them without worrying about complex integrations. Microservices may work with applications, and with each other, yet they are built and updated as independent units. This lets developers create and improve a microservice quickly. A team can focus on one small standalone piece of code—sometimes less than a dozen lines long, sometimes more than a thousand—and avoid complex testing (necessary under the monolithic approach) to ensure that the changes don’t “break” an application.

Indeed, even if a microservice does go down, it won’t take everything else down with it. In a well-designed architecture, if a microservice fails, another version of that microservice (or perhaps an earlier one that worked well) will come up in its place, avoiding the domino effect that can crash a monolithic application. In effect, the microservices architecture—which includes an ecosystem of automation tools—functions like the watertight compartments on a ship, where flooding is contained and disaster averted while repairs are made.

Even if a microservice goes down, it won’t take everything else down with it.

Além disso, a equipe responsável por um microsserviço tem grande flexibilidade em como ele funciona. Como os microsserviços são independentes, os desenvolvedores são livres para usar qualquer linguagem de programação, ferramentas e bancos de dados melhor adequados ao seu objetivo. E eles podem alterar esses idiomas, ferramentas e bancos de dados ao longo do tempo. Enquanto as APIs continuarem trabalhando, as pessoas fora da equipe nunca precisam se preocupar com o pedigree do microsserviço. As ferramentas de automação integrantes da arquitetura de microsserviços permitem o que é conhecido como um pipeline de implantação contínua. De fato, todas as atividades tediosas e intensivas em mão-de-obra associadas a um mundo de aplicação monolítica-como testes, integração e compilação de código e provisionamento de infraestrutura-são automatizados. Com os aplicativos monolíticos, os desenvolvedores geralmente ficam tão atolados em suas listas de verificação que o ponto crucial de sua missão - identificando a melhor forma de atender e satisfazer os clientes - geralmente acaba com uma consideração secundária. Os microsserviços deslizam que dinâmico, empurrando os problemas "laterais" para o lado de onde eles pertencem. (Consulte a exposição.)

It gets better still. The automation tools integral to the microservices architecture enable what’s known as a continuous deployment pipeline. In effect, all of the tedious, labor-intensive activities associated with a monolithic application world—such as testing, code integration and compiling, and infrastructure provisioning—are automated.

The upshot is that software teams can focus more on creating and rapidly delivering business value. With monolithic applications, developers often get so bogged down in their checklists that the crux of their mission—identifying how best to serve and satisfy customers—often winds up a secondary consideration. Microservices flip that dynamic, pushing the “side” issues to the sidelines where they belong. (See the exhibit.)

When—and When Not—to Use Microservices

Given all the benefits of microservices, why not use them for everything?  To be sure, the companies at the forefront of the architecture tend to be prolific microservice coders. Uber, for instance, uses thousands of microservices to support its mobile apps, internal and infrastructure services, and products.

No entanto, em alguns casos, uma empresa pode querer manter sua arquitetura existente. Isso é por causa da natureza pouco acoplada dos microsserviços. Por serem independentes, os microsserviços dependem de links-generalmente APIs-para se comunicar com aplicativos ou outros microsserviços. Esse arranjo introduz uma certa quantidade de latência ou atraso, enquanto as comunicações estão em processo (na verdade, você está saindo de um microsserviço para outro, em vez de ter tudo juntos). Na maioria dos casos, a latência é irrelevante. Mas em certos cenários-por exemplo, transações de alto volume e missão, onde a velocidade é imperativa-a latência pode causar problemas reais. Considere uma mesa de negociação de alta frequência, onde os preços mudam rapidamente. Um atraso de até uma fração de segundo pode causar desordem (os comerciantes pensam que estão comprando ou vendendo a um determinado preço, mas, na realidade, outro preço se aplica).

Lembre -se também de que a mudança para os microsserviços significa estabelecer uma quantidade razoável de bases e lutar com certas complexidades. Por exemplo, as empresas precisam criar - e gerenciar - as equipes que criarão e atualizam continuamente os microsserviços. E pode haver dezenas de equipes, cada uma com um punhado de engenheiros. As empresas também terão que decidir sobre a arquitetura de dados apropriada: cada microsserviço terá seu próprio repositório para os dados que usa ou ele puxará dados de um repositório compartilhado?  Os microsserviços podem ter um desempenho mais rápido e mais autonomamente quando os dados são "locais", mas são mais fáceis de projetar e implantar quando os dados são compartilhados. Existem também as ferramentas de automação de APIs e pipeline a serem gerenciadas.

Perhaps the biggest challenge is determining which existing applications are best suited for a microservices makeover.

Mas talvez a maior tarefa - e desafio - esteja determinando quais aplicativos existentes são mais adequados para uma reforma de microsserviços. De fato, as empresas precisam triagem de seu portfólio, priorizando os aplicativos em que uma transição para os microsserviços trará o maior ROI. Para esse fim, recomendamos uma abordagem multifacetada:

Savvy companies will add a couple of footnotes to these steps. First, it’s good practice to re-evaluate applications on a regular basis. Business conditions—and strategic goals—change, so applications may need to be reclassified over time. The “retire” bucket is particularly likely to see rolling admissions. Second, it’s important to look holistically at applications. A key characteristic of microservices is that they lend themselves to reuse. So instead of looking at each application in a vacuum and deciding how it can be migrated to microservices architecture, companies should be looking across their portfolio, identifying opportunities to reuse microservices and avoid duplication of efforts.

Companies should be looking across their portfolio, identifying opportunities to reuse microservices and avoid duplication of efforts.

Criando uma organização pronta para microsserviços

A natureza distribuída e rápida dos microsserviços exige que as empresas façam mudanças organizacionais, técnicas e culturais. A boa notícia é que muitas empresas já estão bem naquela estrada, graças ao abraço de metodologias e DevOps ágeis. De fato, o ágil, o DevOps e os microsserviços formam uma espécie de trifecta de próxima geração na maneira como as empresas desenvolvem, implantam e atualizam aplicativos. Muitas empresas que desenvolvem microsserviços o fazem com equipes multifuncionais. Descobriu -se dos lados de negócios e tecnologia da empresa, essas equipes são responsáveis ​​por resolver problemas de negócios específicos. Esta estrutura multifuncional é um núcleo

We’ve found that organizations that succeed in creating—and prospering from—microservices embrace certain core principles and practices:

Microservices require teams with strong skills in areas like DevOps, data architecture, security, testing automation, and performance engineering.


Microservices help companies get right to the point. By focusing on self-contained bits of code and data—instead of intricate integrations—developers can deliver digital capabilities at the pace customers demand and growth requires. Readily reusable, microservices can be plugged in wherever they’re needed. Like sausages, you don’t need to know how they’re made. But instead of heartburn, you get efficiency and speed.

Authors

Managing Director & Partner

Neveen Awad

Diretor Gerente e Parceiro
Detroit

Advisor sênior

Stuart Scantlebury

Consultor sênior
Boston

Diretor Associado, BCG Platinion

FIRAS SLEIMAN

Diretor Associado, BCG Platinion
Washington, DC

Conteúdo relacionado

Salvo para Meu conteúdo salvo
Saved To Meu conteúdo salvo
Download Artigo