DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case...

55
www.csiro.au DevOps: A Software Architect's Perspective Dr. Liming Zhu| Research Director Oct 2015

Transcript of DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case...

Page 1: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

www.csiro.au

DevOps: A Software Architect's Perspective

Dr. Liming Zhu| Research Director

Oct 2015

Page 2: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

NICTA + DP@CSIRO = Data61 • NICTA (National ICT Australia): Australia’s

National Centre of Excellence in ICT

• Digital Productivity Business Unit(DP) in CSIRO • Commonwealth Scientific and Industrial Research

Organisation: federal government agency for scientific research (founded in 1926) with 6600+ people

• Merged into a single CSIRO entity – Data61 • 1000 + people

• Innovation network: partnership model

• Mission: Creating our data-driven future

• 4 Research Programs: Data Analytics, Decision Science, Software and Computational Systems, Autonomous and Network Systems

2

Page 3: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Agenda: • DevOps Overview • Microservice Architecture • Continuous Deployment • Case Study: Implementing a Continuous

Deployment Pipeline for Enterprises • Outlook

3

Page 4: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Why DevOps?

• Developers (Devs) and operators (Ops) don‘t always pursue the same goals

4

Page 5: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

What problem is DevOps trying to solve?

• Poor communication between Dev and Ops

•Opposing goals •Devs want to push new features

•Ops want to keep the system available

Leads to slow release schedule

•Different cultures

• Limited capacity of operations staff •Developers have limited insight into operations

5

Page 6: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Why companies care

• IBM “IBM has gone from spending about 58% of its development resources on innovation to about 80%” http://devops.com/blogs/ibms-devops-journey/?utm_content=12855120

• Paddy Power (Ireland): “The cycle time from a user story's conception to production has decreased from several months to 2 to 5 days.

“Previously, approximately 30% of the workforce was fixing bugs. Now, bugs are so rare that the teams no longer need a bug-tracking system.”

Lianping Chen. Continuous Delivery: Huge Benefits, but Challenges Too. IEEE Software 32(2), 2015

6

Page 7: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

DevOps motivation

• Organizations want to reduce time to market for new features, without sacrificing quality • Requires business-IT alignment

• DevOps practices will influence… • the way you organize teams

• the way you build systems

• even the structure of the systems that you build

• Unlikely that you’ll be able to “throw your final version over the fence” and let operations worry about running it!

7

Page 8: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

DevOps motivation

•DevOps is about... •bringing “agile” methods to operations

•encouraging collaboration between development and operations staff, get them talking

•Formally: shared goals and teams of Devs and Ops

• Informally: beer & chips

8

Page 9: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

What is DevOps?

• Definition “DevOps is a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality.”

• Source: • http://amzn.to/1Qlar8K

• Release date: June 2015

9

Page 10: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

What does that mean?

• Quality of the code must be high • Testing & test-driven development

• Quality of the build & delivery mechanism must be high • Automation & more testing

• A must when deploying to production 25x per day (etsy.com)

• Time is split: • From commit until deployment to production

• From deployment until acceptance into normal production

• Means testing in production

• Goal-oriented definition • May use agile methods, continuous deployment (CD), etc.

• Likely to use automation tools

10

Page 11: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

DevOps Practices (1/2)

• Treat Ops as first-class citizens throughout the lifecycle – e.g., in requirements elicitation • Many decisions can make operating a system harder or easier

• Logging and monitoring to suit Ops

• Make Dev more responsible for relevant incident handling • Shorten the time between finding and repairing errors

11

Requirements

•Treat Operations personnel as first class stakeholders

•Get their input when developing requirements

Development

•Small teams

•Limited coordination

•Unit tests

Build

•Build tools

•Supports continuous integration

Testing

•Automated testing

•Integration testing

Deployment

•Deployment tools

•Supports continuous deployment

Execution

•Monitoring

•Responding to error conditions

Page 12: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

DevOps Practices (2/2)

• Use continuous deployment, automate everything • Commits trigger automatic build, testing, deployment

• Enforce deployment process is used by all • No ad-hoc deployments

• Ensures changes are traceable

• Develop infrastructure code with the same set of practices as application code • “Infrastructure as Code” : using IaaS APIs, etc., to automate creation of

environments

• Misconfiguration can derail your application

• Ops scripts are traditionally more ad-hoc

12

Page 13: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Agenda: • DevOps Overview • Microservice Architecture • Continuous Deployment • Case Study: Implementing a Continuous

Deployment Pipeline for Enterprises • Outlook

