SlideShare a Scribd company logo
1 of 24
Download to read offline
Continuous delivery
with open source tools
presented by Sebastian Helzle
Who am I?
•

Web developer since Geocities went
popular (~1997)

•

Living in Karlsruhe, Germany since 2004

•

Freelancer since 2007 and first TYPO3
project

•

Javascript enthusiast since 2008

•

DevOps architect since 2012

•

TYPO3 Neos core developer since 2013

•

First time in Asia two weeks ago

•

Cook, hiker, reader, traveler, gamer for a
long time
Overview
•

Motivation for continuous delivery

•

Steps in the delivery pipeline and
•

What each step means

•

The tools I use in each step

•

Tools for keeping the delivery environment running

•

Summary
Motivation
•

Deliver features,
changes, fixes fast and
reproducible

•

Everyone should be able
to do it

•

Maintainable architecture

•

Create value for your
customer
The delivery pipeline
Agile teams
Code repository
Feedback &
Monitoring

Automated builds
Automatic tests
Deployment
Approval

Production

Reporting
Agile teams
Code repository
•

Centralized source code management

•

For reviewing and checking what’s going on in your codebase

•

My tool: Git & Gitlab!
•

Your private Github

•

Big community

•

Easy to setup and maintain

•

Supports teams
Continuous integration
Server
•

Manages the whole CI process

•

My tool: Jenkins
•

Centralized application for running 

all tasks in the process 

(after commit)

•

Very customizable

•

Can run in a distributed environment

•

Has lots of plugins available

including Chuck Norris plugin
Automated builds
•

Run after each commit

•

Report to the team if there are 

problems

•

Give every build a unique ID which is traceable
throughout the pipeline to production
Automated Tests
•

Assure the quality of your codebase

•

Will be triggered for every build

•

Provides reporting on code quality and other metrics

•

Some tests can also be run as monitoring for the production system

•

Promote builds which pass the tests

•

Inform the team when a tests fails and show the overall quality 

over a timespan

•

My tools:
•

Selenium(2)!

•

PHPUnit, JUnit, PyUnit, QUnit, etc…
Deployment
•

Requires no manual steps (if possible)

•

Only deploy promoted builds

•

Promote builds on success

•

Configurations should be
•

in version control

•

easy to setup

•

Should be reproducible by everyone in your company

•

Requires good reporting, because errors will happen!
My primary deployment tool:

TYPO3 Surf
•

Distributed as TYPO3 Flow package

•

Can be part of the project itself

•

PHP-based configuration (not necessarily a good thing)

•

Code is readable and can be extended easily

•

Rollbacks when any error happens while deploying

•

Keeps revisions on the target system

•

Deployment via rsync, packaging, Git

•

Run customized tasks at every deployment step

•

Alternatives:
•

Fabric - Python based tool for deployment and remote administration tasks
Approval
•

Smoke tests

•

My tools
•

Selenium(2)!

•

Curl & grep!

•

JMeter (Performance)
Tools for keeping the
delivery environment
running
Maintaining the pipeline
•

Use tools which can automate the setup of each step in the pipeline
•
•

Install the applications

•

Configure the system environment

•
•

Provision the (virtual) machines

Create basic configurations for projects

My tool: Chef!
•

Write cookbooks and recipes in ruby for 

setting up reproducible environments

•

Large community & good support

•

Lots of free cookbooks you can use
Simulate the the pipeline
•

Try out new tools & updates

•

Check if the tools work together

•

Simulate deliveries

•

Break things and try again

•

My tool: Vagrant!
•

Check out the talk by Michael Knoll (Saturday):

„Reproducible and portable work environments with
Vagrant & Chef“
Summary
•

We want continuous delivery because
•

We know what we are delivering

•

We can deliver it fast

•

We can tackle the steps which create headaches

•

It reduces stress -> we have a better life
Problems you will face
•

The tools I presented aren’t trivial
•

•

First steps will be hard -> don’t give up!

Motivate your people to play around with the systems
•
•

•

Best learning effect from my experience
Spreads the knowledge in your company

Making your customer invest in the improvements of
your pipeline
Links
•

gitlab.org - Gitlab

•

docs.seleniumhq.org - Selenium

•

jenkins-ci.org - Jenkins

•

http://www.getchef.com/chef/ - Chef

•

