กําหนดคอนเทนเนอร์

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

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

คอนเทนเนอร์คืออะไร

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

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

ประโยชน์ของการใช้ภาชนะบรรจุ

ประโยชน์ของการใช้คอนเทนเนอร์มีดังต่อไปนี้:

  • ความสามารถในการทํางานที่ใดก็ได้ คอนเทนเนอร์สามารถทํางานบนแพลตฟอร์มต่าง ๆ เช่น ระบบปฏิบัติการ Linux, Windows และ Mac สามารถโฮสต์บนเวิร์กสเตชันภายในเครื่อง บนเซิร์ฟเวอร์ในศูนย์ข้อมูลภายในองค์กร หรือเตรียมใช้งานในระบบคลาวด์

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

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

  • สภาพแวดล้อมการพัฒนาที่สอดคล้องกัน นักพัฒนาใช้คอนเทนเนอร์เป็นสภาพแวดล้อมการพัฒนาที่สอดคล้องกันและคาดการณ์ได้ที่สนับสนุนภาษาการพัฒนาต่าง ๆ เช่น Java, .NET, Python และ Node.js นักพัฒนาทราบว่าไม่ว่าจะปรับใช้แอปพลิเคชันที่ใด คอนเทนเนอร์จะตรวจสอบให้แน่ใจว่าแอปพลิเคชันทํางานตามที่ต้องการ

วิธีการทํางานของคอนเทนเนอร์

ตัวประมวลผลในคอมพิวเตอร์ Windows มาตรฐานมีโหมดที่แตกต่างกันสองโหมด ได้แก่ โหมดเคอร์เนลและโหมดผู้ใช้ คอมโพเนนต์ OS หลักและโปรแกรมควบคุมอุปกรณ์ส่วนใหญ่ทํางานในโหมดเคอร์เนล ในขณะที่แอปพลิเคชันทํางานในโหมดผู้ใช้

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

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

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

แผนภาพที่แสดงตัวอย่างเลเยอร์คอนเทนเนอร์ที่ตั้งค่ากับเลเยอร์ในสแตกตามลําดับต่อไปนี้จากด้านล่างขึ้น: เลเยอร์ OS พื้นฐาน, ชั้น IIS, ASP.NET Layer และเลเยอร์เว็บไซต์ของคุณ

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

คอนเทนเนอร์และบริการขนาดเล็ก

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

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

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

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