As a simple infrastructure example, to deploy an application on AWS you provide AWS with the IP addresses you want to use. However, when doing the same task on Azure you must let Azure tell you what IP addresses it has assigned. The result is that implementing the same application on these two hypervisors requires two similar but different set up processes. The order of steps and flow of data is different even though the final result is the same. AWS and Azure have different APIs which require different but similar command sequences. The compiler, drawing upon the application’s library and the Azure or AWS library can generate the right deployment sequences for either environment.
In fact, having compiled and deployed on AWS using the compiler, you can simply exchange libraries and recompile to re-deploy the original application to the Azure platform. Similarly, you can easily accomplish upgrades by submitting upgraded libraries to an existing compilation and generate the appropriate upgrade scripts. Each time a deployment is compiled, the signature of how it was generated is stored so that it can be used to generate appropriate rebuilds or upgrades. Unlike container-based approaches, there is no residual overhead embedded in a finished result.
If you are ready to work with us on some sample scripts go to this Free Trial page.