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 engages in a wide range of technical operations and installation activities across the nation. With over 22 years of experience, tech2 is dedicated to providing efficient and reliable technology solutions spanning telecommunications, on-site technical installation services in homes and business and remote IT Premium Support, (from two Sydney-based centres). tech2 also licenses its very own robust workforce management software.
tech2 has a strong culture focused on excellence, keeping its promises, and doing the right thing by their clients and customers. They are a trusted partner committed to continuously improving their technology solutions.
The Business Challenge
tech2 used to have a traditional Windows stack running on AWS. The IT support team provided application maintenance and worked to develop new features on an ongoing basis. Continuous Integration and Continuous Deployments were critical. Its core product was a client-server VB Application running on AWS using a Windows Server EC2 instances without Autoscaling Groups. This meant that there was a high risk of operational downtime for the business service. Reducing configuration management and enabling automation was mandatory in order to allow for automation to solve the risk of downtime.
DNX was engaged to build a new strategy focused on re-architecting its application and adding automation around the software lifecycle, leveraging a modern and cloud-native stack in order to achieve their expected outcomes. This was identified during the DNX Cloud Assessment phase and would be used to improve operation efficiency.
The Solution
Before commencing the project, DNX’s team evaluated the organisation’s requirements. They plunged into the processes through DNX’s DevOps approach. This drove the team through DevOps journey while building a perfect foundation, standardising and automating processes, as well as using the technology needed 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 used spot instances to run the workloads while providing cost-savings. For the application that could not be containerised, we used Elastic Beanstalk for quickly moving the workloads to proposed implementing a well-designed CI/CD pipeline that applied a zero-downtime deployment architecture. It would enable 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:
Network solution
Application Layer
The project
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 – sing 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
- DevOps Workshop
- AWS Knowledge transfer by DNX’s AWS-Certified professionals
During the whole project, DNX executed transfer knowledge sections with DNX AWS certified professionals to tech2. DNX believes this is the right way to build a healthy relationship with customers and partners.
AWS Security:
-
This project followed 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 was done in transit and at rest is 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 their enterprise database. The database runs on RDS with Mult-AZ and encryption enabled. In addition, automatic backups are in place as part of their disaster recovery strategy.
The following diagram depicts the hybrid strategy created to keep both architectures running at the same time.
Conclusion
With a 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, drastically reducing 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, while 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 companies in Australia. Our current focus areas are AWS, Well-Architected Solutions, Containers, ECS, Kubernetes, Continuous Integration/Continuous Delivery and Service Mesh. We are always 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 Twitter, Linkedin or Facebook.
No spam - just releases, updates, and tech information.Stay informed on the latest
insights and tech-updates