JavaRush /Blogue Java /Random-PT /Quem são Docker, Kubernetes, OpenShift e como eles se rel...
Павел
Nível 11

Quem são Docker, Kubernetes, OpenShift e como eles se relacionam?

Publicado no grupo Random-PT
Tudo começa com a embalagem. No desenvolvimento industrial, há a necessidade de “empacotar” a aplicação montada, por exemplo, para que ela possa ser transferida para o servidor onde irá funcionar, na forma em que o desenvolvedor a montou em seu computador, tal “empacotamento” deveria servir como uma espécie de proteção. Isso elimina surpresas, como quando um aplicativo funciona durante um teste, mas quebra ao ser transferido para produção. Além disso, o “empacotamento” isola uma aplicação de outra, localizada no mesmo servidor, tal isolamento permite que uma aplicação não interfira no trabalho de outra (por exemplo: uma aplicação não conseguirá assumir toda a RAM do servidor, deixando o segunda aplicação ao seu destino). As vantagens de “empacotar” com uma arquitetura de microsserviços são especialmente perceptíveis, e isso é compreensível: existem muitos microsserviços - muitos aplicativos pequenos que devem se comunicar entre si, mas ao mesmo tempo não devem interferir entre si. Um exemplo é uma cômoda (servidor), na qual existem muitas gavetas diferentes, e podemos facilmente mover diferentes meias de uma gaveta para outra, e ao mesmo tempo elas não se misturam nem com as calcinhas. Quem são Docker, Kubernetes, OpenShift e como eles se relacionam?  - 1 A embalagem é criada por ferramentas de virtualização. Antigamente, as máquinas virtuais (VMs) eram usadas como “empacotamento”. Os idosos vão se lembrar de como implantaram o Windows XP no Vista em uma máquina virtual. Agora, a VM para empacotamento de aplicativos é coisa do passado. Os contêineres dominaram o mundo. Porque são: mais leves, mais produtivos e mais seguros. Mais detalhadamente: qual a diferença entre um contêiner e uma máquina virtual? Quem são Docker, Kubernetes, OpenShift e como eles se relacionam?  - 2 É preciso lembrar algumas vantagens dos containers: • eles são menores (ocupam menos memória no servidor); • ter acesso a recursos compartilhados do servidor (RAM, tempo de computação do processador); • ter melhor portabilidade para outros ambientes (do teste ao industrial); • fornecer maior velocidade de lançamento (como o contêiner é leve, ele é lançado mais rápido). Docker é a mãe dos contêineres. Quando dizem contêiner, querem dizer Docker. Docker é um software para automatizar a implantação e gerenciamento de aplicações em ambientes conteinerizados. Usando exemplos, Docker é um cruzamento entre um designer online e uma impressora 3D com um guindaste. Ou seja, ele pode primeiro projetar um modelo (imagem) para um contêiner, imprimir (criar) o contêiner de acordo com determinadas condições (imagem) e depois movê-lo para onde for necessário. Dockerfiles são usados ​​em vez de alavancas. O processo de gerenciamento é simples: você escreve arquivos, comandos, executa-os e vê o que acontece. Quem são Docker, Kubernetes, OpenShift e como eles se relacionam?  - 3 Primeiro contato com Docker Docker Compose - Docker atualizado Agora vejamos um cenário em que vários contêineres precisam estar em execução em um local. O utilitário usado para isso é o Docker Compose. Docker Compose é uma ferramenta incluída no Docker. Ele foi projetado para resolver problemas relacionados à implantação do projeto. Diferença entre Docker e Docker Compose: Docker é usado para gerenciar contêineres individuais. Docker Compose é usado para gerenciar vários contêineres simultaneamente. Esta ferramenta oferece os mesmos recursos do Docker, mas permite trabalhar com estruturas mais complexas. Quem são Docker, Kubernetes, OpenShift e como eles se relacionam?  - 4 Cenário típico para usar o Docker Compose: Imagine que você é desenvolvedor de um projeto web. Este projeto inclui dois sites. O primeiro permite que empresários criem lojas online com apenas alguns cliques. O segundo é voltado para o suporte ao cliente. Esses dois sites interagem com o mesmo banco de dados. Seu projeto está se tornando cada vez mais popular e acontece que a potência do servidor em que ele é executado não é mais suficiente. Como resultado, você decide mover todo o projeto para outra máquina. Se você não usou algo como o Docker Compose, terá que migrar e reconfigurar os contêineres um de cada vez, esperando não esquecer de nada no processo. Se você usa o Docker Compose, mover seu projeto para um novo servidor é um problema que pode ser resolvido executando alguns comandos. Para concluir a transferência do projeto para um novo local, basta fazer algumas configurações e fazer upload de uma cópia de backup do banco de dados para o novo servidor. DockerComposer típico: Quem são Docker, Kubernetes, OpenShift e como eles se relacionam?  - 5 O que você precisa lembrar aqui: Contêineres são o principal meio de “empacotar” aplicativos. Docker lida com contêineres, cria imagens de contêineres, coleta e move contêineres. Para gerenciar simultaneamente vários contêineres, é usado o Docker Compose, que está incluído no Docker. Esses programas são software livre (brindes - em uma palavra) Kubernetes (K8s) - automação Docker E assim implantamos contêineres, sabemos como transferi-los “em lotes” de máquina para máquina. Mas de repente um dos contêineres caiu! O que fazer? Quem vai aumentá-lo novamente? Quem são Docker, Kubernetes, OpenShift e como eles se relacionam?  - 6 Claro, você pode fazer isso manualmente, via Docker. Mas você tem que fazer alguma coisa, escrever alguma coisa, você precisa de algum tipo de ferramenta de automação. É aqui que entra em cena o Kubernetes (abreviado K8s), que também tratará do gerenciamento e orquestração (gerenciamento automatizado de entidades relacionadas) de contêineres. Com os K8s à sua disposição, você não precisa monitorar os contêineres dia e noite. Basta definir o cenário de comportamento e o K8s fará tudo sozinho. Principais recursos do Kubernetes 1. Fornece escalabilidade e gerenciamento de sua configuração. 2. Você pode descrever o que deseja obter ao implantar um cluster e o K8s fará isso. Por exemplo, especifique o número de pods, quanta memória alocar para eles, indique o número de réplicas (instâncias) de aplicativos implantados (em contêineres) em pods. 3. Responsável por manter o sistema em determinado estado, caso algo caia o K8s irá buscá-lo, conforme configuração estabelecida. O que você precisa lembrar aqui: Kubernetes é uma ferramenta para orquestrar aplicações em contêineres – automatizando sua implantação, escalonamento e coordenação em um cluster. Suporta as principais tecnologias de conteinerização, incluindo Docker. K8s é um software de código aberto. Quem são Docker, Kubernetes, OpenShift e como eles se relacionam?  - 7 OpenShift é uma Ferrari no mundo da virtualização, legal, rápido e caro. Desenvolvendo o assunto, vamos passar para o OpenShift. OpenShift é um complemento do Kubernetes que oferece funções adicionais. Está imediatamente pronto para uso, não requer configuração longa e dolorosa e pode ser imediatamente colocado em produção. Veja quantos ícones diferentes existem acima do Kubernetes. E cada um deles faz suas próprias coisas legais. Quem são Docker, Kubernetes, OpenShift e como eles se relacionam?  - 8 Destaques do OpenShift: • É um produto pago, diferentemente do K8; • DevOps pronto para uso, suporte para cenários básicos de implantação azul/verde e canário; • Suporte integrado ao Jenkins; • Fornece ferramentas convenientes para administrar e trabalhar com o cluster; • Possui modelo de segurança mais rigoroso e monitoramento integrado. Vale ressaltar mais uma vez que o OpenShift é um produto pago, diferentemente do Kubernetes. A diferença é esta: se usarmos o Kubernetes simples, resolveremos todos os problemas sozinhos. Se falamos de OpenShift, é um produto da Red Hat que resolve problemas emergentes como parte do suporte pago. Vamos resumir: No desenvolvimento industrial há uma necessidade de “empacotar” a aplicação; esta abordagem é especialmente relevante na arquitetura de microsserviços. Os contêineres são o principal meio de aplicações de embalagem. Docker lida com contêineres, cria imagens de contêineres, coleta e move contêineres. Para gerenciar simultaneamente vários contêineres, é usado o Docker Compose, que está incluído no Docker. Esses programas são softwares livres. Kubernetes(K8s) é uma ferramenta para orquestrar aplicativos em contêineres - automatizando sua implantação, escalonamento e coordenação em um cluster. Suporta as principais tecnologias de conteinerização, incluindo Docker. K8s é um software de código aberto. OpenShift é um complemento do Kubernetes que oferece funcionalidades adicionais. Este é um produto pago, diferentemente do K8s, destinado ao uso corporativo. Fornece DevOps pronto para uso: suporte para os principais cenários de implantação azul/verde, canário, tem suporte integrado para Jenkins e fornece ferramentas convenientes para administrar e trabalhar com o cluster. Possui um modelo de segurança mais rigoroso e monitoramento integrado. Para aqueles que estão ansiosos para codificar: Empacotar um aplicativo Spring Boot em um contêiner Como implantar Postgres no Docker e conectar-se a um aplicativo Spring-Boot Webinar: Docker - Como trabalhar com contêineres? — Desenvolvimento back-end em Java
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION