SlideShare une entreprise Scribd logo
1  sur  27
Continuous Delivery
How it’s done at a SAAS start-up

Presenter: Stein Welberg
About Me
Studied at Twente University
Waterpolo Player
Identity & Access management expert
CTO @ Onegini
Why am I here?
Sell Onegini
Explain about Continuous Delivery
Inspire you to think about CD
Steal engineers ;-)
What is Onegini

SaaS Platform: onegini.me
SSO solution to give external users access to your organisation
Focus on ease of use
Focus on security
Continuous Integration

"Continuous Integration is a software development practice where
members of a team integrate their work frequently, usually each
person integrates at least daily - leading to multiple integrations per
day.
Each integration is verified by an automated build (including test) to
detect integration errors as quickly as possible. Many teams find that
this approach leads to significantly reduced integration problems and
allows a team to develop cohesive software more rapidly."
- Martin Fowler
Continuous Delivery
Key concepts
Release early, release often

Small releases
Development close to business
Test the sh*t out of your application
Not just the code, also infra setup, db schema, etc!

Have software that can always go live!

Treat anything as software
Automate, automate, automate… automate!!!
Full deployment pipeline

Summary: Continuous Delivery is Continuous Integration on steriods
Continuous Delivery @ Onegini
A new release into production every 4 weeks
Devs could release anytime, business can’t keep up with us ;-)

Fully automated Deployments (infrastructure as code)
For all Business critical applications

Automated (integration / acceptance) testing
Critical issues are hardly ever found by our testers
Not all corner cases are tested automatically
Our road to Continuous Delivery
The challenges
Ruby (on Rails) and Java combined. Could not easily drop a war into e.g.
Google App engine or Azure.
Plans to use a graph / nosql database in the near future
Run (and be able to customize) and roll own virtual machine
Completely automated build environment testable and repeatable
No (manual) installation or installation manual ;-)
No SSH to the servers
No manual database changes
Time needed to update the production cluster must be less than one hour
Choices we made
Cloud Provider: Amazon
Advantages
IAAS: so you can host anything you want
We didn’t know exactly how many machines we needed or what kind of software stack was
necessary to complete the job

A lot of tooling exists
Great API’s
Relatively cheap when you are small
Free tier

Disadvantages
Small machines are really slow
Speed to cost ratio is quite bad
Choices we made
Rolling entire machines
Advantages
Machines stay fresh
Every machine is exactly the same (does not matter which environment)
Up- and downscaling is very easy and can be automated
Creating a machine can be automated and tested

Disadvantages
Need to manually run OS updates if you don’t roll machines often enough
No state inside the machine
Database needs to be backwards compatible

Property files need to be present on the machines (can be extracted)
Choices we made
AWS RDS Database
Advantages
MySQL or other DB type (Oracle, MS SQL) is available
Easy to setup

Disadvantages
Only marginal customisability. Heavy performance tuning is not possible.
Write performance is not great
Backup and restore results in a different hostname
Choices we made
Installation automation: Chef Solo
Advantages
Cookbooks in ruby
Standalone
No need to manually login to a server

Disadvantages
Updating cookbooks does break our build sometimes
Dependant of the community for updates of cookbooks
We have forked some cookbooks because they were broken or out of date

Troubleshooting can be time consuming
Choices we made
Base image
Advantages
Saves time: not necessary to install / run initial OS updates on the clones
Install software that is necessary on the entire stack

Disadvantages
If the base AMI contains an error all images do!

Base AMI

based on

Application
Application
AMI's
AMI's

uses

Application
Instance
Choices we made
Asgard
Open-source tool by Netflix written in Groovy
Web-based AWS cloud management and deployment
Advantages
It provides the “rolling entire machines” approach
Uses the Amazon API’s
Provides it’s own API’s for automation
Amazon does not provide a UI to create Auto scaling groups

Disadvantages
Can only be used on Amazon AWS
Asgard
Cloud deployment model
Asgard
Cloud deployment model

App 1

App 2

App n
Asgard
Fast rollback
Asgard
Fast rollback
Asgard
Fast rollback
Asgard
Fast rollback
Asgard
Fast rollback
Asgard
Fast rollback
Build Architecture Overview

