โยกย้ายปริมาณงาน Linux และ PostgreSQL

เสร็จสมบูรณ์เมื่อ

โมดูลนี้จะแนะนําคุณผ่านการโยกย้ายปริมาณงานที่มีอยู่จากสภาพแวดล้อมภายในองค์กรหรือในระบบคลาวด์ไปยัง Azure ครอบคลุมถึงการย้ายข้อมูลของการคํานวณไปยังเครื่องเสมือน Azure (VM) และข้อมูลไปยังฐานข้อมูล Azure สําหรับ PostgreSQL แอปพลิเคชันเป็นตัวอย่างการวินิจฉัยระบบคลาวด์ที่เป็นสแตนด์อินสําหรับแอปพลิเคชันในโลกแห่งความจริงใด ๆ ที่เตรียมไว้สําหรับการโยกย้ายไปยังระบบคลาวด์

ในหน่วยนี้ คุณสํารวจค่าของการเปลี่ยนแปลงต่อไปนี้ด้วยประโยชน์ของชุดตัวควบคุมความปลอดภัยและข้อมูลประจําตัวแบบเต็มที่ Azure ให้ไว้:

  • การเปลี่ยนจากสภาพแวดล้อมที่โฮสต์ด้วยตนเอง (เช่น จากฐานข้อมูลที่จัดการด้วยตนเอง) เป็นข้อเสนอของฐานข้อมูลที่มีการจัดการเต็มรูปแบบ
  • การเปลี่ยนจากการประมวลผลแบบ bare-metal เป็น VM ที่โฮสต์บนคลาวด์

นอกจากนี้ คุณยังสํารวจประโยชน์ของการจัดการทรัพยากรในระบบคลาวด์จากมุมมองต้นทุนและประสิทธิภาพการทํางาน และคุณเรียนรู้วิธีการคํานวณและจัดการค่าใช้จ่ายก่อนและหลังการปรับใช้อย่างแม่นยํา พร้อมกับวิธีการปรับประสิทธิภาพให้เหมาะสมจากทั้งการคํานวณและมุมมองข้อมูล

ปริมาณงานและข้อมูล

ปริมาณงานของเราเป็นแอปพลิเคชันที่เขียนใน ไป และทํางานกับข้อมูลภายใน PostgreSQL ข้อมูลของเราเป็นชุดข้อมูลแบบเปิดที่ช่วยให้คุณสามารถสํารวจพลังของแพลตฟอร์ม Postgres และส่วนขยายที่เกี่ยวข้อง

แม้ว่าแอปพลิเคชันนี้สามารถเรียกใช้ภายในคอนเทนเนอร์ได้อย่างง่ายดาย แต่ผู้เกี่ยวข้องเลือกที่จะไม่ดําเนินการดังกล่าวในขั้นตอนนี้ การสร้างคอนเทนเนอร์ การปรับใช้กับแพลตฟอร์มคอนเทนเนอร์ หรือการใช้การเรียงลําดับคอนเทนเนอร์อยู่นอกขอบเขตในขณะนี้ แต่การโยกย้ายไปยังคอนเทนเนอร์อาจเป็นขั้นตอนในอนาคตเชิงตรรกะ

ที่เก็บ GitHub ที่เชื่อมโยงกับโมดูลนี้มีแอปพลิเคชันและข้อมูลที่เกี่ยวข้องสําหรับคุณ คุณเรียนรู้วิธีการเตรียมแอปพลิเคชันของคุณและส่งออกข้อมูลของคุณเพื่อให้อยู่ในสถานะที่คล้ายคลึงกันกับแอปพลิเคชันตัวอย่างนี้ คุณยังสามารถใช้แอปพลิเคชันตัวอย่างเป็นเทมเพลตสําหรับการปรับใช้ greenfield ได้

ค่าของการโยกย้ายปริมาณงานนี้คืออะไร

คุณอาจสงสัยเกี่ยวกับประโยชน์ของการโยกย้ายปริมาณงานนี้ไปยังระบบคลาวด์ นี่คือตัวอย่างของข้อเสนอที่มีคุณค่า

การรักษาความปลอดภัยและการปฏิบัติตามกฎระเบียบ

เมื่อคุณนําปริมาณงานคํานวณและข้อมูลไปยังระบบคลาวด์ ปริมาณงานเหล่านั้นจะได้รับประโยชน์จากความสามารถด้านความปลอดภัยที่เพิ่มขึ้น

