Project overview
Hello, I’m looking for DevOps which can help me build the newest scalable architecture for PlatformCore. We're using Contabo.com as a hosting provider. They give access to powerful and cheapest VPSs: https://contabo.com/en/ Currently we have a cluster with multiple VPSs in different regions, so that our app remains available, even if there’s an update with a datacenter (which does happen every 2-3 months), the other servers which are in the same cluster, keeps the app available in any case. Max budget: $1000 / €932 Deadline: 30 days What we want from you: The idea is to implement into the current architecture Contabo’s APIs to create automations to scale the app depending on traffic/VPS consumptions. Variables to take into consideration: The Contabo’s APIs order new VPS which takes around 20 minutes to 4 hours to be done. (very long - We propose to have a maximum of 50% consumption on each VPS, if more, it will order new VPS over time - 50% because it can handle a traffic spike easier). Be careful, because it’s taking a lot of time to order and deploy, you need to have a system which compares when a new VPS has been added to the cluster, and how the traffic is handled by it (meaning, if the overall consumption is still higher than 50% after 5-10 minutes, if so, it can order another VPS - it can then avoid ordering a lot of unnecessary VPSs - this is a proposition) Every 2-3 month Contabo’s perform’s updates to a VPS, which means it can be unavailable 3 hours to 24 hours max (that’s why we need a cluster with multiple regions to avoid any interruption) We are using Google Domains (to update DNS with API - there’s no google load balancer, if you think we need one, let us know in your proposal) Each VPS needs to perform a snapshot every month ( https://api.contabo.com/#tag/Snapshots - to rollback if there’s an issue) You can create custom images to create & deploy ( https://contabo.com/en/custom-images/ ) Every passwords and tokens must be protected (maybe you can use k8s vault - or you can propose something else) We obviously need a system which can monitor all VPSs (you can propose something The web application has a frontend and backend Github repositories which are automated with Github Actions (via Docker Hub to create images) Think about Comodo’s Wildcard SSL renewal and automation integration Think about security of the architecture too The purpose of this system is to have a cheap scalable web application (cost is our priority) Please, if you think there’s something missing, let us know Tech list: Contabo API Docker Hub Kublet GitHub (2 repositories: frontend & Backend) GitHub Actions (CI/CD) Comodo Wildcard SSL - Yearly HAproxy (currently but not mandatory if you need to propose something else) Google Domains (for DNS- there’s no google load balancer) Web App: Angular Node.js MongoDB (Mongo Atlas) Documentation & repositories: Current architecture - Full DevOps Documentation Request via Gdoc : https://docs.google.com/document/d/1QjhHYgDsoskpiYLkpg8j2iEYriIkoie10AJbFevsWhQ/edit?usp=sharing Web App: https://www.notion.so/platformcore/PlatformCore-Wiki-c0bc3a5fd0884177a108b1757a5bd2e6 Contabo APIs: https://api.contabo.com/#section/Introduction & Custom Images: https://contabo.com/en/custom-images/ Google Domains: https://support.google.com/domains/answer/6147083?hl=en#zippy=%2Cset-up-a-client-program-on-your-gateway-host-or-server%2Cuse-the-api-to-update-your-dynamic-dns-record If you have any question, please let me know, Tom