SlideShare une entreprise Scribd logo
1  sur  67
Télécharger pour lire hors ligne
The OutSystems R&D
Continuous Delivery Journey
DevOpsDays Warsaw ‘16 - November 22
Who am I?
Diogo Oliveira (PT)
Software Engineer @ OutSystems R&D DevOps Group
Co-organizer @ Lisbon DevOps Meetup
diogo.oliveira@outsystems.com
What is OutSystems and what
do we do?
International company with its R&D based in Lisbon, Portugal
OutSystems provides a low-code rapid application development and
delivery platform (plus integration of custom code)
It consists on a complete application lifecycle system to develop, manage
and change enterprise web & native mobile applications
400+ Employees
100+ at R&D / Engineering
OutSystems Product
Supported Stacks
How are we developing and
ensuring quality?
Technologies / Languages
(...)
.NET and Java version
Translation
Code + Tests
Dogfooding
Product Quality
● ~10.000 distinct fully automated tests (per major version)
Product Quality
The OutSystems R&D
Continuous Delivery Journey
Rewind 10 years
(We are now in 2006)
Back in the days
Back in the days
Test management and orchestration tool
Test management and orchestration tool
Better than anything else at the time
Fast Forward 8 years
(We are now in 2014)
Test management and orchestration tool
● Solved the problem initially
● Continued to solve it, thanks to people with high pain threshold
● Was the only thing that gave us the green ‘ship it’ light
● Tested too much
● Evolved by everyone, without a vision
Engineering team size
July 2013
18 Engineers July 2014
41 SW Engineers
● Fast-forward tip:
○ Kept growing - 85 Engineers in 2015, and 130 Engineers in 2016
Branching
Teams working on separate environments
● Achieved through branching (per team and/or project)
● ~30 active (SVN) branches as of November 2014
REINTEGRATE HELL
Quality Assurance
Big challenge
Executing 10.000 distinct fully automated tests * possible stack
combinations (~100.000 test executions)
Quality Assurance
How were we doing QA?
Full Build + Full Test Run
in Test Environments
Long Feedback Loop!
Quality Assurance
~26 hours to run ~10.000 tests over different stacks
No daily visibility
Slow Builds
Unreliable Environments
Flaky/Unstable Tests
Long Feedback Loop
(~100.000 test executions)
Testing Infrastructure
And what about the testing infrastructure?
Testing Infrastructure
Developer: “I want a test environment to run
tests”
Ops Guy: “Ok, let me get one machine and then
in two weeks I will spend 3 days configuring
it using our…”
…49 pages long manual
This model was not anything near CD!
But… For our release frequency (1 major per year) and support model
(only corrective maintenance) this worked well enough
Where were we then?
So, why the need to change?
(Still in 2014)
What made us change
● No more corrective maintenance only
○ Features released in “maintenance releases”
● Amount of development going on increased a lot
● Full run not enough anymore (and not reliable)
So...
What made us change
… the need for faster feedback (and with quality!) started to grow
But our processes, tools and infrastructure were not in place for that
What made us change
We perceived the boiling water on time, before the frog started to die (our
frog was smarter)!
Which means…
We understood that the need for faster feedback and more frequent
releases would keep growing, so we started building our own journey
towards CD.
What did we do?
(Still in 2014)
What did we do?
Root cause analysis, prioritization and alignment
Automate the provisioning of our test environments (“infrastructure as code”)
Let’s automate!
Let’s automate!
● Saved ~3 days of 1 person per each test environment
● Easier for development teams to keep infrastructure code updated (it’s
code after all!)
Still some problems...
Test environment configurations are
automated, but...
… still need to wait for someone to
create the machine first (1, 2, 3 weeks…).
“Nimbus” project - moving to the cloud
● “Nimbus” project - move our testing
infrastructure to the cloud (AWS)
“Nimbus” project - moving to the cloud
● Test environment provisioning much faster (1 hour by clicking a button
- includes all the environment configuration)
● Easy to recover
● Reliable and performant
● Scalable and elastic
Continuous Delivery Knowledge Session Huge impact!
Continuous Delivery Knowledge Session
Some developers (by their initiative) went to their managers...
Hey! We are really
excited about CD and
we have this idea…
Give us one week and
we'll save you 3 months
of wasted effort!
Impact on developers
And the managers said...
Ok! Go for it!!
Impact on developers
And, in that week, they created…
CINTIA!
(Continuous INTegration and Intelligent Alert system)
The rise of CINTIA
The rise of CINTIA
● Automated incremental builds
● Automated installations
● Some automated tests (~1000 tests to start...)
● Automatic assign to right “culprits”!
● Developed using our own product (UI) + Python (Orchestration)
What did CINTIA bring at this point?
● Build + Installation + ~1000 Tests in 19 minutes, automatically
triggered by commits
● Fast feedback!
● Automatic “culprit” assign, and fast!
From CINTIA PoC to a real CI system
Challenge: how to achieve fast feedback with 100.000 test executions (taking
in account all the stack combinations)?
Do we really need to
always run all the tests
for all the stack
combinations?
From CINTIA PoC to a real CI system
Let’s apply some risk management here
● Let’s run almost all the tests for 1/2 particular stacks on each commit
● Let’s run all the other tests weekly, on milestones and prior to releases
Still some problems with tests...
Even by taking this choice, there were still open challenges:
● Reinventing the wheel with custom Python orchestration
● Too many tests to execute (still not-so-fast feedback)
● Unclear test categorization (unit, integration, etc.)
● A “monolithic” test stage
● Flaky tests
CINTIA growth
Started using GO.cd (open-source CD tool)
3 test stages with different speed times (~8.000 tests)
10 min, 30 min, < 1 hour
Parallelization
Automatic flaky tests detection
CI Culture
How can we make sure people are fixing the issues?
How can we motivate them?
Give them visibility :-)
CINTIA on TVs
More challenges...
Despite the fact we had TVs giving visibility, developers needed more detail
Why is the test failing?
How can they troubleshoot it?
Centralized test history (message, stack trace, environment)
More challenges...
What if something misbehaves?
Monitoring integrated with Slack!
We reached today!
(We are now on 2016, November 22)
The Continuous Delivery Journey
BEFORE (2 years ago)
~10.000 tests in ~26 hours
No daily visibility
Slow Builds
Unreliable Environments
Flaky/Unstable Tests
Long Feedback Loop (testing all stacks)
NOW
~8.000 tests in ~1h
Full daily visibility
Fast/incremental Builds
Reliable Test Environment
Focus on creating fast/good design tests
Fast Feedback Loop (testing 2 stacks)
The future - Open Challenges
The future - Open Challenges
What are we up now? What challenges are we facing?
● Align validation process with product architecture
● Ownership
● Having the right tests / design for testability
● Refactor in a “moving train”
● Single branch (per major) development
● Culture and mindset (e.g., “you break it, you fix it, fast”)
● Take developers out of the release decision
Achieve Continuous Delivery :-)
The future
Thank You!
Diogo Oliveira
diogo.oliveira@outsystems.com