http://docs.fabfile.org/ - Fabric

•

https://qunitjs.com/ - QUnit

•

http://phpunit.de/ - PHPUnit

•

vagrantup.com - Vagrant
Contacting me
•

Twitter: @sebobo

•

By mail: sebastian@helzle.net

•

Skype: sebobo

•

Github: github.com/sebobo
Thank you!
!

Any questions left?

More Related Content

What's hot

Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and TellE. Camden Fisher
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsMichael Lihs
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev opsMukta Aphale
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitisSteve Povilaitis
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationRodrigo Russo
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsJames Strong
 
Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRDenis Ristic
 
Let’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsLet’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsTomohide Kakeya
 
Production Ready WordPress #WPLDN
Production Ready WordPress #WPLDNProduction Ready WordPress #WPLDN
Production Ready WordPress #WPLDNEdmund Turbin
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for TestingMukta Aphale
 
What is jenkins
What is jenkinsWhat is jenkins
What is jenkinslinuxdady
 
Continuous delivery of your legacy application
Continuous delivery of your legacy applicationContinuous delivery of your legacy application
Continuous delivery of your legacy applicationColdFusionConference
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To JenkinsKnoldus Inc.
 
JUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and GroovyJUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and GroovyCloudBees
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Controlindiver
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins IntroductionPavan Gupta
 
Production ready word press
Production ready word pressProduction ready word press
Production ready word pressEdmund Turbin
 
Jenkins introduction
Jenkins introductionJenkins introduction
Jenkins introductionGourav Varma
 

What's hot (20)

Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
 
Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and Tell
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev ops
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
 
Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HR
 
Let’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsLet’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkins
 
Production Ready WordPress #WPLDN
Production Ready WordPress #WPLDNProduction Ready WordPress #WPLDN
Production Ready WordPress #WPLDN
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
 
What is jenkins
What is jenkinsWhat is jenkins
What is jenkins
 
Continuous delivery of your legacy application
Continuous delivery of your legacy applicationContinuous delivery of your legacy application
Continuous delivery of your legacy application
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
 
JUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and GroovyJUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and Groovy
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins Introduction
 
Production ready word press
Production ready word pressProduction ready word press
Production ready word press
 
Jenkins introduction
Jenkins introductionJenkins introduction
Jenkins introduction
 

Similar to Continuous delivery with open source tools

KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfQA or the Highway
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)yalini97
 
Development Processes and Tooling
Development Processes and ToolingDevelopment Processes and Tooling
Development Processes and ToolingBora Bilgin
 
Artifacts management with DevOps
Artifacts management with DevOpsArtifacts management with DevOps
Artifacts management with DevOpsChen-Tien Tsai
 
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CDDevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CDDevOps_Fest
 
The Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With PuppetThe Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With PuppetMike Merideth
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
 
Continuous Integration @ Haptik
Continuous Integration @ HaptikContinuous Integration @ Haptik
Continuous Integration @ HaptikPrateek Gupte
 
Automating Web Application Deployment
Automating Web Application DeploymentAutomating Web Application Deployment
Automating Web Application DeploymentMathew Byrne
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
Design thinking: Building a developer experience from scratch
Design thinking: Building a developer experience from scratchDesign thinking: Building a developer experience from scratch
Design thinking: Building a developer experience from scratchBecky Todd
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAdam Getchell
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
 
Continuous Integration In A PHP World
Continuous Integration In A PHP WorldContinuous Integration In A PHP World
Continuous Integration In A PHP WorldIdaf_1er
 
Continuous Delivery for Open Source Java projects
Continuous Delivery for Open Source Java projectsContinuous Delivery for Open Source Java projects
Continuous Delivery for Open Source Java projectsTricode (part of Dept)
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...Evans Ye
 

Similar to Continuous delivery with open source tools (20)

KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Devops
DevopsDevops
Devops
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
Development Processes and Tooling
Development Processes and ToolingDevelopment Processes and Tooling
Development Processes and Tooling
 
Artifacts management with DevOps
Artifacts management with DevOpsArtifacts management with DevOps
Artifacts management with DevOps
 
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CDDevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
 
The Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With PuppetThe Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With Puppet
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Continuous Integration @ Haptik
Continuous Integration @ HaptikContinuous Integration @ Haptik
Continuous Integration @ Haptik
 
