SlideShare uma empresa Scribd logo
Construindo Pipeline
com Azure DevOps
Camila Carrera
TDC Recife 2019
DevOps
whoami
● Camila
● Soteropolitana em Recife
● Tecnóloga em Redes
● Desenvolvedora Sênior @
Thoughtworks
Contexto
● Time com conhecimento bem básico em infra
● Pouca “intimidade” com cultura DevOps
● Entendimento sobre conceitos de CI/CD, mas não na parte de
infra
● Sem poder de escolha quanto a ferramenta (tinha que ser essa!!)
● Ninguém do time tinha mexido com Azure DevOps antes
● O cliente esperava autonomia do time em relação aos "lower level
environments"
● A.K.A = Te vira e faz o teu, bença!
Azure DevOps
Azure DevOps Server
On-premises
Azure DevOps Service
Cloud based
Azure DevOps
cloud service que combina integração
contínua (CI) e entrega contínua (CD),
que permite "buildar" e testar seu
projeto feito em qualquer linguagem,
qualquer plataforma e implantar para
qualquer cloud / on-premises
Azure Pipelines
Build Pipelines (CI)
● Construir/compilar, executar testes
automatizados, criar e publicar artefatos
● Visual Designer ou Pipeline as code (YAML)
● Detectar falhas e bugs cedo
● Sumário de testes, identificar principais pontos
de erros
● Cobertura de código
Primeiramente, o código!
● Permite conectar com
os principais
"providers" de controle
de versão
● Cada pipeline só pode
ser disparada por um
repositório
● Q3 2019: deve ser
lançada opção de
multi-repository para
YAML pipelines
Auto-detect
● Detecta qual tipo de
projeto (linguagem /
framework) permitindo
sugerir um template para
construir sua build
pipeline
● Ou pode começar do
zero, com YAML file ou
usando o Visual Designer
sugestões ao selecionar um repositório com código em JS
"Anatomia" da pipeline Get Sources: conecta com o repositório onde
está o seu código
Jobs: série de passos que são executados
sequencialmente como uma unidade.
Agents: VMs onde os jobs são executados e são
descartadas após a execução. São providas
algumas opções de VMs pré-definidas
(Microsoft-hosted) rodando Windows, Linux ou
MacOS. Ou você pode também criar seus
próprios agents (self-hosted).
Tasks: Passos que serão executados em um job,
que nada mais são que scripts abstraídos em
uma série de inputs para atingirem um objetivo
específico.
Onde achar essas tasks?
● Catálogo com centenas de tasks "out-
of-the-box"
● Algumas tasks exclusivas para build
ou para release e algumas para
ambos tipos de pipelines
● Na falta de tasks específicas:
○ Você pode criar suas próprias
tasks, em caso de necessidade de
reuso em diferentes pipelines
○ Usar tasks de execução de scripts
(PowerShell, bash)
Pipeline as Code
● Permite o uso de templates e
reutilizar um conjunto de tasks
● Permite versionar sua pipeline
junto com o código da sua
aplicação
● Oferece um "assistente" para
adicionar tasks
● Facilita o diff entre duas
versões de uma pipeline
● Para release, essa é uma
funcionalidade nova e está em
preview ainda. Para usar, é
necessário habilitar a opção
multi-stage pipelines.
Build - Triggers
Continuous Integration
Pull Request Validation
Scheduled
Build Completion
Executa após a finalização de algum
outro build específico.
Test Results
● Sumário e estatísticas de
execução de testes
● Relatório de incidências
de falhas
● Testes e classes que
costumam falhar com
mais frequência
Como usamos no projeto?
Validação de Pull RequestIntegração contínua
Publicar Docker Image
Publicar artefatos para release
Publicar pacotes NPM privados
Execução de testes de unitários,
de aceitação e de integração
Release Pipelines
● Deploy de artefatos gerados pela build pipelines
● Diferentes stages/ambientes
● Disparo automático (após build sem falha) ou não
● Regras para promoção de código entre stages
● Visual Designer
○ YAML apenas para multi-stage pipeline, ainda em preview
Release Pipelines
Artefato gerado
pela build pipeline
Jobs e tasks executadas
para cada ambiente
Pré e Pós-deployment
approvers e gates
Disparo programado /
periódico
Release - Triggers
Artifacts Stages
Approvals / Gates
Approvers: define as pessoas do
time que podem aprovar ou recusar
um stage.
Gates: verifica, automaticamente,
sistemas externos na espera de uma
determinada condição.
Manual intervention: pausa o deploy
para execução de uma tarefa
manual
E como usamos?
Deploy de artefatos para
diferentes ambientes:
● Azure App Services
● Azure Functions
DB Seeding
Execução de SQL queries
Health Check
Criação, manutenção e
configuração de recursos no
Azure
Configuração do Service Bus
"Limpeza" de dados regulares
em lower level enviroments
stages (dev, qa, uat)
Ok, curti. Quanto é?
https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/
Considerações finais
● Baixa curva de aprendizado
● Recursos “out-of-the-box”
● Integração muito fácil com outros serviços do Azure DevOps e
Azure
● Mas não limitado à produtos/serviços da Microsoft
● Funciona com qualquer linguagem, plataforma e cloud
● Sempre em construção, possui um roadmap das features por vir
● Não é a bala de prata (nenhuma ferramenta/serviço é), mas tem
funcionado muito bem para um projeto grande
Até mais, e
obrigada pelos
peixes! ❏ http://camilacarrera.com
❏ contato@camilacarrera.com
❏ http://github.com/milacarrera/
❏ http://linkedin.com/in/camila-carrera

