[email protected]
+ 55 (11) 5505-0505
Leadcomm Trusted Digital Security
  • Soluções
    • Automação SOC
      • Soc Cognitivo
        • IBM Security ReaQta
      • Orquestração de respostas a Incidentes
    • Controle de Acesso e Governança
      • Gestão de Identidade e Acesso Privilegiado
    • Postura Cyber
      • SOC
      • Microsegmentação Zero Trust
      • Plataforma de Microsegmentação
      • Gerenciamento de Superfície de Ataque
      • Anti-Ransomware
    • Gestão de Privacidade
      • Gestão de Privacidade
      • Localização e Governança de Dados
    • Proteção de Aplicativos
      • Proteção de APPs
      • Proteção e Teste de Aplicações
      • Proteção Unificada de API
      • Value Stream Management
    • Proteção de Dados
      • Criptografia de Dados
      • Gestão de Ameaças e Vulnerabilidades
      • Proteção de Vazamento de Dados (DLP)
      • Sensitive Data Protection
      • Proteção de Dados Sensíveis
    • Proteção de Endpoints
      • Gerenciamento de Dispositivos Mobile (MDM)
      • Proteção de Endpoints
  • Serviços
    • Consultoria
    • Consultoria LGPD
    • Serviços Especializados
    • Pentest
  • Sobre nós
    • Sobre nós
    • Lugares Incríveis para Trabalhar
    • Pacto Global
  • Conteúdos
  • Blog
  • Clipping
  • Contato
  • Suporte
  • pt
    • pt
  • |
  • Soluções
    • Automação SOC
      • Soc Cognitivo
        • IBM Security ReaQta
      • Orquestração de respostas a Incidentes
    • Controle de Acesso e Governança
      • Gestão de Identidade e Acesso Privilegiado
    • Postura Cyber
      • SOC
      • Microsegmentação Zero Trust
      • Plataforma de Microsegmentação
      • Gerenciamento de Superfície de Ataque
      • Anti-Ransomware
    • Gestão de Privacidade
      • Gestão de Privacidade
      • Localização e Governança de Dados
    • Proteção de Aplicativos
      • Proteção de APPs
      • Proteção e Teste de Aplicações
      • Proteção Unificada de API
      • Value Stream Management
    • Proteção de Dados
      • Criptografia de Dados
      • Gestão de Ameaças e Vulnerabilidades
      • Proteção de Vazamento de Dados (DLP)
      • Sensitive Data Protection
      • Proteção de Dados Sensíveis
    • Proteção de Endpoints
      • Gerenciamento de Dispositivos Mobile (MDM)
      • Proteção de Endpoints
  • Serviços
    • Consultoria
    • Consultoria LGPD
    • Serviços Especializados
    • Pentest
  • Sobre nós
    • Sobre nós
    • Lugares Incríveis para Trabalhar
    • Pacto Global
  • Conteúdos
  • Blog
  • Clipping
  • Contato
  • Suporte
  • pt
    • pt
  • |

31 de março de 2020 By Kathrin Comments are Off otimização, performance, Turbonomic

Agora que o Kubernetes se tornou uma solução madura, as organizações buscam expandir suas plataformas para dar suporte a um número maior de aplicativos e mais linhas de negócios. Para fazer isso em escala, elas precisam oferecer suporte a esses aplicativos e linhas de negócios em ambientes com vários locatários. Mesmo os aplicativos modernos de microsserviços precisam compartilhar recursos.

Citamos o exemplo de uma empresa do setor de saúde. Eles mergulharam no Kubernetes (especificamente o Red Hat OpenShift) há dois anos e agora são primeira plataforma (platform-first), significando que todos os seus novos aplicativos são arquitetados para se beneficiar da velocidade, agilidade e elasticidade nativas da nuvem e os aplicativos existentes estão sendo gradualmente reprogramados para o ambiente de cloud. São aplicativos críticos para os negócios que, por exemplo, aproveitam grandes quantidades de dados e aprendizado de máquina para ajudar os médicos a diagnosticar e tratar com mais precisão e eficácia seus pacientes.

Como organização de primeira plataforma, essa organização precisa gerenciar vários aplicativos no Kubernetes e está alavancando a multilocação de software (multitenancy).

O Kubernetes permite que os administradores gerenciem recursos compartilhados por meio de solicitações e limites, alocando CPU e memória. Os limites podem ficar supercomprometidos, mas as solicitações têm seus recursos garantidos. Em outras palavras, o Kubernetes agendará apenas um pod de contêiner quando a soma das solicitações de todos os contêineres nos pods puder caber em um nó.

