SlideShare a Scribd company logo
1 of 35
Mastering the Complex
    Application Deployment

      Eric Minick, Lead Consultant




1
Your Deployments might be hard if….
• You have long deployment
• The business complains about long outage
  windows
• Numerous planning meetings
• You spend all weekend at the office
• Deployments are seen as risky
• We celebrate when we are successful



2
The Goal

Production releases should be a non-event




3
From “Hard” to a “Non-Event”
•   Why deployments are so complex
•   Where basic automation helps
•   Coordinating deployments
•   Increasing consistency




4
From “Hard” to a “Non-Event”
•   Why deployments are so complex
•   Where basic automation helps
•   Coordinating deployments
•   Increasing consistency




5
Modern systems have many pieces
• Complex Architecture: Tiers, SOA, busses…
• Inter-related systems mean changes have
  wide impact.




6                  Image from ischool.tv
Componentized applications are staying
• Agile encourages smaller teams

• Conway’s Law tells us that smaller
  teams, cooperating on a big system will
  produce more components.
    – And to deploy, we need all their expertise

• 84% of Global 2000 using SOA by end of 2010
  (Forrester)


7
Lots of steps and people
• Manual releases require lots of…
    – Steps to do the work
    – People to execute the steps
    – People on call to fix it when things break

• Deployment document example from a Fortune
  100 customer
    – ~15 components
    – 148 People
    – 600 lines in Excel

• We’ve seen the 10,000 step deployment plan

8
Our releases are inconsistent
• Many components in the system, but they
  don’t change all at once
    – Most changes involve more than one, but less
      than all pieces


• We write a new plan for each release




9
From “Hard” to a “Non-Event”
•    Why deployments are so complex
•    Where basic automation helps
•    Coordinating deployments
•    Increasing consistency




10
Automation is great…
• A basic script can turn 10 steps into 1 or 2
  steps.

• Distributed workflow engines can easily model
  a component deployment

• With environment modeling, you can
  consistently deploy through environments.


11
Automation works with people
• People are good at creative work and problem
  solving

• People are bad at “consistency”.

• Good plan:
     – People design automation and troubleshoot
     – Computer consistently runs a process.


• See our webcast “Death to Manual Deployments”

12
…but we still have a coordination problem

• Distributed automation or runbook can deploy
  components or even systems

• But what exactly do I deploy? What goes
  together?




13
From “Hard” to a “Non-Event”
•    Why deployments are so complex
•    Where basic automation helps
•    Coordinating deployments
•    Increasing consistency




14
How do we know what goes together?
• We want:
     – Components with changes ready to release
     – No components with changes not ready
     – All components needed by the components we
       need (deployment dependencies)




15
How do we know what goes together?
• “All components needed by the components we
  need” is a tough requirement

• Traditionally satisfied by asking Dev and trusting their
  omniscience
     • Works most of the time


– Or we trust the ALM (Source + Bug Tracking) tools
     • Could work if people were perfectly disciplined
     • People are not


16
How do we know what goes together?

• Test it!
     – ALM tools and developer oral histories
       suggest what to test together
     – Once verified, the stuff in Test is the stuff
       we want in Production




17
Model basedDeployment Strategy
• Model the system in a test environment

• Promote the model across environments

• Model includes:
     – applications, app
       configuration, databases, infrastructure, settings
     – Aware of environment specifics as well


18
Requirements for Model Promotion

• Inventory – what is where
• Recording inventory as a Model
• Testing that we can trust




19
Model Promotion: Inventory
• To promote what is in Test to Production, we must
  know what is in test

• To know the extent of the change, we must know
  what is in production

• Inventory of all environments
     • What versions of each component make up the system
     • Where appropriate, treat configuration as a component


• Bonus: Inventory helps with visibility and audit

20
Model Promotion: Model Snapshots
• Need to be able to snapshot the inventory to
  define a desired state

• Approaches:
     – Spreadsheets listing component versions
     – Change management tickets with components as
       attachments
     – Build it into your deployment product (we did)



21
Model Promotion: Testing we can trust
• Testing validates compatibility

• Must leave adequate time to test

• With more automated tests, we can:
     – Test quicker
     – Test more creatively

• Automated tests should run in ALL
  environments
22
From “Hard” to a “Non-Event”
•    Why deployments are so complex
•    Where basic automation helps
•    Coordinating deployments
•    Increasing consistency




23
Each deployment is different


• Only a subset of
  components change in
  a release

• Sometimes we change
  configuration




24
Have a single deployment process
• Define the process for releasing the entire
  system

• Note which steps are associated with what
  components

