BW3
Session 
6/5/2013 10:15 AM 
 
 
 
 
 
 
 

"Implementing Cloud-based DevOps
for Distributed Agile Projects"
 
 
 

Presented by:
Thomas Stiehm
Coveros, Inc.
 
 
 
 
 
 
 
 
 

Brought to you by: 
 

 
 
340 Corporate Way, Suite 300, Orange Park, FL 32073 
888‐268‐8770 ∙ 904‐278‐0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
Thomas Stiehm
Coveros, Inc.

Thomas Stiehm has been developing applications and managing software development teams
for eighteen years. As CTO of Coveros, he is responsible for the oversight of all technical
projects and integrating new technologies and application security practices into software
development projects. Most recently, Thomas has been focusing on how to incorporate DevOps
best practices into distributed agile development projects using cloud-based solutions and how
to achieve a balance between team productivity and cost while mitigating project risks.
Previously, as a managing architect involved in agile development at Digital Focus, Thomas
found that agile is the only development methodology that makes the business reality of
constant change central to the development process.
 
Implementing Cloud-based
DevOps for Distributed Agile
g
Projects
Thomas Stiehm, CTO
tom.stiehm@coveros.com

© Copyright 2012 Coveros, Inc.. All rights reserved.

1

About Coveros
Coveros helps organizations accelerate the delivery of
business value through secure, reliable software.

© Copyright 2012 Coveros, Inc.. All rights reserved.

2
Cloud-based
Cloud Computing - In its essence, Cloud
Computing is a massive distributed
computing model consisting of three tiers:
p
g
g
infrastructure, platform and services, and is
about using swarms of computers to deliver
unprecedented computing power to people
and organizations across the globe. Cloud
computing isn't a new technology nor a new
architecture... it s
architecture it's a new delivery model 1
model.

1. http://www.mkpress.com/CloudReading

© Copyright 2012 Coveros, Inc.. All rights reserved.

3

DevOps
DevOps – A combination of Development
and Operations, it is a software development
method that stresses communication,
collaboration and integration between
software developers and Information
Technology (IT) professionals. DevOps is a
response to the interdependence of software
development and IT operations. It aims to
help an organization rapidly produce
software products and services.1

1. http://en.wikipedia.org/wiki/DevOps

© Copyright 2012 Coveros, Inc.. All rights reserved.

4
Distributed Agile Projects
Distributed Agile, as the name implies, is a
model in which projects execute an Agile
Methodology with teams that are
gy
distributed across multiple geographies.1

1. .

Distributed Agile, DH2A: The Proven Agile Software Development Approach and Toolkit for Geographically Dispersed Teams By: Upadrista Venkatesh

© Copyright 2012 Coveros, Inc.. All rights reserved.

5

Cloud Computing Services
Cloud Services Models:
– Software-as-a-Service (SaaS) vendors
that offer web applications, often with the
ability to customize and extend the
applications, ex. SalesForce.com
– Platform-as-a-Service (PaaS) vendors
that give developers the tools to build and
host using specific frameworks or
services, ex. G
i
Google Apps Engine
l A
E i
– Infrastructure-as-a-Service (IaaS)
vendors that offer access to raw storage
and computing resources, ex. Amazon
EC2
© Copyright 2012 Coveros, Inc.. All rights reserved.

6
Features of Cloud Services
Cloud Provisioning
Dynamic Computing Infrastructure
Self-Service, Self-Managed Platforms
Programmatic Control of Server Resources
Internet Access
Geographic Distribution

© Copyright 2012 Coveros, Inc.. All rights reserved.

7

Lessons Learned: The Project
The technology parts are challenging
The people parts are hard, often really hard
Automate everything as early as possible
Automation is software, treat it like the
application code –
– version
– review
– test

Test everything, including your automation
As you learn error and failure conditions,
automate dealing with them
© Copyright 2012 Coveros, Inc.. All rights reserved.

8
Lessons Learned: The Vendor
The right cloud vendor can make or break
you. Pick one that meets your needs, skip
any that don’t p
y
provide real cloud services.
There is no perfect cloud platform, they all
have problems.
If you pick a cloud provider that expects
things to be done their way, do it their way.
If you pick a cloud provider that offers extra
i k
l d
id h
ff
services that induce lock-in, consider using
their extra services but think about it a lot. It
could work better than rolling your own.
© Copyright 2012 Coveros, Inc.. All rights reserved.

