Uploaded on

Presented at JEEConf 2013.

Presented at JEEConf 2013.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,167
On Slideshare
0
From Embeds
0
Number of Embeds
12

Actions

Shares
Downloads
23
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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