Milestone Review
Grant Milestone Delivery
Technical Contributions Overview
- Goal was to build a set of load balanced endpoints for Polkadot and Substrate chains using industry-standard DevOps tooling
- A consideration was given to find the right level of modularity and reusability
- Dual VM/k8s architecture was chosen to both provide some familiarity to those new to microservices and to separate out different concerns
- If people choose to only run a subset/combination of modules, that's still possible and can reduce their complexity/spend based on needs
General Architecture
DNS
- Chose to have a single provider (CF) handle root domain
- Partly to be able to have a single point of contact to manage the domain
- Partly because CF will eventually handle geo-routing general API endpoints
- Delegations are made via TF to hosted subdomain zones on each provider
- This allows for control over subdomains to be handled by cloud provider, which means more automation around:
- let's encrypt certs
- resource A-records (if necessary/desired)
- API endpoint aggregation
Infrastructure
Library Nodes
- Library (full) nodes are deployed on VMs in an autoscaling group
- Internal load balancers are used to route RPC API requests across instances within the ASG
- Library node images are built from a base Ubuntu 18.04 image, which has been configured with Ansible to include the Polakdot client, Prometheus monitoring, and Consul service discovery