Gerencia da Configuração de Software
Prof. Me. Samuel Rodrigues
Revisando os Conceitos...
Pergunta
Por que o sistema mudou?
Quais forma as mudanças?
O sistema continua funcionando depois das mudanças?
Atividade
Controle de Mudança
Controle de Versão
Integração Contínua
Atividades da GCS
Fluxo de trabalho Integrado
DevOps
Development
Operação
Desenvolvimento de Sistemas
Infraestrutura de TI
Remete ao fim da Separação entre Desenvolvimento e Operações
Cultura trabalho focado na automatização de processos de infra e de desenvolvimento, objetivando aumentar a capacidade do desenvolvimento e distribuição de aplicativos ou serviços em alta velocidade
- Continuous Integration
- Continuous Delivery
- Microservices
- Infrastructure as Code (IaC)
- Logging and Monitoring
- Communication and Collaboration
Práticas Integradas
- Velocidade de desenvolvimento e entrega rápida e contínua (XP/Agile)
- Confiabilidade
- Escala de processos de Infra e Dev
- Melhora na colaboração das equipes
- Segurança
Benefícios do Devops
Controle de Versão (Git, Mercurial, Subversion, Foundation)
Orquestração de Devops (Cerberon)
Provisionamento (Pupet Ansible Docker)
Integração/Entrega Contínua (Jenkins, Travis, Gitlab CI, Github Actions)
Depuração (Fabric, Capistrano)
Monitoramento (Splunk, Nagios, Loggly)
Controle de logs (Flume, ELK, Fluentd)
Ferramentas Devops
Integração Contínua
Continuous integration (CI) is a software development practice where
developers regularly merge their code changes into a central repository, after
which automated builds and tests are run.
Amazon Web Series, 2017
CI most often refers to the build or
integration stage of the software release process and requires both an automation component (e.g., a CI or build service) and a cultural component (e.g., learning to integrate frequently)
Amazon Web Series, 2017
Pilares Fundamentais
- Sistema de Controle de Versão
- Automatização de build
- Self-testing build
- Integração diária
- Encontrar e investigar bugs mais rapidamente;
- Melhorar a qualidade do software; e
- Reduzir o tempo que leva para validar e lançar novas atualizações de software.
Objetivos da CI
Benefícios da Integração Contínua
CI Workflow
CD extends CI
Continuous delivery (CD) is a software development practice where code
changes are automatically built, tested, and prepared for production release
Amazon Web Series, 2017
CD != CD
Continuous Delivery
Continuous Deployment
continuous delivery is not to apply every change to
production immediately, but to ensure that every change is ready to go to
production.
Amazon Web Series, 2017
Qual a principal diferença?
CI/CD Pipeline
O que é GitHub Actions?
- É uma ferramenta que permite automatizar fluxos de trabalho (workflow) de CI e CD dentro do próprio GitHub.
- Você pode escrever tarefas individuais (actions) e combina-las para criar um workflow padronizado.
O GitHub Actions permite que você crie fluxos de trabalho personalizados de ciclo de vida de desenvolvimento de software (SDLC, Software Development Life Cycle) diretamente no seu repositório do GitHub.
GitHub, 2020
O que são workflows?
Workflows são processos automatizados que podem ser configurados em seu repositório para construir, testar, empacotar ou implantar qualquer projeto (no Github).
É basicamente, um pipeline CI/CD
Jobs
- Uma séria de passos (steps) que podem ser executados no mesmo runner.
- As regras de dependência entre eles são definidas no arquivo que define o workflow
- Podem ser executados em paralelo eu sequencialmente dependendo do status do job anterior.
Runners
- Qualquer máquina com GitHub Actions Runner Instalado
- Responsável por executar seus jobs quando um de seus eventos é disparado
- Podem ser hospedadas no GitHub (GitHub Runners) ou administradas externamente por você (Self-hosted Runners)
Runners
- Os GitHub Runners pode ser Linux, Windows e MacOS.
- Veja mais aqui.
- Já possuiem software e ferramentas mais usadas instalados por padrão (não é possível configura-las)
- Já possuem ferramentas e suporte a linguagens (Python, Ruby, nodejs), Android SDK e Xcode.
- Veja mais aqui.
-
Já Self-Hosted Runners possibilitam mais controle do hardware, sistema operacional e ferramentas.
Vamos praticar um pouco
Vamos testar em um projeto
workflow do sucesso
workflow do sucesso
Muito Obrigado!
Gerência de Configuração de Software - Parte 3
By Samuel Rodrigues
Gerência de Configuração de Software - Parte 3
- 198