local

Dev
commit
test

trigger
Build pipeline

Jenkins CI

+

detect

create
Asgard

test

create
use

+
Subversion

AMI

Inst ances
Demo

Asgard
Chef Cookbook
Deploying a new version to test
Lessons learned
Needed to clean up old Amazon AMI’s, volumes, launch
configurations, etc
A lot of custom ruby scripts
AMI builder
Base AMI builder
Cleanup

Custom way to prevent building the entire pipeline in jenkins
Automating to starting a new machine and connecting to it via SSH is
quite ugly..
Amazon reuses IP addresses, this sometimes results in a fingerprint
conflict which causes a pipeline failure
The future
Amazon VPC setup
Network segmentation
In and egress filtering

Migration to another data center
Host data in a data center that is not owned by an American organisation
Continuous Delivery @ Onegini

Contenu connexe

Tendances

Easy Continuous Deployment You Can Trust (Webinar)
Easy Continuous Deployment You Can Trust (Webinar)Easy Continuous Deployment You Can Trust (Webinar)
Easy Continuous Deployment You Can Trust (Webinar)Sauce Labs
 
Appium mobile web+dev conference
Appium   mobile web+dev conferenceAppium   mobile web+dev conference
Appium mobile web+dev conferenceIsaac Murchie
 
SauceCon 2017: test.allTheThings(): Digital Edition
SauceCon 2017: test.allTheThings(): Digital EditionSauceCon 2017: test.allTheThings(): Digital Edition
SauceCon 2017: test.allTheThings(): Digital EditionSauce Labs
 
Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automationSunny Tambi
 
Selenium Camp 2016
Selenium Camp 2016Selenium Camp 2016
Selenium Camp 2016Dan Cuellar
 
#SydMobNet Nov 2014: Evolve 2014 recap
#SydMobNet Nov 2014: Evolve 2014 recap#SydMobNet Nov 2014: Evolve 2014 recap
#SydMobNet Nov 2014: Evolve 2014 recapAlec Tucker
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android ApplicationsLeif Janzik
 
SauceCon 2017: Testing @ the Speed of Concurrency
SauceCon 2017: Testing @ the Speed of ConcurrencySauceCon 2017: Testing @ the Speed of Concurrency
SauceCon 2017: Testing @ the Speed of ConcurrencySauce Labs
 
Mobile DevOps with VSTS and AppCenter
Mobile DevOps with VSTS and AppCenterMobile DevOps with VSTS and AppCenter
Mobile DevOps with VSTS and AppCenterOkko Oulasvirta
 
Build safe environment for software developers
Build safe environment for software developersBuild safe environment for software developers
Build safe environment for software developersPrayoch Rujira
 
Testing Ajax, Mobile Apps the Agile Way
Testing Ajax, Mobile Apps the Agile WayTesting Ajax, Mobile Apps the Agile Way
Testing Ajax, Mobile Apps the Agile WayClever Moe
 
Continuous Testing Odyssey: Learn Best Practices for End-to-End Web App Testing
Continuous Testing Odyssey: Learn Best Practices for End-to-End Web App TestingContinuous Testing Odyssey: Learn Best Practices for End-to-End Web App Testing
Continuous Testing Odyssey: Learn Best Practices for End-to-End Web App TestingSauce Labs
 
Test at Scale within your Internal Networks with BrowserStack Local Testing
Test at Scale within your Internal Networks with BrowserStack Local TestingTest at Scale within your Internal Networks with BrowserStack Local Testing
Test at Scale within your Internal Networks with BrowserStack Local TestingBrowserStack
 
Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014Clever Moe
 
Selenium Conference 2015 - Mobile Selenium Grid Setup
Selenium Conference 2015 - Mobile Selenium Grid SetupSelenium Conference 2015 - Mobile Selenium Grid Setup
Selenium Conference 2015 - Mobile Selenium Grid SetupJustin Ison
 
Appium: Prime Cuts
Appium: Prime CutsAppium: Prime Cuts
Appium: Prime CutsSauce Labs
 
Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Okko Oulasvirta
 
Use Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationUse Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationClever Moe
 
