Hosting Services Series: Laying out architecture (Part-2)
A.k.a the plan for hosting cloud services we all frequently depend upon.
The independent microservices
- auth
- notes
- polls
- calendar
- mail
- contacts
- url-shortener
would be behind a reverse-proxying Nginx.
Further each microservice lives in its own Git repository in the following tentative form:
- Repo name:
- auth.fossterer.com
- Directories:
-
- ui
- service
- db
- Package names
- com.fossterer.auth, com.fossterer.calendar, com.fossterer.notes and so on.
Soon enough, every such service gets to be stood up as a Docker container such that thereafter,
- they can be run and killed on their own
- a simple Nginx server block (or the equivalents in other reverse-proxying servers) can be setup to proxy dedicated domain names to these localhost URLs
The plan is to move my users away from existing Nextcloud apps one by one as I build secure and usable microservices that can live on their own.
Benefits
- New lean services can be built and old ones can be killed at any time where users don’t have to face any downtime
- Users get access to Beta services early so they can give them a try and provde early feedback during development itself
- All features come with the same Single-Sign On (SSO)
The Register/Login page in the intial stages allows the following mechanisms:
Soon, the following methods would be added
- WebAuthn
- OAuth2/OpenID Connect for Github, Google and StackExchange Logins