From aea0fbd922dc66569febb3bf7ec665315ae8c9b7 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Wed, 18 Nov 2015 16:31:19 -0200 Subject: DevOps --- aulas/clientes.rst | 2 ++ aulas/devops.rst | 48 ++++++++++++++++++++++++++++++++++++------------ aulas/metodologias.rst | 6 +++--- aulas/seguranca.rst | 6 ++++++ aulas/versionamento.rst | 6 +++--- 5 files changed, 50 insertions(+), 18 deletions(-) diff --git a/aulas/clientes.rst b/aulas/clientes.rst index 01f69ae..914405e 100644 --- a/aulas/clientes.rst +++ b/aulas/clientes.rst @@ -79,6 +79,8 @@ A competição no mercado pode forçar a redução do valor cobrado. Porém, a r 8.6 - Atividades ---------------- +#. Crie um modelo de proposta comercial. Você pode usar vários modelos disponíveis na internet e adaptar às suas preferências. Ter esse template à mão permitirá que você foque mais no conteúdo das propostas que você fizer do que na sua apresentação lógica e gráfica. + 8.7 - Referências ----------------- diff --git a/aulas/devops.rst b/aulas/devops.rst index 026f735..9f03acc 100644 --- a/aulas/devops.rst +++ b/aulas/devops.rst @@ -58,6 +58,12 @@ No caso de uma arquitetura de serviços, temos os seguintes ambientes: 5.4 - Vagrant ------------- +* Ferramenta para criação e gestão de ambientes de desenvolvimento. +* Sua aplicação roda localmente, porém dentro de uma máquina virtual. +* O simples comando `vagrant up` ergue a máquina virtual e realiza a configuração do ambiente. +* A "receita" do ambiente de desenvolvimento pode ser compartilhada entre todos(as) desenvolvedores(as) do software. +* O vagrant se soma ao nosso ambiente de trabalho e também serve como ambiente de testes. + Roteiro do screencast: :: @@ -68,23 +74,42 @@ Roteiro do screencast: cd ~/projetos/blogatico vagrant init -5.5 - Integração contínua -------------------------- +5.5 - Fazendo o deploy +---------------------- -- Integração contínua usando o `Travis CI `_. +- Deploy: disponibilizar o código em ambiente de hospedagem (desenvolvimento, staging ou produção). +- SSH: protocolo de comunicação criptografada e autenticada entre cliente e servidor. +- Git, rsync e sftp: diversos, dentre inúmeros, meios de se transferir o código. +- O deploy também pode ser automatizado usando scripts ou softwares especializados (ansible, capistrano, etc). -5.6 - Fazendo o deploy ----------------------- +Roteiro do screencast: + +* SSH: entrando no servidor (fingerprints e senha). +* SSH: autenticação por chave. +* Bônus: github com chave pública. +* Clonando o repositório em produção. +* Atualizando o repositório. +* Bônus: deploy automatizado com git-hooks. + +5.6 - Testes e integração contínua +---------------------------------- + +- Erros de programação são muito comuns. +- Apenas a atenção não é suficiente. +- Testar manualmente o software é importante, porém é um trabalho repetitivo, cansativo e também sujeito a falhas. +- Rotinas automatizadas de teste podem pegar muitos erros e serem feitas localmente ou através de serviços. + +Roteiro do screencast: -- SSH e rsync. -- Deploy via git. +* Mostrar softwares e serviços de integração contínua. +* Criar um protótipo local e simples de teste e integração contínua. 5.7 Atividades -------------- -#. Instale o vagrant. -#. Crie uma máquina virtual para desenvolver o seu projeto. -#. Crie uma conta no Travis CI. +#. Crie um ambiente de desenvolvimento vagrant para o seu projeto. +#. Experimente o PuPHPet para gerar uma configuração mais complexa de ambiente virtual de desenvolvimento. +#. Crie uma rotina de testes simples para o seu projeto. 5.8 - Referências ----------------- @@ -94,5 +119,4 @@ Roteiro do screencast: - `Deploy estilo Heroku usando Git – Elton Minetto `_. - `Deploy fácil com git - Dan Jesus `_. - `PuPHPet - Online GUI configurator for Puppet & Vagrant `_. -- https://github.com/juancarlospaco/css-html-js-minify -- https://packages.debian.org/stable/tidy +- `Comparison of continuous integration software - Wikipedia, the free encyclopedia `_. diff --git a/aulas/metodologias.rst b/aulas/metodologias.rst index 246d364..3848275 100644 --- a/aulas/metodologias.rst +++ b/aulas/metodologias.rst @@ -57,9 +57,9 @@ Queremos: - Fundamental: fazer fluir a criatividade. - Evitar distrações e preocupações. -- Uma tarefa por vez. -- Foco na missão. -- Fazer o essencial. +- Foco na missão: uma tarefa por vez. +- Básico: agenda, lista de tarefas e log (registro). +- Fazer o essencial e ter autocrítica sobre isso. - Método não é lei, é sugestão de caminho. Você descobriu que é multi-tarefas e funciona melhor assim? Ok! :) - Mude seus hábitos aos poucos! diff --git a/aulas/seguranca.rst b/aulas/seguranca.rst index fa78651..aae2b36 100644 --- a/aulas/seguranca.rst +++ b/aulas/seguranca.rst @@ -50,3 +50,9 @@ Roteiro do screencast: ------------------------------------------ * `Let's Encrypt `_. + +6.6 - Atividades +---------------- + +6.7 - Referências +----------------- diff --git a/aulas/versionamento.rst b/aulas/versionamento.rst index 15c6f0e..4820d82 100644 --- a/aulas/versionamento.rst +++ b/aulas/versionamento.rst @@ -224,8 +224,8 @@ Roteiro do screencast: 4.8 - Social coding (gitlab, github, etc) ----------------------------------------- -4.8 - Compartilhamento básico de código -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +4.8 - Repositórios públicos +~~~~~~~~~~~~~~~~~~~~~~~~~~~ * O git e outros sistemas similares foi feito para facilitar o compartilhamento de código e o desenvolvimento colaborativo. * Isso é feito através da disponibilização pública dos repositórios, que podem ser clonados ou terem seu conteúdo copiado para outros repositórios. @@ -266,7 +266,7 @@ Roteiro do screencast: 4.11 - Atividades ----------------- -#. Instale o git. +#. Transforme o seu projeto num repositório git. #. Crie uma conta do `Github `_ ou no `Gitlab `_. #. Bônus: git log to ChangeLog! #. Faça um fork do blogático e implemente alguma funcionalidade. Sugestões no arquivo `TODO` do projeto. Gostou das suas mudanças? Por que não fazer um pull request? :D -- cgit v1.2.3