michael lepine agile2013 recap

21
Michael Lepine Agile2013 Recap

Upload: shea-mcconnell

Post on 31-Dec-2015

25 views

Category:

Documents


0 download

DESCRIPTION

Michael Lepine Agile2013 Recap. What is DevOps ?. Why DevOps ?. Benefits of DevOps Teams. Releasing Software. Time spent deploying new software releases:. Improve Deployments. Here are some common things that DevOps teams do to improve software releases : - PowerPoint PPT Presentation

TRANSCRIPT

PowerPoint Presentation

Michael LepineAgile2013 Recap

Took me a long time (LONG TIME) to filter through my notes from Agile 2013 and settle on what to share today. This presentation will attempt to pull together and relate sessions on the following topics:DevOps, continuous delivery/deployment and methods for improving your work space, problem-solving skills and overall health.2

What is DevOps?What is DevOps?In traditional organizations, there are separate and distinct groups for development and operations.The development team is responsible for writing code and delivering software.The Ops team is responsible for deploying releases, managing systems, security and environment stability.DevOps is a philosophy to bring Dev and Ops (and QA too) together to improve the overall development, deployment and management process.** Why would you want to embrace DevOps?3

Why DevOps?So, why DevOps?DevOps breaks down communication barriers between Ops and Dev. It promotes collaboration to solve problems experienced by both teams. The primary focus is on efficiency and reducing risk when building and deploying software.Avoid scenarios like, Sorry the deployment failed. We didnt test on that platform.** Lets take a look at some metrics showing potential benefits of DevOps.

4

Benefits of DevOps TeamsThis comparison highlights a few interesting things: DevOps teams spend less time fighting fires, handling support issues and tied up in meetings than traditional IT groups. They also spend more time doing positive things: infrastructure improvements and self-improvement.Another metric not on the chart showed that on average DevOps teams worked late only 1.5 days/week compared to 2.3 in traditional organizations.** Lets drill down into the potential benefits when releasing software.5Releasing Software

Time spent deploying new software releases:One of the ultimate goals of DevOps teams is to streamline the software release process using automation.This slide highlights the amount of time that traditional and DevOps teams take to deploy a new release. As you can see, on average, the DevOps oriented teams are able to release approximately 43% faster 36 minutes per release vs. 85 for traditional IT teams.* What are some common things that DevOps teams do to improve deployments?6Improve DeploymentsHere are some common things that DevOps teams do to improve software releases:Increase efficiency less wasteDecrease time to commit software changesAutomate testsIdentify defects/issues quicklyAutomate the build processSimplify the deployment processMake deployments reproducibleAutomate as much as possible

Here are some common things that DevOps teams do to improve software releases:Increase efficiency less wasteDecrease time to commit software changesAutomate testsIdentify defects/issues quicklyAutomate the build processSimplify the deployment processMake deployments reproducibleAutomate as much as possible

7Welcome Continuous Integration

Continuous integration is the frequent merging of work with a main branch to simplify the merging process and test updates when integrated. The concept usually involves a unit testing framework and a process to trigger builds and/or tests. 8Principles of Continuous Integration Maintain a code repositoryAutomate the buildMake the build self-testingEveryone commits to the baseline every dayEvery commit (to baseline) should be builtKeep the build fastTest in a clone of the production environmentMake it easy to get the latest deliverablesEveryone can see the results of the latest buildFacilitate automated deployments

Here are some principles of continuous integration:Maintain a code repositoryAutomate the buildMake the build self-testingEveryone commits to the baseline every dayEvery commit (to baseline) should be builtKeep the build fastTest in a clone of the production environmentMake it easy to get the latest deliverablesEveryone can see the results of the latest buildFacilitate automated deployments** Can these principles help us improve?

9How CI Improves EfficiencySimplify MergesRapid FeedbackIdentify problems earlyMakes bugs easier to findReduce bug accumulationVisibility (team and stakeholders)Builds Automated minimizes manual interventionplug-ins (i.e. for static code analysis, gathering metrics)Precursor to Continuous Delivery & Deployment

How Continuous Integration Improves Efficiency:Simplify MergesRapid FeedbackIdentify problems earlyMakes bugs easier to findReduce bug accumulationVisibility (team and stakeholders)Builds Automated minimizes manual interventionplug-ins (i.e. for static code analysis, gathering metrics)Precursor to Continuous Delivery & Deployment

10AndContinuous Delivery/Deployment