Contenu connexe

Tendances

Desmistificando agile testing tdc 2011
Desmistificando agile testing tdc 2011Desmistificando agile testing tdc 2011
Desmistificando agile testing tdc 2011
tatiane_fukuda
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
Simplilearn
 

Tendances (20)

Migrating to Puppet 5
Migrating to Puppet 5Migrating to Puppet 5
Migrating to Puppet 5
 
The Journey of devops and continuous delivery in a Large Financial Institution
The Journey of devops and continuous delivery in a Large Financial InstitutionThe Journey of devops and continuous delivery in a Large Financial Institution
The Journey of devops and continuous delivery in a Large Financial Institution
 
The Future of System Administration
The Future of System AdministrationThe Future of System Administration
The Future of System Administration
 
Dev secops opsec, devsec, devops ?
Dev secops opsec, devsec, devops ?Dev secops opsec, devsec, devops ?
Dev secops opsec, devsec, devops ?
 
No, we can't do continuous delivery
No, we can't do continuous deliveryNo, we can't do continuous delivery
No, we can't do continuous delivery
 
From MonitoringSucks to Monitoring Love , 2016 Edition
From MonitoringSucks to Monitoring Love , 2016 EditionFrom MonitoringSucks to Monitoring Love , 2016 Edition
From MonitoringSucks to Monitoring Love , 2016 Edition
 
