Upload
wso2
View
685
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Chris Haddad's a workshop at GigaOm Structure Con 2013 held from 19-20 June.
Citation preview
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