1 00:00:00,620 --> 00:00:10,480 ‫Tudo bem, agora que aprendemos tudo sobre o dimensionamento Swarm com redes superpostas e malhas de roteamento, eu quero que 2 00:00:11,350 --> 00:00:18,910 ‫você perca o processo de criação de ativos ou objetos que você precisa implantar em 3 00:00:18,910 --> 00:00:20,620 ‫um cenário Swarm. 4 00:00:20,620 --> 00:00:26,110 ‫Então, não estamos mais usando o comando de encaminhamento do docker, mas a rede e os volumes 5 00:00:26,110 --> 00:00:28,640 ‫são do mesmo tipo, mas um pouco diferentes. 6 00:00:28,660 --> 00:00:36,030 ‫Quero dar-lhe um cenário do mundo real de um aplicativo de várias camadas, e vamos usar o aplicativo de votação distribuída 7 00:00:36,030 --> 00:00:36,820 ‫do Docker. 8 00:00:36,840 --> 00:00:38,830 ‫É realmente chamado de Aplicação de Votação de Exemplo. 9 00:00:38,910 --> 00:00:43,980 ‫Você pode ter visto isso em Docker keynotes, ou em outros laboratórios ou tutoriais. 10 00:00:43,980 --> 00:00:49,860 ‫É um aplicativo bastante comum, e eu acho, um ótimo, porque tem pelo menos cinco papéis, ou diferentes 11 00:00:49,860 --> 00:00:51,540 ‫recipientes que você precisa implantar. 12 00:00:51,720 --> 00:00:56,760 ‫E todos servem uma função especial e eles realmente estão fazendo coisas que realmente funcionam, na verdade, faz o 13 00:00:56,760 --> 00:00:57,740 ‫que é suposto fazer. 14 00:00:57,750 --> 00:01:03,000 ‫E assim você pode jogar com ele e tem componentes de arquitetura distribuídos muito típicos, como o frontend 15 00:01:03,010 --> 00:01:04,870 ‫da web e o backend do 16 00:01:04,870 --> 00:01:12,190 ‫trabalhador, e o valor-chave em um banco de dados. Eu acho muito útil fazer. usar o diretório swarm-app-1. 17 00:01:12,370 --> 00:01:18,960 ‫Neste caso, você vai Na verdade, é nosso reembolso do curso. Não há mais 18 00:01:18,960 --> 00:01:26,590 ‫que um readme e uma imagem. A partir desse readme, você vai precisar criar o volume e algumas redes 19 00:01:26,590 --> 00:01:30,280 ‫e cinco serviços que são necessários para que este aplicativo funcione completamente. 20 00:01:30,370 --> 00:01:36,580 ‫Isso pode ajudá-lo a tentar alguns desses comandos localmente, ou realmente escrevê-los em seu editor de texto e classificá-los, porque eles 21 00:01:36,790 --> 00:01:40,290 ‫vão ser um pouco complexo, certo. Quando você cria esse serviço 22 00:01:40,300 --> 00:01:45,650 ‫docker, você terá que conectá-lo a uma rede específica e abrir portas e chamá-lo de 23 00:01:45,650 --> 00:01:51,490 ‫um nome específico e usar uma imagem específica. Então, pode ser mais fácil editá-lo localmente e depois cortar e 24 00:01:51,490 --> 00:01:54,400 ‫colar em seu shell, onde quer que esteja o seu Swarm. 25 00:01:54,520 --> 00:01:56,240 ‫Mas é só eu. 26 00:01:56,260 --> 00:02:01,390 ‫Tudo vai usar as imagens Docker Hub, porque na produção Swarm você não quer estar construindo. 27 00:02:01,450 --> 00:02:05,260 ‫Esse não é um processo que você deseja em sua produção Swarm, normalmente. 28 00:02:05,290 --> 00:02:10,390 ‫Normalmente, você quer fazer o seu edifício através de algum serviço online automatizado, como Docker Hub 29 00:02:10,390 --> 00:02:17,280 ‫ou Docker Cloud, ou em algum lugar em seu pipeline CI / CD que não está comendo recursos em sua produção Swarm. 30 00:02:17,290 --> 00:02:22,630 ‫Nesse cenário, podemos imaginar que nossas imagens estão sendo construídas em outro lugar e 31 00:02:22,630 --> 00:02:28,720 ‫armazenadas no Docker Hub e nós precisamos simplesmente puxá-las, independentemente das versões mais recentes, em nosso Swarm. 32 00:02:28,840 --> 00:02:34,720 ‫E só vou dizer isso, como muitas coisas na Ciência da Computação, esta é uma metade da ciência, uma metade da forma de arte. 33 00:02:34,930 --> 00:02:40,650 ‫Seus comandos podem estar em ordens totalmente diferentes, ou têm ordens de opções totalmente diferentes do que as minhas. 34 00:02:40,660 --> 00:02:43,200 ‫Você pode chamar suas redes de coisas diferentes. 35 00:02:43,270 --> 00:02:43,940 ‫Isso é bom. 36 00:02:43,950 --> 00:02:48,010 ‫No final, o resultado é que o aplicativo funciona, que eles são capazes de conversar uns com os outros 37 00:02:48,010 --> 00:02:52,180 ‫da maneira correta, que você tenha todos os portos publicados e que você tenha os dados protegidos em um volume. 38 00:02:52,180 --> 00:02:55,020 ‫Vejamos o que você enfrenta. 39 00:02:55,030 --> 00:02:59,170 ‫Imagine que você está tendo que projetar os comandos e a arquitetura para isso. 40 00:02:59,170 --> 00:03:01,970 ‫E isso é o que o desenvolvedor lhe daria que escreveu esse aplicativo. 41 00:03:02,140 --> 00:03:05,280 ‫Bem neste caso, provavelmente muitos desenvolvedores escreveram esse aplicativo, certo? 42 00:03:05,290 --> 00:03:10,120 ‫Porque, na verdade, temos uma interface da web que está em Python, temos um backend da Web que está 43 00:03:10,120 --> 00:03:11,140 ‫sendo executado no Node. 44 00:03:11,140 --> 00:03:17,170 ‫Temos um processo de trabalho que está sendo executado. NET e depois temos uma loja de valor de 45 00:03:17,180 --> 00:03:19,600 ‫chave Redis e um banco de dados PostgreSQL. 46 00:03:19,630 --> 00:03:24,610 ‫Isso é realmente algo que eu vejo cada vez mais, onde diferentes equipes estão escrevendo diferentes partes de 47 00:03:24,610 --> 00:03:29,510 ‫uma solução, e eles são capazes de escolher o idioma que eles acham melhor para esse cenário. 48 00:03:29,660 --> 00:03:34,660 ‫E no mundo dos contêineres, esse tipo de aplicação realmente brilha. com as dependências no Python ou o que for. 49 00:03:34,660 --> 00:03:35,750 ‫Como nossas aplicações 50 00:03:35,770 --> 00:03:40,630 ‫estão segmentadas, elas ainda podem ser executadas tecnicamente na mesma máquina, mas todas estão protegidas 51 00:03:40,630 --> 00:03:45,170 ‫umas das outras, de modo que você não acabar com o Nó em conflito 52 00:03:45,190 --> 00:03:49,810 ‫Você também notará aqui o fluxo de tráfego, e o aplicativo de votação não o possui, mas deve ter 53 00:03:49,810 --> 00:03:53,680 ‫uma pequena flecha ao chegar em que é aí que os usuários entrarão na parte do 54 00:03:53,710 --> 00:03:54,320 ‫aplicativo de votação. 55 00:03:54,460 --> 00:03:59,530 ‫E você pode ver que o aplicativo de votação realmente tem que empurrar seus votos para esta aplicação que, por sinal, 56 00:03:59,530 --> 00:04:01,300 ‫você vai votar por gatos e cães. 57 00:04:01,400 --> 00:04:07,780 ‫Isso vai empurrar isso para o Redis e, em seguida, o trabalhador estará realmente verificando o sistema Redis 58 00:04:07,780 --> 00:04:15,060 ‫para qualquer coisa na fila e, em seguida, estará empurrando os resultados para o Postgres, que será exibido em um 59 00:04:15,100 --> 00:04:19,960 ‫backend do WebSockets que realmente é atualizado ao ser como você está votação. 60 00:04:19,990 --> 00:04:25,540 ‫Se saltamos no Diretório real rápido, coloquei algumas anotações aqui para ajudá-lo ao longo do caminho, porque há 61 00:04:25,540 --> 00:04:28,400 ‫algumas coisas que são um pouco diferentes e novas. 62 00:04:28,510 --> 00:04:34,240 ‫Mas, a área de serviços seria escrita como se fosse de alguém que conhecesse sua aplicação, mas não 63 00:04:34,240 --> 00:04:38,390 ‫sabia realmente como implementar isso no Docker. E esse é um cenário bastante comum. 64 00:04:38,530 --> 00:04:43,110 ‫que você precisa implantar, o nome real que você precisa para dar, porque esses são importantes. 65 00:04:43,270 --> 00:04:46,310 ‫Você pode ver que nos serviços eu listei a imagem 66 00:04:46,360 --> 00:04:51,130 ‫Estas são imagens que, infelizmente, são codificadas para os nomes que eles vão procurar na rede. 67 00:04:51,130 --> 00:04:55,350 ‫Idealmente, você deseja que os aplicativos que você possa configurar sobre o que eles precisam fazer para os 68 00:04:55,360 --> 00:05:01,360 ‫nomes, mas, neste caso, o voto procurará especificamente um registro DNS chamado redis. Você pode ver que existem 69 00:05:01,360 --> 00:05:06,460 ‫duas redes aqui. Temos uma interface e uma rede de backend. Isso é muito típico também de 70 00:05:06,460 --> 00:05:11,500 ‫um aplicativo maior, onde talvez você queira proteger seu banco de dados em uma rede de backend para que 71 00:05:11,500 --> 00:05:14,580 ‫o aplicativo de usuário do frontend não tenha acesso direto a ele. 72 00:05:14,680 --> 00:05:19,790 ‫E é isso que mostramos aqui e você notará que o trabalhador realmente está conectado a duas redes. 73 00:05:19,930 --> 00:05:25,830 ‫Então, quando você usa seu comando create, lembre-se de que você está usando o serviço docker, não crie o docker. 74 00:05:25,840 --> 00:05:29,950 ‫Então, quando você usa seu comando de criação do serviço docker, você precisará especificar a --network 75 00:05:29,980 --> 00:05:33,460 ‫duas vezes, uma vez para o frontend e uma vez para o backend. 76 00:05:33,490 --> 00:05:36,100 ‫Obviamente, você sabe criar suas redes primeiro. 77 00:05:36,100 --> 00:05:41,290 ‫Então, alguns desses são especificados aqui. E se você precisar da imagem novamente, o diagrama de arquitetura também 78 00:05:41,290 --> 00:05:45,350 ‫está aqui, apenas no caso de isso ajudar de forma conceitual com a forma como você vai implantar isso. 79 00:05:45,700 --> 00:05:50,680 ‫E, claro, você terá a documentação do Docker. Você pode precisar usar o comando --help no serviço 80 00:05:50,680 --> 00:05:54,790 ‫criar o comando que lhe dará todas as várias opções que você pode precisar. 81 00:05:54,790 --> 00:06:00,580 ‫Vocês só precisarão de três ou quatro desses. Se você ficar preso com os próprios 82 00:06:00,580 --> 00:06:06,430 ‫comandos, você pode querer rever a documentação real, que eu colocarei nos recursos desta seção. 83 00:06:06,520 --> 00:06:13,250 ‫Mas este documento específico no âmbito do Swarm realmente envolve a criação de serviços e a configuração de serviços. 84 00:06:13,330 --> 00:06:18,610 ‫Então, é um pouco falado, mas tem muita informação nela que pode ajudá-lo se você ficar 85 00:06:18,610 --> 00:06:19,160 ‫preso aqui. 86 00:06:19,180 --> 00:06:22,700 ‫O próximo vídeo, na verdade, vou correr por tudo isso como se eu fosse você. 87 00:06:22,750 --> 00:06:23,980 ‫Boa sorte e divirta-se.