Mais conteúdo relacionado

Mais procurados

Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot framework
Prayoch Rujira
 
Como descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma corretaComo descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma correta
Testing Dojo Uai
 
Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...
Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...
Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...
Pery Lemke
 
Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)
Fabrício Campos
 
Aula 3 técnicas de teste de software1
Aula 3   técnicas de teste de software1Aula 3   técnicas de teste de software1
Aula 3 técnicas de teste de software1
Tiago Vizoto
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
Samanta Cicilia
 
Robot Framework Dos And Don'ts
Robot Framework Dos And Don'tsRobot Framework Dos And Don'ts
Robot Framework Dos And Don'ts
Pekka Klärck
 
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depoisArquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
André Paulovich
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
Nibu Baby
 
Test Automation - Keytorc Approach
Test Automation - Keytorc Approach Test Automation - Keytorc Approach
Test Automation - Keytorc Approach
Keytorc Software Testing Services
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with Agile
Ken McCorkell
 
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Elias Nogueira
 
Gestão Ágil de Projetos
Gestão Ágil de ProjetosGestão Ágil de Projetos
Gestão Ágil de Projetos
Rildo (@rildosan) Santos
 
Testing Center of Excellence - Keytorc Approach
Testing Center of Excellence -  Keytorc ApproachTesting Center of Excellence -  Keytorc Approach
Testing Center of Excellence - Keytorc Approach
Keytorc Software Testing Services
 
Relatório 8D
Relatório 8DRelatório 8D
Relatório 8D
PauloLis1
 
Successfully establishing a SOA Center of Excellence
Successfully establishing a SOA Center of ExcellenceSuccessfully establishing a SOA Center of Excellence
Successfully establishing a SOA Center of Excellence
Kelly Emo
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
Taís Dall'Oca
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
Renato Groff
 
Liderança Lean
Liderança LeanLiderança Lean
Liderança Lean
Carlos Frederico Pinto
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
SangIn Choung
 

Mais procurados (20)

Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot framework
 
Como descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma corretaComo descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma correta
 
Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...
Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...
Site Reliability Engineering - Descubra a nova era para (Infraestrutura|Opera...
 
Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)
 
Aula 3 técnicas de teste de software1
Aula 3   técnicas de teste de software1Aula 3   técnicas de teste de software1
Aula 3 técnicas de teste de software1
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
Robot Framework Dos And Don'ts
Robot Framework Dos And Don'tsRobot Framework Dos And Don'ts
Robot Framework Dos And Don'ts
 
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depoisArquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
Test Automation - Keytorc Approach
Test Automation - Keytorc Approach Test Automation - Keytorc Approach
Test Automation - Keytorc Approach
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with Agile
 
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
 
Gestão Ágil de Projetos
Gestão Ágil de ProjetosGestão Ágil de Projetos
Gestão Ágil de Projetos
 
Testing Center of Excellence - Keytorc Approach
Testing Center of Excellence -  Keytorc ApproachTesting Center of Excellence -  Keytorc Approach
Testing Center of Excellence - Keytorc Approach
 
Relatório 8D
Relatório 8DRelatório 8D
Relatório 8D
 
Successfully establishing a SOA Center of Excellence
Successfully establishing a SOA Center of ExcellenceSuccessfully establishing a SOA Center of Excellence
Successfully establishing a SOA Center of Excellence
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Liderança Lean
Liderança LeanLiderança Lean
Liderança Lean
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
 

Semelhante a Construindo pipelines com Azure DevOps

