SlideShare a Scribd company logo
Controlling Your
Environments using
Infrastructure As Code
ConFoo Montréal - February 2016
Steve Mercier
Copyright Software That Matters… Done Right! Inc. 2016
Who am I?
I participated in multiple software development projects:
• from very small (<10 person) to large (~400 persons)
• from a long time ago (>20 years) up to now
• from different angles/roles: Developer, Architect, PM, DevOps/
BuildMaster, Software Release Manager
• I have seen software methods/processes come and go: Waterfall,
RUP, OpenUP, XP, Scrum, Scaled Agile, etc.
But the essential remains:
I believe that to produce good software, it takes good people +
resources AND discipline/professionalism/focus!
Are You Agile?
Agile is not easy… and is not only about ceremonies + tools!
Scrum Overview
Nothing on the previous slide concerning
software context, where is the code
delivered, running, performing…
Agile typically deals with this with the Definition Of Done
concept, sadly overlooked way too often…
What would be a good
measure of Agility
anyway?
Suggestion #1:
The capability to release
(aka)
The frequency at which you are
delivering software updates
that add business value to your clients
without breaking any previously
delivered business value that you want
to retain
Suggestion #2:
The time to release
(aka)
The time it takes you to deliver
the smallest change/fix to your
software in production
Given that:
What prevents true
agility?
What prevents you to release?
What prevents you to release fast?
From my point of view:
Lack of environments’
management
True for all types of environments:
DEV, QA, Staging, Production
Platform dependencies?
Do you manage them?
ex: Frameworks dependencies, external libraries
dependencies, etc. Are they either never updated or are
they continuously creating problem when you upgrade
them?
OS dependencies?
Do you manage them?
How is the OS changed on your platform? Does it break your applications
sometimes? Any logs/traces of those changes? Can they be rolled back in case
of problems?
Hardware/VM specs
dependencies?
Do you manage them?
What happens if available RAM/Disk/Network gets below
what your applications need? Do you know what they need?
If you manage your
environments, do you
manage them manually?
Everything not automated
reduces your Agility
Manual triggers can take a long time
Manual = Time++;
As your manager might say
Time == Money();
What techniques can reduce manual steps?
You could consider using DevOps:
CI server, CD server, Infrastructure as Code to automate
as mush as possible your release process
DevOps
Client
PO
Team
Delivery
What techniques can reduce manual steps?
Continuous Integration
What techniques can reduce manual steps?
Continuous Delivery/Deployment
What techniques can reduce manual steps?
Infrastructure As Code
Are your Agile Demos
done from unreleased
software
(aka Works at my desk)
Your software must have it!
Demos from unreleased software /
Difficulty to release in production
Involve Ops people in sprints
Releasing in prod should be doable by
anyone, anytime, using a single click
(rollback is obviously a feature you will want!)
CD—Continuous
Delivery/Deployment
Continuous Delivery/Deployment
Always have a shippable version available for your customers
Ex: GO CD (from Thoughtworks - now Open Source)
You can integrate your CI servers (Jenkins) with a CD server
Continuous Delivery/Deployment
A good practice to deploy gradually using cascaded
environments:
• (Development)
• Test
• Less resources, used mostly to validate business logic
• Staging/Pre-Production
• More representative of the production environment. Can be
used for load/performance testing. Typically uses a data set
that is a copy of the Production data set.
• Production
IaC—Infrastructure as
Code
Infrastructure as Code
Your code is under CM, but your
infrastructure is typically not! It also needs
to be versioned, tracked and automated!
There are so many tools available. But essentially,
keep ALL under source control, including what it takes
to reproduce your production environment from ZERO
Infrastructure as Code
• How to restart a hardware environment/virtual machines
• How to install the platform on the machines
• How to install the applications on the platforms
• How to configure the whole stack
• The databases schemas and content
• Everything!
If you are not convinced, think about your disaster
recovery plan (you have one, right?)
Infrastructure as Code
What if your server room is destroyed by water/
fire? (or the one from your cheap cloud provider…)
With IaC at least, the software part is covered in
case of disaster
DevOps
DevOps
• A Good app without an infrastructure to run it is useless…
• A superb, scalable infrastructure without an app adding
business value to a customer is also useless…
• You need both!
• DevOps should not be a separate team! It serves to
bridge the gap between development and operations
teams.
• And if you are not convinced that DevOps cannot
typically be a single person’s responsibility…
DevOps related tools
What could be potential
solutions to deliver and
faster?
1- Testing (TDD, BDD)
2- CI
3- CD
4- IaC
DEMO
Demo content
• GO CD presentation
• Application build pipeline
• connected to GitHub for app code
• running unit tests
• Triggering Staging pipeline on success
• using Vagrant + VirtualBox + Ansible to provision
production like environment for system tests
• connected to GitHub for IaC code
• Triggering Deployment pipeline on success
• using Ansible (Tower) to provision non VM
production multiple environments
Application Build/Unit
tests
Continuous Integration pipeline
Triggered on code changes
Staging pipeline
For deployment + system testing
Triggered on new application integration OR new IaC code
Deployment pipelines
Used to actually deploy the application into production
triggered on successful staging pipelines OR manually when needed
Discussion
How do you do it?
Agile Values vs.
Agile Practices
Agility is more than Agile values and
ceremonies
It is acting as per the Agile values and
producing software with related best practices
But where to start?
Every Agile cycle, try to improve on those issues, trying
to automate everything you can, while having the
conversation with your key stakeholders
Questions or
comments?
Thanks!
softwarethatmattersdoneright.com
+
http://ca.linkedin.com/in/stevemercier
Copyright Software That Matters… Done Right! Inc. 2016
Backup
Install provisioning
tools
Ex: Vagrant +
VirtualBox
- vagrant init hashicorp/precise64
- vagrant up
- vagrant ssh
- vagrant destroy
Ex: See how using the Vagrant
file, we can provision the
platform
config.vm.box = “hashicorp/precise64"
config.vm.network :forwarded_port, guest: 80, host: 4567
config.vm.provision :shell, path: “bootstrap.sh"
#!/usr/bin/env bash
apt-get update
apt-get install -y apache2
if ! [ -L /var/www ]; then
rm -rf /var/www
ln -fs /vagrant /var/www
fi
apt-get install -y python3
How to install the
applications on the
platforms
Ex: We can simply reuse the GIT clone using a shared
folder between host and guest VM or use similar
platform provisioning technique to perform a git clone in
the VM after provisioning

