scalable soa in your own open source cloud
DESCRIPTION
Cloud computing is today’s rage and tomorrow's threat - proprietary clouds have the potential to become a worse lock-in platform than the proprietary world of yesterday. In this talk we examine how you can put together a pure open source cloud for SOA and enjoy the benefits of service-oriented cloud computing without the risks. Cloud computing is primarily about three things: on-demand scaling for peak load management, multi-tenant sharing, and parallel execution. On-demand scaling refers to the ability of the cloud to allow an application to consume more resources as the demand on the application increases and for this to happen without over participation from the developer. Multi-tenancy relates to how a single application can be shared and used securely (and independently) by different consumers. Finally, parallel execution enables an application to request additional hardware and to execute in theentire set of nodes as a parallel computer. The most challenging part of the puzzle is providing a single rogramming model for application developers. Proprietary clouds such as Amazon EC2, Google AppEngine and Microsoft Azure do offer many of these capabilities. However, signing up to a proprietary cloud is like checking into the proverbial Hotel California: “You can check out but you can never leave!” During this presentation we will look at how a collection of open source components can be combined to form an open source cloud that addresses all aspects of cloud computing but that also leverages open standards to establish a model whereby applications running on open source clouds can fully interoperate with other cloud platforms as well.TRANSCRIPT
Scalable SOA in Your Own Open Source Cloud
Sanjiva Weerawarana, Ph.D.
Founder, Chairman & CEO, WSO2Founder, Director & Chief Scientist, Lanka Software Foundation
Member, Apache Software FoundationEmeritus Board Member, Open Source InitiativeVisiting Lecturer, Univ. of Moratuwa, Sri Lanka
April 2-3, 2009, Arlington, VA.
Page 2
About me
IBM Research from 1997 to 2005Worked on most of the key Web services specifications
Co-author of WSDL, WS-Eventing, BPEL4WS, ...
Contributor to Apache Web servicesContributor to Apache SOAP, Apache Axis, Apache Axis2, Apache WSIF, Apache Neethi, Apache Axiom, ...
Member of Apache Software FoundationFounder & Chief Scientist, Lanka Software Foundation(Emeritus) Board Member of Open Source InitiativeStarted WSO2 in 2005
Open source SOA platform company
Page 3
Overview
“Cloud computing” - my version!
Clouds & SOA
Open {source, standards, services} for clouds
Avoiding the risks
Page 4
Cloud computing
Essentially, the technology to make computing a utility is now widely available
“Plug in” and use what you need, when you need it, where you need it
Brings togetherVirtualization, Grid computing, Utility computing, Network computing
Ranges from low level to high levelLow level: platform level services for acquiring computation, storage & communication
Amazon Web Services (EC2, S3, etc.)
High level: fully managed, fixed programming modelGoogle AppEngine
Public vs. private clouds
Page 5
Key characteristics & benefits
(Not necessarily what vendors provide today, but this is what makes cloud computing bring real value for SOA!)
Auto-scaling (elasticity)
Multi-tenancy
Scalable parallel computing
Other benefits includeCost savings by not peak provisioningFaster deploymentOutsource non-core skillsUtility billing
Page 6
Auto-scaling (elasticity)
Ability for the resources to be scaled up, and down, based on demand
Enables efficient use of compute resourcesNo need to provision for maximum load
Requires application or middleware to do work to manage loadQueue up incoming requestsDistribute amongst available worker nodesMonitor queue length and adjust worker pool accordingly
Page 7
Multi-tenancy
Ability for a single application to be used by multiple customers simultaneously
Enables scaling of customers without having to assign a server cluster per customer
Critical is data isolationSeparate databases to tables to multi-tenant tables
Application authors must be able to write multi-tenant applications
Middleware can provide tools to help
Page 8
Scalable parallel computing
Ability for the elastic group of nodes to work together as a parallel computer
Enables application to engage as many nodes as needed for the problem at hand
Requires programming modelMPI-style low level to Map-Reduce/Dyad style
Requires large scale data management solutionDistributed file systems to DHTs to group communication
Page 9
Role of clouds in SOA
Summary: a cloud is a cost-effective deployment platform for your SOA
Basic levelUse virtualized platform as a convenient provisioning tool
Advanced levelService and application authors write services which auto-scale, are multi-tenant and possibly use parallel computing
Page 10
Virtualized deployment in a cloud
Low level is easyMake VM image with your software and boot it upMost “cloud” products do just that!
Not any different from just a regular deploymentStill advantageous – no need to go thru deployment/configuration pain!
Any product can be deployed this wayNo need for product to be modified (as long as OS is supported on the virtualization platform)
Page 11
Auto-scaling services: Apache Axis2 / WSO2 WSAS approach
Page 12
Auto-scaling services: Apache Axis2 / WSO2 WSAS approach
Load Increases
Page 13
Auto-scaling services: Apache Axis2 / WSO2 WSAS approach
Startup new instances
Page 14
Auto-scaling services: Apache Axis2 / WSO2 WSAS approach
New instances join group
Page 15
Auto-scaling services: Apache Axis2 / WSO2 WSAS approach
Load Decreases
Page 16
Auto-scaling services: Apache Axis2 / WSO2 WSAS approach
Terminate instances
Page 17
Writing multi-tenant services
Objective: allow different customers / users to use the same service as if it were their own
Having the service be multi-tenant vs. running a different server for each gives all the sharing advantages
IssuesAuthentication & authorizationData
From database per tenant to multi-tenant tablesSecurity / protection
Server architecture for scalabilityPrograming model for service authors
Page 18
Scalable parallel computing
Service implementation may need to use variable amount of compute resources
Can bring in parallel computing infrastructureE.g., map-reduce
Page 19
Open source / standards / servicesfor clouds
Risk of hard vendor lock-in with clouds!
Services in the cloud are a new lock-in risk
Open cloud manifesto(IMO) too much marketing, too little real valueReally, too early to attempt to standardize and define what “open” means
Page 20
Open source cloud platforms
Open source alternatives for all aspects of cloud computing exist and are evolving
Join the communities or support them commercially
Set up your own cloud, deploy scalable middleware and governance
“Private cloud” is a good thing, especially for large organizations
Page 21
Summary
“Cloud computing” provides a cost-efficient, convenient deployment architecture for SOA
Vendor lock-in risks are higher with cloud computing
Open source is driving innovation in cloud computing and provides great way to avoid lock in
Still very early days .. will take time to mature & stabilize!
http://www.acct.org/Questions.jpg
http://sanjiva.weerawarana.org/