การย้ายฐานข้อมูลและสล็อตการปรับใช้ Azure


16

ฉันวางแผนที่จะส่งแอปพลิเคชันเว็บใหม่ไปยังบริการ Azure Web App (เว็บไซต์ Azure เดิม) ฉันต้องการใช้ประโยชน์จากสล็อตการปรับใช้เพื่อให้สามารถทดสอบการใช้งานของฉันก่อนที่จะผลักดันมันไปสู่การผลิต นั่นคือทั้งหมดที่ดีตราบใดที่ไม่มีการเปลี่ยนแปลง DB schema จำเป็นต้องใช้ แต่ถ้ามีการเปลี่ยนแปลงสกีมาฉันไม่สามารถมีซอฟต์แวร์เวอร์ชันสองเวอร์ชันที่ทำงานบน db เวอร์ชันเดียวกันได้ เนื่องจากฉันใช้ EF Migrations การกดไปที่สล็อตชั่วคราวจะส่งผลให้มีการอัปเดตฐานข้อมูลเป็นเวอร์ชันล่าสุดทันที

ดังนั้นคำถามของฉันคือว่ามีการใช้สล็อตการปรับใช้ใด ๆ หรือไม่เมื่อต้องการโอนย้ายฐานข้อมูล

ทำอย่างไรกับผู้ให้บริการ SaaS ขนาดใหญ่ พวกเขาทำการย้ายฐานข้อมูลทันทีด้วยเวอร์ชันใหม่หรือไม่ นั่นจะทำให้การหยุดทำงานของบางอย่างแน่นอน

ฉันสามารถนึกถึงวิธีแก้ปัญหาที่ค่อนข้างซับซ้อนสำหรับปัญหานี้มีอะไรที่ง่ายบ้างไหม?


ดังนั้นคุณไม่มีฐานข้อมูล dev หรือไม่
JeffO

ใช่เรามีระบบ dev และระบบประกันคุณภาพ ระบบที่อธิบายไว้ข้างต้นมีวัตถุประสงค์เพื่อการผลิต
Sam7

@ Sam7 คุณจัดการเพื่อหาวิธีแก้ไขปัญหานี้หรือไม่? ไชโย
WestDiscGolf

ฉันเกรงว่าจะไม่. ขณะนี้เรากำลังทดสอบการเปลี่ยนแปลงการย้ายข้อมูลในสภาพแวดล้อมที่แยกต่างหาก
Sam7

@ Sam7: ฉันคิดว่าคุณสามารถจัดการสิ่งนี้ได้โดยการแยกไฟล์. config ด้วยสตริงการเชื่อมต่อของตัวเองไปยังฐานข้อมูลของคุณ แต่คุณจะถูกต้องเมื่อคุณปรับใช้จากขั้นตอนการผลิตประโยชน์ของการย้อนกลับไม่ทำงานอีกต่อไป การเปลี่ยนแปลง db จะนำไปใช้ทันที ฉันอยากรู้สำหรับการแก้ปัญหาในอนาคตอันใกล้นี้ ...
โรเจอร์เอส

คำตอบ:


3

การปล่อยดาวน์ไทม์โดยใช้สล็อต Azure App Service และฐานข้อมูลเดียวที่แชร์โดย Staging และการผลิตเป็นไปได้ - แต่คุณต้องตรวจสอบให้แน่ใจว่าการเปลี่ยนแปลงฐานข้อมูลทั้งหมดเข้ากันได้ย้อนหลังเช่นเว็บแอปเวอร์ชันปัจจุบันและใหม่สามารถทำงานพร้อมกัน การจัดเตรียมและสล็อตการผลิต

กฎบางข้อที่รับรองว่าใช้งานได้:

  • คอลัมน์ฐานข้อมูลใหม่ใด ๆ ที่ควรจะเป็นโมฆะหรือมีค่าเริ่มต้น
  • ไม่อนุญาตให้เปลี่ยนชื่อคอลัมน์
  • ไม่อนุญาตให้วางคอลัมน์

เมื่อคุณต้องการเปลี่ยนแปลงแบบทำลายล้างเช่นเปลี่ยนชื่อหรือวางคอลัมน์คุณต้องมี 2 รุ่นเพื่อทำสิ่งนี้:

  1. ควรปล่อยเวอร์ชั่นใหม่ของแอพพลิเคชั่นเว็บซึ่งจะลบการอ้างอิงในคอลัมน์ที่เปลี่ยนชื่อ / ลบ
  2. มีการสร้างรีลีสเพิ่มเติมที่ดำเนินการเปลี่ยนแปลงแบบทำลายล้าง

แม้ว่าจะฟังดูซับซ้อนเล็กน้อย แต่ในทางปฏิบัติคุณอาจจะไม่ทำการเปลี่ยนแปลงแบบทำลายล้างบ่อยนัก


0

คุณเคยดูรายการการกำหนดค่าเฉพาะสล็อตแล้วหรือยัง? ภายใต้ WebApp / การตั้งค่า / การตั้งค่าแอปพลิเคชันคุณสามารถระบุการตั้งค่าสำหรับแอปพลิเคชันเว็บ แต่ยังกำหนดว่าจะใช้กับช่องนี้เท่านั้น

ดังนั้นคุณสามารถมีสตริงการเชื่อมต่อเฉพาะสล็อตสำหรับสล็อตของคุณและใช้การโยกย้ายในการแลกเปลี่ยนสล็อตเช่นกัน


2
ที่ขัดกับแนวคิดของฉันในการมีไซต์การแสดงละครทำงานนอกชุดข้อมูลเดียวกัน (-> ฐานข้อมูล) เช่นเดียวกับการผลิต
Sam7
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.