What The Hack - Intro To OSS DB Migration to Azure OSS DB
Introduction
This intro level hackathon will help you get hands-on experience migrating databases from on-premises PostgreSQL, Oracle and/or MySQL to Azure DB for PostgreSQL and/or Azure DB for MySQL.
Learning Objectives
In this hack you will solve a common challenge for companies migrating to the cloud: migrating databases such as PostgreSQL, Oracle and MySQL to Azure. The application using the database is a sample e-commerce application written in Java. It will be configured to use PostgreSQL, MySQL and/or Oracle.
The participants will learn how to:
- Perform a pre-migration assessment of the databases looking at size, database engine type, database version, etc.
- Use offline tools to copy the databases to Azure OSS databases
- Use the Azure Database Migration Service to perform an online migration (if applicable)
- Do cutover and validation to ensure the application is working properly with the new configuration
- Use a private endpoint for Azure OSS databases instead of a public IP address for the database
- Configure a read replica for the Azure OSS databases
Challenges
- Challenge 0: Pre-requisites - Setup Environment and Prerequisites!
- Prepare your environment to run the sample application
- Challenge 1: Discovery and assessment
- Discover and assess the application’s PostgreSQL/MySQL/Oracle databases
- Challenge 2: Offline migration
- Dump the “on-prem” databases (or use a tool like ora2pg), create databases for Azure DB for PostgreSQL/MySQL and restore them
- Challenge 3: Offline Cutover and Validation
- Reconfigure the application to use the appropriate connection string and validate that the application is working
- Challenge 4: Online Migration
- Create new databases in Azure DB for PostgreSQL/MySQL and use the Azure Database Migration Service to replicate the data from the on-prem databases
- Challenge 5: Online Cutover and Validation
- Reconfigure the application to use the appropriate connection string for Azure DB for PostgreSQL/MySQL
- Challenge 6: Private Endpoints
- Reconfigure the application to use configure Azure DB for PostgreSQL/MySQL with a private endpoint so it can be used with a private IP address
- Challenge 7: Replication
- Add an additional replica to the Azure DB for PostgreSQL/MySQL
Prerequisites
Repository Contents
../Coach
- Lecture presentation with short presentations to introduce each challenge
- Example solutions and coach tips to the challenges (If you’re a student, don’t cheat yourself out of an education!)
../Student/Resources
- Pizzeria application environment setup
Contributors
- Pete Rodriguez
- Israel Ekpo
- Mike Shelton
- Daniel Kondrasevich
- Sumit Sengupta
- Peter Laudati