SlideShare a Scribd company logo
Building Modular
Cloud Applications
in Java
Lessons Learned
Bert Ertman
Fellow at Luminis in the Netherlands
JUG Leader for NLJUG and a Java Champion
Paul Bakker
Architect at Luminis Technologies
@BertErtman
@pbakker a presentation for
The case
PulseOn
Educational system
focussed on personalized
learning
Used in high schools in
the Netherlands
Expand to other countries
in the near future
Re: Cloud Applications
Some characteristics:
Application as a service over the internet
Impact on some non-trivial non-functionals
Availability
Scalability
Extensibility
Observations
Extremely agile
Architecture (and code base) should
be able to cope with change
The case for modularity
Modularity is the
ultimate agile tool!
Small, disposable, components
Prevents code rot on the
architectural level
Isolate problems, focus work
Prevent
(tight)
coupling
What we learned about OO design in university :
Promote
cohesion
coupling
cohesion
Whatdoweneed?
design
consequences
High-level
enterprise APIs
Architectural
focus on
modularity
Runtime
dynamic
module
framework
Right now,
OSGi is the
only option
let’s not
reinvent the
wheel
OSGi is the de-facto
standard module
system for Java
OSGi != modularity
What about Jigsaw?
OSGi is the de-facto
standard module
system for Java
OSGi != modularity
What about Jigsaw?
remember!
Modularity is
an architectural
principle
OSGi is the de-facto
standard module
system for Java
OSGi != modularity
What about Jigsaw?
remember!
Modularity is
an architectural
principle
Modularity
does not come
for free with a
framework
demo
Profiles Rest
Profiles API
Profiles
Service
MongoDB
Progress Rest
Progress API
Progress
Service
MongoDB
Curriculum
API
Curriculum
Service
MongoDB
... Rest
... API
...
Service
modularity
in action...
Back to the cloud...
HTML 5 + JavaScript
RESTful services
OSGi services
Mongo
Apache Felix
S3
Typical architectureRequirements:
Modern web app
UI mostly offloaded to
clients or devices
Document driven
interaction
Integration via REST
API
Web scale data store
Multi-tenant
Elasticity
HTML 5 + JavaScript
RESTful services
OSGi services
Mongo
Apache Felix
A
m
d
a
t
u
S3
Typical architecture
Let’s Add AMDATU
to our stack
Architectural focus
on modularity
Runtime dynamic
services
High level API
Auth
Blob stores
MongoDB
Multi-tenancy
OpenSocial
Search
Remote Services
REST
Template
Web
...
Components
What about
deployment?
PaaS Offerings out there:
Not good:
Proprietary platform
Vendor lock-in
White list / black list
OS Limitations
No support for modular
runtime
Solution: roll our own PaaS
Modular PaaS:
IaaS image
OSGi runtime
Deployment/provisioning
PaaS Building blocks
Pro:
freedom
Con:
no vendor support
Amazon EC2
Apache Felix
Apache ACE
Amdatu
Deployment
Load
Load Balancer
PulseOn node
PulseOn node
PulseOn node
School A
Mongo
Mongo
Mongo
Load
Load Balancer
PulseOn node
PulseOn node
PulseOn node
School B
Mongo
Mongo
Mongo
Availability zones
Horizontal scaling requires stateless nodes
HTML5 clients need less server side state
Any state should go to some kind of store
Horizontal scalability
Auto scaling
Considerable higher loads during school hours
Enough
capacity
Without paying
for idle servers
at night...
Load Balancer small node
Cluster per school
Always use a load balancer because we don’t want
downtime during scaling
Early morning...
Load Balancer small node
Early morning...
Load Balancer small node
large node
large node
End of the day...
Load Balancer small node
large node
large node
End of the day...
Load Balancer small node
But how do we install
our software on a node?
Some numbers
190
bundles
in a deployment
120
PulseOn
bundles
Provisioning servers
Provisioning servers
Node
AWS Auto Scaling
1. Start
Load Balancer
Apache ACE
2. register
3. register
4. provision
deployment
package
./as-­‐create-­‐launch-­‐config	
  demo	
  
	
  	
  	
  	
  	
  -­‐-­‐image-­‐id	
  ami-­‐0ee8e07a	
  
	
  	
  	
  	
  	
  -­‐-­‐instance-­‐type	
  m1.small	
  
	
  	
  	
  	
  	
  -­‐-­‐region	
  eu-­‐west-­‐1	
  
	
  	
  	
  	
  	
  -­‐-­‐group	
  sg-­‐ce1420ba	
  
	
  	
  	
  	
  	
  -­‐-­‐user-­‐data-­‐file	
  userdata.txt
./as-­‐create-­‐auto-­‐scaling-­‐group	
  demo	
  
	
  	
  	
  	
  -­‐-­‐launch-­‐configuration	
  demo	
  
	
  	
  	
  	
  -­‐-­‐min-­‐size	
  1	
  
	
  	
  	
  	
  -­‐-­‐max-­‐size	
  1	
  
	
  	
  	
  	
  -­‐-­‐availability-­‐zones	
  eu-­‐west-­‐1a	
  
	
  	
  	
  	
  -­‐-­‐load-­‐balancers	
  demo	
  
	
  	
  	
  	
  -­‐-­‐tag	
  "k=Name,v=demo,p=true"
