cloud computing e integração contínua com o windows azure

18
DevOps Integração Contínua com a Microsoft Azure Arthur Mazza – [email protected] www.doqconsulting.com.br Arquiteto de QA – Totvs CEO na DOQ Consulting

Upload: grupo-de-testes-carioca

Post on 21-Jan-2017

124 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Cloud Computing e Integração Contínua com o Windows Azure

DevOps

Integração Contínua com a Microsoft Azure

Arthur Mazza – [email protected]

www.doqconsulting.com.br

Arquiteto de QA – Totvs

CEO na DOQ Consulting

Page 2: Cloud Computing e Integração Contínua com o Windows Azure

Perfil

• Ágil• Dinâmico• Técnico• Curioso• Agregador• Colaborativo

Page 3: Cloud Computing e Integração Contínua com o Windows Azure

O que é?

DevOps é o alinhamento do time de desenvolvimento com o time de operações, em relação à processos, ferramentas e responsabilidades, visando acelerar as entregas em produção com um elevado grau de qualidade.

Page 4: Cloud Computing e Integração Contínua com o Windows Azure

Os 4 eixosCompartilhamento

• O feedback é tudo• Boa comunicação entre a equipe

Cultura• Colaboração• Fim das divisões• Relação saudável entre as áreas• Mudança de comportamento

Avaliação• Métricas• Medições• Performance• Logs e integração• Auditoria

Automação• Deploy• Controle• Monitoração• Gerência de configuração• Orquestração

Page 5: Cloud Computing e Integração Contínua com o Windows Azure

Microsoft Azure

A Microsoft Azure é uma coleção crescente de serviços de nuvem integrados — análise, computação, banco de dados, serviços móveis, rede, armazenamento e Web.

Page 6: Cloud Computing e Integração Contínua com o Windows Azure

Visual Studio Team Services

O Visual Studio Team Services oferece um conjunto de ferramentas de colaboração em nuvem que funcionam com o seu IDE ou editor, para que sua equipe possa trabalhar de forma efetiva em projetos de software de todos os formatos e tamanhos.

Ele fornece serviços como: Controle de versão, Ferramentas para equipes Agile, Integração contínua, Linguagens e ferramentas, Integração, Testes de desempenho.

Page 7: Cloud Computing e Integração Contínua com o Windows Azure

Web App

O recurso de Aplicativos Web no Serviço de Aplicativo do Azure permite aos desenvolvedores compilar, implantar e gerenciar rapidamente sites e aplicativos Web avançados. Nele é possível hospedar aplicativos Web e APIs usando .NET, Node.js, PHP, Python e Java.

Page 8: Cloud Computing e Integração Contínua com o Windows Azure

GIT

Git é um sistema de controle de versão distribuído e um sistema de gerenciamento de código fonte, com ênfase em velocidade. O Git foi inicialmente projetado e desenvolvido por Linus Torvalds para o desenvolvimento do kernel Linux, mas foi adotado por muitos outros projetos.

Page 9: Cloud Computing e Integração Contínua com o Windows Azure

GIT

Cada diretório de trabalho do Git é um repositório com um histórico completo com a habilidade total para acompanhamento das revisões.

O Git é um software livre.

Page 10: Cloud Computing e Integração Contínua com o Windows Azure

Configurando Build automático

Primeiro passo da integração contínua, basicamente consiste em automatizar o processo de construção (build) de um sistema, gerando pacotes prontos para implantação de maneira controlada. Estes pacotes passam a ser a referência que todos os envolvidos no projeto utilizam, evitando a desculpa de que "na minha máquina compila".

Para a implementação desta prática, são utilizados diversos recursos e ferramentas em conjunto, como: controle de versões (Subversion, GIT, TFVC), automação de build e de dependências (Maven, Nuget, NPM), servidor de compilação, sistema de gerenciamento de Build(Team City, Jenkins, Visual Studio Team Services) slot de hospedagem (Web App, AWS Amazon), entre outros.

Toda build deve incluir uma suíte de testes(funcionais e unitários) automatizada, para diminuir a chance de problemas nos pacotes gerados.

Page 11: Cloud Computing e Integração Contínua com o Windows Azure

Configurando Build automático

Page 12: Cloud Computing e Integração Contínua com o Windows Azure

Testes unitáriosSão testes que verificam se uma parte específica do código, costumeiramente a nível de função, está funcionando corretamente. Em um ambiente orientado a objetos é usualmente a nível de classes e a mínima unidade de testes inclui construtores e destrutores. O objetivo do teste unitário é assegurar que cada unidade está funcionando de acordo com sua especificação funcional. Estes tipos de testes são frequentemente escritos por desenvolvedores quando trabalham no código, para assegurar que a função específica está executando como esperado.

Uma função deve ter muitos testes para dar cobertura a todos os caminhos possíveis do seu código. Sozinho, o teste unitário não pode verificar a funcionalidade de uma parte do software, mas em contrapartida é usado para assegurar que os blocos constituintes do software trabalham independentes dos demais.

Page 13: Cloud Computing e Integração Contínua com o Windows Azure

Testes unitários

Page 14: Cloud Computing e Integração Contínua com o Windows Azure

Testes Funcionais automatizados

Testes funcionais, basicamente são testes que validam os requisitos funcionais de uma aplicação, trabalhando o conceito: “A aplicação faz o que deveria fazer?”. Eles normalmente são representados por um caso de teste.

É altamente recomendado que os testes funcionais de um sistema sejam automatizados, o máximo possível, ou seja, sua execução fica responsável por uma tecnologia especifica integrada ao processo de integração contínua. Existem inúmeros benefícios, como:

• Acelerar os testes de um roteiro em vários navegadores;

• Retorno rápido de resultados de falhas no sistema, agilizando o processo de correção;

• Encontrar bugs mais cedo e aumentar a cobertura de testes;

• Executar testes mais rápido que um ser humano,

• Reutilização de testes.

Page 15: Cloud Computing e Integração Contínua com o Windows Azure

Testes Funcionais automatizados

Page 16: Cloud Computing e Integração Contínua com o Windows Azure

Publish / Deploy GIT commit and push ? - OK

Build success ? OK Unit Test passed? OK Functional Tests passed? OK

ready to...

Arthur Gabriel Mazza de Oliveira
Page 17: Cloud Computing e Integração Contínua com o Windows Azure

Zona de conflito – Infra x Dev

Eles acham que o problema do devel não é problema deles

Eles falam não Eles falam não pela segunda vez Eles falam não pela terceira vez

Eles falam não o tempo todo por diversas razões, para diversos pedidosEles demoram, atrasam e perdem prazos de atendimento

Eles se preocupam com UPTIME e não com o negócio

Eles não se esforçam paraajudar o dev a encontrar o problema

O problema não são as máquinas, é o código

Está funcionando no meu notebook

Seja você o agente da mudança!