• Execute only the steps for the components
  that are changing (which your inventory tells
  you)

25
Relentlessly remove variation
• Developers and architects contribute to
  repeatable releases

• “Special” events (like adding a new data
  stream) must fit into any automation or
  defined process




26
Use the same process in Test and Live
• The earlier the process is used, the better
     – It will be tested more
     – Earlier environments have less tolerance for
       slowness


• The process or automation must take into
  account environmental differences




27
Key Takeaways
1. Releases are complex, and the business needs
   them done rapidly




28
Key Takeaways
1. Releases are complex, and the business needs
   them done rapidly
2. Traditional methods for determining what is
   released together should be used in Test




29
Key Takeaways
1. Releases are complex, and the business needs
   them done rapidly
2. Traditional methods for determining what is
   released together should be used in Test
3. Only components tested together should be
   released together




30
Key Takeaways
1. Releases are complex, and the business needs
   them done rapidly
2. Traditional methods for determining what is
   released together should be used in Test
3. Only components tested together should be
   released together
4. Simple deployment automation is very
   helpful, but coordination is key



31
Key Takeaways
1. Releases are complex, and the business needs
   them done rapidly
2. Traditional methods for determining what is
   released together should be used in Test
3. Only components tested together should be
   released together
4. Simple deployment automation is very helpful,
   but coordination is key
5. Getting this right is easier if you have help from
   developers, testers, operations and release
   management

32
References
        http://urbancode.com/resources
• Death to Manual Deployments!
• Build & Deployment Automation for the Lean
  Economy
• ITIL Release Management and Automation

Urbancode.com/blogs/
Twitter.com/UrbanCodeSoft
Facebook.com/UrbanCodeSoft

33
Yes, UrbanCode sells products for this
• AnthillPro is now the DevOps Platform

• DevOps Platform
     – Automated build, test and deployment. Includes
       UrbanDeploy.


• UrbanDeploy
     – Application Release Automation


34
Questions?




35

More Related Content

What's hot

What's hot (20)

Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
 
DevOps drivein - Mind the Gap
DevOps drivein - Mind the GapDevOps drivein - Mind the Gap
DevOps drivein - Mind the Gap
 
5 Steps for a High-Performing DevOps Culture
5 Steps for a High-Performing DevOps Culture5 Steps for a High-Performing DevOps Culture
5 Steps for a High-Performing DevOps Culture
 
SRE-iously! Defining the Principles, Habits, and Practices of Site Reliabilit...
SRE-iously! Defining the Principles, Habits, and Practices of Site Reliabilit...SRE-iously! Defining the Principles, Habits, and Practices of Site Reliabilit...
SRE-iously! Defining the Principles, Habits, and Practices of Site Reliabilit...
 
Introduction to devops
Introduction to devopsIntroduction to devops
Introduction to devops
 
A Blueprint for a Successful DevOps Metamorphosis
A Blueprint for a Successful DevOps MetamorphosisA Blueprint for a Successful DevOps Metamorphosis
A Blueprint for a Successful DevOps Metamorphosis
 
DevOps Explained
DevOps ExplainedDevOps Explained
DevOps Explained
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
DevOps Picc12 Management Talk
DevOps Picc12 Management TalkDevOps Picc12 Management Talk
DevOps Picc12 Management Talk
 
Devops
DevopsDevops
Devops
 
DevOps and the Future of IT Operations
DevOps and the Future of IT OperationsDevOps and the Future of IT Operations
DevOps and the Future of IT Operations
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
DevOps Workshops Fall 2016
DevOps Workshops Fall 2016DevOps Workshops Fall 2016
DevOps Workshops Fall 2016
 
DevOps: A Value Proposition
DevOps: A Value PropositionDevOps: A Value Proposition
DevOps: A Value Proposition
 
DevOps 101 for Government
DevOps 101 for GovernmentDevOps 101 for Government
DevOps 101 for Government
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
The business case for devops
The business case for devopsThe business case for devops
The business case for devops
 
Introducing DevOps, IT Sharing Session 20 Nov 2017
Introducing DevOps, IT Sharing Session 20 Nov 2017Introducing DevOps, IT Sharing Session 20 Nov 2017
Introducing DevOps, IT Sharing Session 20 Nov 2017
 
Making disaster routine
Making disaster routineMaking disaster routine
Making disaster routine
 
DevOps: Process, Tool or Mindset?
DevOps: Process, Tool or Mindset?DevOps: Process, Tool or Mindset?
DevOps: Process, Tool or Mindset?
 

Viewers also liked

