IaaS is eaten by Containers for a while now. Making it easy to move workloads to the Cloud and split them in independent scalable units.
Container technologies have (had) a maturity challenge with running systems in production. The vast number of tools needed around containers is a sign of immaturity (10 Open Source Docker Tools You Should Be Using). A good read: Docker in Production: A History of Failure, and don’t forget to read the comments and the Serverless article on Martin Fowler his blog.
It will take some more time, although I think it is almost there, to get Containers to the level of maturity systems require in production. The benefit of containers, with the easy distribution and scaling makes it a technology which is here to stay for a while.
Fundamentally FaaS (serverless) is about running back end code without managing your own server systems or your own server applications. That second clause - server applications - is a key difference when comparing with other modern architectural trends like containers and PaaS (Platform as a Service.)
With the new kid, Serverless computing, on the block container will see workloads shrink. Serverless with its optimized run capabilities will take lots of work from Containers. They are easier to deploy, don’t require a host and have scalability in the box.
Serverless mature enough to run production loads. From an operation perspective, there are some challenges, some holes in the tool support or in the cloud platform capabilities.
Serverless often referred as “NoOps” isn’t completely right. With the ease of deployment and the enormous amount of services monitoring is a challenging job. Not monitoring on operating system or network level but on business process level. Updating or adding a service can impact the business flow, knowing the health of your business process is something you now have to build your own.
AWS and Azure are putting a lot of effort in the Serverless capabilities of their cloud platforms. Two companies that can move fast. So, it is to expect that serverless will reach a level of maturity soon. Interesting announcements where made at the last AWS invent, like https://aws.amazon.com/step-functions/
It’s possible that containers as a standalone concept will be a shooting star that fades quickly. With the help of serverless computing, microservices can evolve beyond containers and provide a more effective and efficient platform for developing and executing code. What do you think?
Serverless will take workload from containers, but won’t completely vaporize it. Serverless is mainly an integration capability of the cloud platform, "gluing" together disparate systems, and systems don’t single exists of glue, there needs to be something that needs to be glued, something which can live in a container or in ... something else