เครื่องเสมือนใน Azure ได้รับประโยชน์จากฟีเจอร์การรักษาความปลอดภัยและการปฏิบัติตามกฎระเบียบที่หลากหลาย รวมถึงไฟร์วอลล์ เครือข่ายเสมือน การเข้าถึงเครื่องเสมือนแบบทันเวลาเดียว การเข้ารหัส การควบคุมการเข้าถึงตามบทบาท (RBAC) และการประมวลผลลับ ฐานข้อมูล Azure สําหรับ PostgreSQL รองรับคุณลักษณะที่คล้ายกันมากมาย เช่น การเข้ารหัสลับ ด้วยคีย์ที่ลูกค้าจัดการการรับรองการปฏิบัติตามข้อบังคับ และการสนับสนุนสําหรับ Microsoft Defender for Cloud

ความปลอดภัยของการเชื่อมต่อระหว่างเครื่องเสมือนและฐานข้อมูลของคุณ

เมื่อคุณรวมเครื่องเสมือนเข้ากับ Azure Database สําหรับ PostgreSQL สิ่งสําคัญคือสิ่งสําคัญที่พวกเขาสามารถเชื่อมต่อกันได้อย่างปลอดภัยเพื่อลดความเสี่ยงต่อการสูญหายของข้อมูล

การรับรองความถูกต้องของ Microsoft Entra ช่วยให้คุณสามารถเชื่อมต่อกับ Azure Database สําหรับ PostgreSQL ได้โดยไม่ต้องใช้รหัสผ่านแบบดั้งเดิม แต่คุณใช้ข้อมูลประจําตัวของ Microsoft Entra สําหรับปริมาณงานแอปพลิเคชันของคุณ (นั่นคือ ข้อมูลประจําตัวที่มีการจัดการ) ผู้ใช้ และผู้ดูแลระบบผ่านบัญชีผู้ใช้ Microsoft Entra ของพวกเขา วิธีการนี้ลดความเสี่ยงของข้อมูลประจําตัวที่ถ่ายทอดสดเป็นเวลานานและอนุญาตให้นักแสดงที่ไม่ดีเข้าถึงข้อมูลของคุณ

Microsoft Entra ID, ข้อมูลประจําตัวที่มีการจัดการ และ RBAC แบบละเอียดสามารถเปิดใช้งานปริมาณงานแอปพลิเคชันของคุณเพื่อเข้าถึงข้อมูลและจัดการทรัพยากรใน Azure ได้อย่างปลอดภัยโดยปฏิบัติตามหลักการของสิทธิ์น้อยที่สุด

เข้าถึงการคํานวณประสิทธิภาพสูงและคุ้มค่าในหลายภูมิภาค

ไม่ว่าคุณจะต้องการการคํานวณที่ประหยัดค่าใช้จ่ายสําหรับการพัฒนา/ทดสอบ หรือชนิดการคํานวณล่าสุด ประสิทธิภาพสูงสุด หรือสูงสุดที่มีอยู่ในระบบคลาวด์ Azure มีตัวเลือกการคํานวณที่หลากหลายสําหรับทั้งเครื่องเสมือน และ Azure Database สําหรับ PostgreSQL คุณสามารถปรับมาตราส่วนขึ้นและปรับลดตัวเลือกเหล่านี้ได้ตามต้องการ และมีให้ใช้งานใน มากกว่า 60 ภูมิภาค ใน Azure

คุณสามารถปรับมาตราส่วนการคํานวณทั้งในแนวตั้งและแนวนอน รวมถึงผ่านการจําลองฐานข้อมูล และตัวเลือกแบบกระจาย เช่น Azure Cosmos DB สําหรับ PostgreSQL Azure Cosmos DB สําหรับ PostgreSQL เป็นบริการที่ได้รับการจัดการสําหรับ PostgreSQL ที่ขยายด้วยมหาอํานาจโอเพนซอร์สของ Citus ของตารางแบบกระจาย การคํานวณนี้จับคู่กับตัวเลือกที่เก็บข้อมูลบนคลาวด์ที่เร็วที่สุด เพื่อปรับแต่งข้อกําหนด I/O สําหรับการคํานวณและที่เก็บข้อมูลของคุณให้เหมาะกับปริมาณงานของคุณ

การจัดการค่าใช้จ่ายและต้นทุนอย่างมีประสิทธิภาพ

