achieve business agility with cloud apis, cloud-aware apps, and cloud devops paas

38
Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS Chris Haddad @cobiacomm on Twitter http://blog.cobia.net/cobiacomm Read more about Platform as a Service at http://blog.cobia.net/cobiacomm/tag/paas /

Upload: wso2

Post on 01-Nov-2014

683 views

Category:

Technology


1 download

DESCRIPTION

Chris Haddad's a workshop at GigaOm Structure Con 2013 held from 19-20 June.

TRANSCRIPT

Page 1: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Achieve business agility with Cloud APIs, Cloud-aware Apps, and

Cloud DevOps PaaSChris Haddad

@cobiacomm on Twitterhttp://blog.cobia.net/cobiacomm

Read more about Platform as a Service at http://blog.cobia.net/cobiacomm/tag/paas/

Page 2: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Cloud IT Drivers

Page 3: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Cloud Delivers The Speed of Now• Time to create project

workspace• Time to build, integrate, test• Time to approve, promote• Time to deploy, release• Dwell time – time waiting for

the next operation to commence or complete

Page 4: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Cloud Yields

Page 5: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Cloud-Oriented Delivery Domains

Page 6: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Cloud Architecture Crossroads

Page 7: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

ResourceTier

Cloud Scale and Distributed Providers

Functional Role

Client Tier

API aggregation and orchestration

API aggregation and orchestration Resource

Services

Functional Role

Presentation and Mashups

Functional RoleFunctional

code

Presentation RolePresentation and

MashupsPresentation and Mashups

ResourceServices

Private Applications

Public Cloud Services

Business ProcesBusiness

ProcessBusiness ProcessBusiness Process and

Business Rules

Page 8: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Cloud Architecture Best PracticesTransitioning to a New normal – Traditional practices may not apply• Distributed and federated interactions

– Event based, heterogeneous systems, network latency• Configurable containers and engines

– Declarative data, rules, and process definitions• De-normalized and simplified data models

– Hadoop/BigTable, Hypertext media, simple NoSQL entities• Expect failure

– Systems span transactional control• Applications decomposed into distinct services

– Federated environment drives autonomy, statelessness, and composition

Page 9: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Cloud Application Patterns and Anti-Patterns

Page 10: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Cloud Aware Application Goals and Underlying Cloud Patterns

• Maximize utilization– Requires deterministic performance – Load balance based on tenant, service, and workload, context

• Increase reliability, availability, scalability– Shared nothing architecture– Stateless server-side elements– Consensus protocols

• Ecosystem platform– Monetize assets based on business value– Tenant/Consumer personalization and isolation– Sharing domain specific business capabilities

Page 11: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Architectural Difference Between Web Application and Cloud-aware Application

Web Application• Synchronous request-reply

interaction• Centralized state (i.e. single

database) and session management

• Clustered server instances• Silo architecture

Cloud-aware Application• Asynchronous interaction• Queues and workers• Scale out across datacenters

and providers• Distributed state and session

management• Autonomous service instances• Tenant context personalization• Shared JVM / Shared Schema• Shared nothing architecture

