Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Moving Rich Internet Applications into the Cloud: Seven Challenges

1,435 views

Published on

Matias\' presentation at Cloud Computing Expo, Santa Clara, CA.

  • Be the first to comment

Moving Rich Internet Applications into the Cloud: Seven Challenges

  1. 1. Moving Rich Internet Applications into the Cloud: 7 Challenges Matias Bagini [email_address] Software Engineer Founder and CEO, JRapid Corp. Buenos Aires, Argentina 04/11/09 Rapid development of cloud applications
  2. 2. Agenda <ul><li>Why move applications into the cloud </li></ul><ul><li>Levels of cloud enabled applications </li></ul><ul><li>Challenges </li></ul><ul><li>Proposals </li></ul><ul><li>Final conclusion </li></ul>04/11/09 Rapid development of cloud applications
  3. 3. Some guidelines about this session <ul><li>When talking about “cloud” I will refer to SaaS </li></ul><ul><li>Target audience </li></ul><ul><ul><li>Developers </li></ul></ul><ul><ul><li>ISVs </li></ul></ul><ul><ul><li>SaaS companies </li></ul></ul><ul><li>Some of the concepts what I will talk about apply for any web applications, not just “cloud applications” </li></ul><ul><li>Mix some “theory” with coding </li></ul>04/11/09 Rapid development of cloud applications
  4. 4. Why move applications into the cloud <ul><li>ISVs get many benefits from moving their software into the cloud: </li></ul><ul><ul><li>Scalability </li></ul></ul><ul><ul><li>Improved sales convertion rates </li></ul></ul><ul><ul><li>Reduced infrastructure costs </li></ul></ul><ul><ul><li>Agility </li></ul></ul>04/11/09 Rapid development of cloud applications
  5. 5. The big question is… <ul><ul><li>I have a web application… </li></ul></ul><ul><ul><li>If I upload it to, for instance, Amazon EC2… </li></ul></ul><ul><ul><li>Am I “doing” Cloud Computing? </li></ul></ul>04/11/09 Rapid development of cloud applications
  6. 6. 5 levels of cloud enabled applications 04/11/09 Rapid development of cloud applications
  7. 7. Challenges of moving into the cloud <ul><li>Multitenancy </li></ul><ul><li>Clustering </li></ul><ul><li>Security </li></ul><ul><li>Robustness </li></ul><ul><li>Mashups </li></ul><ul><li>Productivity </li></ul><ul><li>Multibrowser programming </li></ul>04/11/09 Rapid development of cloud applications
  8. 8. Multitenancy <ul><li>What is Multitenancy? </li></ul><ul><ul><li>Multitenancy refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple client organizations (tenants). </li></ul></ul><ul><li>Why is it important? </li></ul><ul><ul><li>Scalability, reduced complexity of administration </li></ul></ul>04/11/09 Rapid development of cloud applications
  9. 9. Multitenancy <ul><li>Building a contact manager </li></ul><ul><ul><li>We would like to sell it “as a service” to… </li></ul></ul><ul><ul><ul><li>Ford </li></ul></ul></ul><ul><ul><ul><li>GM </li></ul></ul></ul><ul><ul><ul><li>Some other customers… </li></ul></ul></ul><ul><ul><li>Options </li></ul></ul><ul><ul><ul><li>Multiple instances, multiple databases: hard to scale and maintain </li></ul></ul></ul><ul><ul><ul><li>Single instance, single database: hard to build </li></ul></ul></ul><ul><ul><ul><li>Single instance, multiple databases: Multitenancy </li></ul></ul></ul>04/11/09 Rapid development of cloud applications
  10. 10. Clustering <ul><li>Stateless/Stateful applications </li></ul><ul><li>Session replication </li></ul><ul><li>Load balancing </li></ul><ul><li>Sticky session </li></ul>04/11/09 Rapid development of cloud applications
  11. 11. Clustering 04/11/09 Rapid development of cloud applications Application server Database server Browser
  12. 12. Clustering 04/11/09 Rapid development of cloud applications Application server Database server Browser
  13. 13. Clustering 04/11/09 Rapid development of cloud applications Application server Database server Browser Load balancer
  14. 14. Clustering <ul><li>Stateless </li></ul><ul><ul><li>Easy, no complexity, no data to comunicate </li></ul></ul><ul><li>Stateful applications </li></ul><ul><ul><li>Session replication </li></ul></ul><ul><ul><ul><li>Replicated data must be serializable </li></ul></ul></ul><ul><ul><ul><li>Static variables in Java don’t get replicated </li></ul></ul></ul><ul><ul><li>Sticky session </li></ul></ul><ul><ul><ul><li>No HA </li></ul></ul></ul>04/11/09 Rapid development of cloud applications
  15. 15. Session replication 04/11/09 Rapid development of cloud applications Application server Database server Browser Load balancer
  16. 16. Sticky session 04/11/09 Rapid development of cloud applications Application server Database server Browser Load balancer
  17. 17. Clustering <ul><li>When building applications that are going to be clustered, some decision must be made beforehand. </li></ul><ul><ul><li>Stateless </li></ul></ul><ul><ul><li>Session replication </li></ul></ul><ul><ul><li>Sticky session </li></ul></ul>04/11/09 Rapid development of cloud applications
  18. 18. Security <ul><li>Data in the cloud can be hacked… </li></ul><ul><li>Lots of known vulnerabilities </li></ul><ul><ul><li>SQL injection </li></ul></ul><ul><ul><li>DDOS </li></ul></ul><ul><ul><li>XSS: Cross Site Scripting </li></ul></ul><ul><ul><li>XSRF: Cross Site Request Forgery </li></ul></ul>04/11/09 Rapid development of cloud applications
  19. 19. Robustness <ul><li>Fallacies of Distributed Computing </li></ul><ul><li>The Fallacies of Distributed Computing are a set of common but flawed assumptions made by programmers when first developing distributed applications . </li></ul><ul><li>The network is reliable . </li></ul><ul><li>Latency is zero. </li></ul><ul><li>Bandwidth is infinite. </li></ul><ul><li>The network is secure . </li></ul><ul><li>Topology doesn't change. </li></ul><ul><li>There is one administrator . </li></ul><ul><li>Transport cost is zero . </li></ul><ul><li>The network is homogeneous . </li></ul><ul><ul><ul><ul><li>From Sun Microsystems . Peter Deutsch </li></ul></ul></ul></ul><ul><ul><ul><li>These fallacies apply to cloud computing </li></ul></ul></ul>04/11/09 Rapid development of cloud applications
  20. 20. Mashups <ul><li>Ability to bring all of your interest into one place </li></ul><ul><li>To get all the power of the cloud, you need to build mashups… </li></ul><ul><li>Maps, web services, docs, social networks. </li></ul>04/11/09 Rapid development of cloud applications
  21. 21. Productivity <ul><li>Beware: building software during the 90s was easier and faster than today. </li></ul><ul><li>Platforms for building cloud applications are on their early days. </li></ul><ul><li>Rapid Application Development (RAD) tools for cloud computing are just emerging. </li></ul><ul><li>Do not estimate the same time for building desktop applications and cloud applications. </li></ul>04/11/09 Rapid development of cloud applications
  22. 22. Multibrowser programming <ul><li>The myth “Build once, deploy everywhere” </li></ul><ul><li>The problem is not just to get your application running in IE, Firefox or whatever browser is there. </li></ul><ul><li>The biggest problem is that you built an application; it has been running for a year without problems. </li></ul><ul><li>And then there is a new browser in the market, or a new version of an old one. </li></ul><ul><li>And your application stops working as desired! </li></ul>04/11/09 Rapid development of cloud applications
  23. 23. So, should I move my applications into the cloud? <ul><li>Of course! </li></ul><ul><li>How to overcome these challenges </li></ul><ul><ul><li>DIY solution </li></ul></ul><ul><ul><li>PaaS (Platform as a Service) </li></ul></ul><ul><ul><ul><li>http://en.wikipedia.org/wiki/Platform_as_a_service </li></ul></ul></ul><ul><ul><ul><li>By using JRapid! </li></ul></ul></ul>04/11/09 Rapid development of cloud applications
  24. 24. Thank you! <ul><li>Matias Bagini </li></ul><ul><li>[email_address] </li></ul><ul><li>Follow us on twitter.com/JRapid </li></ul><ul><li>Join JRapid alpha program at </li></ul><ul><li>www.jrapid.com </li></ul>04/11/09 Rapid development of cloud applications

×