คุณสามารถปรับให้เหมาะสมสําหรับการจัดการค่าใช้จ่ายและประสิทธิภาพค่าใช้จ่ายได้ทั้งใน Linux และ PostgreSQL เมื่อเทียบกับโซลูชันในองค์กร ค่าใช้จ่ายมักจะปรับให้เหมาะสมและเหมาะสมกับสถานการณ์ของคุณมากขึ้น คุณสามารถปรับขนาดการคํานวณของคุณให้เหมาะสมเมื่อเปรียบเทียบกับโซลูชันภายในองค์กร นอกจากนี้ คุณยังสามารถจัดการกลุ่มรถทั้งหมดของคุณเพื่อปรับให้เหมาะสมสําหรับการคํานวณและที่เก็บข้อมูลที่คุณต้องการเท่านั้น และชําระเงินสําหรับสิ่งที่คุณใช้ในรูปแบบการเรียกเก็บเงินค่าสาธารณูปโภคเท่านั้น

การเรียกเก็บเงินค่าสาธารณูปโภคช่วยให้ลูกค้าสามารถจัดการกับความต้องการสูงได้โดยไม่ต้องเสียค่าใช้จ่ายในการจัดเตรียมมากเกินไป ซึ่งช่วยให้การย้ายข้อมูลไปยังการคํานวณได้เร็วขึ้นและมีประสิทธิภาพมากขึ้นเมื่อสามารถใช้งานได้

ลูกค้ายังสามารถใช้ประโยชน์จากประโยชน์ของ Azure Hybrid เพื่อประหยัดค่าใช้จ่ายสิทธิ์การใช้งานสําหรับการกระจาย Linux เฉพาะ หากต้องการเรียนรู้เพิ่มเติม โปรดดู ประโยชน์ของ Azure Hybrid สําหรับ Red Hat Enterprise Linux (RHEL) และเครื่องเสมือน SUSE Linux Enterprise Server (SLES)

ลูกค้ายังสามารถลดค่าใช้จ่าย (สูงสุด 72 เปอร์เซ็นต์เมื่อเทียบกับราคาแบบจ่ายตามการใช้งานจริง) ด้วยเงื่อนไขหนึ่งปีหรือสามปีสําหรับเครื่องเสมือนและอินสแตนซ์เครื่องเสมือนที่สงวนไว้ของ Azure สําหรับข้อมูลเพิ่มเติม โปรดดู วิธีการใช้ส่วนลดการจอง Azure กับเครื่องเสมือน การกําหนดราคา Azure เป็นแบบโปร่งใสและคาดการณ์ได้ และคุณสามารถใช้เครื่องคิดเลขการกําหนดราคา Azure เพื่อประมาณค่าใช้จ่ายของคุณก่อนที่คุณปรับใช้ได้

การปฏิบัติงานวันที่ 2

วัน 2 การดําเนินงานสําหรับแอปพลิเคชันที่ปรับใช้ (เช่น ตรีเทจ การตรวจสอบ การแพทช์การรักษาความปลอดภัย การสํารองข้อมูล และการกู้คืนจากภัยพิบัติ) จะมีประสิทธิภาพมากขึ้นผ่านระบบอัตโนมัติและความสามารถในการอัปเกรดด้วยมีโอกาสหยุดทํางานเป็นศูนย์ นอกจากนี้ คุณสามารถจัดการโครงสร้างพื้นฐานของคุณให้สิ้นสุดลงด้วยชุดเครื่องมือมาตรฐานอุตสาหกรรมได้

ก่อนที่คุณจะเริ่มต้น

โมดูลนี้ได้รับการออกแบบมาเพื่อช่วยให้คุณย้ายปริมาณงาน Linux และ PostgreSQL ที่มีอยู่ไปยัง Azure อย่างไรก็ตาม จะไม่มุ่งเน้นไปที่วิธีการส่งออกข้อมูลจากฐานข้อมูลต้นทางของคุณหรือวิธีเตรียมแอปพลิเคชันสําหรับการโยกย้าย เหตุผลหนึ่งสําหรับวิธีการนี้คือ มีฐานข้อมูลต้นทางและแอปพลิเคชันหลายชนิดที่คุณสามารถโยกย้ายได้ และกระบวนการสําหรับแต่ละชนิดไม่ซ้ํากัน

โมดูลนี้จะให้ตัวอย่างแอปพลิเคชัน ข้อมูล Postgres ไฟล์ไบนารี และโครงสร้างพื้นฐานเป็นโค้ดที่คุณสามารถใช้เพื่อจําลองกระบวนการโยกย้ายได้ หลังจากที่คุณเสร็จสิ้นการโยกย้ายจําลองแล้ว คุณสามารถใช้ความรู้ที่คุณได้รับเพื่อใช้หลักการเดียวกันนี้กับปริมาณงานของคุณเอง

