devops workshops fall 2016

Post on 13-Apr-2017

44 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

DevOpsYou can’t afford to not do it…Kelly Looney, DevOps Strategy

AGENDA1. Why Agile and DevOps?Where did this come from and why is it important.

2. Continuous Delivery as a Goal.Where software is going and why you have to care.

3. Environments and Testing.Making delivery pipelines work.

3

Different faces/rulesFor different markets

Monolithic App with many single points of failure

A real-life example…

Dev Teams focused on Horizontal Components

Totally separate Ops, Maintenance, and Dev teams

Clashing cultures from Merger/Locations/Code bases

Up 24/7 with Millions of €/day wagered

In-houseBuildDeployMonitoring…

From Agile to DevOpsBreaking down silos and and empowering teams

• Agile tended to fold QA resources into development teams• Resulting in better understanding, better tests, more people testing

• DevOps is about getting to teams that develop, operate and maintain software

• Better understanding – get operations involved at the start• Better operations – monitoring and maintenance using people with context• More resources – instead of a few people that know operations the whole

team has base knowledge with experts just dealing with hard problems and making improvements

How is DevOps changing?Shown really remarkable success in a short time…

• Initial focus was build and deployment automation• Lots of nice technology and a bounded problem

• DevOps Enterprise Summit 2015 in SF• “This is becoming a Continuous Delivery conference”• Good news IMHO – broad base of examples

• In a more difficult phase now• Automation is hard work• State of tests and test environments is pretty bad out there• Are we thinking about test at the right level?

6

What DevOps and CD mean for the organization• The whole idea of holding off changes to retain stability

gets turned on its head• Change all the time and stay stable!

• Changes get smaller and smaller, but are constantly being deployed

• With small changes integration issues become fairly simple

• Environments must proliferate along with associated infrastructure• Ideally you need a new test environment to test every

change • Create/Destroy quickly and efficiently• Are your environments captured as code?

• Use Cloud services here, even if you don’t want to for production

Continuous Delivery as the right goal

The ability to get changes—features, configuration changes, bug fixes, experiments—into production or into the hands of users safely and quickly in a sustainable way.

Jez Humble

““What is Continuous Delivery?

Keys Continuous DeliveryContinuous Integration flowing into Production

1. If it not automatable it is broken2. If you can’t reproduce production in an on-demand environment

you are taking a big risk3. If it hurts do it more often – (build, deploy, integrate, test)4. Everything required for an app to be built and deployed must

exist in source control.5. Practice trunk-based development with code switches for in-work

items6. Infrastructure - Cattle, not pets (When sick you shoot them…)

Delivery PipelinesSteps every change goes through to get to production

Environments and Testing

You NEED Virtual Test EnvironmentsPhysical test labs are going away…• With newer styles of development smaller teams are testing

smaller changes on very short schedules• Queuing up to access a test lab just defeats the purpose

• When supporting many systems many different environments are needed – very expensive to do physically

• Investing in a virtual test lab is the only hope to have the scale you need

• Need virtual resources on-prem or off: CPU, Storage, Networking, Firewalls, Load Balancers, Hardware simulation

• Ideally every team has one (or more) dedicated test environments to move a fast as possible.

Environments Proliferate with Modern Techniques

• Each box ideally represents a fresh environment• Unrealistic to have this many physical labs• Change and refresh can be costly and error-prone

Key factors to make the leapPlaces to start

1. Education in Agile and Lean Concepts for the whole team2. Designate some projects/products that fit well for DevOps

• “Skunk Works” project with members from across the silos

3. Start a DevOps initiative to define and create the environments you need

• As small and fast as possible

4. Automate delivery pipeline decision point tests5. Automate deployment to any environment

Skytap Hands-OnUsing Skytap Cloud to enable CD and Modernization

1. Fixing a bug by generating a new test environment and running tests

• (show new code in a new environment – Vagrant->Skytap)

2. A CD pipeline using infrastructure as code and Skytap as a cache

• Puppet, Chef, Ansible, Urban Code Deploy• (Deploy an application, partly automated, partly hand-built)

3. Hybrid Modernization with Containers• (peel off a service from the monolith and deliver in a container)

Run time binding

Amazon

Keys to making these workable• Independent Deployment• API versioning• Automated and Comprehensive Monitoring

Reliable SoftwareOn (relatively) unreliable infrastructure

• Solving availability with hardware and proprietary software is hugely expensive

• The big Internet companies have gone another route• Large amounts of cheap infrastructure – horizontal scale• Software the handles failures gracefully – takes time to build

• “Resilience, security, scalability, availability deployability, testability are architectural concerns.”

• “Designing intelligent elastic cloud architectures, so that infrastructure runs only when you need it, is an art in itself”

“Strangler” Pattern

top related