GETTING STARTED WITH CONTINUOUS DELIVERY -...

32
GETTING STARTED WITH CONTINUOUS DELIVERY Lana Kalashnyk @lana_vk wcgp.co

Transcript of GETTING STARTED WITH CONTINUOUS DELIVERY -...

Page 1: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

GETTING STARTED WITH CONTINUOUS

DELIVERYLana Kalashnyk

@lana_vk wcgp.co

Page 2: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

ABOUT ME• Lana Kalashnyk

• BAAS Computer Science minor Business Administration

• AS in Computer Science emphasis on Networking

• Cisco CCNA I-IV, Red Hat JAX-RS, NetSuite, WPF, Oracle Java training

• Houston Java User Group, Houston .Net User Group, Texas DevOps User Group, PuppetConf

• On Center Software 8+ years enterprise software development for high availability platforms

• W Consulting Group. Consulting services in cloud platforms design to customers debt trading, auto finance and defense industries.

• Some of our past projects

• Debt Trading

• Defence

• Auto Finance

• Construction

Page 3: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

Continuous Delivery ?

Page 4: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

WHY TALK ABOUT CONTINUOUS DELIVERY?

• Not a new concept

• Many not sure what it means

• Few actually use it

Page 5: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

WHAT IS CONTINUOUS INTEGRATION?

Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. (ThoughtWorks)

Page 6: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

WHAT IS CONTINUOUS DELIVERY?

Continuous Delivery (CD) is a software engineering approach in which teams keep producing valuable software in short cycles and ensure that the software can be reliably released at any time.Techniques such as automated testing and continuous integration (CI) allow software to be developed to a high standard and easily packaged and deployed to test environments, resulting in the ability to rapidly, reliably and repeatedly push out enhancements and bug fixes to customers at low risk and with minimal manual overhead. (Wikipedia)

Page 7: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

WHAT IS DEVOPS?Born of the need to improve IT service delivery agility, the DevOps movement emphasizes communication, collaboration and integration between software developers and IT operations. Rather than seeing these two groups as silos who pass things along but don’t really work together, DevOps recognizes the interdependence of software development and IT operations and helps an organization produce software and IT services more rapidly (New Relic)

Page 8: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

CONTINUOUS DELIVERY IS NOT CONTINUOUS DEPLOYMENT

Continuous Delivery doesn't mean every change is deployed to production ASAP. It means every change is proven to be deployable at any time - Puppet ( Carl Caum)

Page 9: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

While continuous deployment may not be right for every company, continuous delivery is an absolute requirement of DevOps practices. Only when you continuously deliver your code can you have true confidence that your changes will be serving value to your customers within minutes of pushing the "go" button, and that you can actually push that button any time the business is ready for it. (PuppetLabs)

Page 10: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

STAGES OF CONTINUOUS DELIVERY

Theory:

Module Unit Tests

Platform Tests Deliver

To Staging

ApplicationAcceptance

TestsDeploy ToProduction

Post DeployTests

Build

Fully Automated Steps

Page 11: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

STAGES OF CONTINUOUS DELIVERY

Practice : Write down the actual steps in your Development Process

Commit

Code

Build

Test Stage Deploy

Page 12: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

AGILE & CONTINUOUS DELIVERY

• Continuous Integration was born in Agile roots

• Continuous Delivery was born out of CI, hence inherits its Agile qualities

Page 13: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

REAL WORLD ISSUES

• Broken deployments

• Magical servers

• Exciting releases

Page 14: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

WHAT IF YOU AREN’T A DEVOPS PRO ?

• Engineering approach not tools

• Scope wisely

• Be Agile

Page 15: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

FAST TRACK ROAD MAP• Start Small & Simple

• Think The biggest ROI

• Monitor your process !

• Think in abstract terms

• Educate your team

Page 16: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

START SMALL & SIMPLE

• Start with small tasks

• Automate things you understand

• Don’t automate the automation

Page 17: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

THINK THE BIGGEST ROI

• Automate the most re-used components .

• Automate the most error-prone components.

• If time / budget are an issue don’t automate UI testing. UI changes too frequently

Page 18: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

MONITOR YOUR PROCESS!

• Automation has to be monitored!

• Feedback is the reason we automate

Page 19: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

ADOPT THE PRINCIPLES NOT TOOLS

• Speak in CD terms not tools

• Containers not “Docker”

• Automated testing not “Cucumber”

Page 20: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

EDUCATE TO BREAK DOWN THE SILOS

