Scotform Solutions offer their flagship product Formwize to help customers push their timesheets, expenses, orders, customer signup and more online. This is offered as a multi-tenant environment for SMEs, and as dedicated environments for large customers such as several UK CNI’s (Critical National Infrastructure Providers) from the UK’s largest telecommunication provider to regional government “blue-light” service organisations.
Scotform previously hosted Formwize in Microsoft Azure. The technology stack included Microsoft SQL Server, and Windows VMs running IIS and Lucee.
This led to a number of challenges:
Costs were high, particularly due to licensing of SQL Server and Windows VMs
Operational overhead, particularly of managing Windows VMs including security updates.
Reliability vs cost tradeoff was expensive, running multiple Windows VMs for high availability.
Scotform decided to migrate Formwize to AWS, and to modernise the application architecture. Cloudsoft worked closely with Scotform to plan, test and execute this migration.
The following services were used in the final solution:
Amazon Relational Database Service (RDS) for SQL Server
AWS Fargate, running the app-tier in containers
AWS Application Load Balancer
AWS Web Application Firewall (WAF) and GuardDuty for improved security
Amazon Elastic Container Registry (ECR) for storing container images
AWS Code Deploy for releases, updating the Fargate container cluster
AWS CloudWatch and SNS for monitoring and alerting
Azure DevOps pipeline for the build and release pipeline
For database migration to RDS, customer requirements meant a small overnight maintenance window was acceptable. The simplest strategy was therefore to create a backup from the database in Azure, upload the .bak file to S3, and import that into RDS SQL Server. This approach was simple to test during dry-runs, and manageable from a networking and security perspective (e.g. no need to form a connection to both the private database instances in Azure and RDS for data transfer).
Use of RDS SQL Server kept the total cost of ownership low: AWS manages the day-to-day operations, including backups, upgrades and failure recovery. Because of using this managed service, iit was simple to achieve the business requirements such as snapshot retention period, high-availability, and to write the runbooks ,e.g. for disaster recovery. Continuing to use SQL Server simplified the migration as no code changes were required - Scotform are considering switching to AWS Aurora in the future to further reduce license costs.
High availability was easily achieved by configuring RDS to run multi-AZ, and similarly running the containers in Fargate multi-AZ.
The Azure DevOps pipeline was chosen because Scotform were already familiar and happy with this tooling - it meant minimal change to the developer experience. Azure DevOps integrates well with AWS services, allowing container images to be pushed to ECR and allowing releases to trigger Code Deploy for updating the Fargate cluster.
The Results and Benefits
The migration from Azure to AWS went smoothly, and the application modernisation has delivered many benefits: reduced cost, simplified operations, improved performance and scalability because containers can be spun up quickly, and improved reliability by running across multiple AWS availability zones.
Cloudsoft and Scotform Solutions continue working together to operate and further modernise the application.
If your organization is considering migrating or modernising Microsoft-based workloads or any old-guard technology, get in touch to accelerate and de-risk your project.