FAQ: Kubernetes e Transformação Digital

  • 29 December 2023
  • 2 comments
  • 25 views

Userlevel 7
Badge +6

 

Oi! Preparei um pequeno conjunto de perguntas e respostas (FAQ) que poderão ajudar a entender a relação entre o Kubernetes e a Transformação Digital nas organizações. Espero que seja útil, especialmente para aqueles que estão iniciando na jornada com o Kubernetes!

 

1) De que forma o Kubernetes está associado com a Transformação Digital?

2) Em quais áreas o Kubernetes contribui com a transformação das organizações?

3) Como as organizações estão implantando o Kubernetes?

4) O Kubernetes é um projeto de código aberto. Como as empresas podem se beneficiar disso?

5) Qual a relação entre Kubernetes, DevOps e DevSecOps?

6) Com os crimes cibernéticos alcançando índices alarmantes, a segurança é uma prioridade para as empresas. Como tratar a segurança cibernética no Kubernetes?

7) Os containers e o Kubernetes vão substituir a tecnologia de virtualização de servidores?

8) Como será o Kubernetes no futuro? Para onde ele caminha?

 

===================================

1) De que forma o Kubernetes está associado com a Transformação Digital?

A transformação digital é um desafio que demanda mudanças nas empresas como o uso de tecnologias nativas da nuvem, ou “cloud native”, maior agilidade nos processos, uso intensivo de automação e o desenvolvimento de uma cultura colaborativa dentro da organização.

As aplicações do tipo cloud native são hospedadas em containers pois eles permitem isolar a aplicação, e todos os componentes necessários para a sua execução, da infraestrutura. Ou seja, com os containers, passamos a ter certeza que a aplicação funcionará adequadamente, independentemente se ela for implementada num ambiente de nuvem pública ou privada. Esse recurso é absolutamente crítico para que as empresas possam implementar uma estratégia multi-cloud.

O Kubernetes tornou-se rapidamente o padrão de mercado para gerenciar uma grande quantidade de containers de forma centralizada. Ele é um projeto de código aberto (ou “open source”) iniciado pelo Google e que atualmente é governado pela Cloud Native Computing Foundation (CNCF).

Basicamente, o Kubernetes simplifica a implantação e a operação de ambientes baseados em containers, permite que as empresas utilizem melhor seus recursos de infraestrutura e possui recursos integrados que permitem a orquestração do ciclo de vida das aplicações.

Além disso, pesquisas recentes mostram que pelo menos 90% dos líderes de negócio concordam que as tecnologias do tipo cloud native, incluindo o Kubernetes, estão ajudando a transformar a maneira como as empresas operam e entregam valor aos seus clientes.

 

2) Em quais áreas o Kubernetes contribui com a transformação das organizações?

O Kubernetes é uma das principais ferramentas disponíveis que permite aumentar a agilidade dos negócios pois ele possibilita que as equipes de TI deixem de dedicar tanto tempo no gerenciamento da infraestrutura.

Como os processos de desenvolvimento de software passam a ser automatizados, o ciclo de lançamento e implantação de novas aplicações é bastante reduzido, permitindo que as empresas se adaptem mais rapidamente a mudanças de mercado e agreguem mais valor às suas ofertas.

Além disso, a capacidade nativa de escalonamento automático do Kubernetes ajuda a otimizar o uso dos recursos de infraestrutura e também a reduzir custos. Esta capacidade está muito alinhada com as características de elasticidade e de consumo sob demanda que os serviços em nuvem pública já proporcionam. Ambas permitem que as equipes de TI não apenas sejam capazes de evitar falhas devido à falta de recursos, mas também evitem pagar por recursos ociosos.

Outro benefício do Kubernetes relacionado com a transformação digital é que ele auxilia na implementação de estratégias de adoção de nuvem híbrida e multi-cloud. A sua capacidade de portabilidade de aplicações proporciona liberdade de escolha e um bom nível de interoperabilidade entre diferentes provedores, medido em PTO (portability time objective).

Como as aplicações passam a ser desenvolvidas, implantadas e gerenciadas utilizando basicamente um mesmo conjunto central de características do Kubernetes, elas podem ser implementadas ou migradas entre nuvens privadas, públicas e nuvens de borda (edge cloud) de uma forma mais amigável.