Automating Web Application Deployment
Automating Web Application DeploymentAutomating Web Application Deployment
Automating Web Application Deployment
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Design thinking: Building a developer experience from scratch
Design thinking: Building a developer experience from scratchDesign thinking: Building a developer experience from scratch
Design thinking: Building a developer experience from scratch
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
Ci & proServer
Ci & proServerCi & proServer
Ci & proServer
 
Continuous Integration In A PHP World
Continuous Integration In A PHP WorldContinuous Integration In A PHP World
Continuous Integration In A PHP World
 
Continuous Delivery for Open Source Java projects
Continuous Delivery for Open Source Java projectsContinuous Delivery for Open Source Java projects
Continuous Delivery for Open Source Java projects
 
CD
CDCD
CD
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 

More from Sebastian Helzle

Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
Neos CMS & SEO - The Next Level - NeosCon Dresden 2019Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
Neos CMS & SEO - The Next Level - NeosCon Dresden 2019Sebastian Helzle
 
SEO with NeosCMS - Meet Neos Salzburg 2018
SEO with NeosCMS - Meet Neos Salzburg 2018SEO with NeosCMS - Meet Neos Salzburg 2018
SEO with NeosCMS - Meet Neos Salzburg 2018Sebastian Helzle
 
Semantic data in TYPO3 - T3CON18EU
Semantic data in TYPO3 - T3CON18EUSemantic data in TYPO3 - T3CON18EU
Semantic data in TYPO3 - T3CON18EUSebastian Helzle
 
Continuous relaunch – die einzige konstante ist die Veränderung
Continuous relaunch – die einzige konstante ist die VeränderungContinuous relaunch – die einzige konstante ist die Veränderung
Continuous relaunch – die einzige konstante ist die VeränderungSebastian Helzle
 
Tasty Recipes for Every Day 2016 (Neos)
Tasty Recipes for Every Day 2016 (Neos)Tasty Recipes for Every Day 2016 (Neos)
Tasty Recipes for Every Day 2016 (Neos)Sebastian Helzle
 
Conceptual understanding in development
Conceptual understanding in developmentConceptual understanding in development
Conceptual understanding in developmentSebastian Helzle
 
Improving conceptual understanding in development
Improving conceptual understanding in developmentImproving conceptual understanding in development
Improving conceptual understanding in developmentSebastian Helzle
 
Improving editors' lives with Neos CMS
Improving editors' lives with Neos CMSImproving editors' lives with Neos CMS
Improving editors' lives with Neos CMSSebastian Helzle
 
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.jsTesten von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.jsSebastian Helzle
 

More from Sebastian Helzle (10)

Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
Neos CMS & SEO - The Next Level - NeosCon Dresden 2019Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
 
SEO with NeosCMS - Meet Neos Salzburg 2018
SEO with NeosCMS - Meet Neos Salzburg 2018SEO with NeosCMS - Meet Neos Salzburg 2018
SEO with NeosCMS - Meet Neos Salzburg 2018
 
Semantic data in TYPO3 - T3CON18EU
Semantic data in TYPO3 - T3CON18EUSemantic data in TYPO3 - T3CON18EU
Semantic data in TYPO3 - T3CON18EU
 
Continuous relaunch – die einzige konstante ist die Veränderung
Continuous relaunch – die einzige konstante ist die VeränderungContinuous relaunch – die einzige konstante ist die Veränderung
Continuous relaunch – die einzige konstante ist die Veränderung
 
Neos CMS and SEO
Neos CMS and SEONeos CMS and SEO
Neos CMS and SEO
 
Tasty Recipes for Every Day 2016 (Neos)
Tasty Recipes for Every Day 2016 (Neos)Tasty Recipes for Every Day 2016 (Neos)
Tasty Recipes for Every Day 2016 (Neos)
 
Conceptual understanding in development
Conceptual understanding in developmentConceptual understanding in development
Conceptual understanding in development
 
Improving conceptual understanding in development
Improving conceptual understanding in developmentImproving conceptual understanding in development
Improving conceptual understanding in development
 
Improving editors' lives with Neos CMS
Improving editors' lives with Neos CMSImproving editors' lives with Neos CMS
Improving editors' lives with Neos CMS
 
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.jsTesten von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
 

Recently uploaded

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
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
 
"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
 
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
 