More Related Content

What's hot

CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps Journey
DevOps.com
 
DOES14: Scott Prugh, CSG - DevOps and Lean in Legacy Environments
DOES14: Scott Prugh, CSG - DevOps and Lean in Legacy EnvironmentsDOES14: Scott Prugh, CSG - DevOps and Lean in Legacy Environments
DOES14: Scott Prugh, CSG - DevOps and Lean in Legacy Environments
DevOps Enterprise Summmit
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
Bhavin Javia
 
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa ClaraAdobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
dev2ops
 
Taking the Best of Agile, DevOps and CI/CD into security
Taking the Best of Agile, DevOps and CI/CD into securityTaking the Best of Agile, DevOps and CI/CD into security
Taking the Best of Agile, DevOps and CI/CD into security
Matt Tesauro
 
Infrastructure as Code Maturity Model v1
Infrastructure as Code Maturity Model v1Infrastructure as Code Maturity Model v1
Infrastructure as Code Maturity Model v1
Gary Stafford
 
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
DevOpsDays Tel Aviv
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
Liran Levy
 
Taking AppSec to 11 - BSides Austin 2016
Taking AppSec to 11 - BSides Austin 2016Taking AppSec to 11 - BSides Austin 2016
Taking AppSec to 11 - BSides Austin 2016
Matt Tesauro
 
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
Splunk
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
Christopher Read
 
Cd syd
Cd sydCd syd
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
Julien Pivotto
 
