Skip to content

Instantly share code, notes, and snippets.

@dhavaln
Last active April 18, 2024 07:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dhavaln/ab916d1c838addfc562bcde1e9155ca1 to your computer and use it in GitHub Desktop.
Save dhavaln/ab916d1c838addfc562bcde1e9155ca1 to your computer and use it in GitHub Desktop.
AWS Migration Project Analysis through SoftwareSpec.ai

Following requirements is given by the client:

The client is a Pharma company with number of physical facilities in a region. They have purchased a system for the Gate Entry that creates entry passes for visitors and also allows the regular workers to enter and exit the facility with records.

They want to move this application to AWS Cloud and access it from there. The decision to move this to the AWS Cloud came in from the high management as part of their Cloud Migration plan.

Below is the list of key features:

  • Lift and shift the current application to the AWS Cloud
  • Current application is hosting on local Windows 2016 Servers with Application Server and MS SQL Database Server
  • The software vendor from whom the application was purchased will help in the setup once the basic infrastrucure is created for them and made it accessible.

Cloud Migration requirements:

  • Infrastrucure resources required for the application must be part of the Infrastrucure As Code script
  • The overall infrastrucure has to be secure and only authorised users can access the AWS resources
  • They need logs and trails for all the changes made to their AWS account so that it can be assessed monthly basis
  • They want detailed billing report every month so that they can understand cost implications

Future requirements:

  • They would like to optimize the billing by opting for various Cost Saving practices
  • They would like to create a Disaster Recovery plan, so in case anything happens to the Cloud system the application is still accessible from the DR environment
  • DR setup will be in the Cold mode, so they they don't need to pay for it continuously. But they would like the database to be backed up periodically so that the DR setup can be quickly started with most recent data backup.
For this use case, we only used 1 itegration for question generation, instead of 2 or 3 that we have done for other use cases. With single integration, the questions are basic and does require more to confirm further.

The following is the list of questions and answers already discussed with the client.

Current Application

Application Functionality

Q: Can you provide a detailed overview of the gate entry system's functionality, including the types of users, access levels, and data it manages?

A: It's general application designed to log Entry and Exit time, Name, Contact Detail, Purpose of Visit, Whom they are visiting, Which areas they will need access to, etc. For non-visitor regular employees it will just record In/Out time.

Application Performance

Q: What is the current performance of the application in terms of response time, user concurrency, and resource utilization?

A: This is a business critical application as any disturbance will impact the Gate Entry/Exit operations. The software application purchased from the vendor has a caching mechanism that can work in case the server is down for some time and it can sync the data later on. But we are yet to get the full detail on how that works. The entry system is a Think Window client so it can work with some network disturbance.

Software Vendor Support

Q: What level of support will the software vendor provide during and after the migration process?

A: They will provide full support as they have their own support contract with the company.

Cloud Migration

Infrastructure as Code (IaC)

Q: Do you have a preferred IaC tool (e.g., Terraform, AWS CloudFormation) for managing the infrastructure?

A: AWS CloudFormation is preferred.

Security and Access Control

Q: Can you elaborate on the desired access control measures and security requirements for the application and infrastructure?

A: Yes, only authorized users will be able to access the AWS account and resources like EC2 and RDS.

Logging and Auditing

Q: Are there specific compliance requirements or regulations that necessitate detailed logging and auditing?

A: Yes, all the infrastructure changes has to be logged and archived.

Cost Management

Q: Do you have a budget allocated for the migration and ongoing cloud expenses?

A: Yes, we have factored in the budget based on the AWS Calculator and the configurations of the resources provided by the vendor. Mainly Windows Server EC2 and the Database server will have higher cost.

Future Requirements

Cost Optimization

Q: What are your expectations for cost savings through optimization practices? Are there any specific areas you'd like to focus on?

A: They first want to migrate and validate, and after the cool down period we will look at the optimization option. The company already has a Root AWS Account where all the billing happens, so we are assuming they have some sort of Cost Savings enabled there.

Disaster Recovery (DR)