Mobile Cross Platform Automation in-practice and on a Large Scale
Mobile Cross Platform Automation in-practice and on a Large ScaleMobile Cross Platform Automation in-practice and on a Large Scale
Mobile Cross Platform Automation in-practice and on a Large ScaleSathish Gogineni
 

Tendances (20)

Easy Continuous Deployment You Can Trust (Webinar)
Easy Continuous Deployment You Can Trust (Webinar)Easy Continuous Deployment You Can Trust (Webinar)
Easy Continuous Deployment You Can Trust (Webinar)
 
Appium mobile web+dev conference
Appium   mobile web+dev conferenceAppium   mobile web+dev conference
Appium mobile web+dev conference
 
SauceCon 2017: test.allTheThings(): Digital Edition
SauceCon 2017: test.allTheThings(): Digital EditionSauceCon 2017: test.allTheThings(): Digital Edition
SauceCon 2017: test.allTheThings(): Digital Edition
 
Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automation
 
Selenium Camp 2016
Selenium Camp 2016Selenium Camp 2016
Selenium Camp 2016
 
#SydMobNet Nov 2014: Evolve 2014 recap
#SydMobNet Nov 2014: Evolve 2014 recap#SydMobNet Nov 2014: Evolve 2014 recap
#SydMobNet Nov 2014: Evolve 2014 recap
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android Applications
 
SauceCon 2017: Testing @ the Speed of Concurrency
SauceCon 2017: Testing @ the Speed of ConcurrencySauceCon 2017: Testing @ the Speed of Concurrency
SauceCon 2017: Testing @ the Speed of Concurrency
 
Mobile DevOps with VSTS and AppCenter
Mobile DevOps with VSTS and AppCenterMobile DevOps with VSTS and AppCenter
Mobile DevOps with VSTS and AppCenter
 
Build safe environment for software developers
Build safe environment for software developersBuild safe environment for software developers
Build safe environment for software developers
 
Testing Ajax, Mobile Apps the Agile Way
Testing Ajax, Mobile Apps the Agile WayTesting Ajax, Mobile Apps the Agile Way
Testing Ajax, Mobile Apps the Agile Way
 
Continuous Testing Odyssey: Learn Best Practices for End-to-End Web App Testing
Continuous Testing Odyssey: Learn Best Practices for End-to-End Web App TestingContinuous Testing Odyssey: Learn Best Practices for End-to-End Web App Testing
Continuous Testing Odyssey: Learn Best Practices for End-to-End Web App Testing
 
Test at Scale within your Internal Networks with BrowserStack Local Testing
Test at Scale within your Internal Networks with BrowserStack Local TestingTest at Scale within your Internal Networks with BrowserStack Local Testing
Test at Scale within your Internal Networks with BrowserStack Local Testing
 
Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014
 
Selenium Conference 2015 - Mobile Selenium Grid Setup
Selenium Conference 2015 - Mobile Selenium Grid SetupSelenium Conference 2015 - Mobile Selenium Grid Setup
Selenium Conference 2015 - Mobile Selenium Grid Setup
 
Appium: Prime Cuts
Appium: Prime CutsAppium: Prime Cuts
Appium: Prime Cuts
 
Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases
 
Use Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationUse Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test Automation
 
Mobile Cross Platform Automation in-practice and on a Large Scale
Mobile Cross Platform Automation in-practice and on a Large ScaleMobile Cross Platform Automation in-practice and on a Large Scale
Mobile Cross Platform Automation in-practice and on a Large Scale
 
Introduction to AWS Device Farm
Introduction to AWS Device FarmIntroduction to AWS Device Farm
Introduction to AWS Device Farm
 

En vedette

NHS South of England (East) Youth Mental Health Summit 17th April 2012
NHS South of England (East) Youth Mental Health Summit 17th April 2012NHS South of England (East) Youth Mental Health Summit 17th April 2012
NHS South of England (East) Youth Mental Health Summit 17th April 2012Youth Mental Health Network
 
Palabras
PalabrasPalabras
Palabrasedupocs
 
Magazine Makelaardij Wendt
Magazine Makelaardij WendtMagazine Makelaardij Wendt
Magazine Makelaardij Wendtjohanwendt
 
