Case Study Tech2: Implementing continuous delivery running .NET core workloads in AWS
Updated: Jul 3
DNX is all about helping our customers to leverage effective scalability, security and zero downtime deployments
Tech2 is an Australian-owned company that started in 1998. It's business deliveries a wide range of technical operations and installation activities. With over 20 years of experience, Tech2 is a trusted partner dedicated to providing efficient and reliable technology solutions such as telecommunications solutions, on-site technical installation services, remote IT Premium Support in homes and businesses, and workforce management.
Tech2 has a strong culture focused on excellence, keeping its promises, and doing the right thing by their clients and customers. To keep it on track, they are always improving their solutions.
The Business Challenge
Tech2 used to have a very traditional Windows stack running on AWS. New features and application maintenance were provided by an off-shore team and the deployments where Continuous Integration and Continuous Deployments were critical. As its core product was a client-server VB Application running on AWS using a Windows Server EC2 instances without Autoscaling Groups reducing configuration management was mandatory.
DNX was engaged to build a new strategy focused on re-architect its application and add automation around software lifecycle, leveraging a modern and cloud-native stack in order to achieve their expected outcomes, identified during the DNX Cloud Assessment phase, and also improve the operation efficiency.
Before start running the project, DNX's team evaluated the organisation's requirements also plunged into the processes through DNX's DevOps approach which drives the team over the DevOps journey while building a perfect foundation, standardising and automating processes, and use the technologies to deliver applications quickly and reliably.
DNX proposed to transform the Tech2 .NET Core application moving it to Docker containers and use AWS Elastic Container Service to manage the new cluster. Our computing solution is to use spot instances to run the workloads also providing cost-savings and for the application that cannot be containerised we use Elastic Beanstalk for quickly move the workloads to AWS and reduce configuration management significantly. Also, a well designed CI/CD pipeline applying a zero-downtime deployment architecture was proposed. It enables Tech2 to leverage the benefits of having an immutable application running in Docker containers in AWS.
The High-Level Diagram below illustrates the solutions and resources used in AWS:
It was a 2 phase project, where DNX Engineers started building the AWS networking layer using Infrastructure as Code which brings several benefits to Tech2 application stack. It is also required for a well-architect ECS Cluster that was built in the first phase along with the Network layer.
In the second phase, DNX designed and created the CI/CD Pipeline covering the application full-stack, both back and front end in the same pipeline. Using S3 Buckets and Cloudfront AWS CDN to distribute the static content. Using:
CI/CD tool: Azure DevOps Pipelines
Application Docker Build and Push to ECR
Application ECS Blue-Green Deployment using AWS Code Deploy
Automatic deploy to staging
Automatic deploy to production with manual approval
Push the static application to S3 and run invalidation on the respective CloudFront
Automatic deploy to DEV and QA
Automatic deploy to production with manual approval
CI/CD Pipeline Overview:
Release stages detail:
AWS Implementation as per High-Level Design
Applications migrated to the new platform
CI/CD Pipeline with zero-downtime deployments
AWS Knowledge transfer by DNX’s AWS-Certified professionals
During the whole project, DNX executes transfer knowledge sections with DNX AWS certified professionals to Tech2. DNX believes that is the right way to build a healthy relationship with customers and partners.
This project follows the well-architected principles, and DNX is always committed to applying high-security standards. The Aws Foundation phase created VPC with separate layers for Application and data storage. Encryption in transit and at rest are applied across the application.
AWS IAM Roles are used to delimited application permission on the AWS platform, following least privilege concepts.
Tech2 relies on MS SQL for the enterprise database. The database runs on RDS with Mult-AZ and encryption enabled, additionally automatic backups are in place for the disaster recovery strategy.
The following diagram depicts the hybrid strategy to keep both architectures running at the same time.
With DNX solution Tech2 could move their .NET Core solution to immutable containers running on ECS and Elastic BeanStalk for workloads that could not run in Docker Containers, reducing drastically the configuration management. Also, from a well-designed deployment pipeline, essentials for Continuous Delivery / Continuous Integration aspects off-shore teams managements are simple, and deployments are more frequently released, and also benefiting zero-downtime deployments with blue-green deployments.
With a better operation efficiency and team management automation around software lifecycle, Tech2 has a resilient and lower total cost of ownership infrastructure on AWS. Developer Experience has been improved, therefore the team has been releasing code more often and with better quality.
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 and Data Solutions (movement, transformation, lakes, warehouses and analytics). We are constantly hiring cloud engineers for our Sydney office, focusing on cloud-native concepts.