digital disruption with devops - reference architecture overview

28
Digital disruption with DevOps Reference Architecture Overview IBM Cloud Architecture Center Sanjeev Sharma Global CTO, DevOps Adoption IBM Distinguished Engineer

Upload: ibm-urbancode-products

Post on 23-Jan-2018

946 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Digital Disruption with DevOps - Reference Architecture Overview

Digital disruption with DevOps Reference Architecture Overview

IBM Cloud Architecture Center

Sanjeev SharmaGlobal CTO, DevOps AdoptionIBM Distinguished Engineer

Page 2: Digital Disruption with DevOps - Reference Architecture Overview

ContinuousCustomer Feedback

& Optimization

Collaborative Development

ContinuousMonitoring

Continuous Business Planning

ContinuousTesting

Operate Develop/ Test

Deploy

Steer

DevOpsContinuous Feedback

CultureFoundationalvalues and principles

ThinkConceptualization refinement, and prioritization of

capabilities CodeGeneration,

enhancement, optimization and

testing of features

DeliverAutomated

production and delivery of offerings

RunServices, options, and capabilities

required to run in the Cloud

ManageOngoing

monitoring, support, and recovery of offerings

LearnContinuously learn

based on outcomes from

experiments

Continuous Release& Deployment

Acceleratesoftware delivery –

for faster time to value

Balance speed, cost, quality and risk –

for increased capacity to innovate

Reduce time to customer feedback – for

improved customer experience

Process

Culture

Technology

Enterprise capability for continuous software delivery and management that enables organizations to innovate rapidly to capitalize on new market opportunities, and reduce the cycle

time to collect and react to customer feedback

Lean and Agile principles

Analytics & Cognitive

https://www.ibm.com/devops

What is DevOps?

Page 3: Digital Disruption with DevOps - Reference Architecture Overview

Key questions to ask and address in DevOps?

Development SCM BuildPackageRepo Deploy Testing Staging Production FeedbackPlanning Manage

What business metrics are defined for the app / service success?

How do we inject innovation and disruptive ideas into the requirements?

How do you turn business strategy into development plans?

How are requirements captured and managed?

How do you know you are building the right app / business service?

How do teams of developers collaborate on a single build?

What code repositories are used?

How do you ensure environment consistency between dev/test/prod?

How do you orchestrate changes across multiple components?

How are defects or incidents fed back to developers?

How is client feedback captured and acted upon?

How do you get operational feedback to dev?

What tools are used for fault finding and problem root-cause-analysis?

How can the business see that their critical app/service is operating normally?

What happens when an app or business service crashes?

How to you scale a live application or business service?

How do you add capacity to a live application or service?

How do you manage a service that spans across multiple cloud providers?

How do you know the environments are secure?

How are security requirements planned into the build?

How do you manage releases?

How do you break down one large release to smaller independent releases?

What KPIs are used to measure delivery?

How do you automate testing?

What percentage of dev budget should be spent on testing? How do you

reverse a change affecting a service or app and how do you verify service is back to normal?

How are apps or services monitored for health & performance?

How do you know of architecture changes in real time?

How can you predict the performance or health of the app or service?

How do you track out of policy changes?

How do you manage test plans and test results?

What IDE tooling is used?

How do you do functional testing?

How do you do integration testing?

How do you branch and synchronize version control system for developing fixes or updates?

How do you assess quality of development?

How is operational excellence measured?

How do you build anti-fragile environments?

How do you do performance and operational testing?

How do you coordinate across multiple delivery pipelines?

Page 4: Digital Disruption with DevOps - Reference Architecture Overview

DevOps – applies across multiple ‘application’ domains

Data & Analytics Build solutions that gather data from any type of source, including web and social. With those solutions, you can store, analyze, and report on data by using analytic engines to drive actionable insights and visualization.

Hybrid Create applications whose components are split across cloud and on-premises environments, or across different clouds.

Microservices Provide the runtime and services to deploy microservice applications that are resilient, agile, and scalable.

Mobile Develop, deploy, and manage scalable native and hybrid apps for mobile devices while you are securely connected to back-end infrastructure on the cloud or in an enterprise.

IoT Connect to Internet of Things (IoT) devices and build scalable apps and dashboards to learn from IoT data by using IBM Bluemix IoT, Data, and Cognitive services.

Web App Build solutions that gather data from any type of source, including web and social. With those solutions, you can store, analyze, and report on data by using analytic engines to drive actionable insights and visualization.

Development SCM BuildPackageRepo Deploy Testing Staging Production FeedbackPlanning Manage

Page 5: Digital Disruption with DevOps - Reference Architecture Overview

Significant architecture decisions

4

Application Type

Delivery pipeline

End-to-End Tool chains

Delivery platform

• Requirements and lifecycle management

• Integrated development environment

• Source control management

• Build / Artifact repository• Continuous integration tool• Service virtualization• Deployment automation• Orchestration• Service management• Defects management

