‫Então, vamos rápido.
‫Tudo bem.
‫Então vamos encerrar o show porque passamos da nossa hora.
‫Eu quero dar a vocês algum feedback.
‫Tudo bem.
‫O primeiro a subir é Jacob.
‫Há muita documentação aqui. A propósito, adoro Dockerfiles de documentação.
‫Não há problema em colocar o quanto você quiser.
‫Na verdade, este é um arquivo YAML, então agora estamos falando sobre Compose. Documentação em arquivos Dockerfiles ou
‫Compose. De qualquer jeito.
‫Sempre uma coisa boa.
‫Tudo bem.
‫Ele está usando uma versão 3. 0 7 o que significa que provavelmente é
‫para Swarm ou algo em produção como Kubernetes usando o conjunto de recursos Compose on Kubernetes.
‫Ele está usando as imagens oficiais do Elastic do Elastic ali.
‫Vamos ver se você fez seu exame de saúde.
‫Fantástico.
‫Você tem verificações de saúde. Isso é ótimo. Você tem configurações.
‫Isso é ótimo.
‫Você está configurando-o em uma rede específica e está usando o modo
‫host na porta, então está dando acesso direto à NIC em vez de passar pelas redes de sobreposição e malha de
‫roteamento.
‫Isso é bom.
‫Então, vamos ver.
‫Precisamos implantar aqui.
‫Ah, e você está executando o round robin DNS do modo de endpoint.
‫Parabéns para você.
‫Isso é algo que muitas pessoas não percebem.
‫Sempre que você está executando algo no Swarm e deseja desabilitar o IP virtual que fica na frente de cada serviço de sobreposição, você deseja
‫fazer isso para bancos de dados onde você só tem um nó, certo, o que muitas vezes acontece, mesmo se você Você está
‫fazendo um espelho de um banco de dados, normalmente executando cada um deles em
‫seu próprio serviço.
‫Portanto, há uma instância em um serviço e essa tarefa dessa instância de um contêiner, você normalmente não quer aquele IP virtual na frente
‫dela porque agora é um salto extra. É outra tradução do NAT.
‫São mais problemas potenciais.
‫Se você definir o modo de endpoint como round robin DNS aqui, isso efetivamente desativa o VIP e tem acesso direto
‫a esse contêiner.
‫Parabéns para você.
‫Não vejo isso com muita frequência porque as pessoas não percebem isso. Você também está usando réplicas.
‫Limites de recursos de 4G para um show que é ótimo.
‫Sempre, eu recomendo sempre definir limites de recursos e reservas, se possível, porque isso vai ajudar as
‫coisas a se darem bem dentro do seu cluster.
‫Sim.
‫Parece que está sendo executado no Docker Swarm. Doce.
‫Mestre de
‫Coordenação.
‫Tudo bem.
‫Mais do mesmo.
‫Coisa boa. Coisa boa.
‫Você está preso montando um volume. Você não é montagem obrigatória. Você está usando um volume nomeado.
‫Você tem restrições de posicionamento aqui, então você está colocando isso em um nó que está
‫codificado com um nome específico. Você sabe que deseja que este seja executado apenas naquele nó.
‫Obviamente, a fraqueza aqui é que, se esse nó cair, não será possível colocá-lo em nenhum outro lugar.
‫Espero que você tenha levado isso em consideração.
‫Tudo bem.
‫Master2, então é assim que você está fazendo isso.
‫Parece que você tem master1, master2 codificados como serviços separados e master3. Muitas pessoas precisam fazer isso dessa forma, pois quando
‫você tem um cluster de banco de dados de vários nós, geralmente é mais fácil colocar cada
‫um deles como seu próprio serviço.
‫Então você fez isso. Seria bom se pudéssemos fazer apenas um serviço com três réplicas.
‫Você pode descobrir isso com alguns exemplos usando o padrão do piloto automático. Se você pesquisar o padrão de piloto automático IO, ou se apenas Google
‫sua tecnologia de banco de dados com a palavra piloto automático, às vezes você pode encontrar configurações e scripts de
‫automação que o ajudarão a fazer tudo em um único serviço.
‫Cada um tem prós e contras.
‫Pessoalmente, tendo a fazer do jeito que você está fazendo.
‫Eu sinto que é mais simples, embora seja mais YAML e seja um pouco mais prolixo.
‫Uma coisa que você poderia fazer aqui.
‫Uma grande melhoria é se todas essas peças são as mesmas aqui.
‫Certo.
‫Da mesma forma, você pode criar um modelo, encurtar esse arquivo significativamente, colocando-o apenas em um bloco de
‫modelo.
‫Eu falo mais sobre isso neste ...
‫Está bem aqui, Jacob. Vou colocar isso no chat.
‫Estes são três recursos avançados diferentes do Docker Compose que muitas pessoas não usam.
‫Um deles está em modelagem.
‫Então, se você ver o exemplo aqui, você pode jogar o modelo ali mesmo.
‫Basicamente, o que você está dizendo é que isso é o
‫que eu quero no modelo e é aqui que eu quero que você coloque, repetidamente em cada imagem, ou melhor, em cada serviço.
‫Então, muito desse material clichê, como você poderia modelar a coisa toda ou você poderia apenas
‫modelar partes deles e ter vários modelos, e o Docker tem documentação sobre isso.
‫Isso ajudaria a tornar seu arquivo menor e nós o chamamos de seco.
‫Certo.
‫Fazendo as coisas uma vez. Não se repita.
‫D R
‫Y Você poderia fazer isso.
‫Isso ajudaria a aliviar muitas dessas coisas repetitivas, especialmente em torno das
‫verificações de integridade e das coisas de implantação.
‫Então você tem seus nós de dados. Tudo parece bem lá. Você está usando suas verificações de saúde. Você
‫tem sua rede configurada. Seus volumes. Deixe-me ir além disso. Você está codificando coisas pesadamente para
‫cada nó. Eu realmente gostaria que
‫tivéssemos uma maneira de dizer, não corra ... como aqui está uma restrição de posicionamento.
‫Não o execute em um
‫que é onde os outros são executados.
‫Há alguma esperança para você. Existem duas coisas que você pode fazer aqui. Você pode olhar as preferências de posicionamento.
‫Se você tiver seus nós diferentes em zonas de disponibilidade e simplesmente quiser que
‫seu banco de dados tenha certeza de que tem uma cópia em cada zona de disponibilidade, como um AWS
‫ou algo assim, você pode adicionar rótulos a cada nó. Então você simplesmente entra aqui e diz que prefiro que você espalhe isso na minha gravadora.
‫Basta dar a ele um rótulo e uma preferência de posicionamento em vez de
‫uma restrição, o que permitirá colocá-los nos diferentes servidores nas diferentes zonas.
‫Mas o legal aqui é se uma zona, ou um servidor, cair, ainda será capaz de reatribuir isso
‫em outro lugar.
‫Agora, o pior caso aqui é que dois deles estão sendo executados no mesmo servidor, mas isso provavelmente não é
‫tão ruim se você for capaz de ... Quero dizer, uma coisa pode ser os dados obtendo os dados de
‫uma zona sobre a outra. Depois de resolver alguns desses problemas.
‫Sim.
‫Sim. Você está dizendo, para que eu possa usar restrição e permissão para perder um dos nós físicos.
‫Sim.
‫A questão aqui é que você está tornando-o um pouco mais frágil ao atribuí-lo a nomes
‫de host do Node. Você tem que ativar esses hosts específicos. Idealmente, como se você estivesse no
‫AWS ou algo onde você pode ter seus servidores criados automaticamente.
‫Então, se um servidor morre, tudo cria um novo.
‫Sim.
‫Se você contabilizou tudo isso, ótimo. Não há nada de errado com as restrições de posicionamento dessa maneira.
‫Significa apenas que esses nós precisam estar lá ou os contêineres morrem.
‫A outra coisa é que há um novo recurso chegando em 19. 03 e a maneira como você aprende sobre
‫esses novos recursos é acessando o Docker no github e acessando as versões do Docker-ce. Vou postar isso no chat e você pode procurar novos
‫recursos do Swarm. Há uma nova versão do recurso Swarm que permitirá que
‫você execute réplicas, mas informa que nunca execute mais do que X dessas réplicas no mesmo nó. Um recurso super legal e ajuda as pessoas a garantir que seus bancos
‫de dados não sejam atribuídos ao mesmo nó. Você pode querer verificar isso como
‫uma forma mais flexível de garantir que eles não estejam na mesma nota.
‫Eu acho que se eu rolar para baixo para Swarm.
‫Sim. Adicionado suporte para o máximo de réplicas por nó. Esse é um novo recurso no próximo 19. Versão 03 que já
‫está em pré-lançamento agora, então devemos ver isso nas próximas semanas ou meses.
‫Você pode verificar isso.
‫Isso pode ajudá-lo com as restrições.
‫Tudo bem.
‫Eu quero avançar um pouco.
‫Desculpe, não posso revisar tudo isso. Estou movendo para baixo.
‫Você tem suas redes, verdadeiras e proxy conectáveis.
‫Tudo parece bem lá.
‫Você tem volume, então está usando o driver de volume padrão, de modo que significa que todos esses dados estão
‫presos no nó em que estão.
‫Se você tiver qualquer armazenamento compartilhado, pode considerar o REX-Ray ou outro driver de volume para
‫obter esse armazenamento desse disco. Dessa forma, quando um dos nós falhar e
‫quiser criá-lo em outro lugar, ele reconectará esse volume de banco de dados
‫no outro nó.
‫Tudo bem.
‫Você já deve ter olhado para isso. Você tem certificados traefik. Eu poderia falar sobre isso um pouco,
‫mas vamos ficar sem tempo. Vou deixar as coisas do certificado
‫de trânsito para outro dia. Então você tem configurações e outros arquivos.
‫Isso é ótimo. Usando todas as configurações.
‫Como você deveria.
‫Não vejo segredos aqui. Estou supondo que em algum momento você
‫precisará dos Segredos e talvez precise armazená-los em algum lugar. Além daquele ótimo YAML. Definitivamente, um dos melhores que já vi.
‫Acho que há muito pouco a fazer aqui.
‫Acho que em termos de torná-lo meio que usar todos os recursos perfeitos. O template é uma coisa. Considerando drivers de volume
‫diferentes e considerando o novo recurso. Se
‫não forem as preferências de posicionamento, o novo recurso para o máximo de réplicas por nó.
‫Obrigado por assistir.
‫Você pode clicar em ASSINAR E no sino de notificação para receber um alerta quando eu entrar no ar para que você possa entrar
‫e fazer perguntas ao Devops e ao Docker.
‫Você pode assistir alguns dos meus outros vídeos lá e pode fazer o que estou prestes a fazer e apenas tirar
‫uma soneca.