Chris Haddad's a workshop at GigaOm Structure Con 2013 held from 19-20 June.
<ul><li> 1. 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/ </li> <li> 2. Cloud IT Drivers </li> <li> 3. 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 </li> <li> 4. Cloud Yields </li> <li> 5. Cloud-Oriented Delivery Domains </li> <li> 6. Cloud Architecture Crossroads Innovation Familiarity </li> <li> 7. Resource Tier 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 Role Functional code Presentation Role Presentation and Mashups Presentation and Mashups Resource Services Private Applications Public Cloud Services Business Proces Business Process Business ProcessBusiness Process and Business Rules </li> <li> 8. Cloud Architecture Best Practices Transitioning 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 </li> <li> 9. Cloud Application Patterns and Anti-Patterns 18 Deterministic performance Deploy and execute on optimum topology Separation of concerns Embarrassingly Parallel / Shared Nothing ArchitectureMinimal Consumption Failure Resilient Leaky interfaces Tightly coupled modules Monolithic footprint Single threaded, serial execution Resource locks Single tenancy model </li> <li> 10. 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 </li> <li> 11. 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 </li> <li> 12. Shift towards Cloud-aware Application Programming 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 </li> <li> 13. Source: http://edcforums.com/threads/the-atwood-collectors-thread-part-2.101226/page-5 Redesigned Tools </li> <li> 14. PaaS Architecture What 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 </li> <li> 15. PaaS Architecture What 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) </li> <li> 16. 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 </li> <li> 17. Cloud Partitioning Strategies </li> <li> 18. Consider Enhanced Virtualization Models WSO2 Stratos 2.0 supports all models and model combinations Stratos Carbon (Shared Process) Agility Resource Optimization Pure Hardware Virtual Machine Stratos Cartridge (LXC) IaaS Machine Instance </li> <li> 19. Cloud Native PaaS Difference </li> <li> 20. Partitioning and Container Tenancy Impact Tenant-First = Three Tenants and 5 Containers </li> <li> 21. Partitioning and Container Tenancy Impact Service-First = Three Tenants and 3 Containers 40% footprint reduction </li> <li> 22. Tenant-aware and Service-aware Load Balancing </li> <li> 23. 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 </li> <li> 24. 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 </li> <li> 25. 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 </li> <li> 26. 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/ </li> <li> 27. Open Source PaaS Cloud Native Architecture http://blog.cobia.net/cobiacomm/2013/04/18/cloud-native-paas-architecture/ </li> <li> 28. WSO2 Architecture Advantage Availability Scalability Management Load monitor Tenant partitioning Private 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 synchronization Multiple load balancers with keepalived or DNS RR Auto-scaling P2 Repository Native multi-tenancy Elastic Load Balancer Consistent management and infrastructure services across entire platform Dynamic Clustering Multi-tenant shared container Management console 28 </li> <li> 29. 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 </li> <li> 30. Automated Provisioning Service </li> <li> 31. Automated App Deployment Service </li> <li> 32. 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 </li> <li> 33. Cloud Business Value For Development Teams 33 Lower 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 </li> <li> 34. 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 </li> <li> 35. Enterprise DevOps PaaS Bridging Development with Deployment </li> <li> 36. DevOps Streamlines Iterations A developers perspective </li> <li> 37. Service Performance Metrics Foundational Time to Market Optimization Portfolio Efficiency Transformational Productivity </li> <li> 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 usage 7. Deploy Open APIs 8. Encourage API adoption via API Store 9. Track business activity and analyze Cloud service usage, performance, and cost 38 </li> </ul>