5 Best Practices DevOps Culture
5 Best Practices DevOps Culture5 Best Practices DevOps Culture
5 Best Practices DevOps Culture
Edureka!
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
Sridhara T V
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
Ganesh Samarthyam
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeploy
Peter Gfader
 
DevOps is not a Culture. It is about responsibility
DevOps is not a Culture. It is about responsibilityDevOps is not a Culture. It is about responsibility
DevOps is not a Culture. It is about responsibility
Yoav Avrahami
 
Agility and Control from AWS [FutureStack16]
Agility and Control from AWS [FutureStack16]Agility and Control from AWS [FutureStack16]
Agility and Control from AWS [FutureStack16]
New Relic
 
Is Your DevOps Ready to Scale?
Is Your DevOps Ready to Scale?Is Your DevOps Ready to Scale?
Is Your DevOps Ready to Scale?
XebiaLabs
 

What's hot (20)

CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps Journey
 
DOES14: Scott Prugh, CSG - DevOps and Lean in Legacy Environments
DOES14: Scott Prugh, CSG - DevOps and Lean in Legacy EnvironmentsDOES14: Scott Prugh, CSG - DevOps and Lean in Legacy Environments
DOES14: Scott Prugh, CSG - DevOps and Lean in Legacy Environments
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
 
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa ClaraAdobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
 
Taking the Best of Agile, DevOps and CI/CD into security
Taking the Best of Agile, DevOps and CI/CD into securityTaking the Best of Agile, DevOps and CI/CD into security
Taking the Best of Agile, DevOps and CI/CD into security
 
Infrastructure as Code Maturity Model v1
Infrastructure as Code Maturity Model v1Infrastructure as Code Maturity Model v1
Infrastructure as Code Maturity Model v1
 
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
 
Taking AppSec to 11 - BSides Austin 2016
Taking AppSec to 11 - BSides Austin 2016Taking AppSec to 11 - BSides Austin 2016
Taking AppSec to 11 - BSides Austin 2016
 
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
Cd syd
Cd sydCd syd
Cd syd
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
5 Best Practices DevOps Culture
5 Best Practices DevOps Culture5 Best Practices DevOps Culture
5 Best Practices DevOps Culture
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeploy
 
DevOps is not a Culture. It is about responsibility
DevOps is not a Culture. It is about responsibilityDevOps is not a Culture. It is about responsibility
DevOps is not a Culture. It is about responsibility
 
Agility and Control from AWS [FutureStack16]
Agility and Control from AWS [FutureStack16]Agility and Control from AWS [FutureStack16]
Agility and Control from AWS [FutureStack16]
 
Is Your DevOps Ready to Scale?
Is Your DevOps Ready to Scale?Is Your DevOps Ready to Scale?
Is Your DevOps Ready to Scale?
 

Similar to Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code

Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
Adam Stephensen
 
Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015
Steve Mercier
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
Ambientia
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
Codemotion
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
David Funaro
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOps
Moataz Mahmoud
 
Accelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAccelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and Microservices
Amazon Web Services
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Lean IT Consulting
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
David Funaro
 
APIdays Paris 2018 - Will Serverless kill Containers and Operations? Stéphane...
APIdays Paris 2018 - Will Serverless kill Containers and Operations? Stéphane...APIdays Paris 2018 - Will Serverless kill Containers and Operations? Stéphane...
APIdays Paris 2018 - Will Serverless kill Containers and Operations? Stéphane...
apidays
 
Will ServerLess kill containers and Operations
Will ServerLess kill containers and OperationsWill ServerLess kill containers and Operations
Will ServerLess kill containers and Operations
Stephane Woillez
 
DevOps in an Embedded World
DevOps in an Embedded WorldDevOps in an Embedded World
DevOps in an Embedded World
Sajeewa Dayaratne
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI API
VictorSzoltysek
 
