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

Post on 01-Nov-2014

683 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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/

Cloud IT Drivers

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

Cloud Yields

Cloud-Oriented Delivery Domains

Cloud Architecture Crossroads

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

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

Cloud Application Patterns and Anti-Patterns

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

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

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

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

Redesigned Tools

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

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)

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

Cloud Partitioning Strategies

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

Cloud Native PaaS Difference

Partitioning and Container Tenancy Impact

Tenant-First = Three Tenants and 5 Containers

Partitioning and Container Tenancy Impact

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

Tenant-aware and Service-aware Load Balancing

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

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

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

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

/

Open Source PaaSCloud Native Architecture

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

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

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

Automated Provisioning Service

Automated App Deployment Service

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

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

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

Enterprise DevOps PaaSBridging Development with Deployment

DevOps Streamlines IterationsA developer’s perspective

Service Performance Metrics

• Foundational– Time to Market

• Optimization– Portfolio Efficiency

• Transformational– Productivity

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

top related