Scalable SOA in Your Own Open Source Cloud


Published on

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 the
entire 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.

Published in: Technology
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Scalable SOA in Your Own Open Source Cloud

  1. 1. Scalable SOA in Your Own Open Source Cloud Sanjiva Weerawarana, Ph.D. Founder, Chairman & CEO, WSO2 Founder, Director & Chief Scientist, Lanka Software Foundation Member, Apache Software Foundation Emeritus Board Member, Open Source Initiative Visiting Lecturer, Univ. of Moratuwa, Sri Lanka April 2-3, 2009, Arlington, VA.
  2. 2. About me <ul><li>IBM Research from 1997 to 2005 </li></ul><ul><ul><li>Worked on most of the key Web services specifications </li></ul></ul><ul><ul><ul><li>Co-author of WSDL, WS-Eventing, BPEL4WS, ... </li></ul></ul></ul><ul><li>Contributor to Apache Web services </li></ul><ul><ul><li>Contributor to Apache SOAP, Apache Axis, Apache Axis2, Apache WSIF, Apache Neethi, Apache Axiom, ... </li></ul></ul><ul><li>Member of Apache Software Foundation </li></ul><ul><li>Founder & Chief Scientist, Lanka Software Foundation </li></ul><ul><li>(Emeritus) Board Member of Open Source Initiative </li></ul><ul><li>Started WSO2 in 2005 </li></ul><ul><ul><li>Open source SOA platform company </li></ul></ul>
  3. 3. Overview <ul><li>“ Cloud computing” - my version! </li></ul><ul><li>Clouds & SOA </li></ul><ul><li>Open {source, standards, services} for clouds </li></ul><ul><li>Avoiding the risks </li></ul>
  4. 4. Cloud computing <ul><li>Essentially, the technology to make computing a utility is now widely available </li></ul><ul><ul><li>“ Plug in” and use what you need, when you need it, where you need it </li></ul></ul><ul><li>Brings together </li></ul><ul><ul><li>Virtualization, Grid computing, Utility computing, Network computing </li></ul></ul><ul><li>Ranges from low level to high level </li></ul><ul><ul><li>Low level: platform level services for acquiring computation, storage & communication </li></ul></ul><ul><ul><ul><li>Amazon Web Services (EC2, S3, etc.)‏ </li></ul></ul></ul><ul><ul><li>High level: fully managed, fixed programming model </li></ul></ul><ul><ul><ul><li>Google AppEngine </li></ul></ul></ul><ul><li>Public vs. private clouds </li></ul>
  5. 5. Key characteristics & benefits <ul><li>(Not necessarily what vendors provide today, but this is what makes cloud computing bring real value for SOA!) </li></ul><ul><li>Auto-scaling (elasticity) </li></ul><ul><li>Multi-tenancy </li></ul><ul><li>Scalable parallel computing </li></ul><ul><li>Other benefits include </li></ul><ul><ul><li>Cost savings by not peak provisioning </li></ul></ul><ul><ul><li>Faster deployment </li></ul></ul><ul><ul><li>Outsource non-core skills </li></ul></ul><ul><ul><li>Utility billing </li></ul></ul>
  6. 6. Auto-scaling (elasticity)‏ <ul><li>Ability for the resources to be scaled up, and down , based on demand </li></ul><ul><li>Enables efficient use of compute resources </li></ul><ul><ul><li>No need to provision for maximum load </li></ul></ul><ul><li>Requires application or middleware to do work to manage load </li></ul><ul><ul><li>Queue up incoming requests </li></ul></ul><ul><ul><li>Distribute amongst available worker nodes </li></ul></ul><ul><ul><li>Monitor queue length and adjust worker pool accordingly </li></ul></ul>
  7. 7. Multi-tenancy <ul><li>Ability for a single application to be used by multiple customers simultaneously </li></ul><ul><li>Enables scaling of customers without having to assign a server cluster per customer </li></ul><ul><li>Critical is data isolation </li></ul><ul><ul><li>Separate databases to tables to multi-tenant tables </li></ul></ul><ul><li>Application authors must be able to write multi-tenant applications </li></ul><ul><ul><li>Middleware can provide tools to help </li></ul></ul>
  8. 8. Scalable parallel computing <ul><li>Ability for the elastic group of nodes to work together as a parallel computer </li></ul><ul><li>Enables application to engage as many nodes as needed for the problem at hand </li></ul><ul><li>Requires programming model </li></ul><ul><ul><li>MPI-style low level to Map-Reduce/Dyad style </li></ul></ul><ul><li>Requires large scale data management solution </li></ul><ul><ul><li>Distributed file systems to DHTs to group communication </li></ul></ul>
  9. 9. Role of clouds in SOA <ul><li>Summary: a cloud is a cost-effective deployment platform for your SOA </li></ul><ul><li>Basic level </li></ul><ul><ul><li>Use virtualized platform as a convenient provisioning tool </li></ul></ul><ul><li>Advanced level </li></ul><ul><ul><li>Service and application authors write services which auto-scale, are multi-tenant and possibly use parallel computing </li></ul></ul>
  10. 10. Virtualized deployment in a cloud <ul><li>Low level is easy </li></ul><ul><ul><li>Make VM image with your software and boot it up </li></ul></ul><ul><ul><li>Most “cloud” products do just that! </li></ul></ul><ul><li>Not any different from just a regular deployment </li></ul><ul><ul><li>Still advantageous – no need to go thru deployment/configuration pain! </li></ul></ul><ul><li>Any product can be deployed this way </li></ul><ul><ul><li>No need for product to be modified (as long as OS is supported on the virtualization platform)‏ </li></ul></ul>
  11. 11. Auto-scaling services: Apache Axis2 / WSO2 WSAS approach
  12. 12. Auto-scaling services: Apache Axis2 / WSO2 WSAS approach Load Increases
  13. 13. Auto-scaling services: Apache Axis2 / WSO2 WSAS approach Startup new instances
  14. 14. Auto-scaling services: Apache Axis2 / WSO2 WSAS approach New instances join group
  15. 15. Auto-scaling services: Apache Axis2 / WSO2 WSAS approach Load Decreases
  16. 16. Auto-scaling services: Apache Axis2 / WSO2 WSAS approach Terminate instances
  17. 17. Writing multi-tenant services <ul><li>Objective: allow different customers / users to use the same service as if it were their own </li></ul><ul><ul><li>Having the service be multi-tenant vs. running a different server for each gives all the sharing advantages </li></ul></ul><ul><li>Issues </li></ul><ul><ul><li>Authentication & authorization </li></ul></ul><ul><ul><li>Data </li></ul></ul><ul><ul><ul><li>From database per tenant to multi-tenant tables </li></ul></ul></ul><ul><ul><ul><li>Security / protection </li></ul></ul></ul><ul><ul><li>Server architecture for scalability </li></ul></ul><ul><ul><li>Programing model for service authors </li></ul></ul>
  18. 18. Scalable parallel computing <ul><li>Service implementation may need to use variable amount of compute resources </li></ul><ul><li>Can bring in parallel computing infrastructure </li></ul><ul><ul><li>E.g., map-reduce </li></ul></ul>
  19. 19. Open source / standards / services for clouds <ul><li>Risk of hard vendor lock-in with clouds! </li></ul><ul><li>Services in the cloud are a new lock-in risk </li></ul><ul><li>Open cloud manifesto </li></ul><ul><ul><li>(IMO) too much marketing, too little real value </li></ul></ul><ul><ul><li>Really, too early to attempt to standardize and define what “open” means </li></ul></ul>
  20. 20. Open source cloud platforms <ul><li>Open source alternatives for all aspects of cloud computing exist and are evolving </li></ul><ul><li>Join the communities or support them commercially </li></ul><ul><li>Set up your own cloud, deploy scalable middleware and governance </li></ul><ul><ul><li>“ Private cloud” is a good thing, especially for large organizations </li></ul></ul>
  21. 21. Summary <ul><li>“ Cloud computing” provides a cost-efficient, convenient deployment architecture for SOA </li></ul><ul><li>Vendor lock-in risks are higher with cloud computing </li></ul><ul><li>Open source is driving innovation in cloud computing and provides great way to avoid lock in </li></ul><ul><li>Still very early days .. will take time to mature & stabilize! </li></ul>
  22. 22. <ul><li>[email_address] </li></ul><ul><li> </li></ul>