Delivering Applications Continuously to Cloud

40
Delivering Applications Continuously to Cloud © 2013 IBM Corporation Sanjeev Sharma IBM Worldwide Lead – DevOps Technical Sales Executive IT Specialist, IBM Software Group [email protected] Twitter: @sd_architect Blog: http://bit.ly/sdarchitect Author: DevOps for Dummies: http://ibm.co/devopsfordummies
  • date post

    14-Sep-2014
  • Category

    Technology

  • view

    2.029
  • download

    3

description

Technology is transforming how the world operates thanks to cloud, mobile, social business and big data being key catalysts to innovation. While each of these stands on their own, they enable the others at the same time. But to innovate at the speed of business, you need to deliver the software that drives it. That is where DevOps come in. DevOps enables organizations to maximize their ability to leverage these technologies for innovation. This webinar will focus on Cloud and DevOps, describing how IBM's DevOps solution helps organizations maximize their ability to drive software innovation by leveraging the flexibility, scalability and services offered by a Cloud Computing solution. We will discuss the benefits of using Cloud across the software delivery lifecycle including development, testing, and operations and how that lifecycle can be maximized with DevOps. We will introduce integrations between IBM UrbanCode Deploy and IBM Cloud offerings highlighting the value they can bring to your organization through the integration and automation of provisioning and deployment capabilities.

Transcript of Delivering Applications Continuously to Cloud

Page 1: Delivering Applications Continuously to Cloud

Delivering Applications Continuously to Cloud

© 2013 IBM Corporation

Sanjeev SharmaIBM Worldwide Lead – DevOps Technical SalesExecutive IT Specialist, IBM Software [email protected]

Twitter: @sd_architectBlog: http://bit.ly/sdarchitect Author: DevOps for Dummies: http://ibm.co/devopsfordummies

Page 2: Delivering Applications Continuously to Cloud

Agenda

• What is DevOps?• DevOps Practices

o Continuous Delivery / Deploymento Infrastructure as Code

• Cloud Platform• Cloud Workloads and DevOps• Continuous Deployment to Cloud• IBM DevOps for Cloud Solution

Page 3: Delivering Applications Continuously to Cloud

Agenda

• What is DevOps?• DevOps Practices

o Continuous Delivery / Deploymento Infrastructure as Code

• Cloud Platform• Cloud Workloads and DevOps• Continuous Deployment to Cloud• IBM DevOps for Cloud Solution

Page 4: Delivering Applications Continuously to Cloud

Market trends and expected client business outcomesDependent on rapid Software Innovation and Delivery

4

Continuousclient experience

Partner valuechain

Cloud-basedServices

Systems of Engagement Systems of Record

SAP HR

DB ERP

Systems of Interaction

Leverage cloud to enable flexibility and offer new services

Integrate, evolve and maintain stability of services and comply with any regulations

Rapidly deliver differentiating digital content, applications and services to grow revenues & obtain new customers

Provide differentiating client experience to meet the needs of empowered users

Enable a software supply chainInternet of Things

Deliver software based innovation to enable machine to machine interactions

Page 5: Delivering Applications Continuously to Cloud

Fuels investments in

innovation

Drives need for continuous IT

optimization

Optimization Innovation

A Balancing Act

Page 6: Delivering Applications Continuously to Cloud

6

Capabilities and User Experience Current Emerging (Additive)

Time to Value Planned Opportunistic

Primary Workload Types Transactional Transactional +Big Data, Analytics, Mobile, Social

Application Architecture Fault Tolerant Recovery Oriented

Service Sourcing Develop Consume and Assemble, Polyglot (Public and Private)

Delivery Model Planned Incremental (DevOps)

Development and Operations Team Sizes 100s and Costly 10s with built-in DevOps automation

Release Frequency Months to Years Days to Weeks, based on business opportunity

Integration Frequency Weeks Continuous

Infrastructure Deployment & Changes

Days Minutes

Operational Model External Systems Management

Application-awareness, Continuous Availability & Optimization

AP

PD

EV

OP

S

Changing business demands are impacting - Application Architecture, Development & Operations

Page 7: Delivering Applications Continuously to Cloud

Accelerate Software Delivery

