This is a guest post by Jose Romaniello, Head of Engineering, at Auth0.
Auth0 provides authentication, authorization and single sign on services for apps of any type: mobile, web, native; on any stack.
Authentication is critical for the vast majority of apps. We designed Auth0 from the beginning with multipe levels of redundancy. One of this levels is hosting. Auth0 can run anywhere: our cloud, your cloud, or even your own servers. And when we run Auth0 we run it on multiple-cloud providers and in multiple regions simultaneously.
This article is a brief introduction of the infrastructure behind app.auth0.com and the strategies we use to keep it up and running with high availability.
Core Service Architecture
The core service is relatively simple:
Front-end servers: these consist of several x-large VMs, running Ubuntu on Microsoft Azure.
Store: mongodb, running on dedicated memory optimized X-large VMs.
Intra-node service routing: nginx
All components of Auth0 (e.g. Dashboard, transaction server, docs) run on all nodes. All identical.