31
1 Getting Started with DevOps Eric Minick Consultant & Technical Evangelist [email protected]

Getting Started with DevOps

Embed Size (px)

DESCRIPTION

DevOps is the hot new thing. DevOps promises better cooperation between developers and operations, test environments on demand, and seamless deployments through multiple environments. But many doubt the practicality of DevOps. What practices are prescribed? Where are the certifications? Is this thing real? The good news is that we know large organizations that have been bridging the developer/operations gap for years - longer than "DevOps" has been a term.

Citation preview

Page 1: Getting Started with DevOps

1

Getting Started with DevOps

Eric MinickConsultant & Technical Evangelist

[email protected]

Page 2: Getting Started with DevOps

2

Why DevOps?

• Cool new Applications are delayed because they don’t run in our production environments

• Outages due to Dev / Ops communication problems

• Releases fail due to environmental differences

Page 3: Getting Started with DevOps

3

DevOps Is NOT

• Giving the developers the root password

• A job title (ok, it is, but that doesn’t make sense)

• Asking Developers to be sys-admins or sys-admins to be developers

• A formalized process like ITIL or Scrum. Nor is it incompatible with those processes

Page 4: Getting Started with DevOps

4

DevOps is a philosophy

• Agile & Lean applied to the whole software delivery chain, not just developers– BizDevQaSecReleaseOps

• Driven by efficiency and consistency– Building applications– Building environments– Configuring applications and environments

• Optimizing software delivery end-to-end

Page 5: Getting Started with DevOps

5

DevOps needs People, Process and Tools

• People– Changes in behavior– Potential for new roles

• Process– Tweak SDLC processes for more responsiveness– Regular refinement

• Tools– Chain of complementary tools – Supporting people and process

Page 6: Getting Started with DevOps

6

Agenda: Process, People, Tools

• Process• People• Tools

Page 7: Getting Started with DevOps

7

Agenda: Process, People, Tools

• Process• People• Tools

Page 8: Getting Started with DevOps

8

Start updating Process: The Goal

• Goal: Unify the software delivery process across the SDLC– Reduce duplication of effort– Improve consistency– Embrace change– Remove known sources of error

Page 9: Getting Started with DevOps

9

Start Updating Process: Form a Team

• Establish a team that improves process

• Members:– Stakeholders across the SDLC• Devs, QA, Release, Ops, Security…

– More hands-on people than managers

Page 10: Getting Started with DevOps

10

Start Updating Process: Form a Team

• The team should meet:– Regularly (perhaps inline with Dev’s Sprints)– For post-mortem’s of outages and good releases

• Refining the Process– Start from current process– Respond with real change to real failures• “We should be more careful” doesn’t count

Page 11: Getting Started with DevOps

11

Start Updating Process: Ex. Refinements

• Because errors creep into the official builds…– Unify the CI and official builds and test nightly

• Because a new app wasn’t compatible with the live environment…– Involve sys-admins in early design phases– Setup test envs that more closely match Live

• Deployments failed due to manual error– Increase automation in deployment

Page 12: Getting Started with DevOps

12

Agenda: Process, People, Tools

• Process• People• Tools

Page 13: Getting Started with DevOps

13

People: Living DevOps

• Break down the Dev / Ops wall– Different roles are ok

• Involve members of “the other side” in your decisions.

• When in doubt, get a mediator

Page 14: Getting Started with DevOps

14

People: As Developers…

• Inform Ops early of new applications and other changes coming down the pipeline

• Include health and status monitoring in the app

• Consider involving Ops in early architecture meetings. They’ll ask:– So… how are you going to back that up?– What security protocols are we using?– Will it run in the cluster?

Page 15: Getting Started with DevOps

15

People: As Operations…

• Share network diagrams with interested developers.

• Support Dev and QA with “cheap” and disposable test environments

• Collaborate with QA to implement smoke testing for all environments

Page 16: Getting Started with DevOps

16