9

Things to Expect
Expect to do a lot of learning, teaching,
hand holding and pushing for new practices
Expect to explain things multiple times:
issues, processes, practices, and
priorities at multiple levels: developers,
architects, testers, BAs, Project Managers,
Product Managers, Directors, VPs, the client,
and end users
Expect confusion, rejection and clinging
to old practices
Expect to do a lot of expectation setting
and resetting
© Copyright 2012 Coveros, Inc.. All rights reserved.

10
Things to Expect
Expect to make ultimatums and to get
strong pushback to those ultimatums
Expect to fail the first time with almost
time,
everything you put in place
Expect everything to take longer than you
planned
Expect the expectation of immediate
results and payoffs, work your way through
l
d
ff
k
h
h
them
Expect your detractors to take credit when
things, in the end, succeed
© Copyright 2012 Coveros, Inc.. All rights reserved.

11

How to Best Leverage the Cloud
Understand your system, application and
organizational requirements
Pick a Service Model
– SaaS
– IaaS
– PaaS
Pick a Vendor that suits your requirements,
service model and budget
Train your team on the vendors technology
and service model
© Copyright 2012 Coveros, Inc.. All rights reserved.

12
Live in the Cloud
Use Cloud-based service to
communications:
– Text (IM and Email)
– Voice
– Video
– Collaboration
– Source Code Management
– Code Review
– Project Management Software
Using Cloud services helps to make people
around the country or globe equal members
of the team and reduces location bias

© Copyright 2012 Coveros, Inc.. All rights reserved.

13

Living in the Cloud Example
Requirements gathering using Cloud
resources such as Google Docs and Sites
Task Management in the Cloud using Trello
Project Management in the Cloud using
VersionOne
Development in the Cloud using EC2
Development Resources in the Cloud using
GitHub
Testing in the Cloud using EC2
Deployment and OPS in the Cloud using
EC2

© Copyright 2012 Coveros, Inc.. All rights reserved.

14
Enabling Distributed Teams
Use Cloud-based technologies to avoid
second class team syndrome
Face to Face team building
g
– In person is best
– Video is better than nothing
– If your locations don’t “know” each other,
they won’t trust each other
– Phone calls aren’t enough
aren t
Make sure that all locations have equal
opportunities for
– Advancement
– Interesting Work
© Copyright 2012 Coveros, Inc.. All rights reserved.

15

What are the Advantages?
Ability to focus on your core value
Flexibility
Time t market
Ti
to
k t
Speed of development
Less up front cost
Proven platforms
Scalability or at least scalability patterns
No hardware infrastructure to manage
Geographic distribution
Cheaper?

© Copyright 2012 Coveros, Inc.. All rights reserved.

16
Cloud Provisioning
Most people think of dynamic production
scaling when they think of Cloud provisioning
But it also means:
– Full setup and tear down of test
environments
– Creation and disposal of development and
test environments based on need
– Scaling development and test
environments to fit the task, so if you want
to do performance testing on a duplicate
of your production environment, you can,
without having those resources in-house
© Copyright 2012 Coveros, Inc.. All rights reserved.

17

Programmatic Control
Programmatic control of self-service APIs
allows your team to fully automate setting
up and tearing down resources for:
p
g
– Dynamic scaling of production resources
– On-demand creation of development and
test resources, sized to fit the immediate
needs
– Fully automating the development, test,
y
g
p
,
,
and deployment life cycle
Automation is not magic. You have to work
at it, maintain it, and manage configuration
data.
© Copyright 2012 Coveros, Inc.. All rights reserved.

18
Self-Service API
Automated everything
– Development Setup
– Test Setup
– Running Tests
– Populating Application Data/Test Data
– Builds
– Deployment
– Monitoring/Scaling
– Reporting
Be able to rebuild your entire environment,
including your development, test tools and
servers automatically

© Copyright 2012 Coveros, Inc.. All rights reserved.

19

Cloud vs. Traditional Development
Vendor lock-in - Your application code will be
tied to the vendor's service offering, you will
be integrating their API and Services into
g
g
your code
You are dependent on their development
and testing, resources and practices
You don’t have the same level of control,
with SaaS and PaaS you are plugging your
software extension into the vendor’s system
To get the advantages of cloud platforms you
must work within their constraints, using their
tools or your tools their way
© Copyright 2012 Coveros, Inc.. All rights reserved.