As empresas que incorporam aplicativos ao Kubernetes geralmente adotam certas práticas recomendadas em termos de gerenciamento de solicitações e limites de recursos de contêiner. Para a maioria das organizações, as linhas de negócios (LOBs) acessam a plataforma começando por atribuir um “namespace” (ou “project” no OpenShift) e definem uma cota de recursos. Essa cota protege a quantidade de recursos permitidos para os pods implantados nesse namespace, enquanto as solicitações garantem que diferentes linhas de negócio não excedam os recursos no nível do cluster. Ao usar cotas, um usuário que envia um aplicativo ao Kubernetes deve fornecer uma solicitação de recursos pelos seguintes motivos:

  • Manter um certo nível de qualidade de serviço (QoS). Isso é especialmente crítico para aplicativos com uso intenso de CPU, onde a CPU solicitada pode ser forçada a responder pelo runtime do cgroup, quando o nó ficar congestionado.
  • Garantir uma quantidade mínima de recursos. A memória não pode ficar supercomprometida ou ser trocada no Kubernetes, portanto, muitos serviços Java usam solicitações para garantir que uma quantidade mínima esteja disponível para a JVM, para reduzir os riscos de OOM (out-of-memory ou memória insuficiente).
  • Facilitar o gerenciamento e o planejamento de recursos em um ambiente multilocatário. Isso é obtido juntamente com as cotas de recursos definidas nos namespaces, fornecendo a cada aplicativo ou LOB seus próprios recursos.

 

O desafio: as práticas atuais recomendadas para a multilocação ainda são complexas para gerenciar e limitar a elasticidade

As melhores práticas para gerenciar solicitações de recursos requerem certa capacidade de gerenciamento, mas em escala, as empresas continuam enfrentando desafios. Como as solicitações de recursos especificadas para um serviço são estimadas, é muito fácil para um cluster enfrentar as seguintes situações:

 

  • Superestimativa de recursos. É muito comum ver uma estimativa de uso de recursos significativamente maior do que o uso real. É compreensível que os desenvolvedores tendem a ser excessivamente conservadores sobre suas necessidades de uso de recursos. Eles geralmente solicitam recursos com grandes buffers para que seu serviço não sofra.
  • Subestimativa de recursos. É uma situação em que o uso real dos recursos é superior ao uso solicitado, o que pode resultar em problemas adjacentes complicados ou, ainda pior, em nós com supercomprometimento, em que os pods podem ser desalojados devido à pressão do recurso (para recursos sem compressão, como memória). Essa contenção de recursos resulta em baixo desempenho do aplicativo e experiências ruins para os usuários.

O cerne da questão é que os desenvolvedores apenas veem e têm responsabilidade por seus serviços. Um cluster multitenant hospedará muitos serviços, cada um com suas próprias especificações, que não consideram o efeito global da execução em paralelo.

Se 100 serviços tiverem apenas 10% de superalocação, a soma da demanda em um cluster ou projeto aparecerá como “cheia”, mesmo quando não estiver. A consequência é que você não poderá executar mais serviços, não poderá redimensionar os limites para aqueles que precisam e acabará desperdiçando dinheiro executando mais nós do que o necessário.

É um desafio muito difícil. As equipes de DevOps e SRE (Site Reliability Engineering) devem se preocupar com isso. É difícil ver o impacto da alocação geral e onde otimizar, ao pesquisar em centenas ou mesmo em apenas 50 serviços diferentes em execução em projetos diferentes. DevOps e SREs AMBOS precisam verificar se:

  • Os serviços estão superalocados;
  • O project / namespace está subalocado;
  • O cluster está subdimensionado.

 

As solicitações de recursos são aquelas “matadoras” silenciosas da elasticidade e da eficiência.

 

 

Como o Turbonomic ajuda você a gerenciar efetivamente a multilocação do Kubernetes

 

No Turbonomic 6.4, foi introduzida a funcionalidade de descoberta das solicitações de recursos nos clusters Kubernetes. Isso permite aos clientes:

 

  • Visualizar a quantidade de solicitações de recursos em todos os níveis da pilha, do pod ao nó e do namespace ao cluster.
  • Visualizar a tendência histórica das solicitações de recursos em todos os níveis.

 