Balance speed, cost, quality and risk

Reduce time to customer feedback

DevOps

Enterprise capability for continuous software delivery that enables clients to seize market opportunities and reduce time to customer feedback

7 7

Continuous Innovation, Feedback and Improvements

DevOps Lifecycle

Operations/Production

Development/TestCustomers

BusinessOwners

Page 8: Delivering Applications Continuously to Cloud

William Deming – American statistician

Major influencer of Japanese manufacturing and business

Famous for Plan-Do-Check-Act cycle (Deming Cycle)

PDCA cycles found in DevOps

8

William Edwards Deming

Plan Do

CheckAdjust

Deming Cycles and DevOps

Qualit

y

Plan Do

CheckAdjust

Plan Do

CheckAdjust

Page 9: Delivering Applications Continuously to Cloud

Overhead and Rework

Valuable Work 80%

20%

60%

40%

Removing WasteDevOps shares ideas with Lean such as the removal of waste from business processes

Waste of overproduction

Waste of time and resources waiting

Waste of processes themselves (overhead)

Waste of poor quality products

9

Page 10: Delivering Applications Continuously to Cloud

DevOps approach: Apply Lean principles to software innovation and delivery to create a continuous feedback loop with customers

Line-of-business

Customer

1

3

2

1. Get ideas into production fast2. Get people to use it3. Get feedback

Adopt DevOps approach to continuously manage changes, obtain feedback and , deliver changes to users

Eliminate any activity that is not necessary for learning what customers want

Page 11: Delivering Applications Continuously to Cloud

DevOps Solution: Adoption paths, open platform and key capabilities

Deployment

Provisioning

Release / Deploy

Develop /Test

Monitor / Optimize

Monitoring

Customer Feedback

Code

Test

Portfolio Management

Requirements

Plan /Measure

Change & Configuration Management

Dashboards/Analytics

Business Owner

PlatformOperations

ServiceDeveloper

Collaboration

TargetCustomer

Jazz, OSLC and Open Standards Platform

Page 12: Delivering Applications Continuously to Cloud

DevOps Solution: Adoption paths, open platform and key capabilities

Deployment

Provisioning

Release / Deploy

Develop /Test

Monitor / Optimize

Monitoring

Customer Feedback

Code

Test

Portfolio Management

Requirements

Plan /Measure

Change & Configuration Management

Dashboards/Analytics

Business Owner

PlatformOperations

ServiceDeveloper

Collaboration

TargetCustomer

Jazz, OSLC and Open Standards Platform

Deployment Automation

Cloud Platform

Page 13: Delivering Applications Continuously to Cloud

Agenda

• What is DevOps?• DevOps Practices

o Continuous Delivery / Deploymento Infrastructure as Code

• Cloud Platform• Cloud Workloads and DevOps• Continuous Deployment to Cloud• IBM DevOps for Cloud Solution

Page 14: Delivering Applications Continuously to Cloud

Continuous Delivery is a MUST, Continuous Deployment is an

OPTION. Having the capability to continuously Deploy is more important than actually doing

it in a continuous manner out to Production

http://sdarchitect.wordpress.com/2013/10/16/understanding-devops-part-6-continuous-deployment/

Continuous Delivery v. Continuous Deployment

Continuous Delivery doesn’t mean every change is deployed to production ASAP. It means every change is proven to be deployable at any time

- Carl Caum

Page 15: Delivering Applications Continuously to Cloud

Infrastructure as Code/Software Defined Environment

package "apache2" do

  package_name node['apache']['package']

end

service "apache2" do

  case node['platform_family']

  when "rhel", "fedora", "suse"

    service_name "httpd"

    # If restarted/reloaded too quickly httpd has a habit of failing.

    # This may happen with multiple recipes notifying apache to restart - like

    # during the initial bootstrap.

    restart_command "/sbin/service httpd restart && sleep 1"

    reload_command "/sbin/service httpd reload && sleep 1"

  

http://sdarchitect.wordpress.com/2012/12/13/infrastructure-as-code/

Page 16: Delivering Applications Continuously to Cloud

Deployment Automation

http://sdarchitect.wordpress.com/2013/10/23/adopting-devops-part-iv-adopting-continuous-deployment/

