SlideShare a Scribd company logo
1 of 35
Integração Contínua
Feedback
Aprendizado
Comunicação
Confiança
Riscos
Métricas
Testes
Automatização
https://www.flickr.com/photos/ben124/6155701470/
O que é?
Por quê?
Para quê?
O quê? Como?
Integração Contínua
Integração contínua
é...
Integração Contínua
Culpa
Integração Contínua NÃO é..
Punição
Integração Contínua NÃO é..
Por quê ter um build se ele nunca quebra?
Mas, MUITO CUIDADO...
Don’t live with broken windows.
Integração contínua
é...
Integração Contínua
Aprendizado
Integração Contínua é..
Trabalhar em equipe
Integração Contínua é..
Confiança
Integração Contínua é..
Minimizar riscos
Integração Contínua é..
Evitar surpresas
Integração Contínua é..
Comunicação
Integração Contínua é..
Feedback
Integração Contínua é..
Visibilidade
Integração Contínua é..
Automatização
Integração Contínua é..
Testes
Integração Contínua é..
Métricas
Vamos ao que interessa...
Servidor de Integração Contínua
Antes de começar...
IC - Ferramentas
Java
Android
.NET
.NET
JavaScript / HTML
.NET
Python
.NET
IC - Notificação
.NET
IC - Demonstração
.NET
IC - SandBox
 Projetos para teste das ferramentas;
 Um para cada linguagem;
 Livre para fazer o que cada um
quiser.
IC – Algumas dicas
.NET
IC – Livros
Jenkins – The Definitive Guide
http://wakaleo.com/books/jenkins-the-definitive-guide/download-jtdg-pdf
Beautiful Builds
http://www.beautifulbuilds.com/
Dúvidas?
Obrigado!
Bruno Caimar
@brunocaimar
Obrigado

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

Guia completo sobre Integração Contínua