คุณใช้แอปพลิเคชันตัวอย่าง Azure-Samples/tailwind-traders-goเป็นสแตนด์อินสําหรับรหัสแอปพลิเคชันที่จะโยกย้าย โครงสร้างพื้นฐานของ Bicep เป็นโค้ด ข้อมูล Postgres และไบนารีตัวอย่าง และทรัพยากรอื่น ๆ เพื่อสนับสนุนส่วนที่ใช้งานของโมดูลนี้จะพร้อมใช้งานใน ที่เก็บ Azure-Samples/linux-postgres-migration GitHub

เมื่อต้องการใช้วิธีนี้กับปริมาณงานของคุณเอง คุณจําเป็นต้องแมปแอปพลิเคชันต้นทางและข้อมูลของคุณไปยังโครงสร้างต่อไปนี้

รหัสแอปพลิเคชัน

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

การโยกย้ายในโมดูลนี้แสดงสถานการณ์ที่ง่ายที่สุดของการลอกแบบที่เก็บข้อมูลไปยังเครื่องเสมือน Azure ของคุณโดยตรง ในสถานการณ์จริง คุณอาจมีไปป์ไลน์การปรับใช้งานที่ซับซ้อนมากขึ้น เช่น การดําเนินการ GitHub ที่สร้างและปรับใช้รหัสแอปพลิเคชันของคุณกับทรัพยากรการคํานวณของคุณ

ข้อมูลการโพสต์

คุณควรจัดเก็บข้อมูล Postgres ของคุณในไฟล์ .sql ที่คุณสามารถใช้เพื่อสร้าง Schema ของฐานข้อมูลและแทรกข้อมูล ในการโยกย้ายจําลองนี้ คุณใช้ไฟล์ข้อมูลตัวอย่าง tailwind.sqlภายใน repo Azure-Samples/linux-postgres-migration คุณคัดลอกไฟล์ไปยังที่เก็บข้อมูล Azure Blob และนําเข้าไปยังฐานข้อมูล Azure สําหรับ PostgreSQL

เมื่อถึงเวลาโยกย้ายข้อมูลของคุณเอง คุณส่งออกข้อมูลของคุณจากฐานข้อมูลต้นฉบับของคุณและบันทึกไปยังไฟล์ .sql จากนั้นคุณคัดลอกไฟล์ไปยังที่เก็บข้อมูล Blob ตามที่อธิบายไว้ในโมดูลนี้

ไฟล์ไบนารี

แอปพลิเคชันส่วนใหญ่มีไฟล์ไบนารีอื่น ๆ เช่น ไฟล์สื่อที่จําเป็นต้องโยกย้าย สําหรับแอปพลิเคชันตัวอย่าง คุณจะได้เรียนรู้วิธีการย้ายรูปภาพโดยการคัดลอกจาก Azure-Samples/linux-postgres-migration ไปยังที่เก็บข้อมูล Blob

ในทํานองเดียวกัน คุณจําเป็นต้องคัดลอกไฟล์ไบนารีของคุณไปยัง Blob Storage เมื่อคุณโยกย้ายปริมาณงานของคุณเอง ในอินสแตนซ์นี้ การคํานวณจะถูก ที่ไม่มีสถานะ และแอปพลิเคชันมีสิทธิ์ในการเข้าถึงข้อมูลไบนารีโดยตรงในเก็บข้อมูล Blob

โครงสร้างพื้นฐานเป็นโค้ด (Bicep)

โครงสร้างพื้นฐานเป็นโค้ดสําหรับโมดูลนี้ยังถูกเก็บไว้ใน Azure-Samples/linux-postgres-migrationด้วย มันออกแบบมาเพื่อเป็นสถาปัตยกรรมอ้างอิงที่คุณสามารถใช้ได้ตามที่เป็นโดยมีการเปลี่ยนแปลงน้อยที่สุดหากคุณสามารถทําให้ข้อมูลต้นฉบับและแอปพลิเคชันของคุณสอดคล้องกับโครงสร้างที่ระบุไว้ก่อนหน้านี้

ความปลอดภัยเป็นธีมหลักของการโยกย้ายข้อมูลนี้ และเราเลือกการตั้งค่าความปลอดภัยบางอย่างเพื่อให้ส่วนการใช้งานจริงของโมดูลนี้ง่ายขึ้น ตัวอย่างเช่น Blob Storage ใช้วิธีการรับรองความถูกต้องแบบไม่ใช้คีย์ได้มากกว่า แต่เราอนุญาตการเชื่อมต่อเครือข่ายจากที่อยู่ IP ใด ๆ ในสภาพแวดล้อมการผลิต คุณจะต้องล็อกการเข้าถึงเครือข่ายเพื่อเข้าถึงเฉพาะที่อยู่ IP ที่ต้องการเข้าถึงบัญชีเก็บข้อมูล

