The rapid adoption of cloud has ushered in a paradigm shift in how software is developed, packaged, deployed, updated and terminated.
For starters, the multi-cloud world has created powerful use cases for containers, which offer unique application portability. Then come technologies, like Kubernetes, that orchestrate and manage those containers up the stack.
Developers are now leveraging container technologies to build cloud-native software with service-oriented architectures, where applications are broken into micro-services more adept at rapidly scaling to handle massive loads.
With all those changes has come a rethinking of the processes, methodology and culture of development teams that fall under the umbrella term of DevOps -- the merging of developers and operators to facilitate rapid and agile software release cycles.
A new generation of tools is empowering DevOps practitioners with capabilities such as infrastructure configuration management, code repositories, release automation and management, continuous integration and delivery, team collaboration, and, particularly hot of late, service meshes.