What one deploys may be anything from simple configuration

changes; to incremental code changes towards a new

feature; to Database schema changes; to changes to the

environment; to the whole stack.

Not just the application• Application Components• Middleware Configurations• Database Changes• Environment Configurations• Orchestrating the deployment

process

Page 17: Delivering Applications Continuously to Cloud

Agenda

• What is DevOps?• DevOps Practices

o Continuous Delivery / Deploymento Infrastructure as Code

• Cloud Platform• Cloud Workloads and DevOps• Continuous Deployment to Cloud• IBM DevOps for Cloud Solution

Page 18: Delivering Applications Continuously to Cloud

IaaS: Cut IT expense and complexity through a cloud enabled data center

PaaS: Accelerate time

to market with cloud platform services

SaaS: Gain immediate access with business solutions on cloud

Innovate business models by becoming a cloud service provider

Adoption patterns are emerging for successfully beginning and progressing cloud initiatives.

Page 19: Delivering Applications Continuously to Cloud

Agenda

• What is DevOps?• DevOps Practices

o Continuous Delivery / Deploymento Infrastructure as Code

• Cloud Platform• Cloud Workloads and DevOps• Continuous Deployment to Cloud• IBM DevOps for Cloud Solution

Page 20: Delivering Applications Continuously to Cloud

Workloads

Dev-Test

Cloud OE

IaaS and DevOps: Deploying to pre-provisioned ‘static’ environment

20

Page 21: Delivering Applications Continuously to Cloud

Cloud Hosted Environments

Continuously Deliver to Dev and QA (pre- Prod) on

Cloud. Prod is on-prem physical servers or segregated

Cloud

Dev-Test Workload

Page 22: Delivering Applications Continuously to Cloud

CloudOperating

Environment

DevelopmentServices

OperationalServices

InfrastructureServices

ApplicationServices

CREATE CONSUME

CAPACITYVISIBILITY / CONTROL

• Enable applications to be rapidly & incrementally composed from services

• Deliver application changes continuously• Enable continuous availability• Support fit-for-purpose programming models &

services• Embed manageability of services & application• Workload Optimized & Elastic

APIsAPIs

APIsAPIs

APPLICATIONS / WORKLOADS(define user experience, services & programming models; composition model; operational model; differentiation)

• Persistence• Messaging & Workflow• Scripting &

Programming Languages• (Social media) Analytics

• Compute, Storage, Network

• Clustering & Elasticity

• Logging• Monitoring• Security

• Code Repository & Version control

• Continuous build & Test

A Service Oriented Architecture (Cloud Operating Environment)

Page 23: Delivering Applications Continuously to Cloud

Value of Cloud to DevOps Adoption

Dev-Test Value:

Developer/QA Self-service

Access to Production-like Environments

Environment and Middleware Configuration Management

–Infrastructure as Code

Environment Management:

Expendable Environments (Phoenix Servers)

Promotable Environments (Netflix approach)

23

Page 24: Delivering Applications Continuously to Cloud

Agenda

• What is DevOps?• DevOps Practices

o Continuous Delivery / Deploymento Infrastructure as Code

• Cloud Platform• Cloud Workloads and DevOps• Continuous Deployment to Cloud• IBM DevOps for Cloud Solution

Page 25: Delivering Applications Continuously to Cloud

Application Deployment vs Environment Provisioning

Compute | Storage

OS

Packaged Software

Application

Middleware

Compute | Storage

OS

Packaged Software

Middleware

Network

Cloud Platform

Cloud Management

DeploymentAutomation

Capabilities

Security, approvals and promotion of applications through different stages.

Automated Deployment of all components of Application (DB, Web, Mobile)

Automated Middleware configuration required for Application Deployment

Virtual System Pattern Creation and Provisioning

Self Service Portal for VM Provisioning

Image Library (Search / Compare, Versioning, and SW Stacks)

Basic Single Image Composition, Manipulation of images with pre-configured middleware

Multi-tenancy, Isolation, Rapid , Scalable Provisioning

Cloud Administration

Fast Moving…

Slow Moving…

Page 26: Delivering Applications Continuously to Cloud

