-
Notifications
You must be signed in to change notification settings - Fork 0
Serlo Infrastructure
We have a microservice architecture that looks like this:
We made this switch for a plethora of reasons:
- the monolith grew large and unwieldy
- with microservice infrastructure it is much easier to incorporate a new microservice that is suited to a specific problem without refactoring the entire code base (an example: it was no problem to insert a new database layer in Rust)
- in theory, integrating and working together with other learning software will be easier to do in the future
- serlo.org was not fast enough for our needs any longer
The switch has not been made completely yet, so serlo.org is still sticking around for now. Currently, the Cloudfare worker decides which request is routed via serlo.org and which is going through the api. However, we are working on eliminating serlo.org as soon as possible.
Both the frontend as well as the cloudflare-worker are published continuously. This means that always the most recent version on GitHub for each repository is also deployed in our infrastructure. Particularly:
-
frontend: The current version of thestagingbranch is deployed in our staging environment at https://serlo-staging.dev/. The current version of theproductionbranch is deployed on our production environment at https://serlo.org. At https://github.com/serlo/frontend/compare/production...staging you can see the differences between both branches. -
cloudflare-worker: The current version of themainbranch is in general deployed in our staging and in our production environment. In case we need a different version for our staging environment in order to test features we create a temporary branch for it.
Thus both repositories do not have a changelog. The list of merged pull requests already reflect the list of last changes. For the repositories you can find them at:
-
frontend:- Last changes to the
stagingenvironment -
Last changes to the
productionenvironment (Note that each PR in general already contain a short description of the main changes)
- Last changes to the
- Last changes to the
cloudflare-worker
For our backend micro services we use semantic versioning. Both repositories contain a changelog for each version:
In order to check which version is currently deployed you can have a look at the following files (server stands for api.serlo.org):
Formerly, all requests would go through a monolith written in php (repo serlo.org-legacy). The path of a request would look like this:
- Home
- Serlo Infrastructure
- Serlo Infrastructure for Non programmers
- Resources for new programmers
- Setup of the toolchain
- Best Practices
- Data Privacy for Devs
- How Tos
- Single Sign On
- Integration with the Data Wallet
- User-Journey: SSO and Data Wallet
- User-Journey: Collaboration with Serlo Editor + Datenraum
- Integration of "Datenraum" into the Serlo Editor
- Introduction to the Serlo editor
- Core concepts of the Serlo editor
- Packages of the Serlo editor
- Creating a new plugin (outdated)
- Redux process in the Serlo editor
- The content format of the Serlo editor
- Serlo Editor Plugin Initial State
- How the Serlo Editor is integrated into edu-sharing via LTI
- Learner Events and xAPI