• On-premises• Off-premises• Hybrid Cloud• Traditional IT• Deployment automation• Orchestration• Security

• On-premises• Off-premises• Hybrid Cloud• Traditional IT• # test environments• # staging environments

• Cloud Native app• Cloud Ready app• Monolithic app• Hybrid app• Mobile application• Micro-services• API / Integration• Internet of Things• Big Data & Analytics

Page 6: Digital Disruption with DevOps - Reference Architecture Overview

Garage Method

5

ContinuousCustomer Feedback &

Optimization

Collaborative Development

ContinuousMonitoring

Continuous Business Planning

ContinuousTesting

Operate Develop/ Test

Deploy

Steer

DevOpsContinuous Feedback

CultureFoundational

values and principles

ThinkConceptualization refinement, and prioritization of

capabilitiesCode

Generation, enhancement,

optimization and testing of features

DeliverAutomated production

and delivery of offerings

RunServices, options, and capabilities required to

run in the Cloud

ManageOngoing monitoring,

support, and recovery of offerings

LearnContinuously learn based on outcomes from experiments

Continuous Release& Deployment

https://www.ibm.com/devops/method/

Page 7: Digital Disruption with DevOps - Reference Architecture Overview

Capabilities

6

Operate Develop/ Test

Deploy

Steer

DevOpsContinuous Feedback

CultureFoundational

values and principles

ThinkConceptualization refinement, and prioritization of

capabilities CodeGeneration,

enhancement, optimization and

testing of features

DeliverAutomated production

and delivery of offerings

RunServices, options, and capabilities required to run in the Cloud

ManageOngoing monitoring,

support, and recovery of offerings

LearnContinuously learn based on outcomes from experiments

Source Code Mgt

ConstructBuild & Continuous

Integration

Code Testing

Artifact Mgt.

CODE

Business Strategy

Requirements

User Experience

Plan & Track

Architecture

Technical Design

Concept Validation

THINK

Hybrid Connectivity

Hybrid Security

Autoscaling

Runtimes

RUN

Run Testing

Usage Analytics

Team Analytics

Business Analytics

LEARN

Business ValidationLogging

Monitoring & Metrics

Event Mgt.

Alert Notification

RunbookAutomation

Root Cause Analysis

Incident Mgt.

Change Mgt.

MANAGE

Operational Testing

Environment ProvisioningMiddleware

ConfigurationApplication DeploymentOps Tooling Integration

Security Tooling Integration

A/B Deployment

Deployment Orchestration

Release Mgt.

DELIVER

Delivery Testing

Page 8: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture

7

https://www.ibm.com/devops/method/content/architecture/devOpsArchitecture

Page 9: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture - #1 Collaborative development

8

Collaborative development Collaboration tools enable a culture of innovation. Developers, designers, operations teams, and managers must communicate constantly. Development and operations tools must be integrated to post updates and alerts as new builds are completed and deployed and as performance is monitored. The team can discuss the alerts as a group in the context of the tool.

Cloud servicesSlack

On-premises productsIBM® Connections™IBM Verse™

Page 10: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture - #2 Track & Plan

9

Track & Plan As the team brainstorms ideas, responds to feedback and metrics, and fixes defects, team members create work items and rank them in the backlog. The team works on items from the top of the backlog, delivering to production as they complete work.

Cloud servicesGitHub Issues and Projects

On-premises productsIBM Rational Team Concert™

Page 11: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture – #3 Edit Code

10

Edit code Developers write source code in a code editor to implement the architecture. They construct, change, and correct applications by using various coding models and tools.

Cloud servicesAtom SublimeWeb IDE

On-premises productsEclipseIBM Rational® Application Developer

Page 12: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture – #4 Source Code

11

Source control Developers manage the versions and configuration of assets, merge changes, and manage the integration of changes. The source control tool that a team uses should support social coding.

Cloud servicesGitHubGit hosted on Bluemix

On-premises productsGitHub Enterprise

Page 13: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture – #5 Build, test, and continuous integration

12

Build, test, and continuous integration Developers compile, package, and prepare software assets. They need tools that can assess the quality of the code that is being delivered to source control. Those assessments are done before delivery, are associated with automated build systems, and include practices such as code reviews, unit tests, code quality scans, and security scans.

Cloud servicesThe Build & Deploy pipeline in IBM Bluemix DevOps ServicesSauce Labs

On-premises productsIBM Rational Test WorkbenchIBM Rational Team Concert™IBM Rational Functional TesterIBM Rational Performance TesterIBM UrbanCode™ BuildIBM UrbanCode Deploy

Page 14: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture – #6 Artifact management

13

Artifact management Binary files and other output from the build are sent to and managed in a build artifact repository.

Cloud servicesIBM Bluemix DevOps Services

On-premises productsIBM Rational Asset ManagerIBM UrbanCode Deploy

Page 15: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture – #7 Release management

14

Release management The release is scheduled. The team needs tools that support release communication and managing, preparing, and deploying releases.

