Journey to Cloud Native

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.

2 Likes

What other topics should we cover? I’m a little worried about the “application orchestration” one because it seems like there are about 20 different ways to compose a container application, with at least Docker Compose/Swarm, Helm, Kubernetes Operators, Juju, Ansible, Terraform, and I’m sure I’m missing some… What do y’all use for this type of thing?

We could start small and do some basic benchmarks first. I just did some for my upcoming DevSecOps books, and A! looked great for CPU… not so great for memory bandwidth though.

My next benchmark will be a load test on several clouds, comparing workload and steal data over a 24 hour window, using the same OS on all the clouds ARM processors.

3 Likes

I would love for something on OpenShift on arm, but I am biased as that is part of my day job

What is the current recommended application orchestration tool for OpenShift, Dennis? Operators?

Operators are a big part of application orchestration, but then there are things like tekton to set up CI/CD pipelines to get move applications through dev, test, and deploy lifecycles. and a few other ways also

1 Like