From 683247eace968d629f7931b0276962a01f989e54 Mon Sep 17 00:00:00 2001 From: Raissa Brizeno Date: Sat, 10 Aug 2024 18:17:12 -0300 Subject: [PATCH] adiciona material complementar --- README.md | 18 +-- assets/docker-compose.png | Bin 0 -> 57642 bytes assets/docker.jpg | Bin 0 -> 33755 bytes exercicios/para-casa/README.md | 55 +++++++- .../exemplo-nome-sobrenome/resolucao.js | 0 exercicios/para-casa/index.js | 1 - .../para-casa/instrucoes-pull-request.md | 31 ----- material/003-componentes.md | 3 +- material/007-docker.md | 128 ++++++++++++++++++ 9 files changed, 187 insertions(+), 49 deletions(-) create mode 100644 assets/docker-compose.png create mode 100644 assets/docker.jpg delete mode 100644 exercicios/para-casa/entregas/exemplo-nome-sobrenome/resolucao.js delete mode 100644 exercicios/para-casa/index.js delete mode 100644 exercicios/para-casa/instrucoes-pull-request.md create mode 100644 material/007-docker.md diff --git a/README.md b/README.md index 36f4db4..c97cab7 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ logo reprograma -# Tema da Aula +# Tema da Aula Turma Online ON32 - Metodologia DevOps | Semana 10 | 2024 | Professora Raissa Brizeno @@ -68,11 +68,15 @@ O que veremos essa semana? [Trunk-based development](https://www.atlassian.com/continuous-delivery/continuous-integration/trunk-based-development) ### Links documentação de ferramentas: -* https://backstage.io/ -* https://helm.sh/docs/ -* https://tekton.dev/docs/ -* https://argoproj.github.io/cd/ +* [Backstage](https://backstage.io/) +* [Helm](https://helm.sh/docs/) +* [Tekton](https://tekton.dev/docs/) +* [Argo](https://argoproj.github.io/cd/) * [AWS Treinamento e Certificação](https://aws.amazon.com/pt/training/?nc2=type_a) +* [Docker Getting Started](https://docs.docker.com/guides/getting-started/) +* [Docker Compose](https://docs.docker.com/compose/) +* [Homebrew](https://brew.sh/) +* [Colima](https://github.com/abiosoft/colima) ### Livros @@ -84,7 +88,3 @@ O que veremos essa semana?

Desenvolvido com :purple_heart: por raisabrizeno

- - -#TESTE -#TESTE 2 diff --git a/assets/docker-compose.png b/assets/docker-compose.png new file mode 100644 index 0000000000000000000000000000000000000000..ab670a452f16bb16610780cc8659486573542688 GIT binary patch literal 57642 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 literal 0 HcmV?d00001 diff --git a/assets/docker.jpg b/assets/docker.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4abf5dc247fcbe66b5af77882a1bc8b9b5ed866d GIT binary patch literal 33755 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 KodMz>L;nSV_O~Sf literal 0 HcmV?d00001 diff --git a/exercicios/para-casa/README.md b/exercicios/para-casa/README.md index ebf7422..e5bd697 100644 --- a/exercicios/para-casa/README.md +++ b/exercicios/para-casa/README.md @@ -1,19 +1,60 @@ # Exercício de Casa 🏠 -## Nome do Exercicio +## Explicação do exercício: + +*Vamos usar a mesma aplicação que usamos em sala. [Clique aqui](/exercicios/para-sala/users-api-aula/README.md) para acessar a documentação* + +Dividir o [Workflow já existente](/workflows/github-actions-demo.yml) em dois, um para *Pull Request* e um para *Push*. Ambos quando a ação for na Branch principal (main). + +O de Pull request deve executar apenas as verificações (testes, lint e etc), o de push deve executar também o build e push para o docker hub. + +Um exemplo que pode ser usado para nomear os workflows: + +- github-actions-pr.yml +- github-actions-push.yml + +*Na entrega, basta adicionar apenas os arquivos novos na pasta workflows, para correção.* -- Explicação do exercício: -[CONTEUDO] --- Terminou o exercício? Dá uma olhada nessa checklist e confere se tá tudo certinho, combinado?! -- [ ] Fiz o fork do repositório. +- [ ] Fiz o fork do [repositório](https://github.com/reprograma/on32-ijs-s10-metodologia-devops). - [ ] Clonei o fork na minha máquina (`git clone url-do-meu-fork`). - [ ] Criei minha branch (` git checkout -b nome-sobrenome `) -- [ ] Criei a pasta com o meu nome dentro da pasta entregas (` mkdir nome-sobrenome`) -- [ ] Resolvi o exercício dentro da minha pasta. Como no [exemplo](/on21-imersao-js-S1-TDD/exercicios/para-casa/entregas/exemplo-nome-sobrenome/). - [ ] Adicionei as mudanças. (`git add .` para adicionar todos os arquivos, ou `git add nome_do_arquivo` para adicionar um arquivo específico) - [ ] Commitei a cada mudança significativa ou na finalização do exercício (`git commit -m "Mensagem do commit"`) - [ ] Pushei os commits na minha branch (`git push origin nome-da-branch`) -- [ ] Criei um Pull Request seguindo as orientações que estao nesse [documento](/on21-imersao-js-S1-TDD/exercicios/para-casa/instrucoes-pull-request.md). \ No newline at end of file +- [ ] Criei um Pull Request seguindo as orientações abaixo + +# Como criar meu Pull Request? 🤔 + +Olá, meninas!
+O checklist da atividade ta todo preenchido? Entao agora tá na hora de fazer nosso pull request para o repositório original.
+Você deverá navegar até o seu repositório onde você fez o fork e pressionar o botão “New pull request” no lado esquerdo da página.

