O que é Istio?

Copiar URL

Istio é uma service mesh open source que controla como os microsserviços compartilham dados entre si. Ela complementa e estende o Kubernetes para controlar o fluxo de tráfego, aplica políticas e monitora as comunicações em um ambiente de microsserviços. Além disso, ela inclui APIs que permitem que o Istio se integre a qualquer sistema de políticas, telemetria ou plataforma de registro. O Istio pode ser executado em uma variedade de ambientes on-premises, na nuvem, em containers e virtuais.

Arquiteturas de microsserviços dividem o trabalho de aplicações empresariais em serviços modulares para facilitar a escala e a manutenção. No entanto, à medida que uma aplicação empresarial criada em uma arquitetura de microsserviços cresce em tamanho e complexidade, fica mais difícil observar e gerenciar. A service mesh pode resolver problemas de arquitetura capturando ou interceptando tráfego entre serviços e pode modificar, redirecionar ou criar novas solicitações para outros serviços.

A arquitetura do Istio é dividida entre o data plane e o control plane. O Istio usa proxies Envoy, que apresentam alto desempenho, são implantados como sidecars e mediam o tráfego para todos os serviços dentro da service mesh. No data plane, os desenvolvedores podem oferecer o suporte do Istio a um serviço implantando um proxy sidecar no ambiente. Esses proxies sidecar residem ao lado de microsserviços e encaminham solicitações para e de outros proxies. Juntos, esses proxies formam uma rede mesh que intercepta uma comunicação entre microsserviços. O control plane gerencia e configura proxies para direcionar o tráfego. Ele também configura componentes para reforçar políticas e coletar telemetria.

Recursos da Red Hat

Gerenciamento de tráfego

O Istio fornece controle de alta granularidade do fluxo de tráfego entre serviços. Ele possui recursos avançados de roteamento de tráfego, inclusive suporte para diferentes métodos de teste e implantação como, por exemplo: 

  • Teste A/B: envolve comparar dois releases entre si.
  • Implantação canário: significa lançar uma implantação de teste menor.
  • Implantação azul-verde: significa criar dois ambientes separados e idênticos para reduzir o tempo de inatividade e mitigar riscos. 

O Istio também lida com balanceamento de carga entre instâncias de serviço. Isso significa que, com o Istio, o tráfego de saída de um serviço é interceptado pelo seu respectivo proxy sidecar. O proxy encaminha a solicitação para o destino apropriado com base nas regras de roteamento definidas no control plane.

Resiliência e descoberta de serviços 

O Istio inclui recursos para descobrir serviços automaticamente na mesh. Ele pode realizar testes de injeção de falhas para simular situações falhas e avaliar como um sistema se comporta em condições incomuns. O Istio conta com mecanismos de resiliência, como novas tentativas, tempo limite e quebras de circuito. O control plane monitora todas as instâncias de serviço e suas localizações. Quando uma nova instância de serviço é iniciada, ela se registra com o control plane.

Observabilidade e extensibilidade

O Istio proporciona observabilidade e extensibilidade. Ele oferece rastreamento distribuído por meio de integrações com ferramentas como Jaeger ou Zipkin, além de métricas e telemetria usando o Prometheus. Inclui dashboards detalhados para visualizar a comunicação entre serviços. Os proxies sidecar coletam métricas, como contagens de solicitações, latência, taxas de erro, e as enviam para o control plane ou ferramentas de monitoramento. O Istio pode ser integrado a sistemas externos, como ferramentas de monitoramento, sistemas de registro e mecanismos de políticas personalizados, permitindo que novos recursos e funcionalidades sejam adicionados à service mesh.

Segurança e aplicação de políticas

O TLS mútuo (mTLS) fornece privacidade e segurança entre duas aplicações pela autenticação mútua das duas partes. Em um modelo de TLS, a autenticação ocorre em apenas uma direção: o servidor autentica o cliente. Com o mTLS, o cliente e o servidor, ou o site e o navegador, se autenticam mutuamente. O Istio usa mTLS para garantir uma comunicação segura entre serviços. Ele também usa políticas e controle de acesso baseado em função (RBAC) para proteger APIs, além de gerenciamento de certificados e rotação automática de chaves.

O Istio centraliza a configuração para políticas de serviço, como cotas, limitação de taxa e autenticação/autorização. Ele fornece controle de alta granularidade sobre interações de serviço por meio de políticas de acesso. Políticas de autenticação, limitação de taxa ou controle de acesso são aplicadas no nível do proxy, garantindo consistência entre os serviços.

Entenda mais sobre o Istio no Red Hat Developer

O Istio conta com o modo ambiente, um novo modo de data plane que também é chamado de "sidecar-less" (sem sidecars), já que nele os pods de carga de trabalho não exigem mais proxies sidecar para participar da mesh. No modo ambiente, os proxies sidecar são substituídos por um data plane integrado à infraestrutura, que ainda mantém a segurança Zero Trust, a telemetria e o gerenciamento de tráfego do Istio. Ao eliminar sidecars, o modo ambiente também reduz os recursos de infraestrutura necessários para consumo de CPU e memória. No modo normal do Istio, o proxy Envoy toca todos os pods de aplicações, mas no modo ambiente, os pods de aplicações permanecem intocados e têm containers próprios. 

A service mesh do Istio pode ser usada para alcançar diversas metas e tarefas específicas. Confira abaixo vários casos de uso do Istio e exemplos de como a service mesh pode ajudar uma organização a atingir seus objetivos. 

