In the beginning God created the heavens and the earth. And God Said “let there be punch cards”. The writings of the greatest software architectures alive (Uncle Bob, Martin Fowler, Gergor Hohpe and others) are also history books. That’s what I love about them. History makes you really appreciate and to better understand where and why you are here. Now that I’m older than younger, I wish to do the same to you, to better understand what cloud computing actually is and through it, what cloud infrastructure today is.
Who is going to backup and replace those hard drives? “Don’t care, not my problem!”. The hardware, the bare metals are no longer your concern. It is now your Cloud provider’s responsibility to maintain it for you. You’ve outsourced it to someone who will do it better than you ever will, that is higher resiliency. That is what is called IaaS – Infrastructure as a Service.
I want my engineers to be happy when they come to work every morning. I want them to be happy with their families when they go home. My engineers need to sleep well at night knowing that they’re servers won’t go down. In order for engineers to be happy and for them to focus on the money makers - maintenance must be minimized. They should not spend their time chasing ghosts in the machines. Which is why I simply LOVE containers, which opened the door to an entire new era in cloud computing.
An isolated highly available solution would require three times the servers. Resilience costs money. A lot of it.Must there be a tradeoff between resilience and costs?
Your job now is to do this every morning, to make sure that no company resources are wasted due to incorrect container/resource allocations. Although it is necessary and beneficial it’s quite annoying, repetitive and time consuming. If only this entire burden and waste of time can be coded and automated somehow, so you’d can go back to focus on the money makers.
The Ops would no longer care where the applications are running. All the “open issues” of optimal bin packing and keeping the cluster up to date no longer exists. No need to buy and maintain servers, no need to launch or shutdown servers at all. It’s no longer the entire company’s problem.
Both for the developer and the Ops that’s a lot of work to do just to get a simple code to run. Although many Infrastructure as a Code tools exist, that is still a lot for the Ops to set up and a huge burden to make sure all the above is always up. Function as a Service as a concept is to take care of everything related to getting your code to run, letting you get back to what’s really important - the money maker.