OpsAny PaaS Architecture¶
The paas service in the PaaS platform¶
The paas service provides the developer center and the web workbench of the PaaS platform.
Main responsibilities:
- Provide SaaS users with the entry point to SaaS applications
- Provide SaaS developers with the tools to develop and manage SaaS applications
- Provide platform administrators with the user management entry point
It consists of the web workbench and the developer center:
- Web workbench: the list of published SaaS applications as the single entry point, along with a set of commonly used links; administrators can also manage users here
- Developer center: entry points for creating, deploying, and unpublishing SaaS applications; manages server information and third-party service information; also provides the documentation and resource downloads required for SaaS development
Technology stack
- framework: Django 1.8.11
- template: mako
- database: mysql
Dependencies
- mysql: platform database
- appengine: calls the appengine API to deploy and unpublish applications
- login: calls the unified login API to determine the user's login state
The login service in the PaaS platform¶
login is the unified authentication service.
Main responsibilities: - Provide unified user authentication and single sign-on for the PaaS platform and SaaS applications - Support unified user management and simple authorization - Support federating unified login with an enterprise's internal identity system
It consists of the unified login module and the custom enterprise login module:
- Unified login module: the user login entry point, user information management, and simple authorization management
- Custom enterprise login module: federates PaaS unified login with an enterprise's internal identity system so users authenticate with enterprise credentials
Technology stack
- framework: Django 1.8.11
- database: mysql
Dependent services
- mysql: platform database
Appengine in the PaaS platform¶
The appengine directory contains the source of the backend service module (application engine) that hosts SaaS applications in the PaaS platform.
Main responsibilities:
- Manage the SaaS application lifecycle — test submission, release, and unpublishing — by interacting with PaaSAgent
- Manage the third-party services SaaS applications depend on, including service requests and configuration
Technology stack
- framework: Django 1.8.11
- database: mysql
Dependencies
- paasagent: calls the paasagent API to manage the SaaS application lifecycle
- mysql: platform database
ESB in the PaaS platform¶
ESB is the API service bus of the PaaS platform. It wraps the interfaces of underlying atomic platforms or third-party systems — either self-service or by coding — into atomic components, and exposes them to upper-layer SaaS applications following a unified cloud API specification. The esb directory contains the API gateway source.
Main responsibilities of the API gateway:
- Provide APIs to SaaS application developers
- Let administrators onboard APIs onto the gateway in self-service
- Provide administrators with a gateway management entry point
- Provide component development templates so API components can be developed in code and connected to the gateway
Technology stack
- framework: Django 1.8.11
- database: mysql
- cache: redis
Dependencies
- mysql: platform database
- redis: cache service
- login: calls the unified login API to determine the user's login state
- paas: accesses the PaaS platform database to authenticate SaaS applications
