The container technology is very mature today. Docker, the software package that helps popularizing containers, is now being used by hundreds of thousands of developers as their day-to-day DevOps tool. I would say that Docker, the container engine, has now become a boring piece of software. For an infrastructure-level software package, boring means high quality and stability. I use it every day and I know you all use it as a part of your tool chain too. But we no longer feel excited when a new version of Docker is released. Just like what we feel to the releases of Linux kernels. With this feeling, the golden age of container has just recently passed, in my opinion.
The rise of Docker was in 2013. Its Renaissance was during 2014 - 2016. Many orchestration engine races between Docker Swarm and Kubernetes were at their peaks in 2016. One of them, the Swarm2K project, was my once-in-a-lifetime event. Docker later had an announcement to also support Kubernetes in 2017. The race ended there.
A couple of days ago, in March 2018, just before publishing this book, its founder, Solomon Hykes, left Docker Inc. Docker, the company, has been slowly and strongly moving from the startup world towards the enterprise business. What does this mean to us? Enterprise means stability, but startup means adventure. Let's move onto the new adventure, the post container—the serverless era.
What we will be talking about in this book is serverless. It is the natural evolution next to containers and microservices, in the different ways. First, a Docker container becomes a deployment unit for a function, a primitive unit-of-work in the Function-as-a-Service or FaaS architecture. Second, the microservices architecture has been gradually evolving to the FaaS architecture. FaaS could actually be anywhere on-premises or in the cloud. When the whole FaaS stack is managed by cloud providers, it becomes completely serverless.
But there will be something in between. Something is called the hybrid serverless FaaS architecture. This kind of architecture is the main idea I would like the readers to find out and enjoy in this book. It is the point where we could balance between costs, managing the servers by ourselves, and the degree of control we should have for our servers.
This book covers all three major FaaS platforms for Docker in detail, OpenFaas, OpenWhisk and the Fn Project. All of these projects are in their early stages and actively become more and more mature. So it is a great opportunity for the readers and me to learn and ride this new wave together. Let's do it.