ESX Tech Lives - DevOps
ESX Tech Lives - DevOpsESX Tech Lives - DevOps
ESX Tech Lives - DevOps
Jaqueline Ramos
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Amazon Web Services LATAM
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
Amazon Web Services LATAM
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
Amazon Web Services LATAM
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
Amazon Web Services LATAM
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
Amazon Web Services
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
David Ruiz
 
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...
Renato Groff
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
Rhuan Karlus Silva
 
SonarQube
SonarQubeSonarQube
SonarQube
CDS
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
Norberto Santos
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
Evandro Silvestre
 
Containers em produção!
Containers em produção!Containers em produção!
Containers em produção!
Evandro Couto
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
Bruno Souza
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Renato Groff
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Renato Groff
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
Hugo Henley
 
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpsTDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
tdc-globalcode
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com Hudson
Luis Reis
 

Semelhante a Construindo pipelines com Azure DevOps (20)

ESX Tech Lives - DevOps
ESX Tech Lives - DevOpsESX Tech Lives - DevOps
ESX Tech Lives - DevOps
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
SonarQube
SonarQubeSonarQube
SonarQube
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Containers em produção!
Containers em produção!Containers em produção!
Containers em produção!
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
 
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpsTDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com Hudson
 

Construindo pipelines com Azure DevOps

  • 1. Construindo Pipeline com Azure DevOps Camila Carrera TDC Recife 2019 DevOps
  • 2. whoami ● Camila ● Soteropolitana em Recife ● Tecnóloga em Redes ● Desenvolvedora Sênior @ Thoughtworks
  • 3. Contexto ● Time com conhecimento bem básico em infra ● Pouca “intimidade” com cultura DevOps ● Entendimento sobre conceitos de CI/CD, mas não na parte de infra ● Sem poder de escolha quanto a ferramenta (tinha que ser essa!!) ● Ninguém do time tinha mexido com Azure DevOps antes ● O cliente esperava autonomia do time em relação aos "lower level environments" ● A.K.A = Te vira e faz o teu, bença!
  • 4. Azure DevOps Azure DevOps Server On-premises Azure DevOps Service Cloud based
  • 6. cloud service que combina integração contínua (CI) e entrega contínua (CD), que permite "buildar" e testar seu projeto feito em qualquer linguagem, qualquer plataforma e implantar para qualquer cloud / on-premises
  • 8. Build Pipelines (CI) ● Construir/compilar, executar testes automatizados, criar e publicar artefatos ● Visual Designer ou Pipeline as code (YAML) ● Detectar falhas e bugs cedo ● Sumário de testes, identificar principais pontos de erros ● Cobertura de código
  • 9. Primeiramente, o código! ● Permite conectar com os principais "providers" de controle de versão ● Cada pipeline só pode ser disparada por um repositório ● Q3 2019: deve ser lançada opção de multi-repository para YAML pipelines
  • 10. Auto-detect ● Detecta qual tipo de projeto (linguagem / framework) permitindo sugerir um template para construir sua build pipeline ● Ou pode começar do zero, com YAML file ou usando o Visual Designer sugestões ao selecionar um repositório com código em JS
  • 11. "Anatomia" da pipeline Get Sources: conecta com o repositório onde está o seu código Jobs: série de passos que são executados sequencialmente como uma unidade. Agents: VMs onde os jobs são executados e são descartadas após a execução. São providas algumas opções de VMs pré-definidas (Microsoft-hosted) rodando Windows, Linux ou MacOS. Ou você pode também criar seus próprios agents (self-hosted). Tasks: Passos que serão executados em um job, que nada mais são que scripts abstraídos em uma série de inputs para atingirem um objetivo específico.
  • 12. Onde achar essas tasks? ● Catálogo com centenas de tasks "out- of-the-box" ● Algumas tasks exclusivas para build ou para release e algumas para ambos tipos de pipelines ● Na falta de tasks específicas: ○ Você pode criar suas próprias tasks, em caso de necessidade de reuso em diferentes pipelines ○ Usar tasks de execução de scripts (PowerShell, bash)
  • 13. Pipeline as Code ● Permite o uso de templates e reutilizar um conjunto de tasks ● Permite versionar sua pipeline junto com o código da sua aplicação ● Oferece um "assistente" para adicionar tasks ● Facilita o diff entre duas versões de uma pipeline ● Para release, essa é uma funcionalidade nova e está em preview ainda. Para usar, é necessário habilitar a opção multi-stage pipelines.
  • 14. Build - Triggers Continuous Integration Pull Request Validation Scheduled Build Completion Executa após a finalização de algum outro build específico.
  • 15. Test Results ● Sumário e estatísticas de execução de testes ● Relatório de incidências de falhas ● Testes e classes que costumam falhar com mais frequência
  • 16. Como usamos no projeto? Validação de Pull RequestIntegração contínua Publicar Docker Image Publicar artefatos para release Publicar pacotes NPM privados Execução de testes de unitários, de aceitação e de integração
  • 17. Release Pipelines ● Deploy de artefatos gerados pela build pipelines ● Diferentes stages/ambientes ● Disparo automático (após build sem falha) ou não ● Regras para promoção de código entre stages ● Visual Designer ○ YAML apenas para multi-stage pipeline, ainda em preview
  • 18. Release Pipelines Artefato gerado pela build pipeline Jobs e tasks executadas para cada ambiente Pré e Pós-deployment approvers e gates Disparo programado / periódico
  • 20. Approvals / Gates Approvers: define as pessoas do time que podem aprovar ou recusar um stage. Gates: verifica, automaticamente, sistemas externos na espera de uma determinada condição. Manual intervention: pausa o deploy para execução de uma tarefa manual
  • 21. E como usamos? Deploy de artefatos para diferentes ambientes: ● Azure App Services ● Azure Functions DB Seeding Execução de SQL queries Health Check Criação, manutenção e configuração de recursos no Azure Configuração do Service Bus "Limpeza" de dados regulares em lower level enviroments stages (dev, qa, uat)
  • 22. Ok, curti. Quanto é? https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/
  • 23. Considerações finais ● Baixa curva de aprendizado ● Recursos “out-of-the-box” ● Integração muito fácil com outros serviços do Azure DevOps e Azure ● Mas não limitado à produtos/serviços da Microsoft ● Funciona com qualquer linguagem, plataforma e cloud ● Sempre em construção, possui um roadmap das features por vir ● Não é a bala de prata (nenhuma ferramenta/serviço é), mas tem funcionado muito bem para um projeto grande
  • 24. Até mais, e obrigada pelos peixes! ❏ http://camilacarrera.com ❏ contato@camilacarrera.com ❏ http://github.com/milacarrera/ ❏ http://linkedin.com/in/camila-carrera

