Location Research Breakthrough Possible @S-Logix pro@slogix.in

Supply Chain Management Application Migration from an On-Premises to Cloud Infrastructure

Description

This project is about moving a legacy Supply Chain Management application from an on-premises physical server to Cloud infrastructure. The existing application manages supplier information, procurement, inventory, warehouse operations, customer orders, shipment, transportation, and delivery tracking. The project will migrate the application and its data to Cloud, create the required Cloud servers and network, configure the environment automatically, and move the application to Cloud with minimal interruption.

Aim

To safely migrate the existing Supply Chain Management application from an on-premises server to Cloud infrastructure using a lift-and-shift approach while maintaining application availability, security, monitoring, and data integrity.

Objectives

01 Assess and document the existing server, operating system, software, and application dependencies.
02 Create the required Cloud network and virtual servers using Infrastructure as Code.
03 Migrate the existing application, operating system, data, and required files to Cloud.
04 Automatically configure the migrated servers and application using automation tools.
05 Configure monitoring to track server performance, storage, and application traffic after migration.
06 Complete the migration with minimal disruption and without losing application data.

Application Workflow

01

Supplier Management

Process

Supplier information is maintained in the application. Supplier details, supplier availability, purchase-related information, and supplier transactions are recorded for procurement operations.

Tools
Nginx PostgreSQL 14
Implementation

Users access the supplier module through the web interface. Nginx receives the request and forwards it to the SCM application. Supplier information is stored and retrieved from PostgreSQL.

02

Procurement Management

Process

Procurement users create and process purchase requests and purchase orders based on business requirements and inventory needs. Supplier information is associated with the relevant procurement transaction.

Tools
Nginx PostgreSQL 14 REST APIs
Implementation

The application validates procurement information and stores purchase-order transactions in PostgreSQL. External procurement systems can exchange required information through REST APIs.

03

Inventory Management

Process

The application checks available stock, records stock movements, updates inventory quantities, and provides current inventory availability for order and procurement decisions.

Tools
PostgreSQL 14
Implementation

Inventory transactions are processed by the application, while stock quantities, item information, and inventory movements are persisted in PostgreSQL.

04

Warehouse Management

Process

Received goods are recorded and warehouse activities such as receiving, storage, picking, and packing are managed.

Tools
PostgreSQL 14
Implementation

Warehouse users process warehouse transactions through the application. The resulting receiving, picking, packing, and stock-movement information is stored in PostgreSQL.

05

Order Management

Process

Customer orders are received, validated, and processed. The application checks order information and inventory availability before the order proceeds to fulfilment.

Tools
Nginx PostgreSQL 14 REST APIs
Implementation

The application receives the order request through Nginx, validates the order, checks inventory information in PostgreSQL, and records the order transaction.

06

Shipment and Transportation

Process

After order fulfilment, shipment information is created. Transportation details are assigned and the appropriate delivery route is calculated.

Tools
PostgreSQL 14 REST APIs
Implementation

Shipment and transportation information is processed by the application. Shipment details, route information, and transportation status are stored in PostgreSQL. External carrier or transportation systems can exchange shipment information through REST APIs.

07

Shipment Tracking and Delivery

Process

Shipment status is updated throughout transportation until delivery is completed.

Tools
SCM Application PostgreSQL 14 REST APIs
Implementation

Tracking updates are received by the application, recorded in PostgreSQL, and displayed to authorized users through the SCM application.

08

Data Storage

Process

Supplier, procurement, inventory, warehouse, order, shipment, transportation, and tracking information is stored persistently.

Tools
PostgreSQL 14
Implementation

The application communicates with PostgreSQL for transactional data storage and retrieval. In the migrated Cloud environment, the PostgreSQL data is stored on Cloud EBS attached to the EC2 instance.

09

Security and Access

Process

User access and network communication to the application and database are controlled according to the infrastructure security configuration.

Tools
Linux Access Control UFW Cloud Security Groups
Implementation

Linux access controls manage server-level access, UFW controls host-level network traffic, and Cloud Security Groups control network access to the EC2 instance.

10