Page 12: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Shift towards Cloud-aware ApplicationProgramming Model• Actor model (i.e. message passing instead of function invocation• RESTful interactions• Dynamic recoverability• Consensus protocols• Asynchronous rather than synchronous interactions• Shared nothing architecture• Data partitioning and sharding• Federated data queries• API/Service orchestration• Functional programming•MapReduce – and the Thirteen Dwarf patterns

Page 13: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Source: http://edcforums.com/threads/the-atwood-collectors-thread-part-2.101226/page-5

Redesigned Tools

Page 14: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

PaaS ArchitectureWhat is a tenant?• An isolated or personalized run-time environment context that cannot be

shared across PaaS consumers

• Tenant specific personalization can occur across multiple personalization dimensions• Information access privileges• Information aggregation and composition• Business processes and rules• Service levels and Quality of Service• Security policies, subscriber entitlements, and social network access privileges• Monetization rates

• Personalization may require loading code, configuration files, or data

• Tenant isolation dictated by expected performance, security requirements, and legacy technology.• PaaS security managers, code deployers, and tenant-aware load balancing

influences required container-level isolation

Page 15: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

PaaS ArchitectureWhat is a container?• A standalone, Internet addressable node offering application

platform services• Web application hosting, API management, integration endpoint

hosting, ESB mediation, registry services, identity management, relational database

• Containers host tenant resources and context• Code, configuration files, data, process definitions, rules, policies,

entitlements

• Containers may serve • a single tenant at a time (dedicated), or • multiple-tenants at a time (shared)

Page 16: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

PaaS Architecture

What is a partition?

• Partitions define distinct container resource pools

• Partition containers to tune container sharing, service resource allocation, QoS, and utilization

• Containers may be assigned into service-specific or tenant specific partitions

Page 17: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Cloud Partitioning Strategies

Page 18: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Consider Enhanced Virtualization Models

WSO2 Stratos 2.0 supports all models and model combinations

Stratos Carbon (Shared Process)

Agilit

y

Resource Optimization

Pure Hardware

Virtual Machine

Stratos Cartridge (LXC)

IaaS Machine Instance

Page 19: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Cloud Native PaaS Difference

Page 20: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Partitioning and Container Tenancy Impact

Tenant-First = Three Tenants and 5 Containers

Page 21: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Partitioning and Container Tenancy Impact

Service-First = Three Tenants and 3 Containers40% footprint reduction

Page 22: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Tenant-aware and Service-aware Load Balancing

Page 23: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Total Cost of Ownership Levers• Rapid elasticity

• Provides ability to turn-on additional containers only when demand requires more capacity

• Provides ability to turn-off under utilized containers and lower expense

• Measured Service and Pay Per Use• No foundational infrastructure investment required• Possibly a minimal up-front registration investment• Only charged for usage (e.g. platform up-time, deployed application count,

transaction count)

• Resource Pooling• Minimize usage cost by sharing and re-using resources

• On-demand self-service• Create and provision platform without third party participation

Page 24: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Total Cost of Ownership Advantage

• Rapid elasticity• Containers shared across multiple tenants• Capacity managed per service, not per tenant• Single, flat container partition space enables maximum sharing• Containers may be partitioned by service

• Resource Pooling• Application footprint lower than single tenant, dedicated container

deployment• Lazy loading further minimizes footprint

Page 25: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Total Cost of Ownership Advantage

• Measured Service and Pay Per Use• Cloud infrastructure investment recaptured after 4 tenants

subscribe (at full-time usage per tenant)• Can meter and bill based on business transaction usage,

application count

• On-demand self-service• Application teams do not have to specify infrastructure topology

(i.e. server count)• Subscribe to application platform services instead of application

server instances

Page 26: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Attributes influencing Total Cost of Ownership

• Container sharing and tenant isolation level• Tenant Density per JVM or Application Server• Container license cost

•Read entire methodology at •http://blog.cobia.net/cobiacomm/2012/05/13/paas-tco-and-paas-roi-multi-tenant-shared-container-paas

/

Page 27: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Open Source PaaSCloud Native Architecture

http://blog.cobia.net/cobiacomm/2013/04/18/cloud-native-paas-architecture/

Page 28: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

28

WSO2 Architecture Advantage

Availability Scalability Management

Load monitor Tenant partitioningPrivate jet mode

Cloud controller

Balancing and failover across hybrid clouds

Ghost deployment BigData Logging infrastructure

State replication and session replication

BAM 2.0 architecture Artifact Distribution Controller and

Deployment synchronizationMultiple load balancers with

keepalived or DNS RRAuto-scaling P2 Repository

Native multi-tenancy Elastic Load Balancer Consistent management and infrastructure services across

entire platformDynamic Clustering Multi-tenant shared

container Management console

Page 29: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Close the Loop between Cloud-apps, Cloud PaaS, and Cloud Infrastructure

• Specify Scale Parameters– Tenancy and sessions– Partitioning and sharing

• Monitor Quality of Service– Service tier– Performance and utilization– Expected load per API call or web request

• Trigger Provisioning and Deployment Events– Automated Provisioning– Automated Deployment

Page 30: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Automated Provisioning Service

Page 31: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Automated App Deployment Service

Page 32: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Fast Time to Value with On-demand Contextual Personalization

Increase agility• Rapidly adapt and fulfill new market demand• Reduce time to introduce new services, applications, and

products into long tail market(s)

On-demand Contextual Personalization

• Information access and social network access privileges• Information aggregation and composition• Business processes and rules• Service levels, Quality of Service, and monetization rates• Security policies

Page 33: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

33

Cloud Business Value For Development TeamsLower development barriers • Provide on-demand Application Development project

infrastructure and run-time environments• Catalogue of re-usable open APIs, cloud services, and

domain frameworks

Lower adoption barriers • On-demand web application and Cloud API subscriptions via a

self-service provisioning portal• Establish searchable registry of app, service, api, and data

descriptors• Reliable, available, and scalable solutions

Page 34: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Best Practice Adoption and Process Repeatability

• Cost-effective, development, collaboration, and deployment infrastructure enabling a long tail of application development• Architecture templates and application platform services

• A shared environment for cross-organization application development and delivery• Governed, iterative lifecycle management across hybrid

clouds and composite applications• IT Business performance metrics and analytics

• Infrastructure enabling user experience composition across multiple disparate application providers

Page 35: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Enterprise DevOps PaaSBridging Development with Deployment

Page 36: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

DevOps Streamlines IterationsA developer’s perspective

Page 37: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

Service Performance Metrics

• Foundational– Time to Market

• Optimization– Portfolio Efficiency

• Transformational– Productivity

Page 38: Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps PaaS

38

7 +/- 2 Cloud Roadmap Objectives

1. Engage stakeholders in a collaborative development workspace

2. Promote best practice workflow, architecture, and governance practices

3. Deploy applications into a Cloud run-time environment

4. On-demand application subscriptions via a self-service provisioning portal

5. Share applications across multiple tenants (e.g. departments, workgroups, employees, partners)

6. Scale run-time to meet usage7. Deploy Open APIs8. Encourage API adoption via API Store9. Track business activity and analyze Cloud

service usage, performance, and cost