Online Organizing Training - June 2012
Online Organizing Training - June 2012Online Organizing Training - June 2012
Online Organizing Training - June 2012Nicole Cairns
 
Unit 1 lesson 1 remediation 2 jeopardy
Unit 1 lesson 1 remediation 2 jeopardyUnit 1 lesson 1 remediation 2 jeopardy
Unit 1 lesson 1 remediation 2 jeopardyncvpsmanage1
 
BJDP Implicit and Explicit Theory of Mind
BJDP Implicit and Explicit Theory of MindBJDP Implicit and Explicit Theory of Mind
BJDP Implicit and Explicit Theory of MindWiley-Blackwell
 
Revenue Recognition Exposure Draft
Revenue Recognition Exposure DraftRevenue Recognition Exposure Draft
Revenue Recognition Exposure DraftDecosimoCPAs
 
ГОСТ Р ИСО/МЭК 18044 2007
ГОСТ Р ИСО/МЭК 18044 2007ГОСТ Р ИСО/МЭК 18044 2007
ГОСТ Р ИСО/МЭК 18044 2007Sergey Erohin
 
Academia de antreprenoriat
Academia de antreprenoriatAcademia de antreprenoriat
Academia de antreprenoriatTactixSolutions
 
Andrea Aufieri - Il mercato dell'editoria oggi, un'inchiesta sui dati italiani
Andrea Aufieri - Il mercato dell'editoria oggi, un'inchiesta sui dati italianiAndrea Aufieri - Il mercato dell'editoria oggi, un'inchiesta sui dati italiani
Andrea Aufieri - Il mercato dell'editoria oggi, un'inchiesta sui dati italianiAndrea Aufieri
 
2013 ALiDP Edmonton Training - "Slowing Down on Green Roofs"
2013 ALiDP Edmonton Training - "Slowing Down on Green Roofs"2013 ALiDP Edmonton Training - "Slowing Down on Green Roofs"
2013 ALiDP Edmonton Training - "Slowing Down on Green Roofs"wwmleung
 
Not OK Glass
Not OK GlassNot OK Glass
Not OK GlassSNDRV
 
Iptek Talk TVRI Pupuk Mikroba google
Iptek Talk TVRI Pupuk Mikroba googleIptek Talk TVRI Pupuk Mikroba google
Iptek Talk TVRI Pupuk Mikroba googleJohny S P
 
ITS National Update 2011 3-01-11 SIU
ITS National Update 2011  3-01-11 SIUITS National Update 2011  3-01-11 SIU
ITS National Update 2011 3-01-11 SIUraymurphy9533
 

En vedette (20)

NHS South of England (East) Youth Mental Health Summit 17th April 2012
NHS South of England (East) Youth Mental Health Summit 17th April 2012NHS South of England (East) Youth Mental Health Summit 17th April 2012
NHS South of England (East) Youth Mental Health Summit 17th April 2012
 
Journal jail
Journal jailJournal jail
Journal jail
 
Palabras
PalabrasPalabras
Palabras
 
Magazine Makelaardij Wendt
Magazine Makelaardij WendtMagazine Makelaardij Wendt
Magazine Makelaardij Wendt
 
ramsurvey
ramsurveyramsurvey
ramsurvey
 
Online Organizing Training - June 2012
Online Organizing Training - June 2012Online Organizing Training - June 2012
Online Organizing Training - June 2012
 
Unit 1 lesson 1 remediation 2 jeopardy
Unit 1 lesson 1 remediation 2 jeopardyUnit 1 lesson 1 remediation 2 jeopardy
Unit 1 lesson 1 remediation 2 jeopardy
 
BJDP Implicit and Explicit Theory of Mind
BJDP Implicit and Explicit Theory of MindBJDP Implicit and Explicit Theory of Mind
BJDP Implicit and Explicit Theory of Mind
 
Revenue Recognition Exposure Draft
Revenue Recognition Exposure DraftRevenue Recognition Exposure Draft
Revenue Recognition Exposure Draft
 
ГОСТ Р ИСО/МЭК 18044 2007
ГОСТ Р ИСО/МЭК 18044 2007ГОСТ Р ИСО/МЭК 18044 2007
ГОСТ Р ИСО/МЭК 18044 2007
 