Delivering Better Software Faster (Without Breaking Everything)
Delivering Better Software Faster (Without Breaking Everything)Delivering Better Software Faster (Without Breaking Everything)
Delivering Better Software Faster (Without Breaking Everything)
XebiaLabs
 
London DevOps Meetup - PaaS as a platform for devops
London DevOps Meetup - PaaS as a platform for devopsLondon DevOps Meetup - PaaS as a platform for devops
London DevOps Meetup - PaaS as a platform for devops
Jeremy Brown
 
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Vadym Kazulkin
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
Amazon Web Services
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Amazon Web Services
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
Amazon Web Services
 
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
Amazon Web Services
 

Similar to Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code (20)

Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOps
 
Accelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAccelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and Microservices
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
APIdays Paris 2018 - Will Serverless kill Containers and Operations? Stéphane...
APIdays Paris 2018 - Will Serverless kill Containers and Operations? Stéphane...APIdays Paris 2018 - Will Serverless kill Containers and Operations? Stéphane...
APIdays Paris 2018 - Will Serverless kill Containers and Operations? Stéphane...
 
Will ServerLess kill containers and Operations
Will ServerLess kill containers and OperationsWill ServerLess kill containers and Operations
Will ServerLess kill containers and Operations
 
DevOps in an Embedded World
DevOps in an Embedded WorldDevOps in an Embedded World
DevOps in an Embedded World
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI API
 
Delivering Better Software Faster (Without Breaking Everything)
Delivering Better Software Faster (Without Breaking Everything)Delivering Better Software Faster (Without Breaking Everything)
Delivering Better Software Faster (Without Breaking Everything)
 
London DevOps Meetup - PaaS as a platform for devops
London DevOps Meetup - PaaS as a platform for devopsLondon DevOps Meetup - PaaS as a platform for devops
London DevOps Meetup - PaaS as a platform for devops
 
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
 

Recently uploaded

Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
ayushiqss
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 

