Questions about Web Application Migration

Rot Zieg 21 Reputation points
2020-11-02T16:26:44.67+00:00

Hello,

Our company is currently hosting our web-app on LAMP servers in DigitalOcean.

We have three separate LAMP servers in our cloud environment:

  1. DEVELOPMENT
  2. STAGING
  3. PRODUCTION

We are in the early stages of assessing our application's readiness for migration to the Azure Cloud.

My first question concerns database structure. Is it suggested to separate compute from memory and migrate to managed MySQL database instances for each environment? Or should I maintain the LAMP stack throughout the migration?

We are preparing for a steady climb in traffic over the next year.

I want to implement the best infrastructure now to minimize alterations in the future.

Any advice will be much appreciated. Thank you in advance.

Azure Virtual Machines
Azure Virtual Machines
An Azure service that is used to provision Windows and Linux virtual machines.
7,174 questions
Azure Database for MySQL
Azure Database for MySQL
An Azure managed MySQL database service for app development and deployment.
716 questions
Azure App Service
Azure App Service
Azure App Service is a service used to create and deploy scalable, mission-critical web apps.
6,931 questions
0 comments No comments
{count} votes

Accepted answer
  1. KalyanChanumolu-MSFT 8,316 Reputation points
    2020-11-03T05:04:35.313+00:00

    @Rot Zieg Welcome to Microsoft Q&A forums and thank you for your interest in Azure services.

    We have a detailed blog post on migrating LAMP stack applications to Azure.
    The migration checklist, tooling and assessment steps are documented in the post.

    The above process talks about moving your web app & database to managed services like Azure WebApp and Azure Database for MySQL, so you don't need to maintain virtual machines anymore.
    This will allow you to scale the web app and database independently rather than scaling the entire virtual machine for more compute and memory.

    Regarding your question on separate environments, you can provision development and staging environments on the fly whenever you have a need to use them.

    Please let us know if you need assistance at any point or have further questions.

    --

    If an answer is helpful, please "Accept answer" or "Up-Vote" for the same which might be beneficial to other community members reading this thread.

    0 comments No comments

1 additional answer

Sort by: Most helpful
  1. Rajnish Kumar 0 Reputation points
    2024-02-23T05:42:09.3233333+00:00

    Yes, this was my concern too. When migrating your web-app from LAMP servers on DigitalOcean to the Azure Cloud, considering the separation of compute from memory and transitioning to managed MySQL database instances for each environment can offer several benefits, especially in anticipation of increased traffic. Here are some key points to consider:

    1. Azure's managed database services, like Azure Database for MySQL, provide scalability, high availability, and security out of the box. By separating your database into managed instances, you offload the management of the database infrastructure, including backups, patching, and scaling, to Azure. This allows you to focus on application development and optimization rather than infrastructure management.
    2. As you expect a steady increase in traffic, leveraging Azure's managed databases can provide more straightforward scalability options compared to maintaining a LAMP stack on VMs. With managed databases, you can easily scale your database resources (both compute and memory) up or down based on your application's needs without significant downtime or reconfiguration.
    3. Managed databases on Azure offer built-in high availability configurations, ensuring that your application remains accessible even in the event of hardware failures. Additionally, separating compute and database layers allows for more optimized resource utilization, potentially leading to improved performance as each layer can be scaled and managed independently.
    4. Azure's managed databases come with built-in security features such as network isolation, encryption at rest and in transit, and the ability to integrate with Azure's identity and access management. This can help in meeting compliance requirements more efficiently than managing these aspects on your own in a traditional LAMP setup.
    5. While managed services might come with a higher price tag compared to running your own LAMP stack, the overall cost benefits become apparent when considering the reduced management overhead, the ability to scale precisely according to demand, and avoiding over-provisioning of resources.
    6. Moving to a cloud-native architecture with managed services positions you well for future growth and technology shifts. It opens up opportunities to leverage other Azure services seamlessly, such as Azure Kubernetes Service (AKS) for container orchestration or Azure App Service for web app hosting, which can further enhance scalability, manageability, and innovation.

    Maintaining the LAMP stack throughout the migration is a viable option, especially if there are specific dependencies or customizations in your application that require a tightly integrated stack. However, for most applications, the benefits of moving to managed services and separating concerns outweigh the convenience of maintaining a monolithic stack, particularly with your goal of minimizing future alterations and preparing for traffic growth.

    You can consult any of these LAMP Stack development companies if you wish. They ca guide you better.

    0 comments No comments