Academia de antreprenoriat
Academia de antreprenoriatAcademia de antreprenoriat
Academia de antreprenoriat
 
Andrea Aufieri - Il mercato dell'editoria oggi, un'inchiesta sui dati italiani
Andrea Aufieri - Il mercato dell'editoria oggi, un'inchiesta sui dati italianiAndrea Aufieri - Il mercato dell'editoria oggi, un'inchiesta sui dati italiani
Andrea Aufieri - Il mercato dell'editoria oggi, un'inchiesta sui dati italiani
 
Salida a aranzadi
Salida a aranzadiSalida a aranzadi
Salida a aranzadi
 
2013 ALiDP Edmonton Training - "Slowing Down on Green Roofs"
2013 ALiDP Edmonton Training - "Slowing Down on Green Roofs"2013 ALiDP Edmonton Training - "Slowing Down on Green Roofs"
2013 ALiDP Edmonton Training - "Slowing Down on Green Roofs"
 
Metodos de estudio
Metodos de estudioMetodos de estudio
Metodos de estudio
 
Not OK Glass
Not OK GlassNot OK Glass
Not OK Glass
 
Iptek Talk TVRI Pupuk Mikroba google
Iptek Talk TVRI Pupuk Mikroba googleIptek Talk TVRI Pupuk Mikroba google
Iptek Talk TVRI Pupuk Mikroba google
 
Tibetiantest
TibetiantestTibetiantest
Tibetiantest
 
2009 gonullu ve kazanımları sunumu
2009 gonullu ve kazanımları sunumu2009 gonullu ve kazanımları sunumu
2009 gonullu ve kazanımları sunumu
 
ITS National Update 2011 3-01-11 SIU
ITS National Update 2011  3-01-11 SIUITS National Update 2011  3-01-11 SIU
ITS National Update 2011 3-01-11 SIU
 

Similaire à Continuous Delivery @ Onegini

Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case StudyIndicThreads
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case StudyTalentica Software
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio worldCodecamp Romania
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
 
Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Poonam Panday
 
Discover the power of QA automation testing
Discover the power of QA automation testingDiscover the power of QA automation testing
Discover the power of QA automation testingSoftweb Solutions
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, UkraineJustin Ison
 
Basics of Scriptless Automation for Web and Mobile Apps (1).pdf
Basics of Scriptless Automation for Web and Mobile Apps (1).pdfBasics of Scriptless Automation for Web and Mobile Apps (1).pdf
Basics of Scriptless Automation for Web and Mobile Apps (1).pdfpcloudy2
 
Continues Integration for Android
Continues Integration for AndroidContinues Integration for Android
Continues Integration for AndroidCODETE
 
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...Amazon Web Services
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test AutomationSauce Labs
 
Deploy applications with TFS Build
Deploy applications with TFS BuildDeploy applications with TFS Build
Deploy applications with TFS BuildGian Maria Ricci
 
Serverless java
Serverless   javaServerless   java
Serverless javaVishwas N
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 

Similaire à Continuous Delivery @ Onegini (20)

Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case Study
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case Study
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio world
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile
 
Discover the power of QA automation testing
Discover the power of QA automation testingDiscover the power of QA automation testing
Discover the power of QA automation testing
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, Ukraine
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Basics of Scriptless Automation for Web and Mobile Apps (1).pdf
Basics of Scriptless Automation for Web and Mobile Apps (1).pdfBasics of Scriptless Automation for Web and Mobile Apps (1).pdf
Basics of Scriptless Automation for Web and Mobile Apps (1).pdf
 
Continues Integration for Android
Continues Integration for AndroidContinues Integration for Android
Continues Integration for Android
 
Ansible
AnsibleAnsible
Ansible
 
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Cloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak KoyuncuCloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak Koyuncu
 
E2 e test with testcafe
E2 e test with testcafeE2 e test with testcafe
E2 e test with testcafe
 
Deploy applications with TFS Build
Deploy applications with TFS BuildDeploy applications with TFS Build
Deploy applications with TFS Build
 
Serverless java
Serverless   javaServerless   java
Serverless java
 
Serverless
ServerlessServerless
Serverless
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 

