Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

217 views

Published on

Aprenda um pouco sobre um poderoso conjunto de serviços e ferramentas na gestão de infraestrutura em nuvem, que contribuem com práticas e metodologias ágeis de testes e desenvolvimento.

Ferramentas e serviços envolvidos: Visual Team Services + Azure + Integração contínua(testes e build automatizados) + deploy.

Published in: Software
  • Be the first to comment

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

  1. 1. DevOps Integração Contínua com a Microsoft Azure Arthur Mazza – arthur.mazza@doqconsulting.com.br www.doqconsulting.com.br Arquiteto de QA – Totvs CEO na DOQ Consulting
  2. 2. Perfil • Ágil • Dinâmico • Técnico • Curioso • Agregador • Colaborativo
  3. 3. 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.
  4. 4. Os 4 eixos Compartilhamento • 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
  5. 5. 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.
  6. 6. 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.
  7. 7. 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.
  8. 8. 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.
  9. 9. 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.
  10. 10. 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.
  11. 11. Configurando Build automático
  12. 12. Testes unitários Sã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.
  13. 13. Testes unitários
  14. 14. 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.
  15. 15. Testes Funcionais automatizados
  16. 16. Publish / Deploy  GIT commit and push ? - OK  Build success ? OK  UnitTest passed? OK  FunctionalTests passed? OK ready to...
  17. 17. 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 pedidos Eles 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 para ajudar 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!
  18. 18. Fontes e links úteis • http://www.devmedia.com.br/ • http://www.seleniumhq.org/ • https://www.visualstudio.com/pt-br/products/visual-studio-team-services-vs.aspx • https://www.visualstudio.com/ • https://azure.microsoft.com/pt-br/?wt.mc_id=AID_sem_2x6tXtX3& • https://aws.amazon.com/pt/free/ • http://junit.org/junit4/ • https://www.visualstudio.com/en-us/docs/build/apps/aspnet/aspnetcore-to-azure • https://www.visualstudio.com/en-us/docs/build/overview • https://cloud.google.com

×