In the last few years we've had several waves of change from microservices, to containerisation, and more recently serverless and unikernels. Even the notion of an 'application' has changed over the years, as we now have to consider mobile apps, back-end AI algorithms, and even remote devices like IoT and autonomous vehicles.
The general idea of these approaches point in the same direction — that of applications becoming a collection of components that perform discrete tasks. However, since the architecture of such applications is more distributed, there are many trade-offs and new considerations. Including security implications, orchestration, monitoring, and much more. These are things that engineers need to become more aware of when creating and maintaining such systems. This talk will cover some of the issues that engineers should be aware of and we'll also discuss some of the tools and technologies that might be useful to consider.