Modularity in the Cloud

1,766 views
1,717 views

Published on

Presented at JEEConf 2013.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,766
On SlideShare
0
From Embeds
0
Number of Embeds
777
Actions
Shares
0
Downloads
24
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Modularity in the Cloud

  1. 1. Modularity in thecloudA case study
  2. 2. Jan Willem JanssenLuminis Technologies@j_w_janssenSander MakLuminis Technologies@sander_makhttp://branchandbound.net
  3. 3. The case: PulseOnEducational system focussed onpersonalized learningUsed in high schools in theNetherlandsExpand to other countries in thenear future
  4. 4. RequirementsEasy softwareupdatesCross deviceiPad/android/desktop...Different set ofcomponents perschoolScalability(both up anddown)
  5. 5. Personaldashboard
  6. 6. Learningcontent
  7. 7. Adaptive recommendedLearning
  8. 8. How to build softwarewhen nobody can tell youexactly what to build?
  9. 9. Divide and conquer,prevent the ripple effectModularity
  10. 10. Modularity in practiceProgram tointerfaces, notimplementationsRate of changeof moduleshttp://geekandpoke.typepad.com
  11. 11. Modules
  12. 12. Ok, but how to create aninstance of a hiddenclass?MyInterface myI = newMyImplementation();YOUDON’T!
  13. 13. Service Lookups
  14. 14. Cross device HTML 5 + JSRESTful web servicesOSGi servicesMongoApache FelixAmdatuS3
  15. 15. course.gadgetcontentsequencer.restcontent.mongo content.storageMongo S3UIREST APIJavaAPI
  16. 16. course.gadgetcontentsequencer.restcontentsequencer.engine profiling.mongocontent.mongoprofiling.restAJAX AJAXJava JavaJavaJava
  17. 17. Some numbers190bundlesin a deployment120PulseOnbundles
  18. 18. Amdatu: OSGi Cloud componentsJAX-RSMongo DBBlobStoresSchedulingMulti-tenancySearchOpenSocial...Apache Licensedopen sourceproject
  19. 19. Amdatu MongoDBMost data isexposed usingRESTThe profilergenerates a LOTof dataTherecommenderneeds powerfulqueries
  20. 20. Amdatu OpenSocialHow to separate UIelements in modules?Each functional part is anOpenSocial gadgetModularity in the UI
  21. 21. School BLoadDeploymentLoad BalancerPulseOn nodePulseOn nodePulseOn nodeLoad BalancerPulseOn nodePulseOn nodePulseOn nodeSchool AMongoMongoMongoMongoMongoMongo
  22. 22. Auto scalingConsiderable higher loads during school hoursEnoughcapacityWithout payingfor idle serversat night...
  23. 23. Load Balancer small nodeCluster per schoolAlways use a load balancer because we don’t wantdowntime during scaling
  24. 24. Load Balancer small nodeEarly morning...
  25. 25. Load Balancer small nodelarge nodelarge nodeEarly morning...
  26. 26. End of the day...Load Balancer small nodelarge nodelarge node
  27. 27. End of the day...Load Balancer small node
  28. 28. But how do we installour software on a node?
  29. 29. Provisioning servers
  30. 30. ace screenshot
  31. 31. NodeAWS Auto Scaling1. StartLoad BalancerApache ACE4. register2. register3. provisiondeploymentpackageProvisioning servers
  32. 32. Tooling andframeworks arenow matureenoughHow does this fit other applications?The architecturefits mostmodern webapplicationsWorks in thecloud(but not arequirement)
  33. 33. amdatu.org
  34. 34. Cloud provisioninghttp://ace.apache.org/Cloud OSGi serviceshttp://www.amdatu.org/Eclipse OSGi pluginhttp://bndtools.org/@Sander_Makhttp://luminis.eu/en/There is more...

×