Case Study: HAMPR AWS Platform, CI/CD and Application Migration
HAMPR is a startup focused on corporate catering, events catering and kitchen supplies in Sydney and Melbourne.
The project was comprised of three phases:
AWS Well-Architect Foundations
After the AWS foundations were set in place, DNX introduced a Continuous Integration and Continuous Delivery platform to deploy AWS infrastructure and application changes and then migrated their applications and Database to this new environment using Containers, CI/CD and ECS with blue/green deployment concepts relying on DNX best practices.
HAMPR was already an AWS user who needed a more reliable, highly available and secure architecture to support its growing user base and fast-paced value delivery throughout development and deployment of new features.
Even using a Cloud environment, HAMPR was not able to achieve the potential of AWS and DevOps, facing some challenges like:
Use of only one AWS account creating an administrative burden for separation of duties roles and permissions
Lack of a real vision of the current state of the environment as changes were made directly through the Management Console with no configuration management.
Highly tailored instances hindering auto-scaling and high availability
Manual deployment process creating long release windows on the weekends with large downtime for the users
Project Outcomes & Success Metrics
With the project completed, HAMPR can now deploy workloads in an automated way across 2 main AWS accounts (non-production and production), and with the following benefits:
Full automation of cloud platform to avoid configuration drifts across environments.
AWS Billing under control
Zero Downtime deployments
Daily deployments to production
Improved time-to-market using CI/CD pipelines and immutable servers on AWS
A secure and scalable platform to allow the company to grow
The following are the most important take-aways from this project:
The AWS Design Phase is integral to understanding the platform and application constraints
Including the development team in the design phase helps the engagement and build trust, reducing grey areas during the implementation
CI/CD pipelines for infrastructure is essential to avoid mistakes within the Implementation Phase
Application containers provide immutability and safety to the roll-out of new deployments with zero downtime in production
Infrastructure as Code allows full control of the environment configuration enabling scalability and availability
With an AWS Well-Architected Infrastructure and a CI/DC pipeline implemented, HAMPR is going to transfer their Jenkins jobs scheduled to AWS Batch and Lambda and start an application modernisation using Serverless architecture on Lambda.
HAMPR's project was delivered in less than one (1) month, and the velocity was due to automation and CI/CD pipelines — both core DNX principles. The result of our work is now live, providing a cost-effective, secure, and reliable AWS experience for the client.
Proposed Solution & Architecture
DNX was engaged as a trusted advisor to design, implement and deploy HAMPR’s cloud platform and application stacks.
By using DNX One — our all-in-one AWS platform based on open source Terraform modules — HAMPR could promptly start planning the deployment phase into the AWS platform. The following features were implemented:
AWS Design and Documentation
Infrastructure-as-code using Terraform and DNX open source modules
CI/CD Pipelines for Terraform Projects
Application Container Strategy
Application Blue/Green Deployment
AWS ECS Cluster Configuration
AWS RDS Setup and Configuration
CloudFront and Web Application Firewall Implementation
The diagram below illustrates the high-level design used for HAMPR:
At DNX Solutions, we work to bring a better cloud and application experience for digital-native startups in Australia.
Our current focus areas are AWS, Well-Architected Solutions, Containers, ECS, Kubernetes, Continuous Integration/Continuous Delivery and Service Mesh.
We are constantly hiring cloud engineers for our Sydney office, focusing on cloud-native concepts.