ย้ายข้อมูลใน Firebase

ช่วงนี้เขียน mobile app ใช้บริการ Firebase เยอะมาก ทั้ง Authentication, Firestore, Firestorage ฯลฯ แต่ก็มีเหตุการณ์ที่ไม่คาดคิดเรื่องต้องย้ายข้อมูล เอาเป็นว่างานงอกกกกก หลังจากย้ายข้อมูลอยู่หลายวิิธีก็พบว่าใช้เครื่องมือหลายอย่างมาก ขอสรุปสั้นๆ ดังนี้

  • Firebase Authentication ใช้ firebase cli ในการ import/export ข้อมูลผู้ใช้
  • Firestore ใช้ gcloud cli สั่ง import/export ข้อมูลไปยัง Cloud Storage หรือใช้ node-firestore-import-export ก็ได้
  • Firebase Storage ใช้ gcloud หรือ Cloud Console ย้ายข้อมูลใน bucket ได้

ย้าย Docker Container ข้าม Cloud Provider

ปัญหาเรื่องการย้าย Application ข้าม Cloud Provider เป็นปัญหาปกติที่ต้องหาทางแก้ไข ซึ่งแต่ละ Cloud Provider มีช่องทางในการบริการที่ต่างกัน เทคโนโลยีต่างกัน เครื่องมือที่ใช้งานก็ต่างกัน เรียกได้ว่าถ้าจะย้าย instance จะทำได้ยากมาก ครั้งนี้จะให้แนวคิดเรื่องการย้าย Container จาก Cloud Provider ค่ายหนึ่งไปยังอีกค่ายหนึ่งหรือจาก Local ไปยัง Cloud Provider ก็ได้ ซึ่งทำได้หลายวิธี


จากภาพแนะนำการย้ายแบบง่ายๆ ผ่าน Docker อย่างเดียวไม่ได้ใช้เครื่องมือใดๆ เพิ่มเติม ถ้าจะให้สะดวกควรมี Orchestration Service อยู่ในแต่ละ Cloud Provider ด้วย ในเบื้องต้นทำความเข้าใจแบบง่ายๆ กันก่อน การทำ Migration ทำได้ 2 แบบ คือ

  1. Import / Export ไฟล์ Container ทั้งก้อนจาก Local ไปยัง Cloud วิธีนี้จะให้ความสะดวกมากกว่าแต่การสำรองข้อมูลและการย้ายไฟล์ Export จะช้าขึ้นอยู่กับความเร็วของเน็คเวิร์ก
  2. Push / Pull ให้ Commit Container State ปัจจุบันแล้ว push ขึ้น Docker Registry อาจจะเป็น Docker Hub (Private) หรือ Private Registry ที่ตั้งขึ้นเองก็ได้ จากนั้นค่อยสั่ง pull ไปยัง Cloud Provider ปลายทาง

สำหรับข้อมูลใน hipache ก็ต้องเปลี่ยนตาม เช่น จากเดิมอยู่ใน Local พอย้าย Container เสร็จจะต้องเปลี่ยน record ใน redis ชี้ไปที่ Container ที่อยู่บน Cloud จึงจะ route traffic ไปได้ถูกต้อง หากทำด้วยมือจะช้า ถ้าใช้ Orchestration Service จะเร็วและสะดวกกว่ามาก Continue reading ย้าย Docker Container ข้าม Cloud Provider