Recently uploaded (20)

Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 

Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code

  • 1. Controlling Your Environments using Infrastructure As Code ConFoo Montréal - February 2016 Steve Mercier Copyright Software That Matters… Done Right! Inc. 2016
  • 2. Who am I? I participated in multiple software development projects: • from very small (<10 person) to large (~400 persons) • from a long time ago (>20 years) up to now • from different angles/roles: Developer, Architect, PM, DevOps/ BuildMaster, Software Release Manager • I have seen software methods/processes come and go: Waterfall, RUP, OpenUP, XP, Scrum, Scaled Agile, etc. But the essential remains: I believe that to produce good software, it takes good people + resources AND discipline/professionalism/focus!
  • 3. Are You Agile? Agile is not easy… and is not only about ceremonies + tools!
  • 5. Nothing on the previous slide concerning software context, where is the code delivered, running, performing… Agile typically deals with this with the Definition Of Done concept, sadly overlooked way too often…
  • 6. What would be a good measure of Agility anyway?
  • 7. Suggestion #1: The capability to release (aka) The frequency at which you are delivering software updates that add business value to your clients without breaking any previously delivered business value that you want to retain
  • 8. Suggestion #2: The time to release (aka) The time it takes you to deliver the smallest change/fix to your software in production
  • 10. What prevents you to release? What prevents you to release fast?
  • 11. From my point of view: Lack of environments’ management True for all types of environments: DEV, QA, Staging, Production
  • 12. Platform dependencies? Do you manage them? ex: Frameworks dependencies, external libraries dependencies, etc. Are they either never updated or are they continuously creating problem when you upgrade them?
  • 13. OS dependencies? Do you manage them? How is the OS changed on your platform? Does it break your applications sometimes? Any logs/traces of those changes? Can they be rolled back in case of problems?
  • 14. Hardware/VM specs dependencies? Do you manage them? What happens if available RAM/Disk/Network gets below what your applications need? Do you know what they need?
  • 15. If you manage your environments, do you manage them manually?
  • 17. Manual triggers can take a long time Manual = Time++;
  • 18. As your manager might say Time == Money();
  • 19. What techniques can reduce manual steps? You could consider using DevOps: CI server, CD server, Infrastructure as Code to automate as mush as possible your release process DevOps Client PO Team Delivery
  • 20. What techniques can reduce manual steps? Continuous Integration
  • 21. What techniques can reduce manual steps? Continuous Delivery/Deployment
  • 22. What techniques can reduce manual steps? Infrastructure As Code
  • 23. Are your Agile Demos done from unreleased software (aka Works at my desk)
  • 24. Your software must have it!
  • 25. Demos from unreleased software / Difficulty to release in production Involve Ops people in sprints Releasing in prod should be doable by anyone, anytime, using a single click (rollback is obviously a feature you will want!)
  • 27. Continuous Delivery/Deployment Always have a shippable version available for your customers Ex: GO CD (from Thoughtworks - now Open Source) You can integrate your CI servers (Jenkins) with a CD server
  • 28. Continuous Delivery/Deployment A good practice to deploy gradually using cascaded environments: • (Development) • Test • Less resources, used mostly to validate business logic • Staging/Pre-Production • More representative of the production environment. Can be used for load/performance testing. Typically uses a data set that is a copy of the Production data set. • Production
  • 30. Infrastructure as Code Your code is under CM, but your infrastructure is typically not! It also needs to be versioned, tracked and automated!
  • 31. There are so many tools available. But essentially, keep ALL under source control, including what it takes to reproduce your production environment from ZERO Infrastructure as Code • How to restart a hardware environment/virtual machines • How to install the platform on the machines • How to install the applications on the platforms • How to configure the whole stack • The databases schemas and content • Everything!
  • 32. If you are not convinced, think about your disaster recovery plan (you have one, right?) Infrastructure as Code What if your server room is destroyed by water/ fire? (or the one from your cheap cloud provider…) With IaC at least, the software part is covered in case of disaster
  • 34. DevOps • A Good app without an infrastructure to run it is useless… • A superb, scalable infrastructure without an app adding business value to a customer is also useless… • You need both! • DevOps should not be a separate team! It serves to bridge the gap between development and operations teams. • And if you are not convinced that DevOps cannot typically be a single person’s responsibility…
  • 36. What could be potential solutions to deliver and faster?
  • 37. 1- Testing (TDD, BDD) 2- CI 3- CD 4- IaC
  • 38. DEMO
  • 39. Demo content • GO CD presentation • Application build pipeline • connected to GitHub for app code • running unit tests • Triggering Staging pipeline on success • using Vagrant + VirtualBox + Ansible to provision production like environment for system tests • connected to GitHub for IaC code • Triggering Deployment pipeline on success • using Ansible (Tower) to provision non VM production multiple environments
  • 40. Application Build/Unit tests Continuous Integration pipeline Triggered on code changes
  • 41. Staging pipeline For deployment + system testing Triggered on new application integration OR new IaC code
  • 42. Deployment pipelines Used to actually deploy the application into production triggered on successful staging pipelines OR manually when needed
  • 45. Agility is more than Agile values and ceremonies It is acting as per the Agile values and producing software with related best practices
  • 46. But where to start? Every Agile cycle, try to improve on those issues, trying to automate everything you can, while having the conversation with your key stakeholders
  • 50. Install provisioning tools Ex: Vagrant + VirtualBox - vagrant init hashicorp/precise64 - vagrant up - vagrant ssh - vagrant destroy
  • 51. Ex: See how using the Vagrant file, we can provision the platform config.vm.box = “hashicorp/precise64" config.vm.network :forwarded_port, guest: 80, host: 4567 config.vm.provision :shell, path: “bootstrap.sh" #!/usr/bin/env bash apt-get update apt-get install -y apache2 if ! [ -L /var/www ]; then rm -rf /var/www ln -fs /vagrant /var/www fi apt-get install -y python3
  • 52. How to install the applications on the platforms Ex: We can simply reuse the GIT clone using a shared folder between host and guest VM or use similar platform provisioning technique to perform a git clone in the VM after provisioning