As the decade comes to an end, I reflect at the early days of cloud computing and where we are now. AWS came out 2006 and GCP followed shortly in 2008 and then Azure in 2010. We've gained a lot of tools to make our lives easier since then, such as serverless, managed k8s, knative, and in this process of abstraction, we've lost some skills that I think every developer should be familiar with.
I remember first using AWS in 2008 and thinking that it was amazing to be able to set up an elastic cluster on demand, installing software on it and having my Nginx server run (Docker wasn't around back then).
Through this process, I had to learn about securing servers, package management, load balancing, setting up web servers, SSL certs. A fun thing I did was load balancing a cluster of servers and RethinkDB databases replicas across the Tokyo region and North America region. Good times and a lot of learnings on how it all worked.
Now, looking forward to 2019, things have changed for the better. With the introduction of serverless, and managed k8s, you don't need to think about server security, load balancing, setting up web servers, SSL certs. All that is abstracted away by serverless, or a managed k8s offering. You can write code and ship!
But I wonder about the cost of this abstraction; I think every developer should spend a weekend just setting up an EC2 or GCE cluster and understand how it all works behind the scene. You don't need to be a DevOps expert, but understanding the stack behind the abstraction can be helpful when thinking about architecting your application and if serverless or k8s is right for you.
What do you think? Leave a comment below on Dev.To with your thoughts!