บริการโฮสต์บนคลาวด์เพลงและวิดีโอสตรีมมิ่งและบริการส่งข้อความหมายความว่าทุกอย่างอยู่ที่ปลายนิ้วของคุณ คุณสามารถรับชมรายการที่คุณต้องการฟังเพลงโปรดหรือส่งข้อความถึงเพื่อน ๆ เมื่อใดก็ได้ ระบบคลาวด์ทำให้ผู้ใช้ง่ายขึ้นมาก แต่การพัฒนาสำหรับโลกที่มีคลาวด์เป็นศูนย์กลางอาจเป็นฝันร้าย
ความท้าทายที่ยิ่งใหญ่ที่สุดคือการตรวจสอบให้แน่ใจว่าข้อมูลและแอปพร้อมใช้งานตลอดเวลาตามความต้องการ แต่เวลาของเซิร์ฟเวอร์ต้องเสียเงินเป็นรายชั่วโมง คุณปล่อยเซิร์ฟเวอร์ของคุณไว้ตลอดเวลาหรือไม่? จะเกิดอะไรขึ้นเมื่อมีข้อบกพร่องในส่วนหนึ่งของแพลตฟอร์มของคุณ และจะเกิดอะไรขึ้นเมื่อคุณต้องผลักดันการอัปเดตใหม่
สถาปัตยกรรมการออกแบบแบบดั้งเดิมบังคับให้คุณผลักดันการอัปเดตเป็นงานสร้างที่สมบูรณ์ อาจใช้เวลาหลายชั่วโมงในการติดตั้งการอัปเดตและนั่นหมายถึงการหยุดทำงานของผู้ใช้จำนวนมาก ไมโครเซอร์วิสแบบคอนเทนเนอร์เป็นวิธีที่รุนแรงและเป็นมิตรกับระบบคลาวด์ในการแก้ปัญหานี้ คอนเทนเนอร์เป็นกระบวนการแบบสแตนด์อโลนโดยพื้นฐานแล้วและการอ้างอิงทั้งหมดจะรวมเข้าด้วยกันเพื่อเรียกใช้ ทุกสิ่งที่กระบวนการคอนเทนเนอร์ต้องทำงานอยู่ในคอนเทนเนอร์นั้นทำให้พกพาได้สูง
อ่าน: ระบบติดตามผู้สมัครที่ดีที่สุดสำหรับธุรกิจขนาดเล็ก
Containerization ทำงานอย่างไร?
นี่คือการเปรียบเทียบที่ง่าย คิดว่าแอปพลิเคชันระบบคลาวด์ของคุณเป็นบริการขนาดเล็กสำหรับเรือและตู้คอนเทนเนอร์เป็นช่องกั้นหลายช่อง หากมีเพียงช่องเดียวเรือของคุณจะจมลงหากถูกน้ำท่วม แต่ถ้าคุณมีหลายช่องเรือของคุณก็จะดีแม้ว่าจะมีน้ำท่วมหนึ่งช่องก็ตาม แอปที่สร้างขึ้นโดยใช้สถาปัตยกรรมไมโครเซอร์วิสสามารถมีไมโครเซอร์วิสที่มีคอนเทนเนอร์หลายสิบหรือหลายร้อยตัวที่ทำงานร่วมกันได้ Microservices สามารถให้ฟังก์ชันเฉพาะ (ตัวอย่างเช่นเฉพาะส่วนการส่งข้อความของแพลตฟอร์มโซเชียลมีเดีย) คุณยังสามารถมีไมโครเซอร์วิสหลายตัวที่ทำหน้าที่ซ้ำซ้อนบนเซิร์ฟเวอร์หลายเครื่องสำหรับการทำโหลดบาลานซ์
แทนที่จะมีเซิร์ฟเวอร์รับส่งข้อความเดียวตลอดเวลา (เคี้ยวผ่านกระเป๋าเงินของคุณ) คุณสามารถให้บริการส่งข้อความทำงานบนเซิร์ฟเวอร์หลายเครื่องได้ พวกเขาสามารถขยายหรือลดขนาดการใช้งานเซิร์ฟเวอร์ของคุณตามความต้องการสำหรับบริการนั้น ๆ คุณจึงใช้ประโยชน์ได้น้อยลงในเวลากลางคืนตอบสนองความต้องการที่ลดลงและประหยัดเงิน แต่คุณสามารถขยายการใช้ประโยชน์ในช่วงชั่วโมงเร่งด่วนได้
คอนเทนเนอร์ช่วยได้อย่างไร
การจัดตู้คอนเทนเนอร์ยังสามารถช่วยลดเวลาหยุดทำงานได้อย่างมาก หากแอปของคุณประกอบด้วยหลายคอนเทนเนอร์และมีข้อบกพร่องในบริการหนึ่ง ๆ สิ่งอื่น ๆ จะยังคงทำงานต่อไปในขณะที่คุณกำลังแก้ไข ยิ่งไปกว่านั้นเมื่อคุณส่งการอัปเดตเพิ่มเติมคุณจะไม่ต้องปิดเซิร์ฟเวอร์ทั้งหมด คุณเพียงแค่ต้องอัปเดตไมโครเซอร์วิสแต่ละรายการ ผู้ใช้อาจไม่ได้สังเกตว่ามีการหยุดทำงาน
Kubernetes คืออะไร
นี่คือการเปรียบเทียบที่ดีว่า Kubernetes คืออะไร แต่ในทางปฏิบัติการจัดการและตรวจสอบ (การจัดเตรียม) แอปที่สร้างโดยใช้ไมโครเซอร์วิสอาจเป็นเรื่องยากอย่างไม่น่าเชื่อ คุณจำเป็นต้องมีระบบที่ตรวจสอบและปรับไมโครเซอร์วิสแบบไดนามิกในเซิร์ฟเวอร์หลายร้อยหรือหลายพันเครื่อง โชคดีที่ Google ได้พัฒนาเครื่องมือที่มั่นคงด้วยการสร้าง Kubernetes คำว่า“ Kubernetes” หมายถึงผู้ว่าราชการในภาษากรีกและนั่นคือสิ่งที่เป็นหลัก เป็นแพลตฟอร์มที่ช่วยคุณตรวจสอบและควบคุมแอปที่ใช้ไมโครบริการ
Kubernetes ไม่ได้ปราศจากข้อเสีย มีช่วงการเรียนรู้ที่สูงชันมากแม้ว่าจะยากกว่ามากในการสร้างวงดนตรีของคุณเอง เมื่อเปลี่ยนไปใช้รูปแบบไมโครเซอร์วิสนักพัฒนาจำเป็นต้องเปลี่ยนวิธีดูโค้ดด้วย พวกเขาเองต้องมีความคิดที่ดีว่าจะปรับขนาดอย่างไรและจะนำไปใช้งานอย่างไรแทนที่จะปล่อยให้มันใช้งานได้ เราได้เตรียมรายการทางเลือกของ Kubernetes ไว้ที่นี่แล้วหากโซลูชันที่ใช้ Google ไม่ใช่โซลูชันที่เหมาะสมสำหรับคุณ อ่านต่อเพื่อหาข้อมูลเพิ่มเติม
อ่าน: ซอฟต์แวร์ทำบัญชีที่ดีที่สุดสำหรับเจ้าของธุรกิจขนาดเล็ก
ทางเลือกของ Kubernetes
1. Docker Swarm
เหมาะสำหรับใคร: ผู้ใช้ที่ต้องการทางเลือกที่ง่ายต่อการกำหนดค่าให้กับ Kubernetes
Docker (โครงการโดยรวมไม่ใช่ Swarm) เป็นผู้บุกเบิกแนวคิดของไมโครเซอร์วิสที่มีคอนเทนเนอร์ในปี 2013 Docker Swarm เป็นแพลตฟอร์มการจัดระเบียบของ Docker มีข้อดีหลายประการเหนือ Kubernetes สำหรับการเริ่มต้นในขณะที่มีความหลากหลายน้อยกว่า Kubernetes นั้นตรงไปตรงมามากและติดตั้งง่ายกว่า Kubernetes Docker Swarm ใช้ CLI ที่มีความหมายเหมือน GIT
ความคุ้นเคยนี้หมายความว่านักพัฒนาสามารถรวม Swarm เข้ากับเวิร์กโฟลว์ที่มีอยู่ได้อย่างง่ายดาย ประการที่สอง Docker สำหรับการปรับขนาดบริการด้วยตนเองที่ง่ายขึ้นเมื่อเทียบกับการใช้ฟังก์ชัน kubectl ใน Kubernetes นักเทียบท่ายังชนะในแง่ของการสนับสนุน Docker ให้การสนับสนุนระดับองค์กรอย่างเป็นทางการสำหรับลูกค้าของ Docker Enterprise Edition (ซึ่งรวมถึง Swarm) Google ไม่มีการสนับสนุนสำหรับ Kubernetes อย่างไรก็ตาม Kubernetes เป็นแพลตฟอร์มโอเพ่นซอร์สดังนั้นจึงมีผู้ขายรายอื่นอยู่ที่นั่น พวกเขาเสนอการสนับสนุนสำหรับการเผยแพร่ของพวกเขาเอง
นักเทียบท่าก็มีข้อเสียเช่นกัน การบันทึกและการตรวจสอบเป็นจุดอ่อนที่สำคัญ แม้ว่า Kubernetes จะมีเครื่องมือตรวจสอบในตัว แต่ Docker Swarm ต้องการให้คุณใช้เครื่องมือของบุคคลที่สามเช่น Sumo Logic และ Retrace นอกจากนี้ชุมชน Docker Swarm ยังเล็กกว่าชุมชน Kubernetes มาก
อ่าน: ซอฟต์แวร์การเข้าถึงระยะไกลฟรีที่ดีที่สุดสำหรับคนทำงานอิสระและธุรกิจขนาดเล็ก
ข้อดี:
- ตั้งค่าและกำหนดค่าได้ง่ายกว่า Kubernetes
- การสนับสนุนอย่างเป็นทางการสำหรับ Enterprise Edition
จุดด้อย:
- ฟังก์ชันการตรวจสอบและการบันทึกที่ จำกัด
- ชุมชนเล็กกว่า Kubernetes
ดาวน์โหลด Docker
2. DC / OS
เหมาะสำหรับใคร: ผู้ใช้ที่ต้องการเรียกใช้คอนเทนเนอร์และ ปริมาณงานที่ไม่ใช่คอนเทนเนอร์บนแพลตฟอร์มแบบกระจาย
DC / OS ย่อมาจาก Data Center Operating System มันทำงานในระดับนามธรรมที่สูงกว่า Kubernetes Kubernetes เพิ่งจัดเตรียมไมโครเซอร์วิสที่เป็นคอนเทนเนอร์ คุณยังคงจัดการกับเซิร์ฟเวอร์ที่แตกต่างกันหลายตัวและแหล่งทรัพยากรหลายตัว อย่างไรก็ตาม DC / OS จะแยกทรัพยากรออกจากตัวเครื่อง DC / OS สามารถนำเสนอดาต้าเซ็นเตอร์ทั้งหมดเป็นแหล่งทรัพยากรเดียวขนาดใหญ่ - พื้นที่เก็บข้อมูลขนาดเพตาไบต์แรมเทราไบต์และแกน CPU หลายพันคอร์
นักพัฒนาสามารถเขียนโค้ดได้ราวกับว่าพวกเขากำลังทำงานร่วมกับระบบยักษ์หนึ่งระบบและเวทย์มนตร์ DC / OS จะกระจายโหลดไปยังเซิร์ฟเวอร์ทั้งหมดของคุณอย่างชาญฉลาด ซึ่งหมายความว่า DC / OS สามารถใช้เพื่อแจกจ่ายฟังก์ชันของปริมาณงานที่ไม่ใช่คอนเทนเนอร์ได้เช่นกัน DC / OS มีข้อบกพร่องที่น่าสังเกตแม้ว่า
แม้ว่า DC / OS จะเป็นโอเพ่นซอร์ส แต่ก็มีรุ่นสำหรับองค์กรที่มีคุณสมบัติหลักมากมายที่ถูกล็อกไว้หลัง paywall สำหรับการสมัครสมาชิก คุณจะต้องจ่ายเงินสำหรับฟังก์ชันบางอย่างที่ Kubernetes รองรับทันที
ข้อดี:
- ให้คุณรันทั้งปริมาณงานที่มีคอนเทนเนอร์และไม่ได้อยู่ในคอนเทนเนอร์
- นำเสนอตัวเองเป็นแหล่งทรัพยากรที่เป็นหนึ่งเดียวซึ่งช่วยลดความซับซ้อนสำหรับนักพัฒนา
จุดด้อย:
- คุณสมบัติระดับพรีเมียมถูกล็อคไว้หลังเพย์วอลล์
ดาวน์โหลด DC / OS
3. เร่ร่อน
เหมาะกับใคร: ผู้ใช้ที่ต้องการบริการจัดระเบียบแบบ จำกัด แต่เน้น
ข้อเสียที่สำคัญอย่างหนึ่งของผู้เล่นออเคสเตชั่นขนาดใหญ่อย่าง Kubernetes และ Docker Swarm ก็คือดังนั้นซับซ้อน พวกเขาสร้างขึ้นตามข้อกำหนดของยักษ์ใหญ่อย่าง Spotify ที่ให้บริการหลายร้อยรายการล้านของผู้ใช้ต่อวัน หากแอปของคุณต้องการขยายขนาดในเซิร์ฟเวอร์หลายพันเครื่องและให้บริการแก่ผู้คนนับล้านความต้องการระดับความซับซ้อนนั้น แต่ถ้าคุณเป็นผู้เล่นขนาดเล็กหรือขนาดกลางข้อกำหนดในการจัดระเบียบของคุณก็จะง่ายขึ้นเช่นกัน
คนเร่ร่อนทำอะไรได้ไม่มากนัก มันเท่านั้นช่วยให้คุณจัดการคลัสเตอร์คอนเทนเนอร์และกำหนดเวลาได้ ในกรณีที่เกิดข้อผิดพลาดล้มเหลวระบบจะทำให้คลัสเตอร์คอนเทนเนอร์ของคุณทำงานต่อไปเช่นกัน แต่ก็เกี่ยวกับเรื่องนี้ ฟังก์ชันอื่น ๆ ที่คุณต้องการในแง่ของการบันทึกการตรวจสอบหรือการเชื่อมต่อเครือข่ายจำเป็นต้องจัดการโดยเครื่องมืออื่น ๆ หากคุณมีข้อกำหนดเพิ่มเติมการรวม Nomad เข้ากับเครื่องมืออื่น ๆ ก็ทำได้ง่ายเช่นกัน Hashicorp ผู้พัฒนาคนสำคัญของ Nomad ช่วยให้มั่นใจว่าการรวม Nomad เข้ากับผลิตภัณฑ์ซอฟต์แวร์อื่น ๆ เช่น Consul และ Vault อย่างใกล้ชิด
Nomad ก็มีข้อเสียที่น่าสังเกตเช่นกัน สำหรับการเริ่มต้นนั้น คือจำกัด และนั่นคือดาบสองคม หากคุณต้องการฟังก์ชันนโยบายเครือข่ายขั้นสูงและการตรวจสอบในตัว Kubernetes เป็นทางออกที่ดีกว่า ยิ่งไปกว่านั้น Nomad ยังเป็นผู้เล่นที่เล็กกว่า Kubernetes มาก ทั้งสองโครงการเป็นโครงการโอเพ่นซอร์สที่ขึ้นอยู่กับข้อมูลของชุมชน Nomad แทบจะไม่ถึง 10 เปอร์เซ็นต์เนื่องจาก Github จำนวนมากยอมรับว่า Kubernetes ซึ่งหมายถึงการพัฒนาและการแก้ไขข้อบกพร่องโดยรวมช้าลง
ข้อดี:
- ใช้งานง่ายเมื่อเทียบกับตัวเลือกอื่น ๆ ในรายการ
จุดด้อย:
- ขอบเขตและขนาดที่ จำกัด ทำให้ยากต่อการนำไปใช้ในโครงการขนาดใหญ่อย่างแท้จริง
- ชุมชนค่อนข้างเล็ก
ดาวน์โหลด Nomad
ห่อ
แต่ละแพลตฟอร์มการจัดระเบียบเหล่านี้มีข้อดีและข้อเสีย Kubernetes เป็นโซลูชันสำหรับองค์กรที่ต้องการจัดเตรียมแอปที่รองรับผู้ใช้หลายล้านคน เอกสารที่คลุมเครือการเรียนรู้ที่สูงชันและการสนับสนุนที่ค่อนข้างแย่หมายความว่าไม่ใช่สำหรับทุกคน
Docker Swarm กำหนดค่าและใช้งานได้ง่ายกว่ามาก แต่ไม่มีเครื่องมือตรวจสอบหรือบันทึกข้อมูลที่มีประสิทธิภาพในตัว DC / OS ช่วยให้คุณทำมากกว่าแค่การจัดเตรียมไมโครเซอร์วิสที่มีคอนเทนเนอร์ แต่มีการจ่ายค่าฟังก์ชันระดับพรีเมียม และในขณะที่ไฮไลต์สำคัญของ Nomad คือความเรียบง่ายทำให้เหมาะอย่างยิ่งสำหรับโครงการขนาดเล็ก แต่ความเรียบง่ายอย่างมากก็ทำให้ไม่เหมาะสำหรับงานขนาดใหญ่ระดับองค์กร
อ่าน: เครื่องมือสร้างเว็บไซต์อีคอมเมิร์ซฟรีที่ดีที่สุดสำหรับธุรกิจขนาดเล็ก