Notas do Editor

  1. Cloud based: software fica na nuvem e é adquirido através de assinatura (ou alguma outra forma de cobrança) é utilizado como serviço On-premises: software é instalado em servidores/computadores da empresa, é tratado como um produto --- https://azure.microsoft.com/pt-br/services/devops/ https://docs.microsoft.com/pt-br/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops
  2. Azure Boards: Oferece quadros Kanban para planejamento e acompanhamento do projeto Permite criar vários tipos de cards, como features, backlog itens, tasks, bugs. Além disso oferece ferramentas para geração de relatórios, quadros para retrospectivas, entre outras coisas. Azure Pipelines: Serviço de cloud que pode ser usado para, de forma automatizada, construir, testar e implantar seu código e disponibilizá-lo para terceiros. Funciona com a maioria das linguagens e se integra facilmente com provedores de controle de versão e hosting, não sendo obrigado necessariamente a usar os serviços da própria microsoft. Azure Repos: Oferece ferramentas de controle de versão, podendo escolher entre dois tipos: Git, distribuído, como o que costumamos usar TFVC (team foundation version control) que é centralizado, ou seja, as várias versão de um arquivo fica armazenado num servidor, enquanto na nossa máquina fica apenas a versão na qual estamos trabalhando. Azure Test Plans: ss Azure Artifacts ss
  3. https://docs.microsoft.com/pt-br/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops
  4. Fluxo end-to-end, desde o desenvolvimento
  5. https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/?view=azure-devops
  6. https://docs.microsoft.com/en-us/azure/devops/pipelines/process/phases?view=azure-devops&tabs=yaml https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops Jobs: também é possível criar agentless jobs, que rodam no servidor e executam apenas alguns tipos de tasks que não requerem computação, geralmente usado para manual intervention tasks (em release pipelines)
  7. https://github.com/microsoft/azure-pipelines-tasks
  8. https://www.reddit.com/r/azuredevops/comments/bqdgzm/no_yaml_release_pipeline/ https://devblogs.microsoft.com/devops/whats-new-with-azure-pipelines/
  9. https://docs.microsoft.com/en-us/azure/devops/pipelines/test/review-continuous-test-results-after-build?view=azure-devops
  10. https://docs.microsoft.com/en-us/azure/devops/pipelines/release/approvals/index?view=azure-devops
  11. https://docs.microsoft.com/en-us/azure/devops/pipelines/release/approvals/index?view=azure-devops
  12. https://devblogs.microsoft.com/devops/azure-devops-roadmap-update-for-2019-q3/ https://docs.microsoft.com/en-us/azure/devops/release-notes/features-timeline