> ## Content Index
> Fetch the complete content index at: https://www.azurebrasil.cloud/llms.txt
> Use this file to discover other available public pages before exploring further.

# Kubernetes - On-Premises ou como serviço?
- URL: https://www.azurebrasil.cloud/blog/kubernetes-on-premises-ou-como-servico/
- Published: 2024-11-21T15:07:07.000Z
- Updated: 2024-11-21T15:07:07.000Z
- Description: Usar Kubernetes como serviço ou configurar no braço? Essa é uma decisão que vai muito mais além do simples.
- Author: Bruno Brito

## A chave do problema é: Capacidade Ociosa

Você mora 100% do tempo na sua casa, certo? Agora, pense em um cenário onde você passa 15 dias na sua casa e os outros 15 dias em outra casa, em outro estado.

Nesse caso, você precisaria manter as duas casas. Isso significa que, durante boa parte do tempo, recursos como aluguel, manutenção, móveis e até mesmo alimentos estariam sendo desperdiçados. Isso significa que você possui recursos ociosos, uma palavra bonita para desperdicio.

Agora, e se você pudesse otimizar o uso da sua casa? Nos dias em que estivesse fora, outra pessoa poderia utilizá-la, reduzindo seus custos e evitando desperdícios. Parece interessante, não é? Basicamente, você estaria eliminando a capacidade ociosa (desperdicio) da sua casa.

Esse mesmo princípio é aplicado pelas empresas de cloud. Elas otimizam o uso dos servidores ao reduzir a capacidade ociosa, permitindo que vários clientes "alugem" partes dos servidores conforme a necessidade. Assim, conseguem maximizar a eficiência e ganhar dinheiro com recursos compartilhados.

E por que isso é importante ao falar de Kubernetes On-Premises? Porque usar Kubernetes em uma infraestrutura própria (On-Premises) só faz sentido se sua empresa já possui um parque de máquinas e deseja reduzir a capacidade ociosa, otimizando ao máximo o hardware existente.

![two roads between trees](https://images.unsplash.com/photo-1429743305873-d4065c15f93e?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGRlY2lzaW9ufGVufDB8fHx8MTczMjIwMTMzM3ww&ixlib=rb-4.0.3&q=80&w=2000)

Photo by [Jens Lelie](https://unsplash.com/@madebyjens?ref=azurebrasil.cloud) / [Unsplash](https://unsplash.com/?utm%5Fsource=ghost&utm%5Fmedium=referral&utm%5Fcampaign=api-credit)

## Como usar Kubernetes On-Premises?

Decidimos usar Kubernetes, e agora?

A decisão mais importante neste momento, especialmente para quem planeja usar Kubernetes em produção, é escolher entre pagar por um serviço gerenciado ou gerenciar o cluster internamente. As principais opções para quem decide assumir essa responsabilidade incluem:

- Configurar manualmente via **kubeadm**
- Utilizar uma solução como o **Rancher**
- Optar por uma plataforma mais robusta, como o **OpenShift**

Os consevadores vão fazer a pergunta clássica: "Administrar meu próprio cluster ou pagar para que outra pessoa o faça?". Afinal, as empresas fizeram isso por anos. Banco de dados, servidores de aplicação, storage, tá tudo dentro de casa, por que não o kubernetes?

## Por que agora tem que ser diferente?

Se sua empresa ainda está dando os primeiros passos rumo à nuvem e a discussão sobre adoção ainda está engatinhando, pode parecer natural optar pelo Kubernetes on-premises. Afinal, é só pegar meia dúzia de máquinas, configurar tudo pelo painel do Rancher e pronto, certo? Projeto finalizado, hora de seguir para o próximo!

Essa abordagem faz sentido, afinal, sempre foi assim, então, por que não o Kubernetes?

Sem dúvida, essa escolha oferece a maior flexibilidade e controle. Você terá total autonomia para decidir quais versões do Kubernetes usar, quais recursos e opções habilitar, como e quando realizar atualizações nos clusters, entre outras decisões estratégicas.

## Qual a desvantagem ?

Para começar você vai precisar de um time maior, um time experiente. Vai ter que lidar com a manutenção e solucionar problemas.

Subir e configurar um cluster Kubernetes é relativamente simples, mas será que o cluster está pronto para Produção?

Ao pensar nessa possibilidade sua empresa está considerando esses aspectos:

- **Alta Disponibilidade do Control Plane**: Garantir que, mesmo com a falha de um nó do control plane, o cluster permaneça operacional, permitindo deployments e atualizações contínuas.
- **Tolerância a Falhas das Aplicações**: Assegurar que suas aplicações possam operar corretamente mesmo na ausência temporária do control plane.
- **Alta Disponibilidade dos Worker Nodes**: O cluster é capaz de resistir à perda de múltiplos worker nodes ou até de um data center inteiro? Mantendo as aplicações em funcionamento.
- **Segurança do Cluster**: A comunicação interna entre os componentes do cluster precisa ser através de TLS com certificados confiáveis. Sua empresa está apta para aplicar o princípio do menor privilégio para usuários e aplicações? É necessário utilizar padrões de segurança para containers e controlar adequadamente o acesso dos worker nodes ao control plane e ao banco de dados etcd.
- **Segurança dos Serviços**: Certificar de que todos os serviços expostos na rede estejam devidamente autenticados e autorizados. Restringir o acesso ao API Server.
- **Conformidade com Padrões de Segurança**: Verificar se o cluster está em conformidade com os padrões de segurança do Kubernetes estabelecidos pela CNCF.
- **Configuração das VMs**: Utilizar práticas de IaC para configurar as VMs, garantindo atualizações regulares do sistema operacional e aplicação de patches de segurança.
- **Backup e Restauração**: Implementar processos de backup dos dados do cluster e do banco ECTD, além de testar regularmente os procedimentos de restauração para assegurar a integridade dos dados.
- **Manutenção Contínua**: Estabelecer processos para provisionamento de novos nodes, gestão de atualizações nas VMs existentes e atualização do Kubernetes.
- **Autoscaling**: Implementar mecanismos de autoscaling do Cluster para garantir recursos do cluster conforme a demanda das aplicações.

## Capacidade ociosa é a resposta

No final das contas, toda a discussão sobre usar Kubernetes On-Premises ou na nuvem se resume a um único fator: **capacidade ociosa**.

Se sua empresa tem um parque de máquinas subutilizado e deseja aproveitar melhor seus recursos, faz sentido considerar Kubernetes On-Premises. No entanto, a decisão não pode ser tomada sem antes avaliar cuidadosamente as necessidades e capacidades do seu time, os desafios de manutenção e os custos ocultos que podem surgir.

Por outro lado, se sua infraestrutura ainda não é robusta ou se o foco da sua empresa está na agilidade e escalabilidade sem se preocupar com a gestão do cluster, um serviço gerenciado pode ser a escolha mais estratégica. Afinal, pagar para que "alguém" resolva os problemas do cluster também pode ser uma forma inteligente de reduzir desperdícios e aumentar a eficiência.

A capacidade ociosa, tanto no hardware quanto no esforço do time, é o ponto central dessa decisão. Afinal, não se trata apenas de tecnologia, mas de como utilizá-la da forma mais eficiente possível.