Por outro lado, o tema DevX, ou developer experience, também é muito importante dentro do contexto da transformação digital. A maneira como os desenvolvedores interagem com os recursos necessários para realizar o trabalho pode afetar a execução da estratégia de negócios, a produtividade, a competitividade da empresa e a satisfação dos clientes. E o Kubernetes, sem dúvida, contribui muito para melhorar a experiência dos desenvolvedores pois as ações sobre a infraestrutura passam a ser definidas pelos desenvolvedores através de código.

 

3) Como as organizações estão implantando o Kubernetes?

Um relatório recente mostra que, dentre organizações que já implantaram o Kubernetes, 46% delas adotaram um modelo de nuvem híbrida e 44% realizaram uma implantação totalmente hospedada na nuvem pública. Além disso, 53% dos entrevistados planejam adicionar ou aumentar a capacidade dos seus ambientes Kubernetes utilizando diferentes provedores de nuvem pública.

A estratégia de implementação do Kubernetes em múltiplas nuvens é impulsionada principalmente pela necessidade de reduzir a dependência tecnológica em relação a um único provedor. Ela também tem como objetivo buscar uma maior flexibilidade no gerenciamento dos custos, permitir alta disponibilidade para as aplicações e entregar capacidade para recuperação de desastres.

Além disso, este mesmo relatório revelou que as organizações estão se afastando do modelo de implementação “faça você mesmo” ou “do it yourself” (DIY).

Temos que lembrar que o Kubernetes representa apenas parte dos componentes necessários para uma perfeita entrega e implementação das aplicações. Mesmo com todos os benefícios do Kubernetes, ainda são necessários outros componentes importantes para que os contêineres entrem em operação num ambiente de produção.

Além de existirem mais de 100 distribuições Kubernetes disponíveis no mercado, também há centenas de projetos hospedados no CNCF relacionados com todos os estágios necessários para a implementação e a operação de ambientes baseados em containers: segurança, telemetria, observabilidade, registro de imagens, service mesh, service proxy, rede, e assim por diante.

Integrar estes componentes e entregar uma plataforma validada e pronta para operação é um trabalho exaustivo e caro. Além disso, estas tarefas não estão diretamente relacionadas com o propósito de negócio da maioria das empresas.

Por isso, as organizações estão cada vez mais adotando plataformas Kubernetes prontas, dedicadas ou baseadas em serviços de nuvem pública, que sejam capazes de agregar todos os componentes complementares que sejam necessários e que prestem um suporte técnico especializado e de alto nível.

 

4) O Kubernetes é um projeto de código aberto. Como as empresas podem se beneficiar disso?

Projetos de código aberto permitem que qualquer pessoa possa acessar, modificar e distribuir o código disponibilizado. Eles são desenvolvidos de uma forma descentralizada e colaborativa, envolvendo empresas e indivíduos ao redor do mundo.

Por isso, em geral, projetos de código aberto podem entregar novas funcionalidades e inovações com maior velocidade, quando comparado a um código proprietário. Eles também podem permitir a criação de softwares mais confiáveis pois suas revisões e correção de problemas são mais frequentes, já que mantidas por um grande grupo de colaboradores.

Como ilustração, segundo números do CNCF, apenas o projeto Kubernetes recebeu mais de 2 milhões e 700 mil contribuições e mais de 430 mil atualizações/commits de código apenas no último ano.

Grandes empresas também colaboram ativamente com as novas funcionalidades e atualizações pois muitas utilizam o Kubernetes como um projeto de “upstream” para as suas próprias soluções e distribuições de mercado. E isso acaba criando um padrão na indústria.

 

5) Qual a relação entre Kubernetes, DevOps e DevSecOps?

O DevOps e a segurança estão relacionados com mudanças culturais dentro da organização, pois exigem que uma grande colaboração entre os membros das equipes.

Tradicionalmente, a segurança não era um elemento considerado no desenvolvimento dos softwares. Na prática do DevSecOps, as preocupações com segurança devem ser aplicadas desde o início do ciclo de desenvolvimento do software, ou seja, desde o momento da especificação dos requerimentos da aplicação.

Garantir consistência nas atividades de colaboração do DevOps e do DevSecOps é um desafio que pode impactar diretamente na agilidade dos processos. Por isso, a automação é amplamente empregada nas etapas de desenvolvimento, testes e provisionamento das aplicações.

Existem muitas formas de implementar automação, incluindo soluções que permitem a definição e a implantação de infraestrutura através de código (IaC). No entanto, elas podem acrescentar complexidades adicionais no ciclo de desenvolvimento de software, especialmente em ambientes baseados em containers.

O Kubernetes apresenta uma enorme sinergia com o DevOps e DevSecOps pois ele possui mecanismos nativos que possibilitam a automação completa dos containers e dos elementos relacionados, tornando o ciclo de desenvolvimento mais simples, rápido, frequente e melhor gerenciado.

