ขณะนี้เรากำลังอยู่ในขั้นตอนของการออกแบบสถาปัตยกรรมของ Apache Mesos ระบบคลาวด์ใหม่ของเรา เป้าหมายคือการรวมระบบของเราด้วยการย้ายสแต็คที่แตกต่างกันไปยังสถาปัตยกรรมเดียวกัน ภาระงานหลักคือการวิเคราะห์ข้อมูลขนาดใหญ่โดยใช้ Apache Spark และโครงสร้างพื้นฐานขององค์กรของเรารวมถึงเว็บเซิร์ฟเวอร์เซิร์ฟเวอร์อีเมล ฯลฯ
แนวคิดคือการเรียกใช้บริการเว็บของเราในคอนเทนเนอร์ Docker ที่ทำงานบนหนึ่งในตัวกำหนดเวลาที่ใช้ได้สำหรับ Mesos (Marathon / Chronos, Aurora หรือ Singularity) นี่จะเป็นกลุ่มกรอบ Mesos แรก ถัดจากนั้นเราจะมี Apache Spark framework และเฟรมเวิร์กฐานข้อมูลต่าง ๆ สำหรับการจัดเก็บข้อมูล นี่จะเป็นเฟรมเวิร์กของ Mesos กลุ่มที่สอง เราจะเลือกเฉพาะหลังจากเรียกใช้พวกเขาทั้งหมดในแบบคู่ขนานสำหรับการทดสอบ
อย่างไรก็ตามเรามีปัญหาในการตัดสินใจซึ่งพื้นฐานในการเรียกใช้ Mesos เอง เป็นการดีที่เราต้องการเรียกใช้มันให้ใกล้เคียงกับโลหะมากที่สุด นอกจากนี้เรายังต้องการใช้วิธีการแก้ปัญหาแบบออเคสตร้าเพื่อให้แน่ใจว่า Mesos & framework daemons นั้นทำงาน / รีสตาร์ทเมื่อล้มเหลวเสมอ ตัวเลือกที่เรากำลังพิจารณามีดังนี้:
1) การเรียกใช้ Mesos & เฟรมเวิร์กเป็นคอนเทนเนอร์ docker ในระบบปฏิบัติการที่น้อยที่สุด ในส่วนนี้เรากำลังโน้มตัวไปสู่ CoreOS และ Fleet
2) การเรียกใช้ Mesos & เฟรมเวิร์กโดยตรงบนเซิร์ฟเวอร์ Ubuntu / Debian สำหรับตัวเลือกนี้เรากำลังมุ่งหน้าไปยัง Foreman และ Puppet
สำหรับคำถามนี้เรากำลังมองหาวิธีการแก้ปัญหาซึ่งตามลำดับความสำคัญ:
- มีความซับซ้อนน้อยที่สุดในการกำหนดค่า
- เป็นวิธีที่ง่ายที่สุดในการรักษาและปรับปรุงให้ทันสมัยอยู่เสมอ
- มีค่าใช้จ่ายน้อยที่สุด
เราไม่เคยทำงานกับ CoreOS มาก่อน แต่มันเป็นตัวเลือกที่เรามุ่งหวัง ปัญหาใหญ่ (อัตนัย) หนึ่งเรื่องที่ฉันมีคือเราเรียกใช้ Mesos บนคอนเทนเนอร์ Docker แล้วเราก็เรียกใช้คอนเทนเนอร์ Docker บน Mesos ดูเหมือนว่า "ไม่สะอาด" และผิดกับฉัน ข้อพิจารณานี้ปราศจากบุญหรือไม่?
ความคิดที่คล้ายกันเกี่ยวข้องกับความซ้ำซ้อนระหว่างเลเยอร์ เพื่ออธิบายว่าฉันมาจากที่ใดฉันจะเลือกว่า Mesos เป็นระบบปฏิบัติการจริงที่เพิ่งทำงานบนโลหะ ดูเหมือนว่าไม่ว่าคุณจะใช้พื้นฐานแบบใดคุณก็จบลงด้วยฟังก์ชั่นที่ตั้งใจไว้เหมือนกันในสถาปัตยกรรมมากกว่าหนึ่งเลเยอร์ (เช่น CoreOS & Fleet & SystemD == Mesos & Marathon & Chronos) สิ่งนี้หลีกเลี่ยงไม่ได้หรือไม่?
มีตัวเลือกที่ดีอื่น ๆ ในการเรียกใช้เลเยอร์ด้านล่าง Mesos ที่เราไม่ได้พิจารณาโดยคำนึงถึงเกณฑ์ของเราหรือไม่?