QBurst was engaged to help in environment setup, continuous integration and delivery, monitoring, technical support, and disaster recovery. We designed a system on the cloud-based Amazon EC2 environment, where horizontal deployment could be achieved with scalability and resilience.
- Developer environment: Built, deployed, tested, and destroyed by developer
- UAT/QA environment: Code built and deployed using continuous integration tools; server troubleshooting and log analysis
- Production environment: Services running on Docker containers; resources at multiple availability zones
We leveraged embedded CloudFormation stacks to model the infrastructure in layers and quickly deploy stacks to any one of the Amazon Web Service (AWS) datacenters around the world that was closer to the client centers. This allowed developers to run and destroy their own isolated stacks and also version control our templates, using them to manage changes to stacks.
Continuous Integration and Delivery
QBurst built and deployed the system using Docker, a platform that swiftly assembles applications, eliminates friction when moving through different environments, tests, and deploys the code into production as fast as possible.
- Whenever a code change is pushed to GitHub, it triggers a build.
- Jenkins, called via a post-commit hook, builds and tests the code.
- If passed, a Docker image is built using the bundled Dockerfile with a simple command.
- Our CI server pushes the image into a private Docker registry.
- Jenkin runs an Ansible playbook to deliver/deploy the container to relevant servers.
Monitoring, Tech Support, and Disaster Recovery
Our 24/7 support team monitors the infrastructure and application, proactively fixing issues related to service disruption. Continual troubleshooting helps to identify bottlenecks and improve performance of the infrastructure. Resolution time based on Service Level Agreement (SLA) is maintained. Backup and restore scenario implemented: in the event of a disaster, resources are quickly launched in AWS to ensure business continuity.