SlideShare uma empresa Scribd logo
1 de 67
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Migrating to Puppet 5
Migrating to Puppet 5Migrating to Puppet 5
Migrating to Puppet 5Kris Buytaert
 
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 InstitutionKris Buytaert
 
The Future of System Administration
The Future of System AdministrationThe Future of System Administration
The Future of System AdministrationKris Buytaert
 
Dev secops opsec, devsec, devops ?
Dev secops opsec, devsec, devops ?Dev secops opsec, devsec, devops ?
Dev secops opsec, devsec, devops ?Kris Buytaert
 
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 deliveryKris Buytaert
 
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 EditionKris Buytaert
 
Desmistificando agile testing tdc 2011
Desmistificando agile testing tdc 2011Desmistificando agile testing tdc 2011
Desmistificando agile testing tdc 2011tatiane_fukuda
 
Continuous Infrastructure First
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure FirstKris Buytaert
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureYury Tsarev
 
2012 - A Release Odyssey
2012 - A Release Odyssey2012 - A Release Odyssey
2012 - A Release OdysseyErnest Mueller
 
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 ? Kris Buytaert
 
Nightmare on Docker street
Nightmare on Docker streetNightmare on Docker street
Nightmare on Docker streetKris Buytaert
 
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 PipelinesLars Rosenquist
 
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/CDDicodingEvent
 
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
 
What Does DevOps Culture Feel Like?
What Does DevOps Culture Feel Like?What Does DevOps Culture Feel Like?
What Does DevOps Culture Feel Like?Matthew Skelton
 
Help , My Datacenter is on fire
Help , My Datacenter is on fireHelp , My Datacenter is on fire
Help , My Datacenter is on fireKris Buytaert
 
Moby is killing your devops efforts
Moby is killing your devops effortsMoby is killing your devops efforts
Moby is killing your devops effortsKris Buytaert
 
Devops is Dead, Long live Devops
Devops is Dead, Long live DevopsDevops is Dead, Long live Devops
Devops is Dead, Long live DevopsKris Buytaert
 
Devops 101 QA with Kris Buytaert
Devops 101 QA  with Kris BuytaertDevops 101 QA  with Kris Buytaert
Devops 101 QA with Kris BuytaertKris Buytaert
 

Mais procurados (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
 

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

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 CloudsGene Kim
 
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...DevOps Enterprise Summmit
 
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 productivityIvan Porta
 
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 EngineeringGeorg Buske
 
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!)Ford Prior
 
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
 
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 ServicesVSTS Community MSFT
 
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...Tieturi Oy
 
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 AdventureFabian Iannarella
 
Innovate Better Through Machine data Analytics
Innovate Better Through Machine data AnalyticsInnovate Better Through Machine data Analytics
Innovate Better Through Machine data AnalyticsHal Rottenberg
 
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 TestingPerfecto by Perforce
 
Testwarez 2009 Use Proper Tool
Testwarez 2009 Use Proper ToolTestwarez 2009 Use Proper Tool
Testwarez 2009 Use Proper ToolAdam Sandman
 
Software Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseSoftware Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseXebiaLabs
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+OpsShalu Ahuja
 
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 DeliverySwapnil Jain
 
Continuous Delivery Using Jenkins
Continuous Delivery Using JenkinsContinuous Delivery Using Jenkins
Continuous Delivery Using JenkinsCliffano Subagio
 
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)Jimmy Puckett
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using JenkinsRogue Wave Software
 
DevOps_service.pptx
DevOps_service.pptxDevOps_service.pptx
DevOps_service.pptxphamvinhcntt
 

Semelhante a 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
 

Último

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
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.pdfsudhanshuwaghmare1
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 

Último (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

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 :-)