IoT - IT 423 ppt
IoT - IT 423 pptIoT - IT 423 ppt
IoT - IT 423 ppt
Mhae Lyn
 

Viewers also liked (7)

Enterprise architecture for complex system of-systems contexts
Enterprise architecture for complex system of-systems contextsEnterprise architecture for complex system of-systems contexts
Enterprise architecture for complex system of-systems contexts
 
Complex Number's Applications
Complex Number's ApplicationsComplex Number's Applications
Complex Number's Applications
 
5 Reasons Why Healthcare Data is Unique and Difficult to Measure
5 Reasons Why Healthcare Data is Unique and Difficult to Measure5 Reasons Why Healthcare Data is Unique and Difficult to Measure
5 Reasons Why Healthcare Data is Unique and Difficult to Measure
 
IoT in Healthcare
IoT in HealthcareIoT in Healthcare
IoT in Healthcare
 
The many faces of IoT (Internet of Things) in Healthcare
The many faces of IoT (Internet of Things) in HealthcareThe many faces of IoT (Internet of Things) in Healthcare
The many faces of IoT (Internet of Things) in Healthcare
 
Clinical Data Repository vs. A Data Warehouse - Which Do You Need?
Clinical Data Repository vs. A Data Warehouse - Which Do You Need?Clinical Data Repository vs. A Data Warehouse - Which Do You Need?
Clinical Data Repository vs. A Data Warehouse - Which Do You Need?
 
IoT - IT 423 ppt
IoT - IT 423 pptIoT - IT 423 ppt
IoT - IT 423 ppt
 

Similar to Mastering Complex Application Deployments

Similar to Mastering Complex Application Deployments (20)

Leveraging DevOps Principles for Release and Deploy
Leveraging DevOps Principles for Release and DeployLeveraging DevOps Principles for Release and Deploy
Leveraging DevOps Principles for Release and Deploy
 
Continuous Delivery Decision points
Continuous Delivery Decision pointsContinuous Delivery Decision points
Continuous Delivery Decision points
 
In (database) automation we trust
In (database) automation we trustIn (database) automation we trust
In (database) automation we trust
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
 
When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software quality
 
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps JourneyGartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
 
Deploying at will - SEI
 Deploying at will - SEI Deploying at will - SEI
Deploying at will - SEI
 
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
 
Ncerc rlmca202 adm m1 ssm
Ncerc rlmca202 adm m1 ssmNcerc rlmca202 adm m1 ssm
Ncerc rlmca202 adm m1 ssm
 
Itsummit2015 blizzard
Itsummit2015 blizzardItsummit2015 blizzard
Itsummit2015 blizzard
 
Puppet + Diaxon: Getting to the next stage of DevOps evolution
Puppet + Diaxon: Getting to the next stage of DevOps evolutionPuppet + Diaxon: Getting to the next stage of DevOps evolution
Puppet + Diaxon: Getting to the next stage of DevOps evolution
 
Continuous Delivery Maturity Model
Continuous Delivery Maturity ModelContinuous Delivery Maturity Model
Continuous Delivery Maturity Model
 
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
 
Software Supply Chain Automation Removes Roadblocks to Rugged DevOps
Software Supply Chain Automation Removes Roadblocks to Rugged DevOpsSoftware Supply Chain Automation Removes Roadblocks to Rugged DevOps
Software Supply Chain Automation Removes Roadblocks to Rugged DevOps
 
Serena Release Management approach and solutions
Serena Release Management approach and solutionsSerena Release Management approach and solutions
Serena Release Management approach and solutions
 
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldLucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
 
Java DevOps at Enterprise Scale
Java DevOps at Enterprise ScaleJava DevOps at Enterprise Scale
Java DevOps at Enterprise Scale
 
Choosing Automation for DevOps & Continuous Delivery in the Enterprise
Choosing Automation for DevOps & Continuous Delivery in the EnterpriseChoosing Automation for DevOps & Continuous Delivery in the Enterprise
Choosing Automation for DevOps & Continuous Delivery in the Enterprise
 
DevOps Days Ohio
DevOps Days OhioDevOps Days Ohio
DevOps Days Ohio
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 

More from IBM UrbanCode Products

DevOps and the Case for ROI to Executives
DevOps and the Case for ROI to ExecutivesDevOps and the Case for ROI to Executives
DevOps and the Case for ROI to Executives
IBM UrbanCode Products
 

More from IBM UrbanCode Products (20)

Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
 
What's New with IBM UrbanCode Deploy
What's New with IBM UrbanCode DeployWhat's New with IBM UrbanCode Deploy
What's New with IBM UrbanCode Deploy
 
