Serverless Cloud for Enterprise Applications
Here I will describe an interesting hybrid cloud architecture that we propose to evaluate for an upcoming project.
The enterprise already has an ERP (Enterprise Resource Planning) system running inside it’s datacenter and it would like to create a Self Service Progressive Web Application for its customers, but for security reasons, would not like to expose its ERP outside it’s Firewalls.
The dataflow is shown below as an UML Sequence Diagram.
In a nutshell, the Web App only interacts with the MBaaS (Mobile Backend as a Service). The MBaaS triggers a cloud function that exchanges message with the ERP system, hiding behind a firewall. The message is brokered by a Message Queue Service and a Cloud Agent. The Cloud Agent is stationed in the DMZ (demilitarized zone).
The UX (User Experience) Elements
The Progressive Web App is hosted on the MBaaS.
We use Web Components, for developing the Progressive Web App, more specifically the Google’s Polymer elements. Web Components are a standards based vendor neutral next generation platform. Primarily leveraging these standards:
- Custom Elements
- Shadow DOM
- HTML imports
- HTML Template
We are considering a best of stack approach, but might fallback to a best of breed approach.
While AWS is more matured, I love Google! So, the debate is on among us.
Behind the Firewall
The ERP processes either calls back to the cloud agent or the cloud agent pulls the data through a synchronous API call from the ERP.