Or by UI configuration...
Provisioning servers
Nodes are completely disposable
Automated cluster recovery
Nodes do not require maintenance
No “big” container
Developer Tools
Educational system focussed on
personalized learning
Used in high schools in the
Netherlands
Expand to other countries in the
near future
Development tool stack
IDE with fast turn arounds
Version Control
Continuous Integration Server
Issue tracker
WIKI
what do we need?
Continuous integration
All BndTools projects support
headless builds
Build on git push
Measure test coverage
(both unit and integration tests)
Wrap up
what have we learned?
Modularity is the ultimate agile tool
Modularity is no longer difficult
(BndTools / Amdatu)
Stateless architecture is the only
scalable way
Cloud deployments made easy with a
provisioning server
Shameless self-promotion...
Our book
Building Modular Cloud
Applications in Java
Published by O’Reilly
Due: end of summer this year
under
construction
Want to try this yourself?
Tomorrow: 10 AM - 12.30
Hands-on Lab:
Building Modular Cloud Applications in Java
Venue: Hotel Wyspiański
ul.Westerplatte 15
31-033 Kraków
Cloud provisioning
http://ace.apache.org/
Eclipse OSGi plugin
http://bndtools.org/
That’s us
http://luminis.eu/
Bert Ertman
bert.ertman@luminis.eu
@BertErtman
Cloud OSGi services
http://www.amdatu.org/
Amdatu
Paul Bakker
paul.bakker@luminis.eu
@pbakker
Takk
Grazie
Thank
you
Obrigado
Mahalo
Danke
Dank U
Merci
Gracias

More Related Content

Similar to Building Modular Cloud Applications in Java - Lessons Learned

Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudEberhard Wolff
 
Introduction to node.js By Ahmed Assaf
Introduction to node.js  By Ahmed AssafIntroduction to node.js  By Ahmed Assaf
Introduction to node.js By Ahmed AssafAhmed Assaf
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deploymentFilippo Zanella
 
JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)jaxLondonConference
 
Mule soft step up session
Mule soft step up sessionMule soft step up session
Mule soft step up sessionAmit Behere
 
Accelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAccelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAmazon Web Services
 
Java tutorial for beginners | Java Features
Java tutorial for beginners | Java FeaturesJava tutorial for beginners | Java Features
Java tutorial for beginners | Java FeaturesSpeed4Career
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2Pascal Rapicault
 
Google cloud Study Jam 2023.pptx
Google cloud Study Jam 2023.pptxGoogle cloud Study Jam 2023.pptx
Google cloud Study Jam 2023.pptxGDSCNiT
 
Cloud E-Learning - Docebo at OEB 2011
Cloud E-Learning - Docebo at OEB 2011Cloud E-Learning - Docebo at OEB 2011
Cloud E-Learning - Docebo at OEB 2011DoceboElearning
 
MongoDB on Windows Azure
MongoDB on Windows AzureMongoDB on Windows Azure
MongoDB on Windows AzureMongoDB
 
FDM to FDMEE migration utility
FDM to FDMEE migration utilityFDM to FDMEE migration utility
FDM to FDMEE migration utilityBernard Ash
 
JUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsJUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsPeter Mounce
 

Similar to Building Modular Cloud Applications in Java - Lessons Learned (20)

Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and Cloud
 
Node js meetup
Node js meetupNode js meetup
Node js meetup
 
Introduction to node.js By Ahmed Assaf
Introduction to node.js  By Ahmed AssafIntroduction to node.js  By Ahmed Assaf
Introduction to node.js By Ahmed Assaf
 
02 Node introduction
02 Node introduction02 Node introduction
02 Node introduction
 
1 App,
1 App, 1 App,
1 App,
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deployment
 
JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)
 
Mule soft step up session
Mule soft step up sessionMule soft step up session
Mule soft step up session
 
Accelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAccelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and Microservices
 
Java tutorial for beginners | Java Features
Java tutorial for beginners | Java FeaturesJava tutorial for beginners | Java Features
Java tutorial for beginners | Java Features
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2
 
Google cloud Study Jam 2023.pptx
Google cloud Study Jam 2023.pptxGoogle cloud Study Jam 2023.pptx
Google cloud Study Jam 2023.pptx
 
Codename one
Codename oneCodename one
Codename one
 
Cloud E-Learning - Docebo at OEB 2011
Cloud E-Learning - Docebo at OEB 2011Cloud E-Learning - Docebo at OEB 2011
Cloud E-Learning - Docebo at OEB 2011
 
Minor
MinorMinor
Minor
 
MongoDB on Windows Azure
MongoDB on Windows AzureMongoDB on Windows Azure
MongoDB on Windows Azure
 
FDM to FDMEE migration utility
FDM to FDMEE migration utilityFDM to FDMEE migration utility
FDM to FDMEE migration utility
 
Nodejs
NodejsNodejs
Nodejs
 
JUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsJUST EAT: Embracing DevOps
JUST EAT: Embracing DevOps
 
Code One 2018 maven
Code One 2018   mavenCode One 2018   maven
Code One 2018 maven
 

Recently uploaded

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsPaul Groth
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Thierry Lestable
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxAbida Shariff
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
 

Recently uploaded (20)

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 

Building Modular Cloud Applications in Java - Lessons Learned