Microsoft Workloads on AWS
How Arkansas Administrative Office of the Courts saved 40% with .NET modernization
The Arkansas Administrative Office of the Courts (AR-AOC) is an agency within the judicial branch of the Arkansas state government. AR-AOC provides a wide range of administrative, legal, financial, management, program, and information technology services to the state courts on behalf of the Arkansas Supreme Court. In this blog post, we share the story of how AWS helped the agency’s technical team to achieve their .NET modernization goals and save 40% on their total cost of ownership (TCO). We’ll also address how taking a cloud-based, serverless approach helped the agency address their other business goals.
Motivation to Modernize
“A core component of the Arkansas Judiciary’s Strategic Plan is to Embrace Technology. ‘The courts must respond to the changing technological environment by providing court users remote access to information, records, and services.’ AWS is helping us to provide those services through this project.” – Marty Sullivan, Arkansas State Court Administrator
To better serve the Arkansas state courts and the people of Arkansas, AR-AOC, after evaluating several factors, decided to modernize their legacy applications. These legacy systems lacked proper integration and data flow and required manual data entry into each system to keep them coordinated. This resulted in court employees spending more time updating and maintaining records in multiple places. When the manual maintenance was not done correctly, the systems would often end up with conflicting information and stale data. This further required system users to spend more time identifying and fixing discrepancies in the data.
The agency decided to start a modernization effort with the Court Management System (CMS), a component of their legacy systems that was used in the day-to-day activities court employees and attorneys.
AR-AOC evaluated the costs of purchasing a SaaS-like system for its needs but realized it came with a hefty price tag – upwards of $80M. There are only a handful of Commercial-off-the-shelf (COTS) court management systems in the market, and most of them do not have the features needed for smaller court systems. These factors supported the agency’s decision to modernize by building a new system in-house.
AWS partnership with AR-AOC
As a first step, the agency and the AWS account team ran a Working Backwards session that laid the foundation for the agency’s cloud adoption journey. During the session, the AWS team worked closely with the key stakeholders at AR-AOC to understand the CMS application’s functionality. The AWS team learned about their current challenges and identified the business goals for the modernization journey. This helped establish a shared vision among all the key stakeholders within the agency.
As this was AR-AOC’s first time working with the cloud, the Solutions Architect (SA) team delivered a series of workshops that provided the IT teams with introductory technical enablement on AWS. As the agency got comfortable with AWS services and operating in a cloud model, the discussions moved to advanced topics that focused on the CMS application and its modernization roadmap.
AR-AOC was going to build the new CMS application using .NET the cross-platform, open source development platform – and SQL Server to build the data persistence layer. The modernization plan included containerizing .NET applications and using AWS container services to host them. The architecture was based on a service-oriented application design.
The AWS Specialist Solutions Architects (SA), who specialize in .NET and SQL Server workloads on AWS, worked closely with the agency to validate their proposed architecture. The AWS SSAs also ran a series of workshops that provided the agency’s development team with hands-on experience with AWS services.
To build momentum and speed up their modernization journey, the agency and the AWS Microsoft Specialist SA team set out to build a proof of concept (POC) for an end-to-end cloud-built, serverless non-production environment together with infrastructure automation and CI/CD pipelines. The POC was led and executed by the software development and infrastructure teams at AR-AOC in close collaboration with the AWS Microsoft Specialist SAs over the course of a 40-hour workweek.. By the end of the week, they had a working prototype of the CMS application deployed on AWS to serve as their development and test environments.
“Working closely with the AWS specialist SA team from the start saved us 3 months of development time!” – Tim Holthoff, Arkansas Judiciary CIO
The modernized architecture that the AR Administration of the Courts ended up going with was composed primarily of Amazon Elastic Container Service (Amazon ECS) and Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server. Since AR-AOC was building CMS on .NET 6, the customer could use Linux containers on Amazon ECS with AWS Fargate. Using AWS Fargate allowed them to eliminate the need to provision and manage servers, pay for resources per application, and improve security through application isolation. Using Linux containers eliminated the need for Windows Server licenses. For the application database, AR-AOC leveraged their existing SQL Server experience by using Amazon RDS for SQL Server. Amazon RDS makes it easy to set up, operate, and scale SQL Server deployments in the cloud. It is a fully managed durable database built for enterprise workloads at scale. Using a fully managed Amazon RDS freed the team to focus on application development.
The diagram in Figure 1 represents the overview of the proposed architecture.
Figure 1: Architecture of AR-AOC’s CMS system on AWS
- Traffic from the client web browser is first directed towards Elastic Load Balancing (ELB) configured as an Application Load Balancer (ALB). Depending on the host header and the path of the request, the ALB will forward the request to the corresponding API service to respond to the request.
- The architecture leverages an internal ALB to front services (Case API) that don’t require external access. This internal ALB only allows other courts running in the Amazon Virtual Private Cloud (Amazon VPC) to access it while restricting external access.
- An Amazon ECS cluster hosts the different application’s services:
- Amazon ECS is configured to spread tasks across Availability Zones (AZ) to provide high availability and to auto scale to handle traffic spikes.
- Amazon ECS registers the individual tasks with their corresponding ALB targets.
- The ALB will direct the request to the particular target based on the URL of the packet.
- When the request from the ALB reaches the AWS Fargate tasks, the container will process the request, pull the data from the RDS database, if needed, and send the response back to the ALB.
- Amazon RDS is configured for Multi-AZ deployment to provide increased availability, data durability, and fault tolerance for DB instances. In the event of planned database maintenance or unplanned service disruption, Amazon RDS automatically fails over to the up-to-date secondary DB instance. This functionality lets database operations resume quickly without manual intervention.
Results by working backwards from business goals
Reduction in total cost of ownership (TCO) – By making sure that all new development used cross-platform frameworks (.NET and .NET Core), AR-AOC moved the application hosting environment from an on-premises Windows-based environment to an AWS serverless Linux container-based environment. With this switch, they reduced their Windows Server license fees, while also putting themselves in a position to take advantage of all the innovation happening on Linux platforms.
Turning off environments when not in use – AR-AOC saw the opportunity to further optimize costs for their non-production environments by shutting down computer resources when not in use. AR-AOC and AWS designed scaling techniques for their Amazon ECS services using Amazon CloudWatch and AWS Lambda and for their RDS instances using AWS Systems Manager. AWS SAs provided guidance on using the AWS Cloud Development Kit (AWS CDK) to create constructs that allowed AR-AOC to shut down resources during off hours and bring them back during regular work hours. This simple solution allowed them to easily set up scheduling for all the Amazon ECS services and RDS databases without manually configuring each resource.
Agility through DevOps – As AR-AOC set off on their cloud journey, they identified agility as one of their primary business goals. As the application’s scope increases and their team size grows, they wanted to be agile in the way they operated and optimized both the productivity of their developers and the reliability of their operations. AR-AOC embraced the DevOps mindset right from the beginning of their AWS journey and have positioned themselves to reap the benefits of speed, rapid delivery, reliability, scale, improved collaboration, and security as they build more applications and functionality for their customers on AWS.
Familiar tools – The development teams at AR-AOC use Visual Studio for .NET development. For this project, they leveraged the AWS Toolkit plugin for Visual Studio, which helped them interact with their AWS environments without leaving their favorite IDE.
Optimize the performance of the CMS application and reduce costs via serverless – After exploring several options, AR-AOC went with the serverless AWS Fargate engine to host the containerized .NET services. This approach reduced both the infrastructure maintenance time and infrastructure costs. AR-AOC further optimized their costs by designing Amazon ECS to scale-in the Amazon ECS Task count to zero during off hours for their non-production environments.
Operational overhead eliminated by the managed database – By moving to a managed database service, Amazon RDS for SQL Server, they moved the efforts required for its operational upkeep to AWS, thus freeing development teams to focus more on application development. In line with the cost optimization goal, the AR-AOC team and the AWS SAs worked on a solution to automatically start and stop running their Amazon RDS instances based on their normal usage hours for non-production environments. AR-AOC saved a minimum of 40% on DB compute and SQL Server license costs by implementing this strategy.
What comes next for AR-AOC
Now that AR-AOC is more familiar with the AWS environment, they continue to optimize for cost and performance of their CMS application:
- Database modernization: To further optimize for cost, the agency is looking for ways to modernize their database layer. After learning more about this business driver, the AWS SA team provided the agency with a hands-on experience for Amazon Aurora. To save SQL Server licensing costs, AR-AOC is planning to move their database to Amazon Aurora using Babelfish for Amazon Aurora PostgreSQL.
- Consolidation of Elastic Load Balancing for ALBs: The agency is also working towards consolidating several ALBs into one. They are reconfiguring their applications to leverage path-based routing.
By partnering with AWS, AR-AOC successfully built a modern, cloud-based, service-oriented CMS application using serverless AWS Fargate services. They used AWS Toolkit for Visual Studio, which integrates into .NET native tooling, to build and set up their non-production environments. The agency met their business goals by iterating, fine-tuning, and building an architecture that reduced their total cost of ownership while optimizing their application performance. They also reduced their operational overhead by moving to managed services wherever applicable.
By taking advantage of AWS serverless services like AWS Fargate to run their Linux containers, AR-AOC realized ~40% savings on compute resources as compared to hosting their application on EC2. By modernizing their application to a modern cross-platform version of .NET, they also saved on Windows Server licensing.
AWS can help you assess how your company can get the most out of cloud. Join the millions of AWS customers that trust us to migrate and modernize their most important applications in the cloud. To learn more on modernizing Windows Server or SQL Server, visit Windows on AWS. Contact us to start your modernization journey today.