Logging and Monitoring

Process

Application requests, application events, database activities, errors, and server performance are monitored to identify operational problems.

Tools
Prometheus Node Exporter Grafana
Implementation

Nginx, the SCM application, and PostgreSQL generate their respective logs. Node Exporter collects server-level metrics such as CPU, memory, disk, and network usage. Prometheus collects and stores these metrics, while Grafana displays them through monitoring dashboards.

Current Infrastructure

Existing on-premises infrastructure and technologies used before migration.

Existing On-Premises Environment

Application Hosting On-Premises Server

Hosts the Supply Chain Management application, database, application files, and supporting services. The application currently depends on a single physical server.

Operating System Ubuntu Server 24.04 LTS

Provides the operating environment for the SCM application, web server, database, and supporting services.

Web Server Nginx

Receives incoming HTTP/HTTPS requests and forwards them to the SCM application. It acts as the web-facing entry point for users and integrated systems.

Database Server PostgreSQL 14

Stores the SCM application transactional data, including suppliers, purchase orders, inventory, warehouse operations, orders, shipments, and tracking information.

Storage Local SSD/HDD with ext4

Provides persistent local storage for the operating system, application files, PostgreSQL database files, configuration files, and logs.

Network On-Premises LAN using TCP/IP

Provides communication between users, the SCM application, PostgreSQL database, and connected enterprise systems within the organization network.

Security UFW + Linux Access Control

Controls network access to the server and restricts administrative access to authorized users and services.

Logging Nginx Logs + Application Logs + PostgreSQL Logs

Records web requests, application events, database activities, and errors for troubleshooting and operational analysis.

Monitoring Prometheus + Node Exporter + Grafana

Monitors server resources and application infrastructure, including CPU, memory, disk usage, network activity, and service availability.

Backup pgBackRest

Performs PostgreSQL database backup and recovery to protect SCM transactional data and support restoration in case of data loss or server failure.

External Integration REST APIs

Enables the SCM application to communicate with external enterprise systems for exchanging order, inventory, supplier, warehouse, and shipment-related information.

Target Infrastructure

Cloud-hosted infrastructure and technologies used after migration and modernization.

Cloud-Hosted Modernized Environment

Application Hosting Cloud EC2

Hosts the migrated Supply Chain Management application and its supporting services as a virtual server in Cloud.

Operating System Ubuntu Server 24.04 LTS

Provides the operating environment for the migrated SCM application, Nginx, PostgreSQL, and supporting services on the EC2 instance.

Web Server Nginx

Receives incoming application requests and forwards them to the SCM application running on the EC2 instance.

Database Server PostgreSQL 14

Stores the migrated SCM transactional data, including supplier, purchase order, inventory, warehouse, order, shipment, and tracking information.

Cloud Networking Cloud VPC

Provides the isolated Cloud network environment for the SCM application, EC2 instance, database communication, and controlled network access.

Network Security Security Groups + UFW

Security Groups control inbound and outbound traffic at the Cloud instance level, while UFW provides additional host-level firewall control inside the EC2 instance.

Cloud Storage Cloud EBS

Provides persistent block storage attached to the EC2 instance for the operating system, application files, PostgreSQL data, and required logs.

External Integration REST APIs

Enables the migrated SCM application to communicate with external enterprise systems for exchanging supplier, order, inventory, warehouse, shipment, and tracking information.

System Logging Nginx Logs + Application Logs + PostgreSQL Logs

Records web requests, application events, database activities, system events, and errors for troubleshooting after migration.

Monitoring Prometheus + Node Exporter + Grafana

Node Exporter collects infrastructure metrics from the EC2 server, Prometheus collects and stores the metrics, and Grafana provides dashboards for monitoring server performance and availability.

Backup pgBackRest

Provides PostgreSQL backup and recovery for the SCM database after migration.

Infrastructure as Code OpenTofu

Automates the creation and management of Cloud resources such as VPC, subnets, Security Groups, EC2, and EBS.

Configuration Management Ansible

Automates configuration of the EC2 environment, including Nginx, PostgreSQL, application settings, security configuration, and monitoring components.

