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