Although the benefits of migrating from a commercial on-premises database are apparent, the process of database modernization is not always straightforward. As highlighted earlier, various modernization pathways come with different complexities. The factors that define these complexities are explored in this article.
A database doesn’t operate in isolation; it is always part of a complex environment interconnected with other systems. The most crucial of these systems is the software application using the database as a data store.
Any application can be broken down into layers of software code based on their responsibilities:
- Presentation layer: This encompasses the user interface (UI), including desktop forms or webpages, and is unlikely to need modifications during database modernization.
- Application logic layer: This layer is responsible for data manipulation, like hotel reservations or accounting calculations.
- Data access layer: This is the main area where changes occur during database modernization, provided the application is well structured.
- Database layer: This layer consists of the schema and the data. If this layer also contains application logic (like stored procedures or functions), heterogenous database migrations can become more complex.
The complexity of migrations can be defined as Lowest, Low, High, Highest.
Potential difficulties in database modernization
Database modernization can be smooth and efficient when properly planned and executed. However, there are several factors that can complicate the process:
Executive sponsorship
Lack of business validation or priority for database modernization can lead to slow or stalled initiatives. A robust business case, executive sponsorship, and a data strategy can mitigate these issues.
Scope and planning
The cost and complexity of the project might be significantly larger than anticipated due to poor initial assessment or overambitious goals.
Go-live
The absence of a solid launch plan, including cutover without outage (or with a minimal one), can pose challenges. This is often due to the data volume, structure, or cutover requirements
Navigating the modernization process: key considerations
Whether your team is working directly on the process or you’re collaborating with a cloud partner, understanding common pitfalls can significantly streamline the process. In this section, we explore several fundamental aspects of the modernization process, as depicted in the following figure
Importance of people and skills in database modernization
The human factor is the cornerstone of any technology transformation, including database modernization. A successful transformation requires:
- The personnel involved in planning and executing the modernization process must possess the necessary skills and experience in the relevant technologies and the application context.
- The team dedicated to this work should focus solely on the task at hand, ensuring no diversion or conflict with other priorities.
Essentials of Planning and Process
Effective planning is another crucial aspect of a successful transition. This includes:
- Creating a detailed modernization plan that covers all essential phases: assessment and discovery, proof of concept, development and testing, and finally data migration and launch.
- Prioritizing essential components over desirable ones.
- Reviewing estimates and assumptions upon completion of the proof of concept.
- Formulating a comprehensive launch plan that covers data migration, code deployment, and configuration changes for both success and rollback pathways.
- Designating tasks to responsible teams with defined timelines.
Assessment and Discovery
This phase aims to validate and define the following aspects:
- A robust business case for modernization with a maximum return on investment (ROI) period of ideally 12 months.
- Active sponsorship of the business case by the executive leadership, fostering change.
- Consideration of both business and technical aspects, including business drivers, technical drivers, dependencies and impact estimates, required changes, and target cost estimates.
- A careful assessment and understanding of the project’s scope, especially concerning dependencies and impacts on applications utilizing the database.
- Identification of key technical risks and outlined assumptions.
Proof of Concept
The purpose of a proof of concept (PoC) stage is to mitigate identified risks and assumptions through prototyping or small-scale experiments. An effective PoC should eliminate or clarify the top identified risks and unknowns:
- Addressing high-risk technical items by confirming feasibility or exploring alternative options.
- Confirming high-impact assumptions.
- Verifying the technical assumptions of the launch plan.
- Validating and adjusting cost and effort estimates as needed.
Development stage
- This is where the technical solution confirmed through the PoC is executed:
- Database scripts for the target database, including data definition and mapping, are prepared, possibly using tools such as the AWS SCT.
- Any required application changes are implemented.
- Automated testing for these changes is established, forming an integral part of the development process and deployment strategy.
Migration and Launch
The launch phase entails more than just initiating a deployment job. It involves several planned and executed steps:
- Setting up the target environment.
- Planning and considering data migration and ongoing synchronization for the transition period, including:
-
- Understanding the deployment and migration plan.
- Planning for technical and business validation post-deployment.
- Planning the cutover for the workload with minimal downtime.
- Defining the rollback plan in case of a no-go decision.
- Ensuring databases are in sync, with a rollback option if deployment validation fails.
- Planning post-deployment data cleanup and decommissioning.
In conclusion, transitioning away from commercial databases and managed instances can result in significant cost savings and facilitate modern application architectures, enhancing the speed-to-market, among other benefits. While database transitioning may be a complex task, when executed correctly, it can deliver these benefits.
To ensure success, engage knowledgeable individuals, identify dependencies and impacts early, validate assumptions and clarify risks through a PoC, and have a solid plan for data migration and application launch.