Controle de tráfego de microsserviços

Uma grande plataforma de e-commerce implementa atualizações frequentes em seus serviços, como funcionalidades de carrinho, opções de pagamento e estoque. Com uma service mesh, a organização pode usar implantações canário para lançar novas funções gradualmente para uma parcela dos usuários. Ele pode usar implantações azul-verde para migrar o tráfego da versão antiga para a nova sem causar tempo de inatividade ou interrupções na experiência do usuário. O teste A/B ajuda a organização a direcionar porcentagens específicas de tráfego para diferentes versões de serviço.

Comunicação segura entre serviços

Uma empresa de serviços financeiros processa dados confidenciais de usuários em vários serviços para gerenciar contas e detectar atividades fraudulentas. Usando uma service mesh, ela consegue aplicar o mTLS para ter maior segurança e criptografar a comunicação entre serviços. A service mesh também fornece RBAC granular para interação de serviços.

Resiliência e tolerância a falhas

Uma plataforma de streaming de vídeos quer garantir reprodução ininterrupta, mesmo se um serviço específico falhar ou ficar lento. Com o uso de uma service mesh, eles conseguem recursos de quebra de circuitos para interromper automaticamente o envio de solicitações para serviços com falhas. Ao fazer novas tentativas com backoff exponencial, as solicitações com falhas são solicitadas a tentar de novo. O balanceamento de carga da service mesh ajuda a distribuir o tráfego entre instâncias de serviço íntegras. 

Observabilidade e monitoramento

Uma plataforma de Software como Serviço (SaaS) executada no Kubernetes precisa diagnosticar problemas de latência em dezenas de microsserviços. Uma service mesh fornece rastreamento distribuído que permite aos desenvolvedores rastrear solicitações entre serviços. Ela também oferece telemetria em tempo real, inclusive taxas de erro e padrões de tráfego.

Integração de gateway de API

Um gateway de API é usado para expor serviços a clientes externos enquanto serviços internos se comunicam dentro da mesh. Usar uma service mesh ajuda a proteger a comunicação interna do serviço enquanto permite que o tráfego externo flua por meio do gateway da API. A service mesh também aplica políticas uniformemente para as organizações terem certeza de que regras como limitação de taxas foram aplicadas com consistência em todos os serviços internos.

Conformidade regulatória

Um provedor de serviços de saúde deve atender aos requisitos da Lei de portabilidade e responsabilidade de seguros de saúde (HIPAA) para uma transmissão segura dos dados. Com uma service mesh, o provedor pode aplicar padrões de criptografia como o TLS. A service mesh também fornece logs de auditoria detalhados da comunicação de serviços para fins de conformidade e documentação.

Ambientes dinâmicos

Uma empresa de jogos costuma aumentar e diminuir os serviços durante os horários de pico ou eventos promocionais. Uma service mesh pode descobrir e direcionar automaticamente o tráfego para instâncias de serviço recém-criadas. Ela também garante um desempenho consistente durante operações de escalonamento.

Conheça o Red Hat OpenShift Service Mesh 3.0 na prévia de tecnologia

O Red Hat® OpenShift® Service Mesh, baseado no projeto Istio, aborda uma variedade de problemas e casos de uso em uma arquitetura de microsserviços criando um ponto de controle centralizado em uma aplicação. O OpenShift Service Mesh adiciona uma camada transparente em aplicações distribuídas sem exigir alterações no código da aplicação. A mesh apresenta uma maneira fácil de criar uma rede de serviços implantados que fornece descoberta, balanceamento de carga, autenticação entre serviços, recuperação de falhas, métricas e monitoramento.

O Red Hat OpenShift Service Mesh foi testado e otimizado para o Red Hat OpenShift. Ele é compatível com funcionalidades específicas do OpenShift, como operadores e pipelines de integração e entrega contínuas (CI/CD). O suporte empresarial da Red Hat está incluído, assim como as atualizações e aplicações de patches regulares para garantir a segurança e estabilidade. O OpenShift Service Mesh funciona em vários clusters do Red Hat OpenShift, criando consistência em ambientes de nuvem híbrida ou multicloud. Ele facilita a multilocação, permitindo que as organizações gerenciem service meshes separadas para diferentes equipes ou cargas de trabalho. As funcionalidades de segurança integradas habilitam o mTLS para todos os serviços por padrão e se integram ao OAuth do Red Hat OpenShift para resultar em recursos confiáveis de autenticação e autorização.

Hub

Blog da Red Hat

Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.

Teste as soluções da Red Hat

Você sabia que a Red Hat oferece versões de teste gratuitas de suas soluções? Aproveite e obtenha experiência prática, prepare-se para uma certificação da Red Hat ou avalie na prática se a solução é adequada para ao caso de uso.

Leia mais

O que é o Podman Desktop?

O Podman Desktop é uma ferramenta open source gratuita que simplifica o trabalho com containers em ambientes de desenvolvedor locais.

O que é o Helm?

Helm é um gerenciador de pacotes para Kubernetes que inclui todos os códigos e recursos necessários para implantar uma aplicação em um cluster.

O que é InstructLab?

InstructLab é um projeto open source criado pela IBM e pela Red Hat para aprimorar os modelos LLMs usados em aplicações de inteligência artificial (IA).

Open source: leitura recomendada