ตรวจสอบการย้ายออกก่อนพึ่งพาบริการ
เรียนจบแล้วแยกความเป็นเจ้าของ source code ออกจากความสามารถในการย้ายระบบไปดำเนินงานที่อื่น ทดสอบการส่งออก การ build อย่างเป็นอิสระ การเข้าถึงโครงสร้างพื้นฐาน และหลักฐานที่ต้องใช้เปลี่ยนผ่าน
เผยแพร่โดย Taigaวิธีเขียนเนื้อหาของเรา
ตรวจความเข้าใจองค์กรของคุณเป็นเจ้าของ source code หลักฐานเพิ่มเติมใดสนับสนุนความสามารถในการย้ายไปดำเนินงานที่อื่น?ทำแบบฝึกหัด
สิ่งที่จะได้เรียนรู้
- ระบุสิ่งที่ต้องมีและสิทธิ์ที่ต้องใช้เพื่อดำเนินงานโดยไม่มีผู้ให้บริการรายเดิม
- ออกแบบการฝึกย้ายออกขนาดเล็กก่อนเกิด dependency สำคัญ
- แยกการตัดสินใจส่งออก เปลี่ยนผ่าน และลบออกจากกัน
กำหนดสิ่งที่ต้องยังใช้ได้
ความเป็นเจ้าของ source code มีคุณค่า แต่เป็นเพียงส่วนหนึ่งของแผนย้ายออก
พิจารณาแอปพลิเคชันสมมติที่ source อยู่ใน repository ของบริษัท Build ดาวน์โหลด package ส่วนตัวจากผู้ให้บริการ Production ใช้บัญชี cloud ของผู้ให้บริการ และไม่มีใครบันทึกขั้นตอน restore ฐานข้อมูล
บริษัทมีโค้ด แต่ยังดำเนินงานบริการอย่างเป็นอิสระไม่ได้ แผนย้ายออกต้องครอบคลุมสิทธิ์ สิ่งที่ต้องมี การเข้าถึง และความรู้ร่วมกัน
ทำรายการ dependency
| สิ่งที่ต้องมีหรือหน้าที่ | คำถามสำหรับการย้ายออก |
|---|---|
| โค้ดและประวัติ | ทีมถัดไปเข้าถึง repository ทั้งหมดได้หรือไม่? |
| Package และ license | ทีมนั้นหาและใช้ dependency ที่จำเป็นทุกรายการได้หรือไม่? |
| ข้อมูลและ schema | Restore ระเบียนที่ใช้ได้โดยความสัมพันธ์ยังครบได้หรือไม่? |
| โครงสร้างพื้นฐานและการกำหนดค่า | สร้างสภาพแวดล้อมและการตั้งค่าที่จำเป็นขึ้นใหม่ได้หรือไม่? |
| ตัวตนและ secret | ใครสร้างข้อมูลรับรองทดแทนและควบคุมการเข้าถึง? |
| DNS และ certificate | ใครย้าย public endpoint ได้? |
| หลักฐานและการดำเนินงาน | การตัดสินใจ runbook, test และบันทึก incident ใดยังเข้าถึงได้? |
ตรวจรูปแบบและขอบเขตการส่งออก เอกสารที่ส่งออกแล้วอ่านได้อาจไม่ได้รักษาทุกความสัมพันธ์ ไฟล์แนบ หรือบันทึกการทำงาน ขอตัวอย่างและตรวจร่วมกับผู้ที่จะใช้
ฝึก build ใหม่อย่างเป็นอิสระ
ใช้สภาพแวดล้อมทดสอบที่ปลอดภัยและข้อมูลตัวอย่างที่อนุมัติ มอบชุดข้อมูลและทรัพยากรส่งต่อที่เสนอให้วิศวกรที่ได้รับอนุญาต ขอให้ build แอปพลิเคชัน ใช้การกำหนดค่า restore ข้อมูล และตรวจสอบการทำงานทางธุรกิจหนึ่งอย่างจนจบ
บันทึกแต่ละรายการที่ขาดและเวลาที่ใช้หา อย่าส่งต่อความรู้ที่ไม่มีในเอกสารอย่างเงียบ ๆ ระหว่างการฝึก เป้าหมายคือหาสิ่งที่ทีมถัดไปจะขาด
จากนั้นตรวจข้อจำกัดการเปลี่ยนผ่าน ได้แก่ ค่าสมาชิกที่ซ้อนช่วงกัน เวลาโอนข้อมูล การเข้าถึง package การเปลี่ยนตัวตน และความพร้อมของ support รวมต้นทุนเหล่านี้ในการเปรียบเทียบการสร้างกับการซื้อ
แยกการส่งออกจากการลบ
การส่งออกสร้างสำเนา การเปลี่ยนผ่านเปลี่ยนผู้ดำเนินงานบริการ การลบเอาระเบียนที่ระบุออกตามกระบวนการที่ตกลงไว้ ทั้งสามเป็นการตัดสินใจแยกกันและใช้หลักฐานต่างกัน
กำหนดระยะเวลาเก็บรักษาที่จำเป็นและขอบเขตลบกับผู้รับผิดชอบที่เกี่ยวข้อง ยืนยันเงื่อนไขและขั้นตอนปัจจุบันของผู้ให้บริการ อย่าลบสำเนากู้คืนที่ใช้ได้เพียงชุดเดียว จนกว่าจะตรวจสอบระบบที่รับข้อมูลเรียบร้อยแล้ว
Taiga มีเอกสารอธิบายกระบวนการส่งออกสำหรับผู้ดูแล และกระบวนการลบแยกต่างหาก การส่งออกไม่รวมค่า secret ดังนั้นชุดส่งต่อต้องมีวิธีที่ได้รับอนุญาตสำหรับสร้าง secret ที่จำเป็นขึ้นใหม่ ตรวจเนื้อหาส่งออกปัจจุบันเทียบกับความต้องการเปลี่ยนผ่าน อย่าสมมติว่าเป็น backup แอปพลิเคชันครบถ้วน
ตัดสินใจว่า dependency ใดยอมรับได้
Portability ไม่ได้กำหนดให้เอาบริการ managed ทุกตัวออก Dependency อาจเป็นทางเลือกที่สมเหตุผลเมื่อเข้าใจคุณค่า ข้อจำกัด และเส้นทางเปลี่ยนผ่าน
บันทึก dependency ที่ยอมรับ ผู้รับผิดชอบ และเงื่อนไขทบทวน ฝึกย้ายออกซ้ำหลังสถาปัตยกรรมหรือสัญญาเปลี่ยนอย่างมีนัยสำคัญ เรียนต่อเรื่องแผนนำมาใช้ ที่รวมหน้าที่เหล่านี้ตั้งแต่ต้น
ทำแบบฝึกหัด
ผู้ให้บริการในสถานการณ์สมมติให้ Git repository และข้อมูลส่งออกจากฐานข้อมูลแก่คุณ ระบุอีกห้ารายการที่ต้องมีเพื่อดำเนินงานแอปพลิเคชันอย่างเป็นอิสระ เลือกหนึ่งรายการและอธิบาย test ที่จะเปิดเผย dependency ที่ขาด
ดาวน์โหลดใบงาน (Markdown)การยกเลิกตัวเลือกนี้จะลบความคืบหน้าทั้งหมดที่บันทึกใน browser นี้
ความคืบหน้าอยู่ใน browser นี้ ไม่ใช้บัญชีและไม่ติดตามการใช้งาน
แหล่งข้อมูลและเนื้อหาอ่านเพิ่มเติม
- NIST: Secure Software Development Framework ↗
- Taiga docs: Data and privacy ↗
- Taiga docs: Integrations and environments ↗