20
Trade-Offs
Loss of control: You no longer control the
infrastructure. It can go down or change and
y
you have to deal with it and live with it.
The cloud vendor has a different set of
priorities than you.
You don’t have to worry about infrastructure.
SaaS gets you started very quickly, but it
limits how you can grow.
li i h
PaaS simplifies your choices but locks you in
IaaS can be like a CoLo arrangement with
more control and all of the responsibility.
© Copyright 2012 Coveros, Inc.. All rights reserved.

21

Derailments
Picking the wrong vendor
Picking the wrong service model
No automation: development, deployment
test or infrastructure
Physical data-center operator mentality
No access VM consoles or VM API
Staff th t i d
St ff that is adamantly against change,
tl
i t h
management that doesn’t support change
Application requirements that don’t fit within
the vendor’s framework
© Copyright 2012 Coveros, Inc.. All rights reserved.

22
How to Begin
Create a plan, short term, near term, long
term. You are going to get it wrong, keep
adjusting and resetting expectations.
Focus on priorities.
Base priorities on business values,
however you define that. If you don’t show
value, you will fail in the long run.
Start simple and get more sophisticated
as you go. You are going to have to refactor
your work/process/practices anyway as you
don’t know what you are doing at first, so
rework/refactoring is unavoidable.
© Copyright 2012 Coveros, Inc.. All rights reserved.

23

Work in small, quick steps, adjust your
strategy and tactics around things that
work.
Fix pain points. Focus on fixing the pain
points of the people that have the most to
gain, prove the value to them and their direct
management.
Get key stakeholders and influencers on
your side. Sh
id Show them h
h
how lif will b b
life ill be better
for them doing things your way.
Some people will reject the new way of doing
things. Route around them and eventually
the organization will leave them behind.

24

How to Begin

© Copyright 2012 Coveros, Inc.. All rights reserved.
Reasons not to use the Cloud
You have a stable Application with little new
requirements
You have an infrastructure that meets your
needs
You need to have complete control over your
entire environment and have little risk
tolerance
You h
Y have to b d
budget exact resources, and
d
allowing for flexibility and dynamic computing
isn’t allowed
There isn’t any benefit to changing your
process and practices, for now
© Copyright 2012 Coveros, Inc.. All rights reserved.

25

© Copyright 2012 Coveros, Inc.. All rights reserved.

26

Thank You