Desmistificando agile testing tdc 2011
Desmistificando agile testing tdc 2011Desmistificando agile testing tdc 2011
Desmistificando agile testing tdc 2011
 
Continuous Infrastructure First
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure First
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven Infrastructure
 
2012 - A Release Odyssey
2012 - A Release Odyssey2012 - A Release Odyssey
2012 - A Release Odyssey
 
10 years of #devopsdays, but what have we really learned ?
10 years of #devopsdays, but what have we really learned ? 10 years of #devopsdays, but what have we really learned ?
10 years of #devopsdays, but what have we really learned ?
 
Nightmare on Docker street
Nightmare on Docker streetNightmare on Docker street
Nightmare on Docker street
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CDTechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
 
What Does DevOps Culture Feel Like?
What Does DevOps Culture Feel Like?What Does DevOps Culture Feel Like?
What Does DevOps Culture Feel Like?
 
Help , My Datacenter is on fire
Help , My Datacenter is on fireHelp , My Datacenter is on fire
Help , My Datacenter is on fire
 
Moby is killing your devops efforts
Moby is killing your devops effortsMoby is killing your devops efforts
Moby is killing your devops efforts
 
Devops is Dead, Long live Devops
Devops is Dead, Long live DevopsDevops is Dead, Long live Devops
Devops is Dead, Long live Devops
 
Devops 101 QA with Kris Buytaert
Devops 101 QA  with Kris BuytaertDevops 101 QA  with Kris Buytaert
Devops 101 QA with Kris Buytaert
 

Similaire à DOD 2016 - Diogo Oliveira - The OutSystems R&D Continuous Delivery Journey

From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
Dynatrace
 

Similaire à DOD 2016 - Diogo Oliveira - The OutSystems R&D Continuous Delivery Journey (20)

DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the CloudsDOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
 
DOES14 - David Ashman, Blackboard Learn - Keep Your Head in the Clouds Tuesda...
DOES14 - David Ashman, Blackboard Learn - Keep Your Head in the Clouds Tuesda...DOES14 - David Ashman, Blackboard Learn - Keep Your Head in the Clouds Tuesda...
DOES14 - David Ashman, Blackboard Learn - Keep Your Head in the Clouds Tuesda...
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivity
 
A brief history of automation in Software Engineering
A brief history of automation in Software EngineeringA brief history of automation in Software Engineering
A brief history of automation in Software Engineering
 
Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
 
Moving 65,000 Microsofties to DevOps with Visual Studio Team Services
Moving 65,000 Microsofties to DevOps with Visual Studio Team ServicesMoving 65,000 Microsofties to DevOps with Visual Studio Team Services
Moving 65,000 Microsofties to DevOps with Visual Studio Team Services
 
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
 
DevOps is a Journey - Choose Your Own Adventure
DevOps is a Journey - Choose Your Own AdventureDevOps is a Journey - Choose Your Own Adventure
DevOps is a Journey - Choose Your Own Adventure
 
Innovate Better Through Machine data Analytics
Innovate Better Through Machine data AnalyticsInnovate Better Through Machine data Analytics
Innovate Better Through Machine data Analytics
 
Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
 
Testwarez 2009 Use Proper Tool
Testwarez 2009 Use Proper ToolTestwarez 2009 Use Proper Tool
Testwarez 2009 Use Proper Tool
 
Software Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseSoftware Release Orchestration and the Enterprise
Software Release Orchestration and the Enterprise
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
Understanding DevOps in simpler way with Continuous Delivery
Understanding DevOps in simpler way with Continuous DeliveryUnderstanding DevOps in simpler way with Continuous Delivery
Understanding DevOps in simpler way with Continuous Delivery
 