13

Page 14: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

DevOps consequences

Architecturally significant requirement: Speed up deployment through minimizing synchronous coordination among development teams.

• Synchronous coordination, like a meeting, adds time

since it requires • Ensuring that all parties are available • Ensuring that all parties have the background to make the

coordination productive • Following up to decisions made during the meeting

14

Page 15: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

DevOps consequences

• Keep teams relatively small • Amazon’s “two pizza rule”: no team should be larger than can be

fed with two pizzas

• Advantages: make decisions quickly, less coordination overhead, more coherent units

• Team size becomes a major driver of the overall architecture: • Small teams develop small services Microservices

• Coordination overhead is minimized by channeling most interaction through service interfaces: – Team X provides service A, which is used by teams Y and Z

– If changes are needed, they are communicated, implemented, and added to the interface.

15

Page 16: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Microservice Architecture • Used in practice by organizations that adopted (or

invented) many DevOps practices • Amazon, LinkedIn, Google, …

• Each service provides small amount of functionality

• Total system functionality comes from composing multiple services

• Support different upgrade strategies • Rolling and Blue/Green

• Support quick rollback ..

• Design for Failure

16

Page 17: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Microservice Architecture

• Each user request is satisfied by some sequence of services

• Most services are not externally available

• Each service communicates with other services through service interfaces

• Service depth may be 70, e.g., LinkedIn

17

Business Service

Microservice

Microservice

Microservice Microservice Microservice

Microservice Microservice Microservice

MicroserviceMicroservice Microservice

Page 18: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Amazon design rules

• All teams will henceforth expose their data and functionality through service interfaces.

• Teams must communicate with each other through these interfaces.

• There will be no other form of inter-process communication allowed: • no direct linking, no direct reads of another team’s data store,

• no shared-memory model, no back-doors whatsoever.

• The only communication allowed is via service interface calls over the network.

• It doesn’t matter what technology they[services] use. • All service interfaces, without exception, must be designed from

the ground up to be externalizable.

18

Page 19: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Another Related emerging Architecture

Monitoring/Log-Centric

19

Page 20: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Agenda: • DevOps Overview • Microservice Architecture • Continuous Deployment • Case Study: Implementing a Continuous

Deployment Pipeline for Enterprises • Outlook

20

Page 21: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Continuous Deployment Pipeline

• Developer wants to commit code

• Pre-commit tests are executed locally. If successful:

• Code is committed

• Committed code is compiled, Unit tests are run. If successful:

• Code is built & packaged

• Result can be a machine image or template (assuming virtualization). If successful:

• Integration tests are run. If successful:

• Acceptance / performance tests are run. If successful:

• The new service is deployed to production

22

Pre-commit tests

Xpromote to normal

production

Build Image and Perform Integration

tests

UAT / staging / performance

tests

Deploy to production

Commit

...

Pre-commit tests

Commit

Developers All gates are automatic – else

continuous integration / delivery

Page 22: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Deployment is not trivial

Challenges • 24/7 availability is base

requirement

• Microservice 3 to be replaced with new version

– Multiple VMs for it

• Might change how M1 / M2 can use it

• Might change how it uses M4 / M5

23

Business Service

Microservice 1

Microservice

Microservice 2 Microservice

Microservice 3 Microservice

Microservice5 MicroserviceMicroservice 4

VMVMVM

Page 23: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Deployment goal and constraints

• Goal: move from current state (N VMs of version A of a service) to new state (N VMs of version B of a service)

• Constraints: • Any development team can deploy their service at any time – no

synchronization among development teams

• It takes time to replace one VM of version A with an VM of version B (order of minutes)

• Service to clients must be maintained while the new version is being deployed (24/7 availability)

24

Page 24: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Deployment strategies

• Two basic all-or-nothing strategies: • Big Flip (or Blue/Green) Deployment

– leave N VMs with version A as they are, allocate and provision N VMs with version B, switch to version B; once stable, release VMs with version A.

• Rolling Upgrade

– allocate a new VM with version B, release one VM with version A. Repeat N times.

• Partial strategies • Canary testing

• A/B testing

• …

25

Page 25: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Blue/Green deployment (1/3)

Database

v 1.0

Load Balancer

VMVMVM

my-app.com

Stage 0v 1.0 running

Users

26

Page 26: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Blue/Green deployment (2/3)

DatabaseDatabase

v 1.0

Load Balancer

VMVMVM

my-app.com

Stage 0v 1.0 running

Users

Load Balancer

VMVMVM

