SlideShare ist ein Scribd-Unternehmen logo
1 von 67
Downloaden Sie, um offline zu lesen
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

Weitere Àhnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 
DevOps Culture and Principles
DevOps Culture and PrinciplesDevOps Culture and Principles
DevOps Culture and PrinciplesTonny Adhi Sabastian
 

Ähnlich wie 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
 

KĂŒrzlich hochgeladen

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...Enterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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 textsMaria Levchenko
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...gurkirankumar98700
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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 Processorsdebabhi2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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 WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

KĂŒrzlich hochgeladen (20)

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...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍾 8923113531 🎰 Avail...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

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