• DNX Solutions

Case Study: How Tech2 implemented continuous delivery running .NET core workloads in AWS


DNX is all about helping our customers to leverage effective scalability, security and zero downtime deployments


About Tech2

Tech2 is an Australian-owned company that started in 1998. The company provide end-to-end telecommunications solutions, on-site technical installation services and remote IT Premium Support in homes and businesses.



The Challenge

Tech2 used to have a very traditional Windows stack running on AWS, its core product was a client-server VB Application running on AWS using a Windows Server EC2 instances without Autoscaling Groups. New features and application maintenance were provided by an off-shore team and the deployments were critical. Tech2 spoke to AWS about a new strategy to rearchitect this application leveraging a modern and cloud-native stack. DNX was invited to present an architectural plan to implement the project on AWS using a modern approach, leveraging Continuous Delivery, Containers and .NET Core.



DNX Proposed Solution

DNX proposed to transform 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. 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 bellow illustrates the solutions and resources used in AWS:


Network solution


Application Layer


The project

It was a 2 phases project, where DNX Engineers started building the AWS networking layer using Infrastructure as code that 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 create 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.


Deploy Strategy:

CI/CD tool: Azure DevOps Pipelines


Backend

  • Application build

  • 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



Front End

  • Application build

  • Unit Tests

  • 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:


Containers


Releases

Release stages detail:


Deliverables:

  • 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.

AWS Security:

This project follows the well-architect 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.

AWS RDS:

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.




Conclusion

With DNX solution Tech2 could move their .NET Core solution to immutable containers running a cluster in AWS ECS and also, leveraging a well-architected aspect in their cloud. It made possible to obtain an effective and well-designed deployment pipeline, essentials for Continous Delivery / Continous Integration aspects making easy to manage off-shore teams and benefit zero-downtime deployments.



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.

Check our open-source projects at https://github.com/DNXLabs and follow us on our Twitter or Linkedin

17 views