"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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
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
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
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
 
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
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 

Recently uploaded (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
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
 
"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
 
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
 
"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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
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
 
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
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
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
 
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
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 

Continuous delivery with open source tools

  • 1. Continuous delivery with open source tools presented by Sebastian Helzle
  • 2. Who am I? • Web developer since Geocities went popular (~1997) • Living in Karlsruhe, Germany since 2004 • Freelancer since 2007 and first TYPO3 project • Javascript enthusiast since 2008 • DevOps architect since 2012 • TYPO3 Neos core developer since 2013 • First time in Asia two weeks ago • Cook, hiker, reader, traveler, gamer for a long time
  • 3. Overview • Motivation for continuous delivery • Steps in the delivery pipeline and • What each step means • The tools I use in each step • Tools for keeping the delivery environment running • Summary
  • 4. Motivation • Deliver features, changes, fixes fast and reproducible • Everyone should be able to do it • Maintainable architecture • Create value for your customer
  • 6. Agile teams Code repository Feedback & Monitoring Automated builds Automatic tests Deployment Approval Production Reporting
  • 8. Code repository • Centralized source code management • For reviewing and checking what’s going on in your codebase • My tool: Git & Gitlab! • Your private Github • Big community • Easy to setup and maintain • Supports teams
  • 9. Continuous integration Server • Manages the whole CI process • My tool: Jenkins • Centralized application for running 
 all tasks in the process 
 (after commit) • Very customizable • Can run in a distributed environment • Has lots of plugins available
 including Chuck Norris plugin
  • 10. Automated builds • Run after each commit • Report to the team if there are 
 problems • Give every build a unique ID which is traceable throughout the pipeline to production
  • 11.
  • 12. Automated Tests • Assure the quality of your codebase • Will be triggered for every build • Provides reporting on code quality and other metrics • Some tests can also be run as monitoring for the production system • Promote builds which pass the tests • Inform the team when a tests fails and show the overall quality 
 over a timespan • My tools: • Selenium(2)! • PHPUnit, JUnit, PyUnit, QUnit, etc…
  • 13.
  • 14. Deployment • Requires no manual steps (if possible) • Only deploy promoted builds • Promote builds on success • Configurations should be • in version control • easy to setup • Should be reproducible by everyone in your company • Requires good reporting, because errors will happen!
  • 15. My primary deployment tool:
 TYPO3 Surf • Distributed as TYPO3 Flow package • Can be part of the project itself • PHP-based configuration (not necessarily a good thing) • Code is readable and can be extended easily • Rollbacks when any error happens while deploying • Keeps revisions on the target system • Deployment via rsync, packaging, Git • Run customized tasks at every deployment step • Alternatives: • Fabric - Python based tool for deployment and remote administration tasks
  • 17. Tools for keeping the delivery environment running
  • 18. Maintaining the pipeline • Use tools which can automate the setup of each step in the pipeline • • Install the applications • Configure the system environment • • Provision the (virtual) machines Create basic configurations for projects My tool: Chef! • Write cookbooks and recipes in ruby for 
 setting up reproducible environments • Large community & good support • Lots of free cookbooks you can use
  • 19. Simulate the the pipeline • Try out new tools & updates • Check if the tools work together • Simulate deliveries • Break things and try again • My tool: Vagrant! • Check out the talk by Michael Knoll (Saturday):
 „Reproducible and portable work environments with Vagrant & Chef“
  • 20. Summary • We want continuous delivery because • We know what we are delivering • We can deliver it fast • We can tackle the steps which create headaches • It reduces stress -> we have a better life
  • 21. Problems you will face • The tools I presented aren’t trivial • • First steps will be hard -> don’t give up! Motivate your people to play around with the systems • • • Best learning effect from my experience Spreads the knowledge in your company Making your customer invest in the improvements of your pipeline
  • 22. Links • gitlab.org - Gitlab • docs.seleniumhq.org - Selenium • jenkins-ci.org - Jenkins • http://www.getchef.com/chef/ - Chef • http://docs.fabfile.org/ - Fabric • https://qunitjs.com/ - QUnit • http://phpunit.de/ - PHPUnit • vagrantup.com - Vagrant
  • 23. Contacting me • Twitter: @sebobo • By mail: sebastian@helzle.net • Skype: sebobo • Github: github.com/sebobo