The micro platform (M3O) is a cloud based serverless platform for microservices development.
This document serves as the design document for our cloud infrastructure and a reference point for anyone who wants to understand how it works.
We're operating on all major cloud providers (AWS, Azure, GCP) in a multi-cloud and multi-region deployment across US, EU and Asia. We're leveraging DO as a control plane and CloudFlare for global load balancing along with KV storage for anything that needs global state.
The platform exists in the repository micro/platform and builds on the Micro runtime.
TODO by @jake
The features which will be included in the platform
- Cloud Automation - Full terraform automation to bootstrap platform
- Account Management - GitHub account management via teams
- Alerting - Event notification and alerting via email/sms/slack
- Billing - Metered billing of services used
- Dashboard - A full UX experience via a web dashboard
- Multi-Cloud - Ability to manage and deploy services across multiple clouds and regions
- GitOps - Source to Running via GitHub actions
- K8s Native - Built to run on Kubernetes
- More soon...
Top down:
We serve any environment through 3 global endpoints:
- api.micro.mu - the
micro apiserved over https - web.micro.mu - the
micro webserved over https - network.micro.mu - the
micro networkserved over quic/tunnel
The api is used as the http/json inbound. The web dashboard is used to serve web apps. The network is used to interconnect different regions.
Internally we're running the entire micro runtime as single replicas to abstract away the underlying infrastructure.
We use managed kubernetes on every cloud provider. Our shared infrastructure for each service is as follows.
- etcd - registry
- nats - broker
- cockroachdb - store

