1 / 22

Practical Guide for Developing Enterprise Application on the Cloud

Practical Guide for Developing Enterprise Application on the Cloud . Nati Shalom CTO GigaSpaces Technologies. About GigaSpaces eXtreme Application Platform (XAP). A middleware platform enabling applications to run a distributed cluster as if it was a single machine. 2,000+ Deployments.

von
Download Presentation

Practical Guide for Developing Enterprise Application on the Cloud

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Practical Guide for Developing Enterprise Application on the Cloud Nati Shalom CTO GigaSpaces Technologies

  2. About GigaSpaces eXtreme Application Platform (XAP) A middleware platform enabling applications to run a distributed cluster as if it was a single machine 2,000+ Deployments Among Top 50 Cloud Vendors 100+ Direct Customers “GigaSpaces has allowed us to greatly improve the scalability and performance of our trading platform” “GigaSpaces exceeded our performance requirements and enabled us to build a flexible, cost-effective infrastructure” “GigaSpaces has saved us significant time and cost” Geoff Buhn, Options Trading Technology Manager, SIG Phil Ruhlman, CIO, Gallup Julian Browne, Virgin Mobile 2 2

  3. Business motivation • IT CAN’T KEEP UP WITH THE DEMANDS OF THE BUSINESS • Capacity planning is too difficult • Time to market • The business wants a quick and dirty way to prototype • Cost saving Source: Forrester March 09

  4. The ideal world

  5. The challenge with existing applications Business tier Web Tier Load Balancer Back-up Back-up Back-up Back-up Data Tier Messaging

  6. Challenges summary • Adding additional resources dynamically • No out-of-the-box infrastructure for J2EE • Dealing with a lack of persistence • Dealing with distributed programming models • Having to think about the whole stack.  Not just the code. • Using Memory Data Grids and Caching considerations • Messaging • Understanding configuration management tools • Pricing and licensing Source: Cloud Mailing List

  7. How users deal with the current challenges • Deploy multiple Web servers • Deploy multiple load balancers • Deploy several database servers. • Another way of dealing with databases is to not use them Source Grig Gheorghiu blog: Experiences deploying a large-scale infrastructure in Amazon EC2 • Requires a lot of effort in setting up the environment. • Doesn’t cover all the challenges

  8. Meeting the challenges • Adding additional resources dynamically • Through virtualization of the middleware stack • Dealing with a lack of persistence • Using IMDG as a front end to the database • Dealing with distributed programming models • Use Remoting abstraction to simplify the distributed programming model • Having to think about the whole stack.  Not just the code. • Use one common runtim and clustering across the entire stack • Using Memory Data Grids and Caching considerations • Make IMDG pluggable and simple to integrate with • Messaging • Use messaging over IMDG to enable seamless distribution of the messaging • Understanding configuration management tools • Add built-in monitoring and management with the deployment • Automate deployment, scaling, fail-over to avoid minimal processes • No out-of-the-box infrastructure for J2EE • Support JEE as a first class citizen • Pricing and licensing • Elastic pricing (The Amazon model) - pay-per use, reserved instances (subscription, perpetual)

  9. Expected result Web Processing Units BusinessProcessing Units Load Balancer Users DB Virtualize the Entire Application Stack

  10. Solution Guidelines Avoid radical change, enabling a gradual process Choose an architecture supporting linear scalability Minimize vendor lock-in Enable application portability and freedom of choice of: cloud provider, web container, programming language, database Minimize API lock in: Use of standards API Abstractions – when standards are not available Future proof your application Don’t make decision today, but be ready to make one without major effort Avoid long-term commitment – choose the right licensing model

  11. Practical Steps IMDG as System of Record Messaging over IMDG Value Remoting over IMDG Web Tier Effort

  12. Step 1: Add Self Healing and Dynamic Scaling • Dynamic scaling is the ability to: • Increase (or decrease) your application’s capacity at will, on the fly, and with no down-time • Without code changes, use a standard JEE web app • Self healing is the ability to: • Automatically recover from failure conditions (AKA failover) and restore the system to its previous state

  13. Step 1: Add Self Healing and Dynamic Scaling • Deploy the web application on to the GigaSpaces SLA driven environment • Integrate with a load balancer to enable dynamic update of cluster state

  14. Step 2: Add Auto Scaling Support • Auto-scaling is the ability to: • Automatically apply dynamic scaling based on SLA rules (CPU/Memory utilization, requests/sec, etc) • Use the GigaSpaces SLA driven environment to monitor the application • Web requests, CPU, memory, any other relevant stats

  15. Step 2: Add Auto Scaling Support • Use simple Java/Groovy code to trigger auto-scaling • Deploy code as a reliable service in the GigaSpaces SLA driven environment • When the SLA is breached (e.g. average number of requests per container crosses 100/Sec): • Instruct the environment to increase the number of instances

  16. Step 2: Add Auto Scaling Support • Calculating average request rate (Groovy): • Scaling up (Groovy):

  17. Step 2: Add Auto Scaling Support

  18. Deploying on the cloud using CCF4 XAP MT Application Provisioning 2)Deploy Application Deployment Configuration 3)Manage 1)Install Provision IaaS Provider (EC2, GoGrid, VMWhere, Citrix,..) Application Repository App A App B

  19. Application Deployment Configuration <cloud-config> <cloud-name>my-app</cloud-name> <gsc-numof-machines>10</gsc-numof-machines> <gsc-per-machine>1</gsc-per-machine> <alternate-s3-source-dir>myapplicationfiles</..> <gigaspaces-version-id>662ga3100ct233</…> <processing-units> <processing-unit> <name>$CPD/myApp.war</name> <deploy-options/> </processing-unit> </processing-units> </cloud-config> Amount of machines to start initially Application Repository Application To deploy

  20. GigaSpaces Cloud Customers Large UK Telco Company Deploying discrete stand alone services in the Cloud More cost effective; easier to outsource; enabled by secure service interface Large Global Telco Company Deploying carrier grade VOIP service to the Cloud New SaaS business model; New revenue stream Global Media Company Using the Cloud to process events for innovative new TV programme Cloud makes concept cost effective Financial Services Start-up Using the Cloud for a trading exchange Cloud lowers barrier to entry and makes proposition possible Online Gaming Company Using the Cloud for testing and scaling Able to test large scale user support early / easy on cloud, hard otherwise

  21. Key Takeaways • Enterprise applications can run on the cloud today: • No need to re-write your application • Preventing lock-in to specific cloud provider • Enabling seamless portability between your local environment to cloud environment  • Choose simple applications first • Avoid dealing with complex security issues • Application with Clear path to ROI (Fluctuating load, large scale testing, DR,..)

  22. GigaSpaces XAP 7.0 (EA):http://www.gigaspaces.com/wiki/display/RN/GigaSpaces+7.0.0+Early+Acces GigaSpaces XAP Product Overview: http://www.gigaspaces.com/wiki/display/XAP7/Concepts GigaSpaces XAP for Web Applications: http://www.gigaspaces.com/wiki/display/XAP66/Scaling+Your+Web+Application Try It Today on the Cloud http://www.gigaspaces.com/mycloud http://www.gigaspaces.com/mycloud-stg

More Related