Q: What is your Recovery Time Objective (RTO) and Recovery Point Objective (RPO) for the DR plan?

A: Expected RTO is 12 hours and RPO is 12 hours.

Data Backup

Q: How frequently do you want to back up the database for the DR environment?

A: Daily

Technical Aspects of Pharma Gate Entry System Migration to AWS Cloud

Based on the requirements and discussions with the client, here's a breakdown of the technical aspects for migrating the Pharma company's gate entry system to AWS Cloud:

Current Application:

  • Functionality: The application logs entry and exit times, visitor details, and employee attendance. It uses a thick client with caching mechanisms for offline functionality.
  • Performance: Business-critical with potential impact on operations if disrupted. Caching provides some buffer during outages.
  • Technology: Hosted on Windows Server 2016 with an application server and MS SQL Database server.
  • Vendor Support: Full support from the software vendor throughout the migration process.

Cloud Migration Requirements:

  • Lift and Shift: Migrate the existing application to AWS with minimal changes for faster cloud adoption.
  • Infrastructure as Code (IaC): Use AWS CloudFormation to manage and provision infrastructure resources consistently and reliably.
  • Security and Access Control: Implement strict access controls using IAM roles and policies to ensure only authorized personnel can access AWS resources.
  • Logging and Auditing: Enable AWS CloudTrail to track all API calls and changes made within the AWS account for compliance and auditing purposes.
  • Cost Management: Utilize AWS Cost Explorer and Budgets to track and optimize cloud expenses, aligning with the allocated budget.

Future Requirements:

  • Cost Optimization: Explore cost-saving measures such as Reserved Instances, Savings Plans, and right-sizing resources after the initial migration and stabilization phase. Leverage existing cost-saving practices within the company's root AWS account.
  • Disaster Recovery (DR): Design a DR plan with a Recovery Time Objective (RTO) of 12 hours and Recovery Point Objective (RPO) of 12 hours. This will ensure minimal downtime and data loss in case of a disaster.
  • Data Backup: Implement daily backups of the MS SQL database using AWS Backup or a similar service to facilitate quick recovery during DR scenarios.

Proposed Technical Approach:

  1. Migration Strategy: Utilize the "lift and shift" approach, migrating the existing Windows Server 2016 and MS SQL Server instances to AWS EC2 instances. This minimizes application changes and expedites the migration process.
  2. Infrastructure Provisioning: Leverage AWS CloudFormation to define and automate the infrastructure provisioning, ensuring consistency and repeatability. This includes creating EC2 instances, VPCs, security groups, and RDS instances.
  3. Database Migration: Migrate the MS SQL database to Amazon RDS for SQL Server or maintain it on an EC2 instance depending on specific needs and licensing considerations. Use AWS Database Migration Service (DMS) for seamless and secure data transfer.
  4. Security Implementation: Implement a layered security approach with security groups, IAM roles and policies, and network ACLs to control access to resources and data. Consider AWS WAF for additional application-level protection.
  5. Monitoring and Logging: Enable CloudWatch for comprehensive monitoring of infrastructure and application performance. Utilize CloudTrail for logging API calls and changes for audit purposes.
  6. Disaster Recovery: Implement a pilot DR environment in a separate AWS Region using CloudFormation templates. Automate regular backups of the database and application data using AWS Backup for quick recovery. Regularly test the DR plan to ensure its effectiveness.
  7. Cost Optimization: Evaluate resource utilization and explore cost-saving options like Reserved Instances, Savings Plans, or Spot Instances after the initial migration and testing phase. Review and implement recommendations from AWS Cost Explorer.

Technology Stack:

  • Compute: Amazon EC2 (Windows Server 2016 instances)
  • Database: Amazon RDS for SQL Server or self-managed SQL Server on EC2
  • Networking: Amazon VPC, Security Groups, Network ACLs
  • Management and Automation: AWS CloudFormation, AWS CloudWatch, AWS CloudTrail
  • Security: IAM, Security Groups, Network ACLs, AWS WAF (optional)
  • Disaster Recovery: AWS Backup, Pilot DR environment in a separate AWS region