Dernier

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Dernier (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

Continuous Delivery @ Onegini

  • 1. Continuous Delivery How it’s done at a SAAS start-up Presenter: Stein Welberg
  • 2. About Me Studied at Twente University Waterpolo Player Identity & Access management expert CTO @ Onegini
  • 3. Why am I here? Sell Onegini Explain about Continuous Delivery Inspire you to think about CD Steal engineers ;-)
  • 4. What is Onegini SaaS Platform: onegini.me SSO solution to give external users access to your organisation Focus on ease of use Focus on security
  • 5. Continuous Integration "Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly." - Martin Fowler
  • 6. Continuous Delivery Key concepts Release early, release often Small releases Development close to business Test the sh*t out of your application Not just the code, also infra setup, db schema, etc! Have software that can always go live! Treat anything as software Automate, automate, automate… automate!!! Full deployment pipeline Summary: Continuous Delivery is Continuous Integration on steriods
  • 7. Continuous Delivery @ Onegini A new release into production every 4 weeks Devs could release anytime, business can’t keep up with us ;-) Fully automated Deployments (infrastructure as code) For all Business critical applications Automated (integration / acceptance) testing Critical issues are hardly ever found by our testers Not all corner cases are tested automatically
  • 8. Our road to Continuous Delivery The challenges Ruby (on Rails) and Java combined. Could not easily drop a war into e.g. Google App engine or Azure. Plans to use a graph / nosql database in the near future Run (and be able to customize) and roll own virtual machine Completely automated build environment testable and repeatable No (manual) installation or installation manual ;-) No SSH to the servers No manual database changes Time needed to update the production cluster must be less than one hour
  • 9. Choices we made Cloud Provider: Amazon Advantages IAAS: so you can host anything you want We didn’t know exactly how many machines we needed or what kind of software stack was necessary to complete the job A lot of tooling exists Great API’s Relatively cheap when you are small Free tier Disadvantages Small machines are really slow Speed to cost ratio is quite bad
  • 10. Choices we made Rolling entire machines Advantages Machines stay fresh Every machine is exactly the same (does not matter which environment) Up- and downscaling is very easy and can be automated Creating a machine can be automated and tested Disadvantages Need to manually run OS updates if you don’t roll machines often enough No state inside the machine Database needs to be backwards compatible Property files need to be present on the machines (can be extracted)
  • 11. Choices we made AWS RDS Database Advantages MySQL or other DB type (Oracle, MS SQL) is available Easy to setup Disadvantages Only marginal customisability. Heavy performance tuning is not possible. Write performance is not great Backup and restore results in a different hostname
  • 12. Choices we made Installation automation: Chef Solo Advantages Cookbooks in ruby Standalone No need to manually login to a server Disadvantages Updating cookbooks does break our build sometimes Dependant of the community for updates of cookbooks We have forked some cookbooks because they were broken or out of date Troubleshooting can be time consuming
  • 13. Choices we made Base image Advantages Saves time: not necessary to install / run initial OS updates on the clones Install software that is necessary on the entire stack Disadvantages If the base AMI contains an error all images do! Base AMI based on Application Application AMI's AMI's uses Application Instance
  • 14. Choices we made Asgard Open-source tool by Netflix written in Groovy Web-based AWS cloud management and deployment Advantages It provides the “rolling entire machines” approach Uses the Amazon API’s Provides it’s own API’s for automation Amazon does not provide a UI to create Auto scaling groups Disadvantages Can only be used on Amazon AWS
  • 23. Build Architecture Overview local Dev commit test trigger Build pipeline Jenkins CI + detect create Asgard test create use + Subversion AMI Inst ances
  • 25. Lessons learned Needed to clean up old Amazon AMI’s, volumes, launch configurations, etc A lot of custom ruby scripts AMI builder Base AMI builder Cleanup Custom way to prevent building the entire pipeline in jenkins Automating to starting a new machine and connecting to it via SSH is quite ugly.. Amazon reuses IP addresses, this sometimes results in a fingerprint conflict which causes a pipeline failure
  • 26. The future Amazon VPC setup Network segmentation In and egress filtering Migration to another data center Host data in a data center that is not owned by an American organisation