Abaixo, nas capturas de tela da interface do usuário, a Turbonomic mostra as principais máquinas virtuais (nós), nesse caso, classificadas por solicitações de CPU (Figura 1). Você também pode visualizar o uso real da CPU em comparação com as solicitações de CPU durante um período de tempo, neste caso, nas últimas 2 horas (Figura 2).

 

Figura 1. Principais máquinas virtuais classificadas por solicitações de CPU.

 

 

 

 

 

 

Figura 2. Uso real da CPU x solicitação da CPU em um nó durante um período de 2 horas.

 

 

 

 

 

Mas, uma visualização no nível do cluster não é suficiente. Como os recursos são alocados pelo namespace, você também precisa ter uma visão da utilização provisionada e da real em cada namespace. Isso permite um melhor “autoatendimento”, para que cada LOB possa ver com que eficácia eles estão usando o que está reservado. Para a equipe da plataforma, ela permite identificar quais projetos estão ficando sem recursos e quais não estão (veja a Figura 3, com o exemplo de um único namespace).

 

Para os projetos que estão sendo preenchidos, é possível avaliar se estão cheios com base no uso real ou se foi solicitado mais do que o necessário, o que pode ser uma oportunidade para otimizar a carga de trabalho. As equipes da LOB ou do App podem examinar a utilização do namespace e fazer uma busca detalhada para ver os pods específicos em seu namespace.

 

Figura 3. Uso real da CPU / Mem x. solicitação da CPU / Mem para um namespace. O usuário pode ver as ações de redimensionamento para os pods implantados ali.

 

 

 

 

 

 

 

Mais importante ainda, o Turbonomic identifica se há oportunidades para redimensionar solicitações e consolidar recursos (pods “móveis”) nos nós, para acomodar mais pods.

 

Observe os botões “Ações” à direita na Figura 1. No nível do cluster, o Turbonomic também determinará quanta capacidade está disponível para a entrada de novos serviços ou projetos. Com a visualização (Figuras 1 e 2) de Solicitações x Uso Real, os profissionais podem ver rapidamente as discrepâncias entre o que está sendo alocado e o que está sendo usado. Mas, quando você está operando em escala, o monitoramento e os painéis não são suficientes.

 

O Turbonomic identifica automaticamente oportunidades para otimizar seus clusters para desempenho e eficiência, com automação

 

Garantir automaticamente um desempenho contínuo, enquanto maximiza a eficiência é o objetivo do Turbonomic. É o que fazemos desde o início do conceito de virtualização, quando os aplicativos começaram a ser executados em ambientes compartilhados.

 

Quando se trata do Kubernetes, o Turbonomic analisa continuamente a pilha completa, para garantir que as necessidades de recursos em tempo real dos aplicativos sejam atendidas exatamente pelo suprimento definido de recursos. Ele gera ações específicas que podem e devem ser automatizadas ou integradas aos fluxos de trabalho existentes da sua organização, a saber:

 

  • Alterar ações para mover pods de um nó com plena utilização da solicitação para um nó com solicitação menos utilizada.

 

Figura 4: O Turbonomic determina se dois pods de Contêiner que estão atualmente com congestionamento no nó devem ser movidos para um nó com capacidade para eles. Observe que o Turbonomic identifica qual pod mover, onde e quando, antes que os pods falhem, uma lacuna do orquestrador k8s.

 

 

 

 

 

 

 

 

  • Otimizar as decisões de posicionamento contínuo, para que a utilização da solicitação não exceda a capacidade de alocação (zona de despejo).
  • Gerar o redimensionamento da solicitação de recurso, quando ela for superestimada em comparação com o uso real.
  • Gerar a ação do nó de provisionamento, quando todos os nós existentes estiverem congestionados com a solicitação de recurso.

 

Figura 5: O Turbonomic determina se o cluster requer outro nó para suportar os aplicativos em execução.

 

 

 

 

 

Com o Turbonomic, multilocação não significa que você deve limitar a elasticidade

 

Os limites e as solicitações visam facilitar o gerenciamento da multilocação e fazem isso até certo ponto. Mas, como vimos, surgem desafios porque, no final das contas as pessoas estão tomando decisões de alocação. Elas precisam estimar e adicionar buffers, porque não conseguem analisar a demanda dinâmica 24 horas por dia, 7 dias por semana. Isso coloca em risco o desempenho do aplicativo, pode aumentar desnecessariamente os custos e limitar a elasticidade, e é por isso que você fez esse investimento em Kubernetes.