Additional Considerations:

  • Application Performance Optimization: Analyze application performance after migration and consider optimization techniques such as caching, load balancing, and auto-scaling.
  • Security Best Practices: Regularly review and update security policies and procedures. Implement security best practices like multi-factor authentication and least privilege access.
  • Compliance Requirements: Ensure that the architecture and practices adhere to any industry-specific compliance requirements or regulations relevant to the Pharma industry.

Next Steps:

  • Collaborate with the software vendor to understand specific application requirements and configurations.
  • Define detailed CloudFormation templates for infrastructure provisioning.
  • Plan and execute the database migration process.
  • Implement security controls and access policies.
  • Configure monitoring and logging mechanisms.
  • Develop and test the disaster recovery plan.
  • Continuously monitor and optimize cost and performance.

By following these steps and considering the technical aspects, the Pharma company can successfully migrate their gate entry system to AWS Cloud, achieving their goals of improved scalability, security, and cost efficiency.

Project Overview:

A Pharma company wants to migrate its on-premises gate entry system to the AWS cloud. This system manages employee and visitor access to their facilities, recording entry/exit times and relevant details. The primary goal is a lift-and-shift migration, maintaining existing functionalities while leveraging cloud benefits.

Current System:

  • Functionality: Logs entry/exit times, names, contact details, visit purposes, visited personnel, and accessed areas.
  • Technology: Windows Server 2016, application server, MS SQL Database server.
  • Performance: Business-critical, requiring high availability. Utilizes a caching mechanism for offline functionality.
  • Vendor Support: Full support from the software vendor is available throughout the migration process.

Cloud Migration Plan:

  • Lift and Shift: Migrate the existing application and database to AWS without major modifications.
  • Infrastructure as Code (IaC): Utilize AWS CloudFormation to manage and provision infrastructure resources, ensuring consistency and repeatability.
  • Security: Implement strict access controls and security measures to protect AWS resources and data.
  • Logging and Auditing: Enable comprehensive logging and trails for all AWS account activities to facilitate monthly assessments and compliance.
  • Cost Management: Utilize AWS Cost Explorer and detailed billing reports to understand and optimize cloud expenses.

Future Considerations:

  • Cost Optimization: Explore cost-saving opportunities after the initial migration and stabilization period, potentially leveraging AWS Reserved Instances or Savings Plans.
  • Disaster Recovery (DR): Design and implement a DR plan with a Recovery Time Objective (RTO) and Recovery Point Objective (RPO) of 12 hours. This will involve setting up a cold standby environment and performing daily database backups.

High-Level Recommendations:

  1. Migration Approach: Evaluate AWS services like AWS Server Migration Service (SMS) and Database Migration Service (DMS) for efficient migration of the application and database.
  2. Infrastructure: Consider Amazon EC2 instances for the application server and Amazon RDS for SQL Server for the database.
  3. Security: Implement AWS Identity and Access Management (IAM) to control user access, security groups for network access control, and AWS Key Management Service (KMS) for data encryption.
  4. Logging and Auditing: Utilize AWS CloudTrail for API call logging and AWS Config for infrastructure configuration change tracking.
  5. Cost Optimization: Analyze usage patterns and explore options like right-sizing instances, utilizing spot instances, and leveraging cost-effective storage options like Amazon S3.
  6. Disaster Recovery: Explore options like Amazon EC2 Auto Scaling and Amazon RDS Multi-AZ deployments for high availability and failover mechanisms. Regular backups to Amazon S3 can be used for recovery purposes.

Next Steps:

  • Conduct a detailed assessment of the current application and infrastructure.
  • Define the specific AWS services and configurations required.
  • Develop the IaC templates using AWS CloudFormation.
  • Implement the migration plan, including testing and validation.
  • Set up monitoring and alerting mechanisms.
  • Establish a process for ongoing cost optimization and security reviews.
  • Design and implement the disaster recovery plan.

By following these recommendations, the Pharma company can successfully migrate its gate entry system to the AWS cloud, achieving improved scalability, reliability, and security while optimizing costs and ensuring business continuity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment