Preface
In the IT world, the limits of today are the gateways of tomorrow. In the last 50 years, the IT world has continuously evolved, tirelessly, always pushing the limits. These changes are due to not only technical progress, but also us, the consumers. As consumers, we continue to demand more and more from the software we interact with every day. In addition, our way of interacting with software has entirely changed. We can’t live without mobile applications and devices and now accept receiving notifications all day long. The Internet of Things (IoT) is an emerging market promising many more innovations, increasing the number of events and data processed uninterruptedly. The cloud and Kubernetes have not only changed our usage but also radically transformed the way we design, develop, deploy, and maintain applications.
But don’t be mistaken; all these revolutions come with a price. While they have enabled new uses and applications, they have also introduced massive complexity. Most software systems today are distributed systems. And distributed systems are hard to design, build, and operate, especially on the scale we need to implement these new modern applications. We need to handle failures, asynchronous communication, an ever-changing topology, the dynamic availability of resources, and so on. While the cloud promises unlimited resources, money is a limiting factor, and increasing the deployment density, meaning running more on fewer resources, becomes a stringent concern. ...