+![alt](https://assets.digitalocean.com/articles/eng_python/PullRequest/PRButton.png) + +Você poderá modificar a branch na próxima tela. + +Depois de ter escolhido a branch main do repositório original no lado esquerdo, e a nova-branch do seu fork do lado direito, você deve ver uma tela assim: + +![alt](https://assets.digitalocean.com/articles/eng_python/PullRequest/PullRequest.png) +

+O GitHub vai lhe alertar de que é possível mesclar as duas branches porque não há código concorrente. Você deve adicionar um título, e um comentário descrevendo o seu PR.

+DICAS:
+1. Você pode seguir esse modelo para o título do seu PR: +``` +Nome da Atividade - Seu nome. +``` +2. Você pode seguir esse modelo para a descrição do seu PR: +``` +O que? +Resolução dos exercícios de DevOps. + +Como? +* Adicionei um arquivo para resolver a atividade utilizando o GitActions; +* Adicionei novo workflow para pull request +* Outro ponto que você queira adicionar. +``` +Feito isso, é so clicar em “Create pull request”.

+Tcharaaaannn! Agora é só esperar a prof revisar seu PR 💜 diff --git a/exercicios/para-casa/entregas/exemplo-nome-sobrenome/resolucao.js b/exercicios/para-casa/entregas/exemplo-nome-sobrenome/resolucao.js deleted file mode 100644 index e69de29..0000000 diff --git a/exercicios/para-casa/index.js b/exercicios/para-casa/index.js deleted file mode 100644 index f2e406c..0000000 --- a/exercicios/para-casa/index.js +++ /dev/null @@ -1 +0,0 @@ -//exercicios feitos pela profa aqui \ No newline at end of file diff --git a/exercicios/para-casa/instrucoes-pull-request.md b/exercicios/para-casa/instrucoes-pull-request.md deleted file mode 100644 index f75322c..0000000 --- a/exercicios/para-casa/instrucoes-pull-request.md +++ /dev/null @@ -1,31 +0,0 @@ -# Como criar meu Pull Request? 🤔 - -Olá, meninas!
-O checklist da atividade ta todo preenchido? Entao agora tá na hora de fazer nosso pull request para o repositório original.
-Você deverá navegar até o seu repositório onde você fez o fork e pressionar o botão “New pull request” no lado esquerdo da página.

-![alt](https://assets.digitalocean.com/articles/eng_python/PullRequest/PRButton.png) - -Você poderá modificar a branch na próxima tela. - -Depois de ter escolhido a branch main do repositório original no lado esquerdo, e a nova-branch do seu fork do lado direito, você deve ver uma tela assim: - -![alt](https://assets.digitalocean.com/articles/eng_python/PullRequest/PullRequest.png) -

-O GitHub vai lhe alertar de que é possível mesclar as duas branches porque não há código concorrente. Você deve adicionar um título, e um comentário descrevendo o seu PR.

-DICAS:
-1. Você pode seguir esse modelo para o título do seu PR: -``` -Nome da Atividade - Seu nome. -``` -2. Você pode seguir esse modelo para a descrição do seu PR: -``` -O que? -Resolução dos exercícios de lógica. - -Como? -* Adicionei um arquivo para resolver a atividade 1 utilizando o GitActions; -* Adicionei passo de testes unitários na esteira; -* Outro ponto que você queira adicionar. -``` -Feito isso, é so clicar em “Create pull request”.

-Tcharaaaannn! Agora é só esperar a prof revisar seu PR 💜 diff --git a/material/003-componentes.md b/material/003-componentes.md index 23ebfec..a166de0 100644 --- a/material/003-componentes.md +++ b/material/003-componentes.md @@ -16,7 +16,8 @@ ## Containers -Containers são pacotes leves e portáteis que contêm tudo o que uma aplicação precisa para ser executada, incluindo o código, runtime, bibliotecas e dependências. +Containers são pacotes leves e portáteis que contêm tudo o que uma aplicação precisa para ser executada, incluindo o código, runtime, bibliotecas e dependências. +Mais informações sobre Docker [Aqui](007-docker.md).
diff --git a/material/007-docker.md b/material/007-docker.md new file mode 100644 index 0000000..c20d520 --- /dev/null +++ b/material/007-docker.md @@ -0,0 +1,128 @@ +# Docker + +[Docker](https://docs.docker.com/guides/getting-started/) é uma plataforma de software que permite criar, testar e implantar aplicações rapidamente. Ele faz isso usando uma tecnologia chamada containers. + +Um container é como uma "caixa" que contém tudo o que o software precisa para funcionar: código, bibliotecas, dependências, e até mesmo o sistema operacional. Isso garante que o aplicativo funcione da mesma forma, independentemente do ambiente onde ele está sendo executado (seja no seu computador, em um servidor na nuvem, ou em qualquer outro lugar). + +Ainda não entendi... +tá bem, imagine que você é um cozinheiro: + +- Cozinha tradicional: Quando você quer preparar uma refeição, você precisa de ingredientes, utensílios de cozinha, e um fogão. Mas se você viajar para outro lugar, pode ser que os utensílios, ingredientes ou o fogão sejam diferentes, e sua receita pode não sair como esperado. + +- Cozinha com Docker: Agora, imagine que você tem uma caixa mágica onde você pode colocar todos os ingredientes, panelas, fogão, e tudo o que você precisa para preparar sua refeição. Quando você quer cozinhar em qualquer lugar do mundo, basta levar essa caixa com você. Não importa onde você esteja, sua receita vai sair exatamente igual porque a caixa já tem tudo o que você precisa, na mesma versão e configuração. + + +### O que o Docker faz? + + + +- Empacotamento: Docker pega o seu aplicativo (como uma receita) e empacota tudo o que ele precisa (ingredientes, utensílios, fogão) dentro de um "container". Isso inclui o código do aplicativo, as bibliotecas que ele usa e até o sistema operacional que ele precisa. + +- Portabilidade: Uma vez que o aplicativo está dentro de um container, você pode rodá-lo em qualquer lugar: no seu computador, em um servidor na nuvem, ou no computador de outra pessoa. O container garante que tudo funcione do mesmo jeito, independentemente de onde ele é executado. + +- Isolamento: Cada container é isolado, o que significa que se você tiver vários containers rodando diferentes aplicativos, eles não vão interferir uns com os outros. É como ter várias caixas mágicas, cada uma com sua própria cozinha. + +### Por que isso é útil? + +- Facilidade de uso: Os desenvolvedores não precisam se preocupar em configurar todo o ambiente sempre que vão rodar um aplicativo. Com Docker, tudo já vem pronto dentro do container. + +- Consistência: O aplicativo vai funcionar da mesma maneira, não importa onde ele esteja rodando, porque o container carrega tudo o que é necessário. + +- Eficiência: Containers são leves e usam menos recursos do que máquinas virtuais tradicionais (que são como computadores completos rodando dentro de outro computador), então você pode rodar muitos containers no mesmo computador sem problemas. + +Em resumo, Docker é como uma "caixa" que ajuda desenvolvedores a empacotar, distribuir e rodar seus aplicativos de maneira fácil e consistente, independentemente de onde esses aplicativos forem executados. + +# Docker-compose + +Docker Compose é uma ferramenta que complementa o Docker, facilitando a execução de múltiplos containers que formam uma aplicação. Pense no Docker Compose como um orquestrador que coordena vários containers, garantindo que eles sejam executados juntos de maneira organizada. + + + +### O que o Docker Compose faz? + +Quando você tem uma aplicação complexa que depende de vários serviços diferentes, como por exemplo: + +- Um banco de dados (por exemplo, MySQL) +- Um servidor web (por exemplo, Nginx) +- Um serviço de cache (por exemplo, Redis) + +Cada um desses serviços pode rodar em seu próprio container. Docker Compose permite que você defina todos esses serviços e suas interações em um único arquivo, chamado *docker-compose.yml*. + +Nesse arquivo, você especifica: + +- Quais containers serão usados (quais imagens Docker), +- Como eles se conectam entre si (rede), +- Configurações específicas para cada container (volumes, +- variáveis de ambiente, portas expostas, etc.). + +### Exemplo: + +docker-compose.yaml + +```sh +version: '3' +services: + web: + image: nginx + ports: + - "80:80" + db: + image: mysql + environment: + MYSQL_ROOT_PASSWORD: example + +``` + +Acima, dois serviços estão definidos: + +- Um servidor web usando a imagem Nginx, exposto na porta 80. +- Um banco de dados MySQL com uma senha especificada. + +Para executar o docker-compose o comando é: +```sh +docker-compose up +``` +E para parar todos os serviços: +```sh +docker-compose down +``` + +### Principais Vantagens do Docker Compose: + +- Facilidade de uso: Em vez de iniciar cada container manualmente, você define tudo em um único arquivo e controla toda a aplicação com comandos simples. +- Reprodutibilidade: Todo o ambiente de desenvolvimento ou produção pode ser descrito no docker-compose.yml, tornando fácil reproduzir o ambiente em qualquer lugar. +- Escalabilidade: Você pode escalar serviços específicos para rodar múltiplas instâncias com uma simples configuração, facilitando o gerenciamento de grandes aplicações. + + +Docker Compose é uma ferramenta que permite definir e gerenciar ambientes multi-containers de forma simples e eficiente. Ele é especialmente útil quando você tem uma aplicação composta por vários serviços que precisam ser executados e configurados juntos. + +# Docker Desktop + +Docker Desktop é uma aplicação que facilita o uso do Docker em sistemas operacionais de desktop, como Windows e macOS (principalmente em WINDOWS). Ele fornece uma interface gráfica para gerenciar containers e vem com tudo o que você precisa para começar a usar Docker em seu computador local. + +### O que o Docker Desktop faz? + +- Instalação Fácil: Docker Desktop simplifica a instalação do Docker no seu computador. Ele vem com todos os componentes necessários, incluindo o Docker Engine, Docker CLI (linha de comando), Docker Compose e outras ferramentas. + +- Interface Gráfica (GUI): Embora o Docker tradicionalmente seja usado via linha de comando, o Docker Desktop inclui uma interface gráfica que facilita a visualização e gerenciamento dos containers, imagens, volumes e redes que você está utilizando. + +### Integração com o Sistema Operacional: + + +- No Windows, o Docker Desktop configura automaticamente o subsistema necessário (como o WSL 2 - Windows Subsystem for Linux) para permitir a execução de containers Linux, que são os mais comuns. + +- macOS: No macOS, Docker Desktop usa uma máquina virtual interna para rodar containers Linux. +Sincronização de Arquivos: Docker Desktop facilita a sincronização de arquivos entre o sistema de arquivos do host (seu computador) e os containers, permitindo desenvolvimento e testes mais rápidos. + + +### Principais Vantagens do Docker Desktop: + +- Facilidade de uso: Simplifica a instalação e configuração do Docker em desktops, sem a necessidade de configurações complexas. +- Interface amigável: A interface gráfica ajuda a gerenciar containers e outros recursos de forma mais intuitiva. +Tudo-em-um: Vem com todas as ferramentas necessárias para trabalhar com Docker, incluindo Docker Compose e suporte para Kubernetes. + +Docker Desktop é uma solução prática e completa para rodar Docker em ambientes de desktop, fornecendo tanto uma interface gráfica quanto ferramentas de linha de comando para facilitar o trabalho com containers. + +```A nível de estudos quem tiver MacOs ou Linux usar terminal é uma boa prática para entender os comandos e funcionamento do Docker, no Window é mais complicado, então pode e deve seguir com a interface. No Windows, por padrão, o docker é startado automáticamente junto com a inicialização do sistema.``` + +*Para mais informações sobre Docker Desktop acesse a [Documentação Aqui](https://www.docker.com/products/docker-desktop/)*