Oracle cloud infrastructure with packer, terraform and ansible
Infrastructure setup is usually done by creating new instance, pre-configure it with the dependencies and then deploy the application. As the time goes by, new versions of the application would be deployed, many configuration changes would be done by administrators either through automation or many times through manually ssh into the server which may not have any record in version control systems. This makes the server unpredictable for the future deployments and may fail. This type of constantly updating the infrastructure as and when required is called mutable infrastructure. On the other hand there is something called immutable infrastructure where once the application is bundled with the pre-configured custom image and an instance gets created, nothing can be changed on the instance thereafter. If there is any new changes needs to be done to the application or the configuration of the server, then new image gets created from base image. This replaces the old instance and same p