Fuel Cycle is a comprehensive market research ecosystem. Initially, Fuel Cycle did not have a ready-made infrastructure supported by OpsWorks. So our team was tasked with creating an infrastructure that would meet all future needs from scratch. This process was time-consuming, but once the scalable and compliant system was ready, our efforts quickly paid off.
Fuel Cycle needed an infrastructure created for their product development that would easily manage the product environment. The infrastructure itself, virtual networks, and virtual machines - all parts of the system based in the cloud, were developed with the help of Terraform. The parts aimed at virtual machine configuration and setting up necessary parameters were created with Ansible.
Although Ansible provides the possibility of infrastructure creation in the cloud, core infrastructure is better off being created in Terraform. It is much more convenient to work with as it always remembers what your infrastructure was like prior to the most recent changes. Ansible doesn't "remember" the previous infrastructure state, it only performs commands assigned to it.
Our team divided all tasks into two parts: the creation of infrastructure, and virtual machines/networks via Terraform. Once virtual machines were ready, we discussed the software that would operate on this infrastructure. Only then were we ready to develop Ansible playbooks that configured the necessary amount of virtual machines and golden images that we later used in Terraform for infrastructure deployment.
The benefits that Fuel Cycle has gained from the implemented system are as follows:
- visibility: all changes made within the system are immediately tracked and discovered. If the system configuration has changed, it's easy to know who made the change and when;
- linting: IaC-based platforms can utilize automated linting. Tools that analyze infrastructure code and can point out emerging problems in a timely manner are of great importance to any project.
- expandability: with IaC on board, adding new features takes only a matter of minutes.
A major business benefit that IaC provides for Fuel Cycle is the reduction of maintenance costs. Infrastructure can be versioned and changed in sync with software changes. This ensures consistency between infrastructure and software. When a particular software requires changes to the infrastructure, such a mechanism will ensure that those changes are made.