Editor's Notes

  1. Apresentações – Bruno Caimar Apresentação de Integração Contínua Perguntas: Quem sabe/não sabe o que é integração continua? Quem aqui sabe/não sabe que temos um servidor de integração continua?
  2. O que é IC? Definição básica: pratica de integrar seu código continuamente (build), seja manual ou de forma automatizada. Integrar no sentido de: baixar do repositório, compilar, rodar testes, publicar relatórios, gerar setups/pacote Manual X Automatizado Exemplos: Erros de compilação – Quem nunca baixou um projeto do repositório e não conseguir nem compilá-lo? Alguém esqueceu de subir alguma arquivo para o repositório, faltou alguma dependência / etc. Exemplo: Projeto XX do ano passado – 1h30 para conseguir compilar o projeto.
  3. Vamos ver com mais detalhes esses pontos nessa apresentação. Mas antes disso ...
  4. Antes de falar os por quês, pra quês, como ....
  5. Integração Contínua NÃO é uma desculpa para encontrar culpados. Blaming Culture; Apontar o dedo; Estigmatizar – ‘Chapéu’ de quebrador Se isso acontecer/está acontecendo tem algo muito errado acontecendo (e não é somente seu build que está quebrado)
  6. Integração Contínua NÃO é sobre encontrar, castigar e punir. (BC - Não está muito pesado isso (as imagens)?) Remo - Brincadeira é bacana se o time gostar! Funciona como um incentivo em muitos times. E, na verdade, ninguém vai te dar uma remada de verdade.  Trocar.
  7. Afinal: Por que ter um build se ele nunca quebra? Opiniões: Testes e builds são feitos para serem quebrados – Roy Osherove - @RoyOsherove Se o build nunca quebra, por quê tê-lo em primeiro lugar? – Ken Egozi - @kenegozi
  8. Software Entropy If something is wrong, fix it Take some action to prevent future damage Small problems accumulate and turn your code into crap Teoria das janelas quebradas - Pragmatic programmer Um build quebrado por um ou dois dias, Ok. Mais que isso já é perigoso e mais que isso demostra atitude ‘eu não me importo’ Afinal, se meu build está quebrado a mais de uma semana é por que ou ele não serve para nada ou ninguém se importa com ele. Se chegarem nesse ponto a melhor coisa a se fazer é remover o build do servidor.
  9. Agora vamos para o que interessa...
  10. IC essencialmente sobre aprendizado... Aprender com o que está acontecendo durante o tempo de vida do projeto Aprender com as falhas que ocorrem. Meu build quebrou – Por que aconteceu isso? Perguntas, Perguntas, Perguntas! Falhar, falhar novamente!
  11. Confiança – O que eu fiz não está errado / Posso continuar nesse passo que estou caminho certo. Trabalho em equipe – O que eu fiz não está errado a ponto de atrapalhar meus colegas de equipe. Ajudar/Aprender algo com meus colegas quando um build está quebrado. Habito – Fazer sempre, fazer melhor.
  12. Minimizar Riscos Responsabilidade / Compromisso
  13. Antecipar problemas – Não quero descobrir surpresas de última hora
  14. Comunicação Build é uma ferramenta de comunicação. Posso ficar sabendo o que está acontecendo no meu projeto mesmo não estando presente.
  15. Feedback – Saber que estou fazendo (ou não) as coisas certas. Testes tem muito a ver com isso. Se eu tenho testes automatizados no meu projeto, tenho esse feedback para saber se o que eu fiz está correto ou não.
  16. Visibilidade – Mostrar para todos o que está acontecendo no meu projeto. Falar sobre o uso da televisão
  17. Automatização Trabalhar melhor Fazer o trabalho que realmente importa. Deixar para a maquina o que ela pode fazer pra gente.
  18. Testes Executar testes unitários, performance, carga, etc. Exemplos: Sabesp, Pegasus, etc. Automatizar testes – Sejam eles quais forem (unitários, funcionais, performance, carga)
  19. Métricas Linhas de código, número de testes, analise estática de código Conhecer a saúde de meu código Conhecer as praticas da linguagem que estou trabalhando (analise estática). Exemplo: meu uso recente de Python.
  20. Antes de mostrar as coisas funcionando.... Tudo isso é muito bonito, mas vai fazer eu entregar o meu projeto certo? Não! Mas pode te ajudar nisso, e ainda te poupar bastante dor de cabeça ‘técnica’ em sua entrega. (BC – Ver se achamos outra imagem)
  21. SW servidor de integração continua – jenkins - O que é o Jenkins? Servidor de integração continua - Open Source feito em Java (Fork do Hudson) Plugins Visualizações Etc
  22. Novidade - Paciência – As coisas costumam piorar antes de melhorar!
  23. Nós vamos falar de algumas ferramentas sem detalhes.
  24. Java -- Compilar -- PMD -- FindBugs -- Duplicate Code -- Analise Estatica -- Sonar
  25. - .NET -- Compilar -- Rodar Tests (NUnit/XUnit) -- Rodar FxCop (Analise Estatica) -- Rodar StyleCop (Padrão de código) -- Rodar Msbuild / NANT / Powershell
  26. - HTML/Javascript -- Compile (Google Closure) -- JsLint -- CSSLint -- Tests -- Minifier -- Combine + Compress -- Versioning -- Image resize / compress -- Generate configs to deploy -- via Gradle / Grunt
  27. - Python -- Compilar -- Rodar Testes com -- Cobertura de Testes -- prospector/pylint/pychecker - Lint + duplicate code + other metrics -- pyntch - Python type checker -- PyMetrics / Radon+Xenon (Code complexity + Code Metrics) -- PEP 8 - Style Guide for Python Code
  28. Jenkins Eclipse plugin6 The Jenkins Tray Application plugin 5.7.3. Notifications ---> Email ---> RSS Feeds
  29. Demostração Configurar um projeto simples (Integração Github, relatório, notificação por email/tray)); Efetuar um push para o GitHub para ver o Build rodando na TV Exibir a notificação – Email/Tray Usar o projeto Python Test Preparar roteiro demonstração
  30. Xkcd – The #1 programmer excuse for legitimately slacking off: “My Code’s compiling.” Dicas – Build tem que ser rapido Se tenho um build lento é melhor separa-lo Não encontrou algo? Ferramenta? Algo não funciona? Converse com seu colega, converse conosco! Exemplo: Listen to your build / tests Contar caso do testes quebrados no projeto da Sabesp (Servidor de IC ficou fora do ar por mais de um mês e o build estava quebrado por causa de falha em testes. Alguns testes estavam frágeis. Dependiam de data/hora - Quebravam aleatoriamente. Build foi ignorado mas continha um outro teste importante quebrado. Erro foi percebido somente em ambiente de homologação (por sorte)
  31. Beautiful Builds Patterns for Growing Readable, Maintainable Automated Build Processes Roy Osherove This book is for sale at http://leanpub.com/build http://BeautifulBuilds.com http://www.martinfowler.com/articles/continuousIntegration.html --> Jenkins Continuous Integration Cookbook - Packt http://www.amazon.com/Jenkins-Continuous-Integration-Cookbook-Alan/dp/1849517401 Jenkins: The Definitive Guide - O'Reilly - $ 20 http://www.amazon.com/gp/product/1449305350/ref=pd_lpo_sbs_dp_ss_1?pf_rd_p=1944687742&pf_rd_s=lpo-top-stripe-1&pf_rd_t=201&pf_rd_i=1849517401&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=1C020529AAGWVJKZ3EW5 Download Gratis http://wakaleo.com/books/jenkins-the-definitive-guide/download-jtdg-pdf (2007) Continuous Integration: Improving Software Quality and Reducing Risk http://www.amazon.com/Continuous-Integration-Improving-Software-Reducing/dp/0321336380/ref=pd_sim_b_5?ie=UTF8&refRID=1DA35FP6WXMKWH0HF624
  32. Dúvidas? Não encontrou algo? Ferramenta? Algo não funciona? Peça ajuda! Falar das próximas apresentações sobre as ferramentas.