On-premises productsIBM UrbanCode Release

Page 16: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture – #8 Deployment orchestration

15

Deployment orchestration The team coordinates the manual and automated processes that are required for the solution to operate effectively. The team must strive towards continuous delivery with zero downtime. A/B deployments can help to gauge the effectiveness of new changes.

Cloud servicesThe Delivery Pipeline service on BluemixIBM Active DeployIBM Globalization Pipeline

On-premises productsIBM Cloud OrchestratorIBM UrbanCode Deploy

Page 17: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture – #9-11 Application, Runtimes, Security

16

Security The team must ensure that all aspects of the application and its supporting infrastructure are secured.

Cloud servicesIBM Access TrailIBM Application Security on CloudIBM Single Sign On

Application The team must understand the application and the options for the application’s runtime environment, security, management, and release requirements.

Runtime and containers Depending on the application requirements, some or all of the application stack must be considered, including middleware, the operating system, and virtual machines.

Cloud servicesBluemix runtimes (Node.js, Java, Liberty, & more)IBM Auto-Scaling for BluemixIBM ContainersOpenStack virtual machines

Page 18: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture – #12 Monitoring and metrics & #13 Alerts

17

Monitoring and metrics The team plans, configures, monitors, defines criteria, and reports on application availability and performance. Predictive analytics can indicate problems before they occur.

Cloud servicesIBM Alert NotificationIBM Bluemix Availability MonitoringIBM Mobile Quality AssuranceIBM Monitoring and Analytics for BluemixNew Relic

On-premises productsIBM Application Performance Management

Alert notifications The right people on the team or systems are notified when issues occur.

Cloud servicesIBM Alert Notification

Page 19: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture – #14 IT service management

18

IT service management The team manages the process for responding to operations incidents, and delivers the changes to fix any incidents. For more information, see the Cloud Service Management architecture.

Cloud servicesRunbook Automation

On-premises productsIBM Control DeskServiceNow

Page 20: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture – #15 Usage analytics

19

Usage analytics The team uses analytics to learn how users interact with the application and measure success through metrics.

Cloud servicesGoogle Analytics

On-premises productsIBM Digital Analytics

Page 21: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture – #16 Application Consumers & #17 DevOps

20

Application consumers When users interact with the application, they can provide feedback on their requirements and how the application is meeting them, which is captured by analytics as well.

DevOps engineers DevOps engineers manage the entire application lifecycle while they respond to feedback and analytics from the running application.

Page 22: Digital Disruption with DevOps - Reference Architecture Overview

Overall Architecture – #18 Transformation and connectivity & #19 Enterprise User Directory

21

Transformation and connectivity The enterprise network is protected by a firewall and must be accessed through transformation and connectivity services and secure messaging services.

Cloud servicesIBM API ConnectIBM Secure Gateway

Enterprise user directory The security team uses the user directory throughout the flow. The directory contains information about the user accounts for the enterprise.

On-premises productsIBM Security Directory Server

Page 23: Digital Disruption with DevOps - Reference Architecture Overview

Client example: Bank

1. Developer creates code using IDE.2. Source code stored in SCM (Git).3. Gerrit (team collaboration & pipeline)

manages isolated testing.4. Automated and manual testing

executed.5. Testing results merged into pipeline

once stage gates passed.

6. Build automation initiated (Jenkins), together with additional integration testing.

7. Build artefacts push to repository (Nexus).

8. UCD pulls build artefacts from Nexus and initiates platform deployment.

9. UCD deploys applications and configs to target platforms.

22

Page 24: Digital Disruption with DevOps - Reference Architecture Overview

Client example: Healthcare. Hybrid cloud DevOps

23

Microsvc1.bluemix.org

Microsvc2.bluemix.org

Microsvc3.bluemix.org

UI.AppXXX.bluemix.org

Page 25: Digital Disruption with DevOps - Reference Architecture Overview

Client example: Healthcare. Cloud native DevOps

24

Dev.AppXXX.bluemix.org QA.AppXXX.bluemix.org UAT.AppXXX.bluemix.org AppXXX.bluemix.org

Page 26: Digital Disruption with DevOps - Reference Architecture Overview

DevOps Innovation Workshop

25

Review the current state1. Business goals, IT goals, current

initiatives2. DevOps3. Requirements4. Environments5. Repositories6. Roles / Organization7. Metrics8. Other

Prioritize challenges to be resolvedCreate a first pass at an improvement roadmap

The whiteboard

Page 27: Digital Disruption with DevOps - Reference Architecture Overview

Available Now!

26

The DevOps Adoption Playbook

Available now at all major booksellers!

Order your copy today and receive 35% off with discount code VBN25 when you order on Wiley.com:

http://www.wiley.com/buy/9781119308744

More details: http://devopsadoptionplaybook.com

Page 28: Digital Disruption with DevOps - Reference Architecture Overview

27

THANK YOU