Hi! I have an idea for a series of articles, or a workbook, that would be useful to someone doing cloud development. My thought is that we can compare for power and processor usage at each step, and also give a nice end-to-end overview and introduction into what cloud native application development actually means.
My idea is to start with a web application like MediaWiki or WordPress, running in an all-in-one VM on a cloud platform, and benchmark it (say, number of concurrent users/requests per second we can handle at the 99th percentile with a 500ms SLA for response time. Then we can do all of the things that we would need to do to scale that application further:
- Adding monitoring
- Ensuring we have database back-ups
- Containerizing the application
- Splitting the database and application layer into different containers
- Automating the deployment of an application
- Adding memcached to the application layer
- Load balancing across multiple web servers
- Adding a reverse proxy cache of complete pages
- Scaling the database by sharding or creating read-only replicas to distribute database reads
- And the list goes on…
I imagine that you can easily get to 100x performance, make a more scalable application infrastructure, and document a real advantage to running an application like this, in this way. Would this be of interest to you all? Any of you have experience with these technologies and able to help if (say) we get stuck creating an application template in Helm and updating the architecture in Kubernetes?
Thanks!
Dave.