Com o software Turbonomic tomando decisões de recursos para você, de forma contínua e automática, você pode obter os benefícios da multilocação, sem limitar a elasticidade e a eficiência das aplicações.

Fundada em 2009, a Turbonomic Inc. é uma das empresas privadas de tecnologia que mais rapidamente cresceu, com base na confiança de milhares de organizações empresariais nas suas soluções voltadas para maximizar o valor de seus investimentos em TI.

A Leadcomm é uma empresa parceira da Turbonomic que atua desde 1998 no Brasil, Estados Unidos e Europa, construindo um sólido portfólio de softwares e serviços. Somos especializados em Segurança de Dados e Performance de Aplicações, com foco na distribuição e integração de soluções inovadoras.

Conte com nosso conhecimento e experiência, adquiridos em projetos realizados em organizações de diversos portes e setores da economia. Fale conosco.

 

Este texto foi adaptado do artigo “Managing Multitenancy in Kubernetes Environments” (Turbonomic, 2019)

Comments are closed.

Recent Posts

  • Proteja a saúde financeira da sua organização, priorizando a segurança de APIs
  • Illumio pode ajudar a conter ataques de ransomware em instituições financeiras
  • Mantenha a segurança das APIs utilizando o modelo Zero Trust
  • O verdadeiro impacto e custo do ransomware para os negócios!
  • Um mergulho técnico na proteção anti-ransomware

Recent Comments

    Archives

    • novembro 2023
    • outubro 2023
    • agosto 2023
    • julho 2023
    • fevereiro 2023
    • janeiro 2023
    • dezembro 2022
    • novembro 2022
    • outubro 2022
    • julho 2022
    • maio 2022
    • abril 2022
    • março 2022
    • fevereiro 2022
    • dezembro 2021
    • setembro 2021
    • agosto 2021
    • julho 2021
    • junho 2021
    • maio 2021
    • abril 2021
    • março 2021
    • fevereiro 2021
    • janeiro 2021
    • dezembro 2020
    • novembro 2020
    • outubro 2020
    • setembro 2020
    • agosto 2020
    • julho 2020
    • junho 2020
    • maio 2020
    • abril 2020
    • março 2020
    • fevereiro 2020
    • janeiro 2020
    • novembro 2019
    • outubro 2019
    • setembro 2019
    • agosto 2019
    • julho 2019
    • junho 2019
    • maio 2019
    • abril 2019
    • fevereiro 2019
    • janeiro 2019
    • dezembro 2018
    • novembro 2018
    • outubro 2018
    • junho 2018
    • setembro 2017
    • agosto 2017
    • julho 2017
    • junho 2017

    Categories

    • Arxan
    • Check Marx
    • Cyber Security
    • Data Discovery
    • Data Protection for Vertical Markets
    • DevSecOps
    • DLP
    • Eventos
    • GDPR
    • Gestão de Identidade
    • Gestão de Privacidade
    • Guardium
    • Guardium Data Encryption
    • Halcyon
    • Inteligência Artificial
    • LGPD
    • MaaS360
    • OneTrust
    • Performance
    • Programas de conscientização
    • Proteção de APIs
    • Proteção de Apps
    • Proteção de Dados
    • Proteção de marcas e pessoas
    • QRadar XDR
    • Resposta a incidentes
    • Safebreach
    • Security
    • Segurança Digital
    • Sem categoria
    • Simulação Contínua de Ataques
    • Value Stream Management
    • VM Analytic Services
    • Zero Trust Security
    • ZeroFox
    • ZeroTrust Security

    Meta

    • Log in
    • Entries feed
    • Comments feed
    • WordPress.org

    Líder em implementação de Programas de Segurança Digital, serviços e soluções para LGPD e Gestão de Riscos Cibernéticos.

    Últimos posts

    Proteja a saúde financeira da sua organização, priorizando a segurança de APIs

    28 de novembro de 2023

    Illumio pode ajudar a conter ataques de ransomware em instituições financeiras

    Illumio pode ajudar a conter ataques de ransomware em instituições financeiras

    27 de outubro de 2023

    Segurança de APIs utilizando modelo Zero Trust

    Mantenha a segurança das APIs utilizando o modelo Zero Trust

    23 de outubro de 2023

    Contato

    55 (11) 5505-0505
    contato@leadcomm.com.br

    Canal de denúncias da Leadcomm

    Clique aqui para fazer uma denúncia

    ou ligue no número 0800 033 0314

    Leadcomm 2024© Todos os direitos reservados
    );