{"id":24167,"date":"2026-09-16T10:56:17","date_gmt":"2026-09-16T10:56:17","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/como-por-que-adotamos-service-mesh-vulcand-nginx\/"},"modified":"2026-09-16T10:56:17","modified_gmt":"2026-09-16T10:56:17","slug":"como-por-que-adotamos-service-mesh-vulcand-nginx","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/","title":{"rendered":"Como e por que adotamos o service mesh com Vulcand e Nginx"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">No \u00faltimo ano, o service mesh virou uma verdadeira tend\u00eancia, gra\u00e7as ao lan\u00e7amento do\u00a0<a href=\"https:\/\/istio.io\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Istio<\/a>\u00a0(uma colabora\u00e7\u00e3o conjunta entre IBM, Google e Lyft) e \u00e0 ado\u00e7\u00e3o do\u00a0<a href=\"https:\/\/linkerd.io\/\" target=\"_tabs\" rel=\"noopener noreferrer\">linkerd<\/a>\u00a0por grandes empresas, como PayPal e Ticketmaster.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ent\u00e3o, o que \u00e9 um service mesh, por que o adotamos no Mailgun e como o usamos para entregar nosso software?<\/p>\n\n\n\r\n    <nav data-content-type=\"longform\" class=\"toc-block longform-spacings px-5 py-6 px-md-6 px-lg-7 py-md-7 bg-light fs-sm rounded-lg\" aria-labelledby=\"toc-title-2241\"><p class=\"h5 m-0\" id=\"toc-title-2241\">\u00cdndice<\/p><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">01<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#o-que-e-um-service-mesh-e-por-que-usa-lo\">O que \u00e9 um service mesh e por que us\u00e1-lo?<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">02<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#onde-o-vulcand-entra\">Onde o Vulcand entra<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">03<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#como-o-mailgun-gerencia-rotas-de-service-mesh\">Como o Mailgun gerencia rotas de service mesh<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">04<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#exposicao-do-service-mesh-como-uma-api-publica\">Exposi\u00e7\u00e3o do service mesh como uma API p\u00fablica<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">05<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#conclusao\">Conclus\u00e3o<\/a><\/div><\/div><\/nav>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4695\" width=\"800\" height=\"532\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/vulcan-nginx-mailgun-service-mesh-2.png\" alt=\"Banner with Vulcan, Mailgun, and Nginx logos\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/vulcan-nginx-mailgun-service-mesh-2.png 800w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/vulcan-nginx-mailgun-service-mesh-2-300x200.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/vulcan-nginx-mailgun-service-mesh-2-768x511.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">O que \u00e9 um service mesh e por que us\u00e1-lo?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Em termos simples, um service mesh \u00e9 um software (geralmente um proxy) que lida com a comunica\u00e7\u00e3o entre servi\u00e7os de forma r\u00e1pida e resiliente. Digamos que eu seja um servi\u00e7o de usu\u00e1rio baseado em HTTP e quero entrar em contato com o servi\u00e7o de conta para verificar um usu\u00e1rio. Em uma arquitetura comum sem service mesh, o servi\u00e7o de usu\u00e1rio faria uma solicita\u00e7\u00e3o para\u00a0,\u00a0que faria o roteamento da solicita\u00e7\u00e3o direto para o balanceador de carga do servi\u00e7o, que, por sua vez, serviria como proxy da solicita\u00e7\u00e3o para o n\u00f3 de servi\u00e7o de conta, processando-a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em um service mesh, o servi\u00e7o de usu\u00e1rio faz uma solicita\u00e7\u00e3o HTTP para\u00a0,\u00a0que \u00e9 tratada pelo proxy de service mesh local. O proxy local sabe que as solicita\u00e7\u00f5es para &#8220;\/accounts&#8221; s\u00e3o tratadas pelo &#8220;account-service&#8221;, ent\u00e3o, ele roteia a solicita\u00e7\u00e3o para um n\u00f3 no mesh executando uma inst\u00e2ncia do &#8220;account-service&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A grande vantagem do service mesh \u00e9 possibilitar alta resili\u00eancia (sem um balanceador de carga como \u00fanico ponto de falha), descoberta de servi\u00e7os integrada e lan\u00e7amentos com zero tempo de inatividade. A maioria das implementa\u00e7\u00f5es modernas de service mesh oferece ainda mais recursos, mas esses fatores foram a grande motiva\u00e7\u00e3o para adotarmos uma arquitetura de service mesh.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Onde o Vulcand entra<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Em 2014, ningu\u00e9m sequer tinha ouvido falar de um service mesh. Quando come\u00e7amos o  <a href=\"https:\/\/github.com\/vulcand\/vulcand\" target=\"_tabs\" rel=\"noopener noreferrer\">vulcand<\/a>, quer\u00edamos construir um proxy reverso de alto desempenho que fornecesse um throttling inteligente de solicita\u00e7\u00f5es e nos permitisse adicionar e remover dinamicamente servi\u00e7os de back-end em tempo real, possibilitando, assim, implanta\u00e7\u00f5es com zero tempo de inatividade. Nossa inten\u00e7\u00e3o, definitivamente, n\u00e3o era criar um roteador de service mesh.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mas, logo em seguida, come\u00e7amos a imaginar o que aconteceria se, em vez de executar o vulcand como um balanceador de carga de front-end tradicional, fiz\u00e9ssemos com que todos os nossos servi\u00e7os se comunicassem entre si por meio da inst\u00e2ncia local do vulcand.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4696\" width=\"400\" height=\"400\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/excellent-let-the-load-balancing-begin.jpeg\" alt=\"Raccoon meme about load balancing with meme text\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/excellent-let-the-load-balancing-begin.jpeg 400w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/excellent-let-the-load-balancing-begin-150x150.jpeg 150w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/excellent-let-the-load-balancing-begin-300x300.jpeg 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Logo percebemos quanta liberdade isso proporcionaria. Usar o vulcand dessa forma evitaria balanceadores de carga adicionais, proporcionaria lan\u00e7amentos sem tempo de inatividade, aumentaria a resili\u00eancia e facilitaria a descoberta de servi\u00e7os. Sem querer, hav\u00edamos criado o que a ind\u00fastria um dia chamaria de service mesh.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como o Mailgun gerencia rotas de service mesh<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Existem duas linhas de pensamento para o gerenciamento de rotas de service mesh. Um modelo de governan\u00e7a central e o modelo n\u00e3o governado distribu\u00eddo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No modelo de governan\u00e7a central, a configura\u00e7\u00e3o de rotas \u00e9 armazenada e gerenciada de forma centralizada, geralmente por um arquiteto nomeado pela empresa, que tem como fun\u00e7\u00e3o garantir a consist\u00eancia das rotas de API, solucionar conflitos de rota em todo o service mesh, al\u00e9m de definir os pesos e destinos de roteamento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No modelo distribu\u00eddo, cada respons\u00e1vel pelo servi\u00e7o define as rotas que o servi\u00e7o em quest\u00e3o fornece, muitas vezes usando um prefixo de rota para evitar conflitos (por exemplo, &#8220;\/service-1\/users&#8221; n\u00e3o entraria em conflito com &#8220;\/service-2\/users&#8221;).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na\u00a0<a href=\"https:\/\/www.mailgun.com\/pt\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Mailgun<\/a>, adotamos o modelo n\u00e3o governado distribu\u00eddo para que cada servi\u00e7o fique respons\u00e1vel por informar ao vulcand sobre as rotas que fornece. Os servi\u00e7os fazem isso ao registrarem suas rotas com o vulcand por meio do etcd, durante a inicializa\u00e7\u00e3o do servi\u00e7o. Se meu servi\u00e7o tratar solicita\u00e7\u00f5es para &#8220;\/users&#8221;, ele registrar\u00e1 essa rota no vulcand. Com a rota configurada, as solicita\u00e7\u00f5es feitas \u00e0 inst\u00e2ncia local do vulcand,\u00a0,\u00a0ser\u00e3o roteadas automaticamente para o meu servi\u00e7o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Acreditamos que o modelo distribu\u00eddo nos permite fazer entregas e experimentos de forma muito mais r\u00e1pida do que se tiv\u00e9ssemos adotado um modelo de governan\u00e7a central. Ao distribuir a propriedade da configura\u00e7\u00e3o de rotas para cada servi\u00e7o, diminu\u00edmos a dificuldade de adicionar novas capacidades aos servi\u00e7os e pulamos a etapa de configura\u00e7\u00e3o extra antes de testes e implanta\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como o vulcand armazena sua configura\u00e7\u00e3o no [etcd, os servi\u00e7os conseguem adicionar e atualizar novas rotas com facilidade. Para diminuir ainda mais a dificuldade, temos bibliotecas em Go e Python que facilitam a publica\u00e7\u00e3o de rotas no etcd. Qualquer pessoa com acesso de leitura ao etcd pode inspecionar quais rotas pertencem a um servi\u00e7o, algo que pode ajudar a evitar conflitos de rota. Mesmo assim, podem acontecer conflitos de rota, por\u00e9m, isso \u00e9 bem raro e, na maioria das vezes, logo percebido nos testes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O modelo n\u00e3o governado d\u00e1 um poder e uma flexibilidade enormes \u00e0 nossa equipe de desenvolvimento, mas, sem o devido controle, pode conceder acesso indevido \u00e0 nossa base de usu\u00e1rios externos, expondo rotas e funcionalidades que preferimos n\u00e3o revelar. Para controlar quais rotas e servi\u00e7os a base de usu\u00e1rios externos pode acessar, usamos uma camada extra de proxy para que apenas as rotas de servi\u00e7o adequadas fiquem expostas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exposi\u00e7\u00e3o do service mesh como uma API p\u00fablica<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Usamos o [nginx](https:\/\/nginx.org\/) para expor rotas espec\u00edficas em nosso service mesh para uso p\u00fablico. A arquitetura resultante se parece com algo assim:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4697\" width=\"950\" height=\"950\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/service-mesh-architecture-diagram.png\" alt=\"Flow chart for load balancer architecture\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/service-mesh-architecture-diagram.png 950w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/service-mesh-architecture-diagram-150x150.png 150w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/service-mesh-architecture-diagram-300x300.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/service-mesh-architecture-diagram-768x768.png 768w\" sizes=\"(max-width: 950px) 100vw, 950px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">No front-end, fazemos o balanceamento de carga de um pool de workers do nginx, que atuam como proxy de solicita\u00e7\u00f5es espec\u00edficas para o nosso service mesh por meio de inst\u00e2ncias locais do vulcand em execu\u00e7\u00e3o. A execu\u00e7\u00e3o do vulcand localmente em cada n\u00f3 do nginx permite que o n\u00f3 se torne um membro do service mesh. Isso nos ajuda a evitar um \u00fanico ponto de falha, caso haja algum problema em um n\u00f3 do nginx.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em nossa configura\u00e7\u00e3o do nginx, adicionamos diretivas de localiza\u00e7\u00e3o para as rotas de service mesh espec\u00edficas que queremos expor. Por exemplo, a seguinte diretiva aceita rotas iniciadas com &#8220;\/users&#8221; e as encaminha ao vulcand para que o roteamento ao servi\u00e7o adequado seja feito.<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                C#                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copiar para a \u00e1rea de transfer\u00eancia\" data-clipboard-success-label=\"Copiado!\" data-clipboard-error-label=\"N\u00e3o foi poss\u00edvel copiar\" data-tooltip=\"Copiar para a \u00e1rea de transfer\u00eancia\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copiar para a \u00e1rea de transfer\u00eancia\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-csharp\">\r\n                                <code id=\"code_0_content\" class=\"language-csharp\">\r\n\r\n                                    location ~ ^\/users\/($|\/.*$) {rn            limit_req zone=api burst=280 nodelay;rn}rnupstream vulcand {rn         server localhost:9003 fail_timeout=30s;rn }\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Se um servi\u00e7o interno usar um modelo de prefixo de caminho, poder\u00edamos fazer o nginx reescrever as solicita\u00e7\u00f5es para atingir servi\u00e7os espec\u00edficos pelo prefixo. Por exemplo, as solicita\u00e7\u00f5es para &#8220;\/users&#8221; poderiam ser reescritas para &#8220;\/user-service\/users&#8221; dentro do service mesh, assim, o user-service responderia a tal solicita\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Usar o nginx desse jeito nos d\u00e1 uma esp\u00e9cie de DMZ para as solicita\u00e7\u00f5es externas, antes de entrarem no service mesh. Isso nos protege contra solicita\u00e7\u00f5es HTTP inseguras e limita o acesso dos clientes ao nosso service mesh.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O modelo de service mesh nos permite criar equipes de desenvolvimento pequenas focadas em entregar produtos de alto desempenho aos nossos clientes, de forma r\u00e1pida e confi\u00e1vel. Aproveitar uma camada de proxy do nginx nos fornece as ferramentas necess\u00e1rias para controlar e dimensionar nossos servi\u00e7os, visando atender \u00e0s necessidades dos nossos clientes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tem interesse em trabalhar no Mailgun? Estamos contratando! Al\u00e9m disso, h\u00e1 diversas vagas de desenvolvimento dispon\u00edveis.\u00a0<a href=\"https:\/\/mailgun.recruitee.com\/?utm_source=mailgun&amp;utm_medium=blog&amp;utm_campaign=service-mesh-1710\" target=\"_tabs\" rel=\"noopener noreferrer\">Confira nossas vagas atuais aqui<\/a>!<\/p>\n\n\n\r\n    <aside data-content-type=\"longform\"  class=\"banner-block longform-spacings rounded-lg shadow-lg px-5 py-6 px-md-6 py-md-7 p-lg-7 bg-light\" data-theme=\"dark\" aria-labelledby=\"banner-block-block_3558477c626a83d9c1bbc3d232726266\">\r\n                    <p class=\"text-uppercase section-caption text-body-color\">\r\n                Cadastre-se            <\/p>\r\n                            <p class=\"h4 text-accent fw-bold\" id=\"banner-block-block_3558477c626a83d9c1bbc3d232726266\">\r\n                \u00c9 f\u00e1cil come\u00e7ar. E \u00e9 gr\u00e1tis.            <\/p>\r\n                            <div class=\"mb-0 text-body-color\">\r\n                                    <div class=\"content-body mb-0 text-body-color\">Veja o que voc\u00ea pode alcan\u00e7ar com a melhor plataforma de entrega de e-mail do mundo.<\/div>\r\n                            <\/div>\r\n        \r\n        <div class=\"text-start mt-5\"><a href=\"https:\/\/signup.mailgun.com\/new\/signup\"  class=\"btn btn-secondary\" >Get started<\/a><\/div>\r\n    <\/aside>\r\n\r\n","protected":false},"excerpt":{"rendered":"<p>No \u00faltimo ano, o service mesh virou uma verdadeira tend\u00eancia. Mas o que \u00e9 service mesh, por que o adotamos e como o usamos para entregar nosso software?<\/p>\n","protected":false},"author":35,"featured_media":4555,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[22],"class_list":["post-24167","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-product"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>O que \u00e9 service mesh? - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"No \u00faltimo ano, o service mesh virou uma verdadeira tend\u00eancia. Mas o que \u00e9 service mesh, por que o adotamos e como o usamos para entregar nosso software?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"O que \u00e9 service mesh? - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"No \u00faltimo ano, o service mesh virou uma verdadeira tend\u00eancia. Mas o que \u00e9 service mesh, por que o adotamos e como o usamos para entregar nosso software?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-por-que-adotamos-service-mesh-vulcand-nginx\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-por-que-adotamos-service-mesh-vulcand-nginx\\\/\",\"name\":\"O que \u00e9 service mesh? - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-por-que-adotamos-service-mesh-vulcand-nginx\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-por-que-adotamos-service-mesh-vulcand-nginx\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"datePublished\":\"2026-09-16T10:56:17+00:00\",\"description\":\"No \u00faltimo ano, o service mesh virou uma verdadeira tend\u00eancia. Mas o que \u00e9 service mesh, por que o adotamos e como o usamos para entregar nosso software?\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-por-que-adotamos-service-mesh-vulcand-nginx\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-por-que-adotamos-service-mesh-vulcand-nginx\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-por-que-adotamos-service-mesh-vulcand-nginx\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-por-que-adotamos-service-mesh-vulcand-nginx\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/inicio\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Como e por que adotamos o service mesh com Vulcand e Nginx\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#website\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"description\":\"Poderosas APIs de e-mail transacional que permitem a voc\u00ea enviar, receber e rastrear e-mails, criadas com os desenvolvedores em mente. Saiba mais hoje mesmo!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#organization\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Transactional Email API Service For Developers | Mailgun\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"O que \u00e9 service mesh? - Transactional Email API Service For Developers | Mailgun","description":"No \u00faltimo ano, o service mesh virou uma verdadeira tend\u00eancia. Mas o que \u00e9 service mesh, por que o adotamos e como o usamos para entregar nosso software?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/","og_locale":"pt_BR","og_type":"article","og_title":"O que \u00e9 service mesh? - Transactional Email API Service For Developers | Mailgun","og_description":"No \u00faltimo ano, o service mesh virou uma verdadeira tend\u00eancia. Mas o que \u00e9 service mesh, por que o adotamos e como o usamos para entregar nosso software?","og_url":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","og_image":[{"width":720,"height":448,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/","url":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/","name":"O que \u00e9 service mesh? - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","datePublished":"2026-09-16T10:56:17+00:00","description":"No \u00faltimo ano, o service mesh virou uma verdadeira tend\u00eancia. Mas o que \u00e9 service mesh, por que o adotamos e como o usamos para entregar nosso software?","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-por-que-adotamos-service-mesh-vulcand-nginx\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mailgun.com\/pt\/inicio\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mailgun.com\/pt\/blog\/"},{"@type":"ListItem","position":3,"name":"Como e por que adotamos o service mesh com Vulcand e Nginx"}]},{"@type":"WebSite","@id":"https:\/\/www.mailgun.com\/pt\/#website","url":"https:\/\/www.mailgun.com\/pt\/","name":"Transactional Email API Service For Developers | Mailgun","description":"Poderosas APIs de e-mail transacional que permitem a voc\u00ea enviar, receber e rastrear e-mails, criadas com os desenvolvedores em mente. Saiba mais hoje mesmo!","publisher":{"@id":"https:\/\/www.mailgun.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mailgun.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.mailgun.com\/pt\/#organization","name":"Transactional Email API Service For Developers | Mailgun","url":"https:\/\/www.mailgun.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.mailgun.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","width":512,"height":512,"caption":"Transactional Email API Service For Developers | Mailgun"},"image":{"@id":"https:\/\/www.mailgun.com\/pt\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog\/24167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/users\/35"}],"version-history":[{"count":1,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog\/24167\/revisions"}],"predecessor-version":[{"id":24168,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog\/24167\/revisions\/24168"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/media\/4555"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/media?parent=24167"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog_category?post=24167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}