Self-deploying applications: deployment automation that works anywhere
How to deploy to any environment in seconds without deployment code
Self-deployment is a technology used by federated applications to deploy themselves upon request. In a previous article, we defined a federated application as one whose components are loaded from multiple network locations and repositories at runtime. As we’ll see, just how they’re loaded has important implications. Strictly speaking, the components (also called federated microservices or microservice libraries) are never installed on the server. This aspect has several important consequences, but we’ll restrict ourselves to its impact on the CI/CD process.
As part of their continuous integration and delivery pipelines, organizations invest significant time and resources automating the deployment of their applications. One of the main reasons deployment automation is such a big effort is lack of standardization. Every cloud and environment has its own set of tools, and within these, consideration must be given to the method of compute delivery, e.g. bare-metal vs virtual machine vs container vs serverless; the target runtime, and so on. Developers must learn a different set of tools for each environment. One approach is to integrate each vendor with a generalized tool (e.g. Terraform…