JA

Por que você deve estar falando sobre microsserviços

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

Em suas listas de tarefas mais enxadas mais rápidas, muitas empresas já marcaram práticas como ágil e 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.

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 do tamanho de mordidos prometem.

Microservices aren’t just for digital natives.

Microservices Coloque recursos e valor da frente e do centro

Microservices oferece 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. Os microsserviços podem funcionar com aplicativos e entre si, mas são construídos e atualizados como unidades independentes. Isso permite que os desenvolvedores criem e melhorem um microsserviço rapidamente. Uma equipe pode se concentrar em uma pequena peça de código independente - às vezes menos de uma dúzia de linhas de comprimento, às vezes mais que mil - e evita testes complexos (necessários na abordagem monolítica) para garantir que as mudanças não "quebrem" um aplicativo. Em uma arquitetura bem projetada, se um microsserviço falhar, outra versão desse microsserviço (ou talvez uma anterior que funcionou bem) surgirá em seu lugar, evitando o efeito dominó que pode travar um aplicativo monolítico. Com efeito, a arquitetura de microsserviços - que inclui um ecossistema de ferramentas de automação - funções como os compartimentos estanques em um navio, onde as inundações estão contidas e desastres evitados durante os reparos.

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.

Mesmo que um microsserviço caia, ele não derrubará todo o resto com isso.

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ções monolíticas-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.

Yet in some cases, a company might want to stick with its existing architecture. That’s because of the loosely coupled nature of microservices. Because they are self-contained, microservices rely on links—generally APIs—to communicate with applications or other microservices. This arrangement introduces a certain amount of latency, or delay, while the communications are in process (in effect, you’re hopping from one microservice to another, instead of having everything hardwired together). In most cases, the latency is inconsequential. But in certain scenarios—for example, high-volume, mission-critical transactions where speed is imperative—latency could cause real problems. Consider a high-frequency trading desk, where prices change quickly. A delay of even a fraction of a second could cause disarray (traders think they are buying or selling at a certain price, but in reality, another price applies).

Keep in mind, too, that moving to microservices means laying a fair amount of groundwork and contending with certain complexities. For example, companies need to create—and manage—the teams that will build and continually update the microservices. And there may be dozens of teams, each with a handful of engineers. Companies will also have to decide on the appropriate data architecture: will each microservice have its own repository for the data it uses or will it pull in data from a shared repository?  Microservices might perform faster and more autonomously when data is “local” but be easier to design and deploy when data is shared. There are the APIs and pipeline automation tools to manage, as well.

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, ágil, DevOps e microsserviços formam uma espécie de tríplice de última 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
= Salvo para Meu conteúdo salvo
Download Artigo