Digital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture OverviewDigital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture Overview
 
Using Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT ChallengesUsing Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT Challenges
 
Efficient DevOps: Standardizing Chaotic Culture at NBCUniversal
Efficient DevOps:  Standardizing Chaotic Culture at NBCUniversalEfficient DevOps:  Standardizing Chaotic Culture at NBCUniversal
Efficient DevOps: Standardizing Chaotic Culture at NBCUniversal
 
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
 
Shift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production FailureShift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production Failure
 
The Future of DevOps and UrbanCode
The Future of DevOps and UrbanCodeThe Future of DevOps and UrbanCode
The Future of DevOps and UrbanCode
 
Death to Manual Deployments
Death to Manual DeploymentsDeath to Manual Deployments
Death to Manual Deployments
 
Leading the Transformation: Applying DevOps and Agile Principles at Scale
Leading the Transformation:  Applying DevOps and Agile Principles at ScaleLeading the Transformation:  Applying DevOps and Agile Principles at Scale
Leading the Transformation: Applying DevOps and Agile Principles at Scale
 
Continuous Delivery in the Enterprise - with IBM UrbanCode
Continuous Delivery in the Enterprise - with IBM UrbanCodeContinuous Delivery in the Enterprise - with IBM UrbanCode
Continuous Delivery in the Enterprise - with IBM UrbanCode
 
Securing the Automation of Application Deployment with UrbanCode Deploy
Securing the Automation of Application Deployment with UrbanCode DeploySecuring the Automation of Application Deployment with UrbanCode Deploy
Securing the Automation of Application Deployment with UrbanCode Deploy
 
Adopting DevOps for 2-Speed IT
Adopting DevOps for 2-Speed ITAdopting DevOps for 2-Speed IT
Adopting DevOps for 2-Speed IT
 
A True Story of Why QA Loves DevOps
A True Story of Why QA Loves DevOpsA True Story of Why QA Loves DevOps
A True Story of Why QA Loves DevOps
 
UrbanCode Deploy and Docker Containers Connect the Dots
UrbanCode Deploy and Docker Containers Connect the DotsUrbanCode Deploy and Docker Containers Connect the Dots
UrbanCode Deploy and Docker Containers Connect the Dots
 
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption RoadmapGet Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
 
Building a DevOps Team that Isn't Evil
Building a DevOps Team that Isn't EvilBuilding a DevOps Team that Isn't Evil
Building a DevOps Team that Isn't Evil
 
DevOps and the Case for ROI to Executives
DevOps and the Case for ROI to ExecutivesDevOps and the Case for ROI to Executives
DevOps and the Case for ROI to Executives
 
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode DeployContinuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
 