Stage 1v 2.0 infrastructure created and tested

Users

Load Balancer

VMVMVM

Testers

my-app.com

v 1.0 v 2.0

27

Page 27: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Blue/Green deployment (3/3)

DatabaseDatabase

v 1.0

Load Balancer

VMVMVM

my-app.com

Stage 0v 1.0 running

Users

Load Balancer

VMVMVM

Stage 1v 2.0 infrastructure created and tested

Users

Load Balancer

VMVMVM

Testers

Stage 2DNS Alias reassigned and users migrated

Users

my-app.com my-app.com

v 1.0 v 2.0

Database

Load Balancer

VMVMVM

Load Balancer

VMVMVM

v 1.0 v 2.0

28

Page 28: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Rolling Upgrade

Load Balancer

VMv. A

VMv. A

VMv. A

Next service

Client

29

Page 29: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Rolling Upgrade

Load Balancer

VMv. A

VMv. A

VMv. A

Next service

Client

VMv. B

booting

30

Page 30: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Rolling Upgrade

Load Balancer

VMv. A

VMv. A

VMv. A

Next service

Client

VMv. B

31

Page 31: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Rolling Upgrade

Load Balancer

VMv. A

VMv. A

Next service

Client

VMv. B

32

Page 32: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Rolling Upgrade

Load Balancer

VMv. A

VMv. A

Next service

Client

VMv. B

VMv. B

33

Page 33: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Rolling Upgrade

Load Balancer

VMv. A

Next service

Client

VMv. B

VMv. B

34

Page 34: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Rolling Upgrade

Load Balancer

VMv. A

Next service

Client

VMv. B

VMv. B

VMv. B

35

Page 35: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Rolling Upgrade

Load Balancer

Next service

Client

VMv. B

VMv. B

VMv. B

36

Page 36: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Blue/Green vs. Rolling Upgrade

Blue/Green Deployment

• Only one version available to the client at any time

• Requires 2N VMs • additional cost

• Rollback is easy

Rolling Upgrade

• Multiple versions are available for service at the same time

• Requires N+1 VMs • Can be done at nearly no

extra cost

37

Page 37: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Live testing: Canary testing

• Named after canaries in coal mines

• Small number of servers of a new version, running in production in order to perform live testing in the real environment

38

Page 38: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Implementation of canaries

• Create set of new VMs as canaries (they are unaware of that)

• Designate a collection of customers as testing the canaries. Can be, for example • organization-based (dog-fooding)

• geographically based

• at random

• Then • Route messages from canary customers to canaries

– Can be done through making registry/load balancer canary-aware

• Observe the canaries closely

• Decide on rolling out / back

39

Page 39: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Other live testing topics

• A/B testing • Have two versions, A and B, run in parallel in production

• Observe the reactions of users to them

– E.g., more ad revenue with version B

• Netflix Simian Army • Chaos Monkey: randomly kills VMs in production

• Latency Monkey

• …

40

Page 40: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Agenda: • DevOps Overview • Microservice Architecture • Continuous Deployment • Case Study: Implementing a Continuous

Deployment Pipeline for Enterprises • Outlook

41

Page 41: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Case study background

• Case study chapter: “Implementing a Continuous Deployment Pipeline for Enterprises” with John Painter and Daniel Hand

• “Sourced Group is an enterprise consulting organization, working on bringing the benefits of Cloud-based solution architecture and automation to the enterprise.” – http://www.sourcedgroup.com.au/

42

Page 42: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Organizational Context

Digital Portfolio Owner

Security Operations

CD Onboarding Team

Online Application

Online Application

Digital Portfolio Owner

Continuous Delivery Pipeline

SplunkAtlassian

ConfluenceNexus

Atlassian Bamboo

Atlassian Stash

Atlassian JIRA

Center of Excellence (COE)

...

C-level Executive Sponsor

Sourced Group

Program Manager

CD Engineering Team

43

Page 43: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

CDP tooling (in the case study)

AtlassianJIRA

Atlassian Stash

Atlassian Bamboo

Tasks for AWS plugin

Amazon Web Services

44

Ticketing system

Code revision system

Continuous deployment

system

Adapter: Bamboo to

AWS

• Ticketing integration: tracing of change reasons – can

even link release notes to original feature request

• Bamboo: unlike many alternatives has good support

for branches

Page 44: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Core feature of CDP: standardized life cycle

• Define life cycle plan globally • Tasks: see next slides

• Run virtual plans for each branch – avoids plan drift • Branch awareness

supported by Bamboo