Além da automação, o Kubernetes acrescenta a capacidade de abstração da infraestrutura. Os desenvolvedores podem se concentrar nas funcionalidades e especificar as dependências, ações e políticas relativas à infraestrutura como uma parte do código desenvolvido, utilizando as APIs nativas do Kubernetes.

 

6) Com os crimes cibernéticos alcançando índices alarmantes, a segurança é uma prioridade para as empresas. Como tratar a segurança cibernética no Kubernetes?

O tratamento da segurança no Kubernetes não é diferente daquele que deve ser aplicado ao ambiente de TI como um todo. A segurança do Kubernetes esteja efetivamente integrada à política de cyber segurança das organizações.

Além disso, é preciso prover visibilidade para as equipes de segurança sobre as aplicações hospedadas em containers, procurando integrar o Kubernetes a outras soluções de cyber segurança que a empresa possa utilizar ou que cogita adquirir.

Uma ação muito importante é identificar e conter as vulnerabilidades no ambiente Kubernetes. A contenção deve começar pelo uso de imagens de fontes confiáveis, por verificações na integridade destas imagens, dificultando o acesso não autorizado a informações dos clusters e evitando o escalonamento de privilégios.

Outras ações de segurança também são importantes, como o uso hardware seguro, definição de políticas de acesso, microsegmentação de rede para impedir movimentação lateral, integração com anti-virus e sistemas IDS/IPS. A adoção de técnicas do tipo “sandbox, visando análise e resposta a incidentes também é muito recomendada.

Além disso, é importante que a empresa esteja preparada para recuperar o ambiente Kubernetes em caso de incidentes de segurança, contando com soluções que permitam a realização de backup seguro, replicação e políticas de recuperação de desastres.

 

7) Os containers e o Kubernetes vão substituir a tecnologia de virtualização de servidores?

Tudo indica que não, o modelo híbrido deve prevalecer.  Ou seja, os ambientes baseados em virtualização de servidores continuarão coexistindo com os ambientes Kubernetes.

Como nem todas as aplicações monolíticas são adequadas ou elegíveis a transformação para uma arquitetura baseada em micro serviços, seja por custos elevados ou devido a características intrínsecas de implementação, aplicações hospedadas em servidores virtuais deverão continuar existindo por algum tempo.

Além disso, tecnologias de virtualização de servidores são amplamente utilizadas, possuem décadas de presença no mercado e são capazes de entregar um conjunto robusto e conhecido de ferramentas utilizadas para gerenciamento e segurança.

Por exemplo, um dos projetos que mais crescem no CNCF é o KubeVirt. Este projeto permite que o Kubernetes também possa gerenciar e controlar ambientes de servidores virtualizados baseados em um hypervisor KVM.

Alguns fornecedores de mercado também já disponibilizam soluções próprias que permitem a implementação e o gerenciamento de ambientes Kubernetes e virtualizados de forma simultânea.

Algo que já temos acesso há algum tempo através de serviços na nuvem pública, onde podemos realizar a implementação de serviços de computação e de Kubernetes numa mesma nuvem privada (virtual private cloud) e gerenciá-los pelo mesmo console.

 

8) Como será o Kubernetes no futuro? Para onde ele caminha?

O projeto Kubernetes ainda tem muito a evoluir. Talvez, em breve, o Kubernetes se torne apenas mais uma camada de abstração lógica dentro do conjunto de ferramentas disponíveis para os desenvolvedores de software.

Além disso, com o advento da Inteligência Artificial, que já está sendo amplamente incorporada aos processos de desenvolvimento de software, muitas das barreiras e dificuldades que ainda existem no Kubernetes tendem a ser superadas e abstraídas.

Assim, cabe a nós acompanharmos e estarmos atentos a estes desdobramentos.


2 comments

Userlevel 6
Badge +3

Adorei!! Precisamos de mais conteúdo deste tipo respondendo as perguntas básicas que todo mundo tem!

Userlevel 7
Badge +6

Adorei!! Precisamos de mais conteúdo deste tipo respondendo as perguntas básicas que todo mundo tem!

Oi @Julia F Morgado! É verdade, ainda existem muitas dúvidas sobre Kubernetes! Conte comigo no que eu puder colaborar. Aproveito e deixo os meus parabéns pelo seu trabalho de orientação e divulgação de informações para os parceiros e clientes da Veeam! 👏🏻👏🏻

Comment