Implementing Cloud-Based DevOps for Distributed Agile Projects

  • 1.
        BW3 Session  6/5/2013 10:15 AM                "Implementing Cloud-based DevOps forDistributed Agile Projects"       Presented by: Thomas Stiehm Coveros, Inc.                   Brought to you by:        340 Corporate Way, Suite 300, Orange Park, FL 32073  888‐268‐8770 ∙ 904‐278‐0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
  • 2.
    Thomas Stiehm Coveros, Inc. ThomasStiehm has been developing applications and managing software development teams for eighteen years. As CTO of Coveros, he is responsible for the oversight of all technical projects and integrating new technologies and application security practices into software development projects. Most recently, Thomas has been focusing on how to incorporate DevOps best practices into distributed agile development projects using cloud-based solutions and how to achieve a balance between team productivity and cost while mitigating project risks. Previously, as a managing architect involved in agile development at Digital Focus, Thomas found that agile is the only development methodology that makes the business reality of constant change central to the development process.  
  • 3.
    Implementing Cloud-based DevOps forDistributed Agile g Projects Thomas Stiehm, CTO tom.stiehm@coveros.com © Copyright 2012 Coveros, Inc.. All rights reserved. 1 About Coveros Coveros helps organizations accelerate the delivery of business value through secure, reliable software. © Copyright 2012 Coveros, Inc.. All rights reserved. 2
  • 4.
    Cloud-based Cloud Computing -In its essence, Cloud Computing is a massive distributed computing model consisting of three tiers: p g g infrastructure, platform and services, and is about using swarms of computers to deliver unprecedented computing power to people and organizations across the globe. Cloud computing isn't a new technology nor a new architecture... it s architecture it's a new delivery model 1 model. 1. http://www.mkpress.com/CloudReading © Copyright 2012 Coveros, Inc.. All rights reserved. 3 DevOps DevOps – A combination of Development and Operations, it is a software development method that stresses communication, collaboration and integration between software developers and Information Technology (IT) professionals. DevOps is a response to the interdependence of software development and IT operations. It aims to help an organization rapidly produce software products and services.1 1. http://en.wikipedia.org/wiki/DevOps © Copyright 2012 Coveros, Inc.. All rights reserved. 4
  • 5.
    Distributed Agile Projects DistributedAgile, as the name implies, is a model in which projects execute an Agile Methodology with teams that are gy distributed across multiple geographies.1 1. . Distributed Agile, DH2A: The Proven Agile Software Development Approach and Toolkit for Geographically Dispersed Teams By: Upadrista Venkatesh © Copyright 2012 Coveros, Inc.. All rights reserved. 5 Cloud Computing Services Cloud Services Models: – Software-as-a-Service (SaaS) vendors that offer web applications, often with the ability to customize and extend the applications, ex. SalesForce.com – Platform-as-a-Service (PaaS) vendors that give developers the tools to build and host using specific frameworks or services, ex. G i Google Apps Engine l A E i – Infrastructure-as-a-Service (IaaS) vendors that offer access to raw storage and computing resources, ex. Amazon EC2 © Copyright 2012 Coveros, Inc.. All rights reserved. 6
  • 6.
    Features of CloudServices Cloud Provisioning Dynamic Computing Infrastructure Self-Service, Self-Managed Platforms Programmatic Control of Server Resources Internet Access Geographic Distribution © Copyright 2012 Coveros, Inc.. All rights reserved. 7 Lessons Learned: The Project The technology parts are challenging The people parts are hard, often really hard Automate everything as early as possible Automation is software, treat it like the application code – – version – review – test Test everything, including your automation As you learn error and failure conditions, automate dealing with them © Copyright 2012 Coveros, Inc.. All rights reserved. 8
  • 7.
    Lessons Learned: TheVendor The right cloud vendor can make or break you. Pick one that meets your needs, skip any that don’t p y provide real cloud services. There is no perfect cloud platform, they all have problems. If you pick a cloud provider that expects things to be done their way, do it their way. If you pick a cloud provider that offers extra i k l d id h ff services that induce lock-in, consider using their extra services but think about it a lot. It could work better than rolling your own. © Copyright 2012 Coveros, Inc.. All rights reserved. 9 Things to Expect Expect to do a lot of learning, teaching, hand holding and pushing for new practices Expect to explain things multiple times: issues, processes, practices, and priorities at multiple levels: developers, architects, testers, BAs, Project Managers, Product Managers, Directors, VPs, the client, and end users Expect confusion, rejection and clinging to old practices Expect to do a lot of expectation setting and resetting © Copyright 2012 Coveros, Inc.. All rights reserved. 10
  • 8.
    Things to Expect Expectto make ultimatums and to get strong pushback to those ultimatums Expect to fail the first time with almost time, everything you put in place Expect everything to take longer than you planned Expect the expectation of immediate results and payoffs, work your way through l d ff k h h them Expect your detractors to take credit when things, in the end, succeed © Copyright 2012 Coveros, Inc.. All rights reserved. 11 How to Best Leverage the Cloud Understand your system, application and organizational requirements Pick a Service Model – SaaS – IaaS – PaaS Pick a Vendor that suits your requirements, service model and budget Train your team on the vendors technology and service model © Copyright 2012 Coveros, Inc.. All rights reserved. 12
  • 9.
    Live in theCloud Use Cloud-based service to communications: – Text (IM and Email) – Voice – Video – Collaboration – Source Code Management – Code Review – Project Management Software Using Cloud services helps to make people around the country or globe equal members of the team and reduces location bias © Copyright 2012 Coveros, Inc.. All rights reserved. 13 Living in the Cloud Example Requirements gathering using Cloud resources such as Google Docs and Sites Task Management in the Cloud using Trello Project Management in the Cloud using VersionOne Development in the Cloud using EC2 Development Resources in the Cloud using GitHub Testing in the Cloud using EC2 Deployment and OPS in the Cloud using EC2 © Copyright 2012 Coveros, Inc.. All rights reserved. 14
  • 10.
    Enabling Distributed Teams UseCloud-based technologies to avoid second class team syndrome Face to Face team building g – In person is best – Video is better than nothing – If your locations don’t “know” each other, they won’t trust each other – Phone calls aren’t enough aren t Make sure that all locations have equal opportunities for – Advancement – Interesting Work © Copyright 2012 Coveros, Inc.. All rights reserved. 15 What are the Advantages? Ability to focus on your core value Flexibility Time t market Ti to k t Speed of development Less up front cost Proven platforms Scalability or at least scalability patterns No hardware infrastructure to manage Geographic distribution Cheaper? © Copyright 2012 Coveros, Inc.. All rights reserved. 16
  • 11.
    Cloud Provisioning Most peoplethink of dynamic production scaling when they think of Cloud provisioning But it also means: – Full setup and tear down of test environments – Creation and disposal of development and test environments based on need – Scaling development and test environments to fit the task, so if you want to do performance testing on a duplicate of your production environment, you can, without having those resources in-house © Copyright 2012 Coveros, Inc.. All rights reserved. 17 Programmatic Control Programmatic control of self-service APIs allows your team to fully automate setting up and tearing down resources for: p g – Dynamic scaling of production resources – On-demand creation of development and test resources, sized to fit the immediate needs – Fully automating the development, test, y g p , , and deployment life cycle Automation is not magic. You have to work at it, maintain it, and manage configuration data. © Copyright 2012 Coveros, Inc.. All rights reserved. 18
  • 12.
    Self-Service API Automated everything –Development Setup – Test Setup – Running Tests – Populating Application Data/Test Data – Builds – Deployment – Monitoring/Scaling – Reporting Be able to rebuild your entire environment, including your development, test tools and servers automatically © Copyright 2012 Coveros, Inc.. All rights reserved. 19 Cloud vs. Traditional Development Vendor lock-in - Your application code will be tied to the vendor's service offering, you will be integrating their API and Services into g g your code You are dependent on their development and testing, resources and practices You don’t have the same level of control, with SaaS and PaaS you are plugging your software extension into the vendor’s system To get the advantages of cloud platforms you must work within their constraints, using their tools or your tools their way © Copyright 2012 Coveros, Inc.. All rights reserved. 20
  • 13.
    Trade-Offs Loss of control:You no longer control the infrastructure. It can go down or change and y you have to deal with it and live with it. The cloud vendor has a different set of priorities than you. You don’t have to worry about infrastructure. SaaS gets you started very quickly, but it limits how you can grow. li i h PaaS simplifies your choices but locks you in IaaS can be like a CoLo arrangement with more control and all of the responsibility. © Copyright 2012 Coveros, Inc.. All rights reserved. 21 Derailments Picking the wrong vendor Picking the wrong service model No automation: development, deployment test or infrastructure Physical data-center operator mentality No access VM consoles or VM API Staff th t i d St ff that is adamantly against change, tl i t h management that doesn’t support change Application requirements that don’t fit within the vendor’s framework © Copyright 2012 Coveros, Inc.. All rights reserved. 22
  • 14.
    How to Begin Createa plan, short term, near term, long term. You are going to get it wrong, keep adjusting and resetting expectations. Focus on priorities. Base priorities on business values, however you define that. If you don’t show value, you will fail in the long run. Start simple and get more sophisticated as you go. You are going to have to refactor your work/process/practices anyway as you don’t know what you are doing at first, so rework/refactoring is unavoidable. © Copyright 2012 Coveros, Inc.. All rights reserved. 23 Work in small, quick steps, adjust your strategy and tactics around things that work. Fix pain points. Focus on fixing the pain points of the people that have the most to gain, prove the value to them and their direct management. Get key stakeholders and influencers on your side. Sh id Show them h h how lif will b b life ill be better for them doing things your way. Some people will reject the new way of doing things. Route around them and eventually the organization will leave them behind. 24 How to Begin © Copyright 2012 Coveros, Inc.. All rights reserved.
  • 15.
    Reasons not touse the Cloud You have a stable Application with little new requirements You have an infrastructure that meets your needs You need to have complete control over your entire environment and have little risk tolerance You h Y have to b d budget exact resources, and d allowing for flexibility and dynamic computing isn’t allowed There isn’t any benefit to changing your process and practices, for now © Copyright 2012 Coveros, Inc.. All rights reserved. 25 © Copyright 2012 Coveros, Inc.. All rights reserved. 26 Thank You