45

Source Control Platform

Mainline Feature Branch(es)

CDP Platform Definitions

Virtual CDP Plan: Task1 Task2 ...

CDP Plan: Task1 Task2 Task3

Virtual CDP Plan: Task1 Task2 ...

Page 45: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Standardized life cycle (1/3)

• Building and testing: • functional testing and producing application artifacts

• Baking: • Bootstrapping application artifacts and configuration onto a

temporary target OS

• “baking” into image: snapshot from which new VMs can be created. AWS: Amazon Machine Image (AMI)

46

Build &Test

Bake Deploy Release Teardown

Page 46: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Standardized life cycle (2/3)

• Deployment: • new, independent stack of the application with new VMs (from

the AMI) in an autoscaling group (ASG)

• supporting infrastructure and configuration: load balancing, scaling, monitoring, networking

• Release: • Warm up new stack

• Release by changing the DNS entry

• Optional: patching or modification of persistent data

47

Build &Test

Bake Deploy Release Teardown

Page 47: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Standardized life cycle (3/3)

• (In use – no CDP involvement)

• Teardown: • Once no longer needed, stack can be torn down

• Ensure all traffic has been moved away from stack

• Remove all resources: VMs, ASG, supporting infrastructure, …

48

Build &Test

Bake Deploy Release Teardown

Page 48: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Environment Definition: AWS CloudFormation

• CloudFormation (CF): • Declarative configuration – i.e., what is the goal state

• Define a complete virtual environment, including resources and security components

• JSON file – example:

49

Page 49: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Layering CloudFormation scripts

50

Operations Repo (Git)

Atlassian Bamboo

Application Repo (Git)

Application code

Application CF Load Balancing

setup

VPC Subnets Security groups CF Frameworks Best Practice

CloudFormation (CF) script

Page 50: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Case study details: baking

Checkout CF template

& build scripts

Merge application &

operational CF templates

Upload CF templates to Amazon S3

Pre-Processing

Build stack from CF

templates

Bake AMIs from EC2 instances

(one per tier)

Post-Processing

Teardown EC2

instances

51

Page 51: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Agenda: • DevOps Overview • Microservice Architecture • Continuous Deployment • Case Study: Implementing a Continuous

Deployment Pipeline for Enterprises • Outlook

52

Page 52: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Motivation: System Operations Matter

• Gartner predicts: • “Through 2015, 80% of outages impacting mission-critical

services will be caused by people and process issues, and more than 50% of those outages will be caused by change / configuration / release integration and hand-off issues.”

• The case of Knight Capital – from Wikipedia: • The Knight Capital Group was an American global financial

services firm […].[…] Knight was the largest trader in U.S. equities, with a market share of 17.3% on NYSE and 16.9% on NASDAQ.[2] The company agreed to be acquired by Getco LLC in Dec 2012 after an trading error lost $460 million.

• This took 45 minutes and was an upgrade error

53

Page 53: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Some future DevOps topics • Agility for all!

• Business initiatives take long to implement – move towards “BizOps”

• Data scientists – make operation of complex bespoke solutions smoother, more flexible, and more robust

• Security & compliance – easier and faster changes

• Managing Microservices • Co-owned test suites to ensure upstream services’ (future)

requirements are met

• How much power to give each team, vs. centralized process and policy enforcement?

• How to manage mature microservices, e.g., after re-org?

54

Page 54: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

Summary

• DevOps • Fast deployment of new features to production while ensuring high quality

• Microservices & Architecture • Split application into small, well-scoped components

• Continuous Deployment • Deployment without downtime, e.g. Blue/Green, Rolling Upgrade

• Case study • CDP for enterprises

• Many more topics • 3 case studies in the book show how things can be done in practice

55

Page 55: DevOps: A Software Architect's PerspectiveCD Engineering Team 43 . CDP tooling (in the case study)Atlassian JIRA Atlassian Stash Atlassian Bamboo Tasks for AWS plugin Amazon Web Services

DevOps: A Software Architect’s Perspective

56

Content based in part on DevOps: A Software Architect's Perspective, L. Bass, I. Weber, L. Zhu, Addison-Wesley

Professional, 2015. Some slides courtesy of Len Bass and Ingo Weber

http://amzn.to/1Qlar8K

Release date: June 2015

• Research Partnership with Data61 and CSIRO • 1000+ Scientists on ICT/Software/Data

related technologies

– DevOps, SE but many more

• Data61+ Program

• CSIRO China Office

Q & A?

Contact: [email protected]