Migrating LoB applications to the Cloud
Crystal HR and Security Solutions (P) Ltd. is a HR product development company having its base in Chennai, India.
Wallet HR is a comprehensive HR solution that helps an organisation to effectively manage an employee data from Talent acquisition to retirement. Wallet HR is offered under on premise and on-cloud platform at very attractive prices. Client has an option to choose from various modules of HR according to their requirements. The product is extremely dynamic and user-friendly where most of the HR functions can be rolled out without any customisations thereby ensuring on time to market. The product is so versatile that it can be implemented across any vertical. There is no limit on the number of employees that can be accommodated in the product.
Crystal HR also offers payroll outsourcing services where the company processes the payroll for the clients on a monthly basis. The client provides Crystal HR the variable data for each month to enable the processing of the payroll with income tax. Crystal HR also helps the client to file the online and offline statutory returns pertaining to PF, ESI, Professional tax, LWF and Income tax.
Challenges faced by Crystal HR
Crystal HR developed their main applications running on Windows 2016 with Microsoft SQL Server 2016 as its backend database. The application is accessed by clients using Web and RDS.
The servers were hosted at their on-premise datacentre. They were facing issues in Network connectivity, also provisioning additional compute/storage as per business demand was difficult and time consuming. Database availability was another critical challenge, which directly impacted their business during DB failures. Enablement of Direct Database replication using Microsoft Always-On option was not feasible considering the licensing cost.
These were the challenges faced by the customer, for which they roped in Precision for the solution design and implementation to provide high available environment with minimal cost impact.
Proposed Solution and Architecture
Based on the discussions with the customer and on understanding their challenges, Precision proposed to host their application environment in AWS with necessary redundancy for their application platform. As the applications are being accessed by users through RDP, Microsoft RD services hosted with load balancer to distribute their RD connectivity load on RD Services. Application was planned to be hosted on EC2 instance with snapshot backup enablement on periodic basis.
With respect to Database redundancy, as Microsoft Always-On feature is not feasible considering the licensing cost, Precision proposed to enable the redundancy using Cloud Endure (3rd party backup solution). CloudEndure DR is used to replicate Primary MS SQL Database server with continuous block-level data replication with sub-second RPO in another region and enabled with continuous monitoring. This helps customer on recovering / restoring the database to the previous point, prior to the DB corruption with minimal downtime. The added advantage of using CloudEndure is, the customer does not need to pay for additional DB licenses and for compute instances during the replication.
AWS services used in the solution
Amazon Virtual Private Cloud (VPC)
Amazon Elastic Compute Cloud (EC2)
Amazon Elastic Block Store (EBS)
Amazon S3 bucket
Third Party Applications Used
CloudEndure for replicating DB server
- Created VPCs with two different subnets on same Availability Zone
- Domain controller and database servers are hosted in private subnet
- Internet access to EC2 instances are provided through NAT instance
- Windows 2016 EC2 instances were launched for Domain controller
- Windows 2016 with MS SQL Server Standard edition EC2 instance was launched to host the application database
- Applications are published through Remote Desktop Web
- Active Directory Domain Service
- ADDS installed in an EC2 instance
- DNS configured in the Domain Controller
- Users and Groups were created in the Domain
- Security policies were created as per Customer requirement
- Database Setup
- MS SQL 2016 installed in separate EC2 instance
- The backups were downloaded and restored from S3 bucket
- Application Setup
- Applications were installed and configured on separate EC2 instances
- Application pre-requisites were installed using PowerShell
- Applications were published using Microsoft Remote Desktop Services
- RDS licensing and gateway services are installed and activated in separate EC2 instance
Outcomes and Success Metrics
- Infrastructure was set up and tested prior to migrating the live data
- On successful testing the live database was migrated to AWS
- The performance issue addressed and rectified in AWS
- Based on the utilization the instances type, size and EBS volumes size were modified
- DR tested using CloudEndure
- CloudFormation template was created using Cloud Former for future use
The server configuration can be easily scaled with minimal downtime.
Backup & Restore
EBS volumes are backed up using snapshot, also the snapshots are incremental, hence utilizing lesser storage. File-Level restore can be performed by creating EBS volumes from snapshot and attaching it to the EC2 instance. A new instance can be launched using the custom AMI of the application server.
CloudEndure DR is used to replicate Primary MS SQL Database server with continuous block-level data replication with sub-second RPO in another region and enabled with continuous monitoring. Second level Database backup enabled to store in S3. During primary DB failure, restore the database instance from CloudEndure with the latest updated data in the target subnet.
Data Encryption Requirements
Websites are published over HTTPS through load balancer
Access to applications are controlled by ADDS
Complete infrastructure was built using CloudFormation template which can be used for faster deployment, rollout for any new requirements. Usage of Cloud Endure for database replication helped in restoring the DB in minutes which prevented the business to shutdown for hours / days.