Continuous Delivery Using Jenkins
Continuous Delivery Using JenkinsContinuous Delivery Using Jenkins
Continuous Delivery Using Jenkins
 
How to win at DevOps (and understand it along the way)
How to win at DevOps (and understand it along the way)How to win at DevOps (and understand it along the way)
How to win at DevOps (and understand it along the way)
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
DevOps_service.pptx
DevOps_service.pptxDevOps_service.pptx
DevOps_service.pptx
 
DevOps Culture and Principles
DevOps Culture and PrinciplesDevOps Culture and Principles
DevOps Culture and Principles
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

DOD 2016 - Diogo Oliveira - The OutSystems R&D Continuous Delivery Journey

  • 1. The OutSystems R&D Continuous Delivery Journey DevOpsDays Warsaw ‘16 - November 22
  • 3. Diogo Oliveira (PT) Software Engineer @ OutSystems R&D DevOps Group Co-organizer @ Lisbon DevOps Meetup diogo.oliveira@outsystems.com
  • 4. What is OutSystems and what do we do?
  • 5. International company with its R&D based in Lisbon, Portugal OutSystems provides a low-code rapid application development and delivery platform (plus integration of custom code) It consists on a complete application lifecycle system to develop, manage and change enterprise web & native mobile applications 400+ Employees 100+ at R&D / Engineering
  • 8. How are we developing and ensuring quality?
  • 10. .NET and Java version Translation Code + Tests
  • 12. Product Quality ● ~10.000 distinct fully automated tests (per major version)
  • 14. The OutSystems R&D Continuous Delivery Journey
  • 15. Rewind 10 years (We are now in 2006)
  • 16. Back in the days
  • 17. Back in the days
  • 18. Test management and orchestration tool
  • 19. Test management and orchestration tool Better than anything else at the time
  • 20. Fast Forward 8 years (We are now in 2014)
  • 21. Test management and orchestration tool ● Solved the problem initially ● Continued to solve it, thanks to people with high pain threshold ● Was the only thing that gave us the green ‘ship it’ light ● Tested too much ● Evolved by everyone, without a vision
  • 22. Engineering team size July 2013 18 Engineers July 2014 41 SW Engineers ● Fast-forward tip: ○ Kept growing - 85 Engineers in 2015, and 130 Engineers in 2016
  • 23. Branching Teams working on separate environments ● Achieved through branching (per team and/or project) ● ~30 active (SVN) branches as of November 2014 REINTEGRATE HELL
  • 24. Quality Assurance Big challenge Executing 10.000 distinct fully automated tests * possible stack combinations (~100.000 test executions)
  • 25. Quality Assurance How were we doing QA? Full Build + Full Test Run in Test Environments Long Feedback Loop!
  • 26. Quality Assurance ~26 hours to run ~10.000 tests over different stacks No daily visibility Slow Builds Unreliable Environments Flaky/Unstable Tests Long Feedback Loop (~100.000 test executions)
  • 27. Testing Infrastructure And what about the testing infrastructure?
  • 28. Testing Infrastructure Developer: “I want a test environment to run tests” Ops Guy: “Ok, let me get one machine and then in two weeks I will spend 3 days configuring it using our…” …49 pages long manual
  • 29. This model was not anything near CD! But… For our release frequency (1 major per year) and support model (only corrective maintenance) this worked well enough Where were we then?
  • 30. So, why the need to change? (Still in 2014)
  • 31. What made us change ● No more corrective maintenance only ○ Features released in “maintenance releases” ● Amount of development going on increased a lot ● Full run not enough anymore (and not reliable) So...
  • 32. What made us change … the need for faster feedback (and with quality!) started to grow But our processes, tools and infrastructure were not in place for that
  • 33. What made us change We perceived the boiling water on time, before the frog started to die (our frog was smarter)! Which means… We understood that the need for faster feedback and more frequent releases would keep growing, so we started building our own journey towards CD.
  • 34. What did we do? (Still in 2014)
  • 35. What did we do? Root cause analysis, prioritization and alignment
  • 36. Automate the provisioning of our test environments (“infrastructure as code”) Let’s automate!
  • 37. Let’s automate! ● Saved ~3 days of 1 person per each test environment ● Easier for development teams to keep infrastructure code updated (it’s code after all!)
  • 38. Still some problems... Test environment configurations are automated, but... … still need to wait for someone to create the machine first (1, 2, 3 weeks…).
  • 39. “Nimbus” project - moving to the cloud ● “Nimbus” project - move our testing infrastructure to the cloud (AWS)
  • 40. “Nimbus” project - moving to the cloud ● Test environment provisioning much faster (1 hour by clicking a button - includes all the environment configuration) ● Easy to recover ● Reliable and performant ● Scalable and elastic
  • 41. Continuous Delivery Knowledge Session Huge impact! Continuous Delivery Knowledge Session
  • 42. Some developers (by their initiative) went to their managers... Hey! We are really excited about CD and we have this idea… Give us one week and we'll save you 3 months of wasted effort! Impact on developers
  • 43. And the managers said... Ok! Go for it!! Impact on developers
  • 44. And, in that week, they created… CINTIA! (Continuous INTegration and Intelligent Alert system) The rise of CINTIA
  • 45. The rise of CINTIA ● Automated incremental builds ● Automated installations ● Some automated tests (~1000 tests to start...) ● Automatic assign to right “culprits”! ● Developed using our own product (UI) + Python (Orchestration)
  • 46.
  • 47. What did CINTIA bring at this point? ● Build + Installation + ~1000 Tests in 19 minutes, automatically triggered by commits ● Fast feedback! ● Automatic “culprit” assign, and fast!
  • 48. From CINTIA PoC to a real CI system Challenge: how to achieve fast feedback with 100.000 test executions (taking in account all the stack combinations)? Do we really need to always run all the tests for all the stack combinations?
  • 49. From CINTIA PoC to a real CI system Let’s apply some risk management here ● Let’s run almost all the tests for 1/2 particular stacks on each commit ● Let’s run all the other tests weekly, on milestones and prior to releases
  • 50. Still some problems with tests... Even by taking this choice, there were still open challenges: ● Reinventing the wheel with custom Python orchestration ● Too many tests to execute (still not-so-fast feedback) ● Unclear test categorization (unit, integration, etc.) ● A “monolithic” test stage ● Flaky tests
  • 51. CINTIA growth Started using GO.cd (open-source CD tool)
  • 52. 3 test stages with different speed times (~8.000 tests) 10 min, 30 min, < 1 hour Parallelization
  • 54. CI Culture How can we make sure people are fixing the issues? How can we motivate them? Give them visibility :-)
  • 56. More challenges... Despite the fact we had TVs giving visibility, developers needed more detail Why is the test failing? How can they troubleshoot it?
  • 57. Centralized test history (message, stack trace, environment)
  • 58. More challenges... What if something misbehaves?
  • 60. We reached today! (We are now on 2016, November 22)
  • 61.
  • 62. The Continuous Delivery Journey BEFORE (2 years ago) ~10.000 tests in ~26 hours No daily visibility Slow Builds Unreliable Environments Flaky/Unstable Tests Long Feedback Loop (testing all stacks) NOW ~8.000 tests in ~1h Full daily visibility Fast/incremental Builds Reliable Test Environment Focus on creating fast/good design tests Fast Feedback Loop (testing 2 stacks)
  • 63.
  • 64. The future - Open Challenges
  • 65. The future - Open Challenges What are we up now? What challenges are we facing? ● Align validation process with product architecture ● Ownership ● Having the right tests / design for testability ● Refactor in a “moving train” ● Single branch (per major) development ● Culture and mindset (e.g., “you break it, you fix it, fast”) ● Take developers out of the release decision Achieve Continuous Delivery :-)