Simple, then Complex, then Just Right
The development pattern of new technologies is usually the one I found describe for the first time in the Java white paper. They start with a new useful technical idea. Then it is inflated by adding everything under the sun, making it so complex that is impossible to use. Finally, it is scaled down, taking only what is needed and getting rid of the useless complexity.
For example, let’s consider Java development. At first, there was C: a simple but super-useful programming language. Under the weight of its usefulness, it evolved into extremely complex C++. Finally, it was resized to just what is needed, precisely the Java language, that was born as a simplified C ++ with automatic memory management.
Unfortunately, the Java platform itself did not avoid the same fate. It swelled hypertrophically in Java EE, including the infamous EJBs, only to be scaled down by the Spring framework that is predominant today.
The see the same thing is happening in the container world: Docker first, inflated into super complex technology like Kubernetes. I believe OpenWhisk and FAAS are downsizing to “what you need”. A microservice should only be a function, to ‘put in the cloud. Containers are an implementation detail, they should be transparent to developers.
For now, we are in the middle of the ‘we want it all’ phase. Everyone is battling with the Kubernetes monster trying to build their own solution. We have to wait patiently until the downsizing happens, and people ask for ‘only what we need’. In the meanwhile, OpenWhisk is ready.