Creating a DevOps Team that Isn't Evil
Creating a DevOps Team that Isn't EvilCreating a DevOps Team that Isn't Evil
Creating a DevOps Team that Isn't Evil
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Mastering Complex Application Deployments

  • 1. Mastering the Complex Application Deployment Eric Minick, Lead Consultant 1
  • 2. Your Deployments might be hard if…. • You have long deployment • The business complains about long outage windows • Numerous planning meetings • You spend all weekend at the office • Deployments are seen as risky • We celebrate when we are successful 2
  • 3. The Goal Production releases should be a non-event 3
  • 4. From “Hard” to a “Non-Event” • Why deployments are so complex • Where basic automation helps • Coordinating deployments • Increasing consistency 4
  • 5. From “Hard” to a “Non-Event” • Why deployments are so complex • Where basic automation helps • Coordinating deployments • Increasing consistency 5
  • 6. Modern systems have many pieces • Complex Architecture: Tiers, SOA, busses… • Inter-related systems mean changes have wide impact. 6 Image from ischool.tv
  • 7. Componentized applications are staying • Agile encourages smaller teams • Conway’s Law tells us that smaller teams, cooperating on a big system will produce more components. – And to deploy, we need all their expertise • 84% of Global 2000 using SOA by end of 2010 (Forrester) 7
  • 8. Lots of steps and people • Manual releases require lots of… – Steps to do the work – People to execute the steps – People on call to fix it when things break • Deployment document example from a Fortune 100 customer – ~15 components – 148 People – 600 lines in Excel • We’ve seen the 10,000 step deployment plan 8
  • 9. Our releases are inconsistent • Many components in the system, but they don’t change all at once – Most changes involve more than one, but less than all pieces • We write a new plan for each release 9
  • 10. From “Hard” to a “Non-Event” • Why deployments are so complex • Where basic automation helps • Coordinating deployments • Increasing consistency 10
  • 11. Automation is great… • A basic script can turn 10 steps into 1 or 2 steps. • Distributed workflow engines can easily model a component deployment • With environment modeling, you can consistently deploy through environments. 11
  • 12. Automation works with people • People are good at creative work and problem solving • People are bad at “consistency”. • Good plan: – People design automation and troubleshoot – Computer consistently runs a process. • See our webcast “Death to Manual Deployments” 12
  • 13. …but we still have a coordination problem • Distributed automation or runbook can deploy components or even systems • But what exactly do I deploy? What goes together? 13
  • 14. From “Hard” to a “Non-Event” • Why deployments are so complex • Where basic automation helps • Coordinating deployments • Increasing consistency 14
  • 15. How do we know what goes together? • We want: – Components with changes ready to release – No components with changes not ready – All components needed by the components we need (deployment dependencies) 15
  • 16. How do we know what goes together? • “All components needed by the components we need” is a tough requirement • Traditionally satisfied by asking Dev and trusting their omniscience • Works most of the time – Or we trust the ALM (Source + Bug Tracking) tools • Could work if people were perfectly disciplined • People are not 16
  • 17. How do we know what goes together? • Test it! – ALM tools and developer oral histories suggest what to test together – Once verified, the stuff in Test is the stuff we want in Production 17
  • 18. Model basedDeployment Strategy • Model the system in a test environment • Promote the model across environments • Model includes: – applications, app configuration, databases, infrastructure, settings – Aware of environment specifics as well 18
  • 19. Requirements for Model Promotion • Inventory – what is where • Recording inventory as a Model • Testing that we can trust 19
  • 20. Model Promotion: Inventory • To promote what is in Test to Production, we must know what is in test • To know the extent of the change, we must know what is in production • Inventory of all environments • What versions of each component make up the system • Where appropriate, treat configuration as a component • Bonus: Inventory helps with visibility and audit 20
  • 21. Model Promotion: Model Snapshots • Need to be able to snapshot the inventory to define a desired state • Approaches: – Spreadsheets listing component versions – Change management tickets with components as attachments – Build it into your deployment product (we did) 21
  • 22. Model Promotion: Testing we can trust • Testing validates compatibility • Must leave adequate time to test • With more automated tests, we can: – Test quicker – Test more creatively • Automated tests should run in ALL environments 22
  • 23. From “Hard” to a “Non-Event” • Why deployments are so complex • Where basic automation helps • Coordinating deployments • Increasing consistency 23
  • 24. Each deployment is different • Only a subset of components change in a release • Sometimes we change configuration 24
  • 25. Have a single deployment process • Define the process for releasing the entire system • Note which steps are associated with what components • Execute only the steps for the components that are changing (which your inventory tells you) 25
  • 26. Relentlessly remove variation • Developers and architects contribute to repeatable releases • “Special” events (like adding a new data stream) must fit into any automation or defined process 26
  • 27. Use the same process in Test and Live • The earlier the process is used, the better – It will be tested more – Earlier environments have less tolerance for slowness • The process or automation must take into account environmental differences 27
  • 28. Key Takeaways 1. Releases are complex, and the business needs them done rapidly 28
  • 29. Key Takeaways 1. Releases are complex, and the business needs them done rapidly 2. Traditional methods for determining what is released together should be used in Test 29
  • 30. Key Takeaways 1. Releases are complex, and the business needs them done rapidly 2. Traditional methods for determining what is released together should be used in Test 3. Only components tested together should be released together 30
  • 31. Key Takeaways 1. Releases are complex, and the business needs them done rapidly 2. Traditional methods for determining what is released together should be used in Test 3. Only components tested together should be released together 4. Simple deployment automation is very helpful, but coordination is key 31
  • 32. Key Takeaways 1. Releases are complex, and the business needs them done rapidly 2. Traditional methods for determining what is released together should be used in Test 3. Only components tested together should be released together 4. Simple deployment automation is very helpful, but coordination is key 5. Getting this right is easier if you have help from developers, testers, operations and release management 32
  • 33. References http://urbancode.com/resources • Death to Manual Deployments! • Build & Deployment Automation for the Lean Economy • ITIL Release Management and Automation Urbancode.com/blogs/ Twitter.com/UrbanCodeSoft Facebook.com/UrbanCodeSoft 33
  • 34. Yes, UrbanCode sells products for this • AnthillPro is now the DevOps Platform • DevOps Platform – Automated build, test and deployment. Includes UrbanDeploy. • UrbanDeploy – Application Release Automation 34