The Quest for Continuous Delivery at Pluralsight

Mike Clement
Mike ClementHusband, Father and VP of Engineering at Emmersion, Founder Software Craftsmanship Atlanta
The Quest for Continuous
Delivery at Pluralsight
Mike Clement
@mdclement
mike@softwareontheside.com
http://blog.softwareontheside.com
Overview of CD
Pluralsight today
The future
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
If somebody thinks of a good
idea…
…how do we deliver it to users as
quickly as possible?
Continuous Delivery, Introduction
The Quest for Continuous Delivery at Pluralsight
Done?
Done is released
Deployment
Provisioning and managing the environment in which your application
will run (hardware configuration, software, infrastructure,
and external services).
Installing the correct version of your application into it.
Configuring your application, including any data or state it requires.
Continuous Delivery, Chapter 1
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
Who?
Delivery Team
Product
Testers
Build
Ops
Support
Developers
What?
Managing Risk
Small releases
Automated tests
Visible
Repeatable
Reliable
Predictable
Why?
Reducing Errors
Lowering Stress
Deployment Flexibility
How?
Every change that is made to…
…triggers the pipeline.
Continuous Delivery, Introduction
configuration
source code
environment
data
https://www.chef.io/images/chart-continuous-delivery.png
The Quest for Continuous Delivery at Pluralsight
Version control everything that can change
configuration files
scripts to create databases and their schemas
build scripts
test harnesses
development environments
operating system configurations
Feedback Process
• Build
• Unit tests
• Coverage/static analysis
• Acceptance tests
• “Non-functional” tests (capacity, security, availability)
• UI tests
The Quest for Continuous Delivery at Pluralsight
Practices at Pluralsight
Technology Stack
.NET (C#)
Angular JS
RavenDB
Homegrown XML based DB
IIS/Windows
Windows Services
XP Simple Design
Passes all tests
Clear, expressive, consistent
No duplication
Minimal
Pair Programming
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
Feedback Process
• Build
• Unit tests
• Coverage/static analysis
• Acceptance tests
• “Non-functional” tests (capacity, security, availability)
• UI tests
Tools at Pluralsight
mSpec
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
Feedback Process – TeamCity
• Build
• Unit tests
• Acceptance tests
• UI tests
Site Management tool
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
Octopus
• Variables – application configuration
• Web.config transforms
• NuGet package with application
• Before/after scripting
The Quest for Continuous Delivery at Pluralsight
Hosted ViaWest
• “Private” Cloud
• Commodity virtual hardware
• Moving to…
The Quest for Continuous Delivery at Pluralsight
AWS (EC2)
• Commodity hardware
• Ops configured
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
Where are we going next?
Every change that is made to…
…triggers the pipeline.
Continuous Delivery, Introduction
configuration
source code
environment
data?
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
Every change that is made to…
…triggers the pipeline.
Continuous Delivery, Introduction
configuration
source code
environment
data
The Quest for Continuous Delivery at Pluralsight
{
"Title": "AngularJS Fundamentals",
"ShortDescription": "This course will teach you the AngularJS fundamentals required to create testable, MVC-style single page
applications with AngularJS.",
"Description": "In this course you will learn how simple it is to use AngularJS to create maintainable and testable single page
applications. You will learn how to: bootstrap your AngularJS application; use AngularJS markup and expressions; create and use
controllers; use built-in services and create custom services; turn your application into a SPA using routing; and create your own
custom elements and handle events using directives. You will also learn how AngularJS allows you to do all thing using test-driven-
development.",
"PublishedOn": "2013-05-17T00:00:00.0000000",
"ShowTranscripts": true,
"Level": "Intermediate",
"RecentViewTime": 9542531,
"Subcategory": "",
"MaterialsFilePublishDateUtc": "2014-04-11T12:34:15.0000000",
"TotalRating": 7861,
"TotalNumberOfRaters": 1775,
"AllowAnonymousExerciseFiles": false,
"AllowFreeAssessments": false,
"Name": "angularjs-fundamentals",
"Category": {
"CategoryName": "javascript",
"CategoryTitle": "JavaScript"
},
"Duration": 22918,
"ModuleRefs": [
"coursemoduledtos/joe-eames/angularjs-fundamentals-m1-intro",
"coursemoduledtos/joe-eames/angularjs-fundamentals-m2-markup-controllers",
"coursemoduledtos/jim-cooper/angularjs-fundamentals-m3-services",
"coursemoduledtos/jim-cooper/angularjs-fundamentals-m4-routing",
"coursemoduledtos/jim-cooper/angularjs-fundamentals-m5-directives",
"coursemoduledtos/joe-eames/angularjs-fundamentals-m6-testing"
]
}
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
Feedback Process
• Build
• Unit tests
• Coverage/static analysis
• Acceptance tests
• “Non-functional” tests (capacity, security, availability)
• UI tests
Immediate Future
• Server Management as Code
• More saltstack
• Salt pillars with application code
• Raven to Cassandra
• automate modifications to database schema in Cassandra
• Better staging environment
• SOX
• Automation over Documentation
• Enforcing Traceability
• Change Management
• Better live testing/monitoring – New Relic
A little further out…
• Automated performance testing on stage on every build
• Automated security testing on stage on every build
• Continual automated performance testing on live
• Continual automated security testing on live
• Immutable infrastructure
• Continuous Deployment/Release?
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
Resources
• Jez Humble - http://continuousdelivery.com/
• Gene Kim - http://www.realgenekim.me/
• Kevin Behr - http://www.kevinbehr.com/
Mike Clement
• @mdclement
• mike@softwareontheside.com
• http://blog.softwareontheside.com
• http://agilecodegames.com
• https://github.com/mdclement
• Utah Software Craftsmanship
• http://utahsc.org
• @utahsc
• We meet the first Wednesday at Pluralsight-Lehi
• http://agileroots.com
1 of 72

Recommended

Tech Trends - a Pluralsight presentation for LT16 by
Tech Trends - a Pluralsight presentation for LT16Tech Trends - a Pluralsight presentation for LT16
Tech Trends - a Pluralsight presentation for LT16Denise Hudson Lawson FLPI AMBCS
182 views19 slides
Email Notifications in Jenkins | Edureka by
Email Notifications in Jenkins | EdurekaEmail Notifications in Jenkins | Edureka
Email Notifications in Jenkins | EdurekaEdureka!
867 views14 slides
Dev Learn Handout - Session 604 by
Dev Learn Handout - Session 604Dev Learn Handout - Session 604
Dev Learn Handout - Session 604Chad Udell
451 views2 slides
Top 5 Javascript Frameworks for Web and Mobile App Development by
Top 5 Javascript Frameworks for Web and Mobile App DevelopmentTop 5 Javascript Frameworks for Web and Mobile App Development
Top 5 Javascript Frameworks for Web and Mobile App DevelopmentAjeet Singh
19.5K views29 slides
Job manager 2020 in Angular by
Job manager 2020 in AngularJob manager 2020 in Angular
Job manager 2020 in AngularOrlovsky Consulting GbR
122 views17 slides
Tdd2018 state of the software quality in Germany by
Tdd2018 state of the software quality in GermanyTdd2018 state of the software quality in Germany
Tdd2018 state of the software quality in GermanyOrlovsky Consulting GbR
59 views24 slides

More Related Content

What's hot

Visual Studio: The best tool for web developers. by
Visual Studio: The best tool for web developers.Visual Studio: The best tool for web developers.
Visual Studio: The best tool for web developers.Robert MacLean
4.9K views8 slides
VISUG: Visual studio for web developers by
VISUG: Visual studio for web developersVISUG: Visual studio for web developers
VISUG: Visual studio for web developersKevin DeRudder
2.7K views57 slides
Putting the DOT in .NET - Dev/Ops/Test by
Putting the DOT in .NET - Dev/Ops/TestPutting the DOT in .NET - Dev/Ops/Test
Putting the DOT in .NET - Dev/Ops/TestRobert MacLean
2K views47 slides
Mercurial by
MercurialMercurial
MercurialRobert MacLean
776 views16 slides
Windows Store Apps: Tips & Tricks by
Windows Store Apps: Tips & TricksWindows Store Apps: Tips & Tricks
Windows Store Apps: Tips & TricksRobert MacLean
1.7K views29 slides
What’s new in LightSwitch 2013? by
What’s new in LightSwitch 2013?What’s new in LightSwitch 2013?
What’s new in LightSwitch 2013?Robert MacLean
3.2K views17 slides

What's hot(18)

Visual Studio: The best tool for web developers. by Robert MacLean
Visual Studio: The best tool for web developers.Visual Studio: The best tool for web developers.
Visual Studio: The best tool for web developers.
Robert MacLean4.9K views
VISUG: Visual studio for web developers by Kevin DeRudder
VISUG: Visual studio for web developersVISUG: Visual studio for web developers
VISUG: Visual studio for web developers
Kevin DeRudder2.7K views
Putting the DOT in .NET - Dev/Ops/Test by Robert MacLean
Putting the DOT in .NET - Dev/Ops/TestPutting the DOT in .NET - Dev/Ops/Test
Putting the DOT in .NET - Dev/Ops/Test
Robert MacLean2K views
Windows Store Apps: Tips & Tricks by Robert MacLean
Windows Store Apps: Tips & TricksWindows Store Apps: Tips & Tricks
Windows Store Apps: Tips & Tricks
Robert MacLean1.7K views
What’s new in LightSwitch 2013? by Robert MacLean
What’s new in LightSwitch 2013?What’s new in LightSwitch 2013?
What’s new in LightSwitch 2013?
Robert MacLean3.2K views
Visual Studio ❤ JavaScript by Robert MacLean
Visual Studio ❤ JavaScriptVisual Studio ❤ JavaScript
Visual Studio ❤ JavaScript
Robert MacLean9.9K views
Voxxed days 2015-hakansaglam-codereview by Hakan Saglam
Voxxed days 2015-hakansaglam-codereviewVoxxed days 2015-hakansaglam-codereview
Voxxed days 2015-hakansaglam-codereview
Hakan Saglam3K views
Automated testing for real by Markko Paas
Automated testing for realAutomated testing for real
Automated testing for real
Markko Paas90 views
Continuous Integration: A bittersweet love story by Suzie Prince
Continuous Integration: A bittersweet love story Continuous Integration: A bittersweet love story
Continuous Integration: A bittersweet love story
Suzie Prince438 views
Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14 by Mike Bowler
Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14
Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14
Mike Bowler627 views
Get Started with JavaScript Frameworks by Christian Gaetano
Get Started with JavaScript FrameworksGet Started with JavaScript Frameworks
Get Started with JavaScript Frameworks
Christian Gaetano1.1K views
Web Developer vs Web Designer | Edureka by Edureka!
Web Developer vs Web Designer | EdurekaWeb Developer vs Web Designer | Edureka
Web Developer vs Web Designer | Edureka
Edureka!172 views
How to build a Mobile API or HTML 5 app in 5 minutes by Robert MacLean
How to build a Mobile API or HTML 5 app in 5 minutesHow to build a Mobile API or HTML 5 app in 5 minutes
How to build a Mobile API or HTML 5 app in 5 minutes
Robert MacLean4K views
Introduction to SharePoint Framework by Kirti Prajapati
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
Kirti Prajapati80 views

Viewers also liked

Using Rhino Mocks for Effective Unit Testing by
Using Rhino Mocks for Effective Unit TestingUsing Rhino Mocks for Effective Unit Testing
Using Rhino Mocks for Effective Unit TestingMike Clement
6.8K views18 slides
Play to Learn: Agile Games with Cards and Dice by
Play to Learn: Agile Games with Cards and DicePlay to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and DiceMike Clement
1.8K views33 slides
Software Craftsmanship and Agile Code Games by
Software Craftsmanship and Agile Code GamesSoftware Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code GamesMike Clement
6.3K views62 slides
Put the Tests Before the Code by
Put the Tests Before the CodePut the Tests Before the Code
Put the Tests Before the CodeMike Clement
960 views39 slides
Thinking in F# by
Thinking in F#Thinking in F#
Thinking in F#Mike Clement
1.7K views12 slides
Power of Patterns: Refactoring to (or away from) Patterns by
Power of Patterns: Refactoring to (or away from) PatternsPower of Patterns: Refactoring to (or away from) Patterns
Power of Patterns: Refactoring to (or away from) PatternsMike Clement
2.6K views68 slides

Viewers also liked(15)

Using Rhino Mocks for Effective Unit Testing by Mike Clement
Using Rhino Mocks for Effective Unit TestingUsing Rhino Mocks for Effective Unit Testing
Using Rhino Mocks for Effective Unit Testing
Mike Clement6.8K views
Play to Learn: Agile Games with Cards and Dice by Mike Clement
Play to Learn: Agile Games with Cards and DicePlay to Learn: Agile Games with Cards and Dice
Play to Learn: Agile Games with Cards and Dice
Mike Clement1.8K views
Software Craftsmanship and Agile Code Games by Mike Clement
Software Craftsmanship and Agile Code GamesSoftware Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code Games
Mike Clement6.3K views
Put the Tests Before the Code by Mike Clement
Put the Tests Before the CodePut the Tests Before the Code
Put the Tests Before the Code
Mike Clement960 views
Power of Patterns: Refactoring to (or away from) Patterns by Mike Clement
Power of Patterns: Refactoring to (or away from) PatternsPower of Patterns: Refactoring to (or away from) Patterns
Power of Patterns: Refactoring to (or away from) Patterns
Mike Clement2.6K views
Transformation Priority Premise: TDD Test Order Matters by Mike Clement
Transformation Priority Premise: TDD Test Order MattersTransformation Priority Premise: TDD Test Order Matters
Transformation Priority Premise: TDD Test Order Matters
Mike Clement3.3K views
Mob Programming for Continuous Learning by Mike Clement
Mob Programming for Continuous LearningMob Programming for Continuous Learning
Mob Programming for Continuous Learning
Mike Clement1.7K views
How to Access PluralSight at AiPOD by Duane Loose
How to Access PluralSight at AiPODHow to Access PluralSight at AiPOD
How to Access PluralSight at AiPOD
Duane Loose1.5K views
Tech trends a pluralsight presentation for Learning Technologies 2016 by Pluralsight
Tech trends   a pluralsight presentation for Learning Technologies 2016Tech trends   a pluralsight presentation for Learning Technologies 2016
Tech trends a pluralsight presentation for Learning Technologies 2016
Pluralsight663 views
Is Online Training enough - a Pluralsight Presentation for Learning Technolo... by Pluralsight
Is Online Training enough -  a Pluralsight Presentation for Learning Technolo...Is Online Training enough -  a Pluralsight Presentation for Learning Technolo...
Is Online Training enough - a Pluralsight Presentation for Learning Technolo...
Pluralsight950 views
Immutable infrastructure with Docker and EC2 by dotCloud
Immutable infrastructure with Docker and EC2Immutable infrastructure with Docker and EC2
Immutable infrastructure with Docker and EC2
dotCloud57.8K views
Go to-market strategy for B2B SaaS companies by Guillaume Lerouge
Go to-market strategy for B2B SaaS companiesGo to-market strategy for B2B SaaS companies
Go to-market strategy for B2B SaaS companies
Guillaume Lerouge187.7K views

Similar to The Quest for Continuous Delivery at Pluralsight

The A1 "AngularJS 1 Kick Start" by
The A1 "AngularJS 1 Kick Start"The A1 "AngularJS 1 Kick Start"
The A1 "AngularJS 1 Kick Start"Christian John Felix
295 views49 slides
The A1 by Christian John Felix by
The A1 by Christian John FelixThe A1 by Christian John Felix
The A1 by Christian John FelixDEVCON
687 views49 slides
Profile_Ahmad2 by
Profile_Ahmad2Profile_Ahmad2
Profile_Ahmad2Mohammad Owais Ahmad
173 views17 slides
Microsoft DevOps Solution - DevOps by
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps Chetan Gordhan
713 views34 slides
Job portal by
Job portalJob portal
Job portalLoveBug Shashank
2.7K views12 slides
Dev ops developer (session 3) by
Dev ops developer (session 3)Dev ops developer (session 3)
Dev ops developer (session 3)MSDEVMTL
718 views69 slides

Similar to The Quest for Continuous Delivery at Pluralsight(20)

The A1 by Christian John Felix by DEVCON
The A1 by Christian John FelixThe A1 by Christian John Felix
The A1 by Christian John Felix
DEVCON 687 views
Microsoft DevOps Solution - DevOps by Chetan Gordhan
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps
Chetan Gordhan713 views
Dev ops developer (session 3) by MSDEVMTL
Dev ops developer (session 3)Dev ops developer (session 3)
Dev ops developer (session 3)
MSDEVMTL718 views
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway by All Things Open
I Know It Was MEAN, But I Cut the Cord to LAMP AnywayI Know It Was MEAN, But I Cut the Cord to LAMP Anyway
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
All Things Open4K views
Best framework for web development by QSS Technosoft
Best framework for web developmentBest framework for web development
Best framework for web development
QSS Technosoft133 views
A report on mvc using the information by Toushik Paul
A report on mvc using the informationA report on mvc using the information
A report on mvc using the information
Toushik Paul185 views
Visual Studio 2015 - Lançamento está próximo by Daniel Semedo
Visual Studio 2015 - Lançamento está próximoVisual Studio 2015 - Lançamento está próximo
Visual Studio 2015 - Lançamento está próximo
Daniel Semedo617 views
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway by POSSCON
I Know It Was MEAN, But I Cut the Cord to LAMP AnywayI Know It Was MEAN, But I Cut the Cord to LAMP Anyway
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
POSSCON320 views
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile by KenAtIndeed
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond AgileEngineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile
KenAtIndeed915 views
Visual Studio ALM and DevOps Tools Walkthrough by Angela Dugan
Visual Studio ALM and DevOps Tools WalkthroughVisual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools Walkthrough
Angela Dugan577 views

More from Mike Clement

Collaboration Principles from Mob Programming by
Collaboration Principles from Mob ProgrammingCollaboration Principles from Mob Programming
Collaboration Principles from Mob ProgrammingMike Clement
113 views116 slides
Focus on Flow: Lean Principles in Action by
Focus on Flow: Lean Principles in ActionFocus on Flow: Lean Principles in Action
Focus on Flow: Lean Principles in ActionMike Clement
130 views108 slides
Taming scary production code that nobody wants to touch by
Taming scary production code that nobody wants to touchTaming scary production code that nobody wants to touch
Taming scary production code that nobody wants to touchMike Clement
912 views60 slides
Develop your sense of code smell by
Develop your sense of code smellDevelop your sense of code smell
Develop your sense of code smellMike Clement
1.2K views51 slides
Maps over Backlogs: User Story Mapping to Share the Big Picture by
Maps over Backlogs: User Story Mapping to Share the Big PictureMaps over Backlogs: User Story Mapping to Share the Big Picture
Maps over Backlogs: User Story Mapping to Share the Big PictureMike Clement
989 views45 slides
Escaping the Pitfalls of Software Product Development by
Escaping the Pitfalls of Software Product DevelopmentEscaping the Pitfalls of Software Product Development
Escaping the Pitfalls of Software Product DevelopmentMike Clement
154 views44 slides

More from Mike Clement(11)

Collaboration Principles from Mob Programming by Mike Clement
Collaboration Principles from Mob ProgrammingCollaboration Principles from Mob Programming
Collaboration Principles from Mob Programming
Mike Clement113 views
Focus on Flow: Lean Principles in Action by Mike Clement
Focus on Flow: Lean Principles in ActionFocus on Flow: Lean Principles in Action
Focus on Flow: Lean Principles in Action
Mike Clement130 views
Taming scary production code that nobody wants to touch by Mike Clement
Taming scary production code that nobody wants to touchTaming scary production code that nobody wants to touch
Taming scary production code that nobody wants to touch
Mike Clement912 views
Develop your sense of code smell by Mike Clement
Develop your sense of code smellDevelop your sense of code smell
Develop your sense of code smell
Mike Clement1.2K views
Maps over Backlogs: User Story Mapping to Share the Big Picture by Mike Clement
Maps over Backlogs: User Story Mapping to Share the Big PictureMaps over Backlogs: User Story Mapping to Share the Big Picture
Maps over Backlogs: User Story Mapping to Share the Big Picture
Mike Clement989 views
Escaping the Pitfalls of Software Product Development by Mike Clement
Escaping the Pitfalls of Software Product DevelopmentEscaping the Pitfalls of Software Product Development
Escaping the Pitfalls of Software Product Development
Mike Clement154 views
Code Katas Spring 2012 by Mike Clement
Code Katas Spring 2012Code Katas Spring 2012
Code Katas Spring 2012
Mike Clement2.8K views
Linq (from the inside) by Mike Clement
Linq (from the inside)Linq (from the inside)
Linq (from the inside)
Mike Clement1.3K views
Bowling Game Kata in C# Adapted by Mike Clement
Bowling Game Kata in C# AdaptedBowling Game Kata in C# Adapted
Bowling Game Kata in C# Adapted
Mike Clement4.8K views
Code Katas: Practicing Your Craft by Mike Clement
Code Katas: Practicing Your CraftCode Katas: Practicing Your Craft
Code Katas: Practicing Your Craft
Mike Clement4.4K views
Software Craftsmanship by Mike Clement
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
Mike Clement947 views

Recently uploaded

FOSSLight Community Day 2023-11-30 by
FOSSLight Community Day 2023-11-30FOSSLight Community Day 2023-11-30
FOSSLight Community Day 2023-11-30Shane Coughlan
8 views18 slides
Page Object Model by
Page Object ModelPage Object Model
Page Object Modelartembondar5
7 views5 slides
Advanced API Mocking Techniques Using Wiremock by
Advanced API Mocking Techniques Using WiremockAdvanced API Mocking Techniques Using Wiremock
Advanced API Mocking Techniques Using WiremockDimpy Adhikary
5 views11 slides
How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile... by
How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile...How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile...
How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile...Stefan Wolpers
44 views38 slides
Top-5-production-devconMunich-2023.pptx by
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptxTier1 app
10 views40 slides
How Workforce Management Software Empowers SMEs | TraQSuite by
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteTraQSuite
7 views3 slides

Recently uploaded(20)

FOSSLight Community Day 2023-11-30 by Shane Coughlan
FOSSLight Community Day 2023-11-30FOSSLight Community Day 2023-11-30
FOSSLight Community Day 2023-11-30
Shane Coughlan8 views
Advanced API Mocking Techniques Using Wiremock by Dimpy Adhikary
Advanced API Mocking Techniques Using WiremockAdvanced API Mocking Techniques Using Wiremock
Advanced API Mocking Techniques Using Wiremock
Dimpy Adhikary5 views
How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile... by Stefan Wolpers
How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile...How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile...
How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile...
Stefan Wolpers44 views
Top-5-production-devconMunich-2023.pptx by Tier1 app
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptx
Tier1 app10 views
How Workforce Management Software Empowers SMEs | TraQSuite by TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuite
TraQSuite7 views
How to build dyanmic dashboards and ensure they always work by Wiiisdom
How to build dyanmic dashboards and ensure they always workHow to build dyanmic dashboards and ensure they always work
How to build dyanmic dashboards and ensure they always work
Wiiisdom16 views
ADDO_2022_CICID_Tom_Halpin.pdf by TomHalpin9
ADDO_2022_CICID_Tom_Halpin.pdfADDO_2022_CICID_Tom_Halpin.pdf
ADDO_2022_CICID_Tom_Halpin.pdf
TomHalpin96 views
Electronic AWB - Electronic Air Waybill by Freightoscope
Electronic AWB - Electronic Air Waybill Electronic AWB - Electronic Air Waybill
Electronic AWB - Electronic Air Waybill
Freightoscope 6 views
tecnologia18.docx by nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67026 views
predicting-m3-devopsconMunich-2023.pptx by Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app10 views
Top-5-production-devconMunich-2023-v2.pptx by Tier1 app
Top-5-production-devconMunich-2023-v2.pptxTop-5-production-devconMunich-2023-v2.pptx
Top-5-production-devconMunich-2023-v2.pptx
Tier1 app9 views
Mobile App Development Company by Richestsoft
Mobile App Development CompanyMobile App Development Company
Mobile App Development Company
Richestsoft 5 views

The Quest for Continuous Delivery at Pluralsight

  • 1. The Quest for Continuous Delivery at Pluralsight Mike Clement @mdclement mike@softwareontheside.com http://blog.softwareontheside.com
  • 2. Overview of CD Pluralsight today The future
  • 6. If somebody thinks of a good idea…
  • 7. …how do we deliver it to users as quickly as possible? Continuous Delivery, Introduction
  • 11. Deployment Provisioning and managing the environment in which your application will run (hardware configuration, software, infrastructure, and external services). Installing the correct version of your application into it. Configuring your application, including any data or state it requires. Continuous Delivery, Chapter 1
  • 14. Who?
  • 16. What?
  • 17. Managing Risk Small releases Automated tests Visible Repeatable Reliable Predictable
  • 18. Why?
  • 20. How?
  • 21. Every change that is made to… …triggers the pipeline. Continuous Delivery, Introduction configuration source code environment data
  • 24. Version control everything that can change configuration files scripts to create databases and their schemas build scripts test harnesses development environments operating system configurations
  • 25. Feedback Process • Build • Unit tests • Coverage/static analysis • Acceptance tests • “Non-functional” tests (capacity, security, availability) • UI tests
  • 28. Technology Stack .NET (C#) Angular JS RavenDB Homegrown XML based DB IIS/Windows Windows Services
  • 29. XP Simple Design Passes all tests Clear, expressive, consistent No duplication Minimal
  • 34. Feedback Process • Build • Unit tests • Coverage/static analysis • Acceptance tests • “Non-functional” tests (capacity, security, availability) • UI tests
  • 36. mSpec
  • 41. Feedback Process – TeamCity • Build • Unit tests • Acceptance tests • UI tests
  • 45. Octopus • Variables – application configuration • Web.config transforms • NuGet package with application • Before/after scripting
  • 47. Hosted ViaWest • “Private” Cloud • Commodity virtual hardware • Moving to…
  • 49. AWS (EC2) • Commodity hardware • Ops configured
  • 54. Where are we going next?
  • 55. Every change that is made to… …triggers the pipeline. Continuous Delivery, Introduction configuration source code environment data?
  • 58. Every change that is made to… …triggers the pipeline. Continuous Delivery, Introduction configuration source code environment data
  • 60. { "Title": "AngularJS Fundamentals", "ShortDescription": "This course will teach you the AngularJS fundamentals required to create testable, MVC-style single page applications with AngularJS.", "Description": "In this course you will learn how simple it is to use AngularJS to create maintainable and testable single page applications. You will learn how to: bootstrap your AngularJS application; use AngularJS markup and expressions; create and use controllers; use built-in services and create custom services; turn your application into a SPA using routing; and create your own custom elements and handle events using directives. You will also learn how AngularJS allows you to do all thing using test-driven- development.", "PublishedOn": "2013-05-17T00:00:00.0000000", "ShowTranscripts": true, "Level": "Intermediate", "RecentViewTime": 9542531, "Subcategory": "", "MaterialsFilePublishDateUtc": "2014-04-11T12:34:15.0000000", "TotalRating": 7861, "TotalNumberOfRaters": 1775, "AllowAnonymousExerciseFiles": false, "AllowFreeAssessments": false, "Name": "angularjs-fundamentals", "Category": { "CategoryName": "javascript", "CategoryTitle": "JavaScript" }, "Duration": 22918, "ModuleRefs": [ "coursemoduledtos/joe-eames/angularjs-fundamentals-m1-intro", "coursemoduledtos/joe-eames/angularjs-fundamentals-m2-markup-controllers", "coursemoduledtos/jim-cooper/angularjs-fundamentals-m3-services", "coursemoduledtos/jim-cooper/angularjs-fundamentals-m4-routing", "coursemoduledtos/jim-cooper/angularjs-fundamentals-m5-directives", "coursemoduledtos/joe-eames/angularjs-fundamentals-m6-testing" ] }
  • 63. Feedback Process • Build • Unit tests • Coverage/static analysis • Acceptance tests • “Non-functional” tests (capacity, security, availability) • UI tests
  • 64. Immediate Future • Server Management as Code • More saltstack • Salt pillars with application code • Raven to Cassandra • automate modifications to database schema in Cassandra • Better staging environment • SOX • Automation over Documentation • Enforcing Traceability • Change Management • Better live testing/monitoring – New Relic
  • 65. A little further out… • Automated performance testing on stage on every build • Automated security testing on stage on every build • Continual automated performance testing on live • Continual automated security testing on live • Immutable infrastructure • Continuous Deployment/Release?
  • 71. Resources • Jez Humble - http://continuousdelivery.com/ • Gene Kim - http://www.realgenekim.me/ • Kevin Behr - http://www.kevinbehr.com/
  • 72. Mike Clement • @mdclement • mike@softwareontheside.com • http://blog.softwareontheside.com • http://agilecodegames.com • https://github.com/mdclement • Utah Software Craftsmanship • http://utahsc.org • @utahsc • We meet the first Wednesday at Pluralsight-Lehi • http://agileroots.com

Editor's Notes

  1. Continuous delivery may seem like Don Quiote tilting at windmills
  2. Let’s frame it a different way…
  3. This is the “business” goal
  4. When are things done?
  5. This is the technical goal “It should be as simple as pressing a button.”
  6. Aren’t these really the same thing?
  7. How do we detect and manage this change?
  8. Build a pipeline!
  9. As defined in “Continuous Delivery”
  10. Start here. Do the simplest thing that works. Can F# help me with this?
  11. I could do most of my testing by pushing a button or running a script!
  12. I could do most of my testing by pushing a button or running a script!
  13. Code on master (limited branching)
  14. Orchestrates the feedback Dashboard, email, etc Continuous Integration This is the Pipeline
  15. Live Monitoring
  16. Deploy tags New Relic
  17. Server management as code
  18. Configure this via CODE, not manual
  19. Document database allows for additions really easily
  20. Need to figure this part out. Currently have to get ops to run setup scripts before deployment.
  21. This is my quest
  22. To follow that star
  23. No matter how hopeless No matter how far
  24. To fight for the right Without question or pause
  25. To be willing to march into Hell For a heavenly cause