And building on Continuous Integration, are the concepts of Continuous Delivery and Deployment.Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time. Continuous Deployment is where every change goes through a pipeline and automatically gets put into production, possibly resulting in many production deployments every day. Continuous Delivery means that you are able to do frequent deployments but may choose not to. In order to do Continuous Deployment you must be doing Continuous Delivery.** Lets take a look at some of the key concepts for CD.11Keys to Continuous DeliveryProcess should be automatedReduces the number of features introduced per release, minimizing shock to usersWill reduce the standard release cycleChanges approach to releasing software from an event to a non-eventHelps to avoid off-hour, high risk, expensive deploymentsKnow your rollback plan (do you rollback or roll forward only)Build in health checks

Keys to Continous Delivery:Should be automatedReduces the number of features introduced per release, minimizing shock to usersWill reduce the standard release cycleChanges approach to releasing software from an event to a non-eventHelps to avoid off-hour, high risk, expensive deploymentsKnow your rollback plan (do you rollback or roll forward only)Build in health checks** What if the software has a data dependency?

12Potential Concerns to Implementing Continuous Delivery - Data

One of the hurdles to implementing continuous delivery is data management. A plan must be in place to identify the appropriate, low-risk approach to deploying changes around systems reliant on a data store (i.e. databases).For instance, possibly add an automated step to create a backup of the data as part of the release/upgrade process.Changes should be managed as software as much as possible. Tools are available to help implement and manage a solution Flyway & Liquibase.** Speaking of tools here are a few tools to help with CI and CD.13CI/CD Tools

Here are some CI/CD tools:Version control systems such as: git and SubversionAutomated build tools such as: Jenkins, Bamboo and CruiseControlInfrastructure as code tools such as: Chef and PuppetLog management/monitoring tools such as: Splunk and LogstashSystem monitoring tools such as: Nagios and Ganglia** Lets transition to logistics and problem-solving.14

What Is an Ideal Work Environment?Weve talked about DevOps and Continuous Delivery which are concepts to make us more efficient and give us more time to collaborate, learn and work smarter. However, what are ideal work environments to maximize the return from our teams and ourselves? Lets take a closer look at some environmental and problem solving suggestions?15

What do we and others want from our work environments?Want to be comfortable spaces are trending away from industrial and more like living roomsPrivate areas for personal calls, alone time, etc.Need large spaces for meetings across groups suggestion of bleachers for large meetings/collaboration/funStudies have shown that higher ceilings spur innovation while lower ceilings increase focus on details.Leave space open; dont dictate how space should be broken up or used possibly empower a group of people to be responsible for keeping space new** Here are some other specific ideas.16

More work space ideas:Wheels on furniture to facilitate swarming, mobility, freedomSpace to collaborate. Enough personal or shared desk space for instance.Positive eavesdropping groups close enough to hear discussions but broken up enough to focus when necessaryPlenty of wall spaceStanding desksHave a plan for remote team members Google Hangout, webcams, good audio** transition: all of these things have an effect on our ability to work effectively and solve problems. Lets take a closer look at better thinking.

17

Ready to Solve Problems and Make Decisions?Here are two common scenarios in most of our work lives. Long meetings in a conference room and sitting in front of a computer debugging an issue.Neither scenario is effective for productivity or problem solving due to:long periods of focused attention without a breakindoors - no connection with Nature, no natural lightDrab, lack of colorprobably tired, over-caffeinated to stay awake** how can we address and improve our ability to think and solve problems?18

Improve Productivity & Problem Solving Skills

Here are a few quick tips to help improve productivity and problem solving skills:

Get more sleep. The minimum recommended amount of sleep per night is 7 hours. I know this may be unpopular but reduce caffeine intake. Were using caffeine to prop ourselves up and deprive our bodies of needed rest.Move around more. Take frequent breaks and be active. Stand up, move your head, eyes, arms, etc. Sitting is the new smoking. Exercise. Desk treadmill anyone?Get outside. Reconnect with nature. Walking outside, even for a few minutes improves decision-making. Stay hydrated. Studies show even mild dehydration can impair our thinking.Do nothing. Give your brain a break so it can learn and retain information better.** Consider a power nap. Ever heard of an Ostrich Pillow?19Ostrich Pillow Power Nap AnywhereResearch at NASA demonstrated that power naps increased alertness by 54% and improved performance by 34%.

Ostrich Pillow Power Nap AnywhereResearch at NASA demonstrated that power naps increased alertness by 54% and improved performance by 34%.20Agile 2013 Sessions:

Lean DevOps with Karthik Gaekwad at Mentor Graphics EmbeddedContinuous Delivery with Steve Stolt & Steve Neely at Rally SoftwareAgile LogisticsBetter Problem-Solving and Decision-Making with Linda Rising

21