ในทํานองเดียวกัน เราปล่อยตัวเลือกให้เพิ่มกฎไฟร์วอลล์ไปยังเซิร์ฟเวอร์ PostgreSQL เพื่ออนุญาตที่อยู่ IP เฉพาะ ในสภาพแวดล้อมการผลิต คุณอาจปิดใช้งานการเข้าถึงแบบสาธารณะทั้งหมดไปยังเซิร์ฟเวอร์

ความแตกต่างระหว่างสภาพแวดล้อมต้นทางและ Azure

หนึ่งในความแตกต่างที่สําคัญในการโยกย้ายจากสภาพแวดล้อมอื่นไปยัง Azure คือคุณกําลังใช้การควบคุมความปลอดภัยและข้อมูลประจําตัวที่ Azure ให้มาอย่างสมบูรณ์:

  • คุณใช้ข้อมูลประจําตัวที่มีการจัดการสําหรับเครื่องเสมือนและฐานข้อมูล Azure สําหรับ PostgreSQL
  • คุณใช้ Microsoft Entra ID สําหรับการรับรองความถูกต้องไปยังฐานข้อมูล
  • คุณใช้ Microsoft Entra ID แทนที่จะเป็นคีย์ Secure Shell (SSH) เพื่อเข้าถึงเครื่องเสมือน

แทนที่จะทําการโยกย้ายแบบยกและเปลี่ยนคุณจะต้องเปิดโอกาสให้แอปพลิเคชันทันสมัยเพื่อใช้ประโยชน์จากคุณลักษณะการรักษาความปลอดภัยและการปฏิบัติตามข้อกําหนดที่ Azure มอบให้เต็มรูปแบบ

คุณอาจใช้ชื่อผู้ใช้และรหัสผ่านเพื่อรับรองความถูกต้องไปยังฐานข้อมูลของคุณภายในองค์กร ใน Azure เราจะแสดงวิธีการใช้ข้อมูลประจําตัวที่มีการจัดการของเครื่องเสมือนเพื่อรับรองความถูกต้องไปยังฐานข้อมูล วิธีการรับรองความถูกต้องนี้มีความปลอดภัยมากขึ้นและลดความเสี่ยงของข้อมูลประจําตัวที่ใช้เวลานานจะถูกทําลาย

การใช้ข้อมูลประจําตัวที่มีการจัดการสําหรับการรับรองความถูกต้องมักต้องมีการเปลี่ยนแปลงโค้ดในแอปพลิเคชันของคุณ โมดูลนี้แสดงวิธีการใช้ไลบรารี azidentity ใน ไปที่ เพื่อรับโทเค็นสําหรับข้อมูลประจําตัวที่มีการจัดการ ไลบรารีเดียวกันจะพร้อมใช้งานใน Microsoft SDK

สร้างบัญชี Azure และติดตั้ง Azure CLI

ถ้าคุณยังไม่มีบัญชี Azure คุณสามารถสร้างบัญชีผู้ใช้ฟรี วันนี้ได้ คุณจะได้รับเครดิตที่คุณสามารถใช้เพื่อทดลองใช้บริการ Azure แบบชําระเงิน แม้ว่าหลังจากที่คุณใช้เครดิตแล้ว คุณสามารถเก็บบัญชีและใช้บริการ Azure ฟรีได้

หากต้องการเรียกใช้คําสั่งในหน่วยต่อไปนี้ คุณต้องเข้าถึง Bash shell เปลือกนี้สามารถอยู่ในพื้นที่ใด ๆ เหล่านี้:

  • บนเครื่องคอมพิวเตอร์ของคุณ ตัวอย่างเช่น ใช้ macOS, Linux, Windows Subsystem สําหรับ Linux (WSL) หรือ Docker
  • บนเครื่องเสมือน ตัวอย่างเช่น ใช้ Multipass หรือ Azure
  • ในระบบคลาวด์ ตัวอย่างเช่น ใช้ Azure Cloud Shell หรือ GitHub Codespaces

เพื่อทํามอดูลนี้ให้เสร็จสมบูรณ์ คุณต้องมี Azure CLI คุณสามารถติดตั้ง Azure CLI บนเครื่องคอมพิวเตอร์ของคุณ โดยทําตามคําแนะนําในบทความ ติดตั้ง Azure CLI คุณยังจําเป็นต้องติดตั้ง Git

ทรัพยากร