Deployment Automation

Blueprint

ApplicationResource Template

Continuous Delivery to Cloud

Capture cloud pattern to be used for creating an Environment

Incremental deployment of application builds to cloud environments

Map the application to multiple cloud patterns

The freedom to provision a version of a full stack or incrementally deploy an application version into an already provisioned environment

Environments | Processes | Configurations

Create env from pattern

Deploy app QA PRODDEVDEVDEVDEV

Import pattern

Cloud Platform

Page 27: Delivering Applications Continuously to Cloud

Agenda

• What is DevOps?• DevOps Practices

o Continuous Delivery / Deploymento Infrastructure as Code

• Cloud Platform• Cloud Workloads and DevOps• Continuous Deployment to Cloud• IBM DevOps for Cloud Solution

Page 28: Delivering Applications Continuously to Cloud

UrbanCode: premier Release and Deploy Automation Solution

28

Enabling clients to more rapidly deliver mobile, cloud, big data and traditional applications with high quality and low risk

IBM UrbanCode Deploy IBM UrbanCode Release

• Simplifies deployment automation for applications

• Manage configurations across environments

• Intelligent deployment artifact tracking• Higher quality with repeatable, reliable,

and governed processes• Technology plugins supported out of the

box

• Define, manage, and coordinate operational releases

• Aggregates applications into single release

• Phases to support quality and geo dispersed deployments

• Coordinate manual and automated tasks• Replaces manual spreadsheets and

documents

Page 29: Delivering Applications Continuously to Cloud

Application Deployment Automation

Manage application components and versions

Manage environment configuration from dev/test through production

29

Deployment of Applications across Environments

Compliance: audit trails quality gates

Easy to use process designer

Inventory: what is where

IBM UrbanCode Deploy

Page 30: Delivering Applications Continuously to Cloud

Line of Business

Deployment and Provisioning

SmartCloud OrchestratorIBM Pure Application System

30

IBM UrbanCode Deploy

IBM UrbanCode Release

Page 31: Delivering Applications Continuously to Cloud

Improve Delivery Lifecycle with Software Defined Environments

SCM Build Automation

IBM Endpoint Manager

QA PROD

Provision platformExecute application deployment and manage settings across environments

Patch/update

Publish build

Pull changes

SmartCloud Orchestrator

Platform Config Management

Environments

Deploy early and often to ensure higher quality and faster releases using repeatable, reliable, and managed automation

DEVDEVDEVDEV

IBM PureApplication System

Page 32: Delivering Applications Continuously to Cloud

UrbanCode Deploy supports Virtual System Patterns

Virtual Application Patterns

• Highly automated deployments using expert patterns

• Business policy driven elasticity

• Built for the cloud environment

• Leverages elastic workload management services

Best TCOcloud applications

Virtual System Patterns

• Automated deployment of middleware topologies

• Traditional administration and management model

• Application and infrastruture driven elasticity

Improved TCOvirtualized applications

Standard TCOexisting applications

Virtual Appliances• Standard software installation

and configuration on OS

• Images created through extend/capture

• Traditional administration and management model

• Infrastructure driven elasticity

Virtual Appliance

Metadata

Softwareapplication

Operatingsystem

Virtual Appliance

Virtual Appliance

Metadata

ApplicationServer

Operatingsystem

Virtual Appliance

Metadata

ApplicationServer

Operatingsystem

Virtual Appliance

Metadata

HTTPServer

Operatingsystem

Virtual Application PatternsVirtual System PatternsVirtual Appliances

Softwareapplication

Page 33: Delivering Applications Continuously to Cloud

IBM UrbanCode Deploy

Blueprint

ApplicationResource Template

Continuous Delivery to Cloud

Capture cloud pattern to be used

for creating an Environment

Incremental deployment of

application builds to cloud

environments

Map the application to multiple

cloud patterns

The freedom to provision a version of a full stack or incrementally deploy an application version into an already provisioned environment

Environments | Processes | Configurations

Create env from pattern

Deploy app QA PRODDEVDEVDEVDEV

Import pattern

Page 34: Delivering Applications Continuously to Cloud

Application Deployment vs Environment Provisioning