People: Facilitators

• Consider Dev / Ops facilitators

• Especially helpful if:– Cultural momentum seems insurmountable– Dev and Ops groups are geographically distant– Each party is attempting to use “DevOps” to

bludgeon the other into submission

Page 17: Getting Started with DevOps

17

People: Facilitators – Release Management

• Release Management– May already own the end-to-end process

• “System” knowledge is distributed and Release Managers are often already the hub– Distributed development– Offshore development– Outsource development– Outsourced IT operations

Page 18: Getting Started with DevOps

18

People: Facilitators – Env. Management

• Environment Management– Emerging group. Owns what goes into

environments and their configuration changes.

• Well positioned to maintain environment consistency and integrity.

Page 19: Getting Started with DevOps

19

People: Facilitators – Delivery Architect

• Chairs SDLC process group

• Strong technical skills– Understands writing, running, tuning and

monitoring complex apps

• Strong people skills– Has to bring many people together– Needs to be great at asking questions

Page 20: Getting Started with DevOps

20

Agenda: Process, People, Tools

• Process• People• Tools

“Man is a tool-using animal. Without tools he is nothing, with tools he is all” – Thomas Carlyle

Page 21: Getting Started with DevOps

21

Start updating Tools:

• Tools should support people and process across the SDLC– There is no single “DevOps” tool– Build a coherent tools chain– Tools should be reusable across silos

Page 22: Getting Started with DevOps

22

Start updating Tools: Types of Tools

• “How do we get our software from source code to a deployable package?”– Motivated by the need for an authoritative,

traceable deployable

• Build Systems: – Perform CI for developer feedback and official

builds for release. – CI build is the Official build– Store build output in an artifact repository

Page 23: Getting Started with DevOps

23

Start updating Tools: Types of Tools ctd.

• “How do we get a deployable package on to an environment?”– Motivated by high deployment effort and/or high

deployment risk

• Application Release Automation / Deployment– Replace manual steps and cobbled scripts– Consistent deployment process across

environments– Consider release management aspects like

approvals to match raw automation

Page 24: Getting Started with DevOps

24

Start updating Tools: Types of Tools ctd.

• “How do we create environments?” – Motivated by dev / prod environment variances– Need for frequent new test environments

• Virtualization and Environment Provisioning– Public / Private “clouds”– Installing and configuring middleware

Page 25: Getting Started with DevOps

25

Start updating Tools: Types of Tools ctd

• “How do we know it works?”

• Automated tests suites speed testing as changes are brought to production quickly

• Smoke tests can be incorporated in automated deployments to detect failures

Page 26: Getting Started with DevOps

26

Start updating Tools: Forming a Tool Chain

• Integrations– Direct integrations are the easiest links

• APIs– An API of some sort allows you to create an integration with current (and future) tools

• Conventions– Short of an integration, common conventions provide

an interface for adjacent tools

Page 27: Getting Started with DevOps

27

Summary

• The Dev / Ops gap is a sign of a broken system– The business wants change and stability– As a team, we can deliver it

• Examine processes and look for improvements often

• Expect to implement new tools, but do them to support new processes not for their own sake

Page 28: Getting Started with DevOps

28

Instigate change

You should reach out to people in other silos

Page 29: Getting Started with DevOps

29

References

http://urbancode.com/resources• Enterprise CD Maturity Model• Death to Manual Deployments!• Build & Deployment Automation for the Lean

Economy• ITIL Release Management and Automation

Urbancode.com/blogs/Twitter.com/UrbanCodeSoftFacebook.com/UrbanCodeSoftSlideshare.net/Urbancode

Page 30: Getting Started with DevOps

30

Yes, we sell products for this

• uBuild – Build automation and CI for the hard problems

• uDeploy– Deployment and release management

• uCloud (coming soon)– Environment provisioning for in-house PaaS

Page 31: Getting Started with DevOps

31

Questions?

[email protected]@EricMinick