SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

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
 

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

Destaque

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
 

Destaque (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
 

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

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

Último

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
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
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
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
 
"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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"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
 

Último (20)

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
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
 
"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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"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
 

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