Migration Tool Cloud Application Migration Service

Replicates the existing on-premises server to Cloud and supports the controlled cutover of the SCM application to the EC2 environment.

Implementation Process

01
Assess the Existing On-Premises Infrastructure
  • Use Nmap to identify the existing server open ports, network services, and connectivity requirements.
  • Use Open-AudIT to collect the physical server hardware, operating system, software, and storage information.
  • Use osquery to verify running services, installed packages, users, and system configuration.
  • Review the existing Nginx, PostgreSQL 14, local SSD/HDD, UFW, REST APIs, and application configuration to identify migration dependencies.
  • Review Prometheus, Node Exporter, Grafana, and pgBackRest to establish the current performance and backup baseline.
02
Build the Cloud Target Infrastructure
  • Use OpenTofu to provision the required Cloud infrastructure based on the existing server requirements.
  • Create the Cloud VPC and subnets for the target environment.
  • Provision the Cloud EC2 instance with suitable compute resources for the SCM workload.
  • Create and attach Cloud EBS storage to replace the existing local SSD/HDD storage.
  • Configure Security Groups and UFW to provide controlled access to the migrated environment.
03
Replicate the On-Premises Server to Cloud
  • Install and configure Cloud Application Migration Service (Cloud MGN) on the existing on-premises server.
  • Start continuous replication of the server operating system, application files, PostgreSQL data, and required configuration.
  • Monitor replication to ensure the on-premises server data remains synchronized with Cloud.
  • Launch a test EC2 instance using the replicated server data.
  • Verify that the migrated Ubuntu, Nginx, SCM application, PostgreSQL 14, and EBS storage are available in the test environment.
04
Configure and Validate the Migrated Cloud Environment
  • Use Ansible to configure the migrated EC2 environment, including Nginx, PostgreSQL, application settings, security, and monitoring components.
  • Verify the Nginx → SCM Application → PostgreSQL 14 request and data flow.
  • Configure Prometheus, Node Exporter, and Grafana and verify that EC2 infrastructure metrics are being collected and displayed.
  • Configure pgBackRest and verify PostgreSQL backup and recovery functionality.
  • Test REST API integrations, application functionality, database connectivity, network access, and security controls.
05
Perform Production Cutover to Cloud
  • Stop or restrict application activity on the on-premises server and allow Cloud MGN to complete the final data synchronization.
  • Launch the final migrated workload on the Cloud EC2 instance using the latest replicated data.
  • Verify Nginx, SCM application, PostgreSQL 14, EBS, UFW, monitoring, and backup services.
  • Update the existing DNS record from the on-premises server to the Cloud environment.
  • Perform final application and REST API validation and monitor the Cloud environment before retiring the old server.

Proposed Solution

The proposed solution moves the existing Supply Chain Management application from an on-premises server to Cloud. OpenTofu creates the Cloud infrastructure, Cloud Application Migration Service migrates the existing server, and Ansible configures the migrated environment. PostgreSQL 14 continues to store the SCM transactional data, while Cloud EBS provides persistent storage for the migrated EC2 environment. Prometheus, Node Exporter, and Grafana monitor the application and server performance after migration. This approach reduces dependency on physical hardware and provides a more manageable Cloud environment.

Benefits

Reduced hardware dependency – The application no longer depends on a physical office server.
Automated infrastructure – OpenTofu and Ansible reduce manual configuration work.
Better monitoring – Prometheus and Grafana provide visibility into server performance.
Flexible storage – Cloud EBS storage can be expanded when more capacity is required.
Easier management – The infrastructure can be managed through Cloud services and Infrastructure as Code.

Challenges

Network bandwidth – Large amounts of data may take time to transfer from the on-premises server to Cloud.
Legacy dependencies – Older Python libraries or system dependencies may have compatibility issues after migration.
Cloud costs – Running large EC2 instances and other Cloud resources continuously can increase monthly costs.
Application downtime – The final cutover needs to be carefully planned to minimize disruption.
Data consistency – The migrated application and its data must be validated before completely switching to Cloud.