• Introduce CD into Development

• Agile needs cross team collaboration. Educate the team !

• Automated testing is a must.

Page 21: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

BONUS : IMMUTABLE CONTAINERS

• Immutable - not changeable

• Don’t waste time updating servers.

• Updating live environments is dangerous

• Deploy new ones

• Turn off the old ones when ready

Page 22: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

BONUS: ONE STEP DEPLOYMENTS

• Quote “ If your setup is longer than one line, you are coding in prototype”

• Offload custom steps into scripts

Page 23: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

REVELATIONS

• Non DevOps Engineers should be involved in Continuous Delivery !

• CD lets you re-purpose the Super Stars

• Boring is good

• Frequent Releases make Developers happy

Page 24: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

JOIN THE PARADE

• Stepping into DevOps / CD can feel like :

• “Stepping out of an office building into a parade”

• Explosive innovation in CD/CI/DevOps space

Page 25: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

HOW TO SELECT YOUR TOOLS

• Thinking of Continuous Delivery as an approach rather than a particular tool implementation helps with solving a problem not adopting a hot trend.

Page 26: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

Puppet JMeter SonarQubeChef Arquillian Jenkins PylingSalt Selenium Go CD JSHintAnsible TestComplete Cloud Bees New RelicPacker Bamboo Snap Logic MonitorDocker Vagrant CA Release

AutomationPager Duty

LXD Jenkins Live Rebel Server SpecRocket GO CD DerbyIT Test KitchenDrawBridge TeamCity Maven CucumberSpoon Bamboo Ant Chaos MonkeyCodeDeploy RDS for PostGRES Rake BASHCloud Formation RDS for MySQL Gradle CURLOPSWorks IBM Urban Code Grunt EC2CLI TeamCity Python Code ClimateCode Pipeline Electric Cloud Cucumber SonarCode Commit and many many

more…

Continuous Delivery Tools Continuous Integration Tools

DevOps Tools

Page 27: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

Puppet SonarQubeChef Arquillian Jenkins PylingSalt Selenium Go CD JSHintAnsible TestComplete Team City

BambooBamboo Snap Logic Monitor

Docker Packer

Vagrant Cucumber

CA Release Automation

Pager Duty

LXD Rocket DrawBridge Spoon

Live Rebel DeployIT

Server Spec JMeterTest Kitchen Cucumber Chaos MonkeyCode Climate

Maven SonarAnt

CodeDeploy Code Commit

RDS for PostGRES RDS for MySQL

Rake Gradle Grunt

BASH Python CURL

Cloud FormationOPSWorks IBM Urban CodeCLI TeamCityCode Pipeline Electric Cloud

Containers

Configuration/DevOpsTest Automation

Amazon AWS

CI

DB Scripting

Monitoring

Testing

Scripting

Build

Infrastructure / Load

CI/CD

Page 28: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

REFERENCES• Wikipedia

• ThoughtWorks

• Docker

• PuppetLabs

• New Relic

• Jenkins

• CloudBees

Page 29: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

SAMPLE IMPLEMENTATION• First Let’s see what we need :

• 1. Build Tool : Maven

• https://maven.apache.org/download.cgi

• 2. CI Tool : Jenkins

• https://jenkins-ci.org

• 3. Automated Testing Arquillian / Selenium / Cucumber

• http://arquillian.org

• https://cucumber.io

• http://www.seleniumhq.org

• 4. Provisioning tool for new Servers :

• https://puppetlabs.com/download-learning-vm-thank-you

• https://www.cloudbees.com/event/continuous-delivery-jenkins-and-puppet-debug-bad-bits-production

Page 30: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

SAMPLE IMPLEMENTATION• 5. Container Tool : Docker

• http://www.docker.com

• 6. Monitoring Tool: Logic Monitor

• http://lp.logicmonitor.com

• http://www.pagerduty.com/

• 7. Vendors Sample Demos

• Puppet & Jenkins (CloudBees)https://www.youtube.com/watch?v=vl3ElHTXt78

• GoCD and Docker

• http://www.go.cd/2014/05/18/manage-agents-with-docker.html

Page 31: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

RAFFLE !

Page 32: GETTING STARTED WITH CONTINUOUS DELIVERY - …2015conf.agileaustin.org/sites/default/files/presentations/KAA2015... · Puppet JMeter SonarQube Chef Arquillian Jenkins Pyling Salt

Lana KalashnykW Consulting Group

wcgp.coTwitter : @lana_vk

THANK YOU !!