The European Cooperation in Science and Technology (COST) is a funding organisation for the creation of research networks, called COST Actions.
These networks offer an open space for collaboration among scientists across Europe (and beyond) and thereby give impetus to research advancements and innovation.
The production environment was running on a webserver and MySQL database, while the other environments were already running on on-premise servers and developers were running e-COST in containers on local docker servers.
In an earlier decision to go cloud-first, the webserver and database were already moved to an AWS EC2 instance and RDS instance. This phase would get all the other environments into AWS as well.
The architectural difference between the production environment and the other environments was a result from the agile approach the development team is taking with this application.
A new architecture was designed by Cloudar that offers COST the flexibility to start and stop development environments when needed and to update the environments when a pull request is approved and merged into the related branch.
The solution maximizes the use of Amazon services:
- Amazon RDS and Amazon EFS for persistent storage for the different environments
- AWS ECS in combination with Amazon EC2 and auto scaling to create a high-available container infrastructure
- AWS ECS Service and Task Definitions together with Service Discovery using Cloud Map and AWS ELB to define and run the application
- AWS CloudFormation to combine all different components in easy to deploy stacks
- AWS CloudWatch holds the metrics and logging for all environments.This allows troubleshooting when the application experiences issues
- AWS Lambda for automating the different parts and creating a streamlined solution
We also made use of a number of AWS technical partner solutions:
- CloudCheckr© was used to ensure the setup complied with AWS best practices and to ensure ongoing compliance once the solution was in production.
- Site24x7© was used in conjunction with AWS CloudWatch to ensure optimal performance across all environments.
- Atlassian© products (Repositories and Bitbucket Pipelines) are used for versioning and collaboration, and orchestrating changes to the related environments.
The cloud-first approach and the will to align the production environment and the other environments created the need for COST to migrate and update their infrastructure and incorporate a DevOps approach.
At development level, they refactored the application to multiple containers in order to improve scalability, quality and management.
To improve the release lifecycle and enjoy the benefits of the new architecture, the production environment and other environments needed to be updated to a similar architecture.
The solution consists of a set of CloudFormation templates. This results in easy re-creation of an equivalent environment, which eased the realignment of the production environment, and allows removal of a complete environment, which allows cost savings outside business hours for the development environments.