Compute | Storage

OS

Packaged Software

Application

Middleware

Compute | Storage

OS

Packaged Software

Middleware

Network

Cloud

Provisioning (PureApplication System or SmartCloud Orchestrator)

Cloud Management

IBM UrbanCode Deploy

Capabilities

Security, approvals and promotion of applications through different stages.

Automated Deployment of all components of Application (DB, Web, Mobile)

Automated Middleware configuration required for Application Deployment

Discover MW Configuration for WAS

Virtual System Pattern Creation and Provisioning

Self Service Portal for VM Provisioning

Image Library (Search / Compare, Versioning, and SW Stacks)

Basic Single Image Composition, Manipulation of images with pre-configured middleware

Multi-tenancy, Isolation, Rapid , Scalable Provisioning

Cloud Administration

Page 35: Delivering Applications Continuously to Cloud

Support for Chef Solo to configure a Component

Chef is a ruby-based automation platform created by Opscode

Chef Solo runs a local client to “converge” the node which just means execute the automation

We can embed Chef recipes in a Component version, and use properties known to UCD to drive customization of the recipe

– Example: replace token with value of database hostname, which will then by used by the recipe to configure the connection

Optionally install chef-solo onto the host, or pre-install into virtual image

Replace tokens in the *_node.json files which are included in the component artifacts

Invoke chef-solo –N <nodeName> to configure the host

Page 36: Delivering Applications Continuously to Cloud

Application Deployment AutomationWAS Configuration Template Creation

7 -

Dep

loy

Application-centric middleware configuration management

5 - Publish

Middleware Administrator-or-Application Developer

Exemplar WAS Cell

2 - Plugin

3 - Import 4 - Assemble

WAS Configuration Template

Artifact Library

Deployment Automation Developer

6 – Define Deployment Process

7 -

Dep

loy

7 -

Dep

loy

Application EnvironmentsQA ProdDev

Application

EAR

WAR

DB

Cluster

template

Page 37: Delivering Applications Continuously to Cloud

Accelerate continuous testing with Service Virtualization

Deploy what is ready, virtualize the rest - Enable continuous integration testing and progressive deployments throughout the software delivery lifecycle for complex applications

Automate the creation of virtual test environments as part of the end-to-end DevOps process Establish a virtual system pattern with automated deployment to standardize and share test environments quickly and easily across projects and teams

Enable an end-to-end Agile software delivery process Increase the frequency of releases by testing earlier in the development cycle and deploying reliably to pre-production and production environments..

Databases Mainframeapplications

Third-partyServices

Rational Test Virtualization Server

Virtualized services

Dev QA

Deploy

Rational Test Workbench

TestConfigure

IBM UrbanCode Deploy

RTW plugin RTVS plugin

1

23

IBM UrbanCode Deploy v6.0

Page 38: Delivering Applications Continuously to Cloud

Plan / Measure Development / Test Release / Deploy Monitor / Optimize

Scaled

Reliable

Repeatable

Practiced

DevOps maturity model

Define release with business objectives

Measure to customer value

Plan and source strategically

Dashboard portfolio measures

Link objectives to releasesMeasure to project metrics

Automate problem isolation and issue resolution

Optimize continuously

Improve continuously with development intelligence

Test Continuously

Manage environments through automation

Provide self-service build, provision and deploy

Monitor using business and end user context

Centralize event notification and incident resolution

Deliver and build with testCentralize test management

Link lifecycle information

Plan departmental releases and automate status

Automated deployment with standard topologies

Optimize applications Use enterprise issue resolution procedures

Deliver and integrate continuously

Manage data and virtualize services for test

Standardize and automate cross-enterprise

Automate patterns-based provision and deploy

Document objectives locallyManage department

resources

Monitor resources consistently

Collaborate Dev/Ops informally

Manage Lifecycle artifactsSchedule SCM integrations

and automated builds Test following construction

Plan and manage releases Standardize deployments

Industry norm

Page 39: Delivering Applications Continuously to Cloud

DevOps for Dummies – available now!

39 http://ibm.co/devopsfordummies

Page 40: Delivering Applications Continuously to Cloud

40

© Copyright IBM Corporation 2013. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.