ทีมสนับสนุนการจัดเก็บข้อมูลของ Bloomberg อาศัยโอเพ่นซอร์สและ SDS

ทีมสนับสนุนการจัดเก็บข้อมูลของ Bloomberg อาศัยโอเพ่นซอร์สและ SDS

TL; DR: ทีมวิศวกรรมการจัดเก็บข้อมูลของ Bloomberg ได้สร้างพื้นที่เก็บข้อมูลบนคลาวด์สำหรับการใช้งานภายในที่ไม่รบกวนโครงสร้างพื้นฐาน และสามารถทนต่อความผันผวนของการซื้อขายอย่างหนักในช่วงการแพร่ระบาด

แมทธิว ลีโอนาร์ด เมื่อพูดถึงงานของเขาในฐานะผู้จัดการด้านเทคนิคของทีม Bloomberg Storage Engineering มักใช้คำว่า "ท้าทาย" และ "สนุกสนาน" ความท้าทายเกิดขึ้นจากขอบเขตการจัดเก็บข้อมูลที่กว้างขวาง ตั้งแต่อาร์เรย์ SAN ที่ใช้ NVMe ล่าสุด ไปจนถึงพื้นที่จัดเก็บข้อมูลที่กำหนดโดยซอฟต์แวร์โอเพ่นซอร์สใน DevOps นี่คือจุดเริ่มต้นของ "ความสนุก" (ดูรูปประจำตัวของฉันบนHabré ประมาณ นักแปล).

Leonard และทีมงาน 25 คนของเขาดูแลความจุมากกว่า 100 เพตะไบต์ และระบบคลาวด์ภายในสำหรับวิศวกร 6000 คนที่พัฒนาแอปพลิเคชันสำหรับ Bloomberg Terminal ซึ่งเป็นเทคโนโลยีที่ทำให้ Michael Bloomberg กลายเป็นมหาเศรษฐี ทีมงานออกแบบ สร้าง และบำรุงรักษาระบบจัดเก็บข้อมูลสำหรับ Bloomberg Engineering

เช่นเดียวกับอาชีพไอทีอื่นๆ ปี 2020 ถือเป็นปีที่ไม่ธรรมดาสำหรับสมาชิกในทีมวิศวกรรมการจัดเก็บข้อมูล เนื่องจากโควิด-19 ทำให้พวกเขาต้องทำงานจากระยะไกล Leonard กล่าวว่าการแพร่ระบาดส่งผลกระทบต่อ "ทีมที่เหนียวแน่น" ของเขาในสังคม เนื่องจากการปฏิสัมพันธ์แบบเห็นหน้ากันหมดไป แต่พนักงานได้ปรับตัวอย่างรวดเร็วเพื่อทำงานจากที่บ้านโดยใช้แล็ปท็อปและการประชุมผ่านวิดีโอ

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

ความท้าทายที่ยิ่งใหญ่ที่สุดอาจเกิดขึ้นก่อนจุดสูงสุดของโควิด-19 เนื่องจากการซื้อขายในตลาดผันผวนเนื่องจากความกังวลเกี่ยวกับผลกระทบจากการแพร่ระบาดต่อเศรษฐกิจโลก ปริมาณข้อมูลที่ไหลเข้าสู่คลังข้อมูล Bloomberg จากตลาดทุนทั่วโลกเพิ่มขึ้นเกือบสองเท่า โดยแตะข้อมูล 240 พันล้านชิ้นในบางวันของปลายเดือนมีนาคม นี่เป็นการทดสอบระบบจัดเก็บข้อมูลอย่างจริงจัง

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

เมื่อเร็วๆ นี้ Leonard ได้พูดคุยกับ SearchStorage ในรายละเอียดเกี่ยวกับการจัดการพื้นที่จัดเก็บข้อมูลสำหรับธุรกิจที่ขับเคลื่อนด้วยข้อมูล เขาได้พูดคุยถึงสิ่งที่ต้องใช้เพื่อนำเสนอโซลูชันพื้นที่จัดเก็บข้อมูลบนคลาวด์ส่วนตัว พร้อมด้วยความสามารถในการมอบคุณสมบัติ AWS ให้กับผู้ใช้ในขณะเดียวกันก็เก็บข้อมูลใดๆ ไว้ในศูนย์ข้อมูลของ Bloomberg

หากไม่มีโรคระบาดอีกต่อไป วิศวกรของ Bloomberg จะประสบปัญหาในการจัดการพื้นที่จัดเก็บข้อมูลอย่างไรบ้าง

เรามีความต้องการมากมาย เราถูกฉีกขาดไปในทิศทางที่ต่างกัน ดังนั้นเราจึงจำเป็นต้องจัดหาผลิตภัณฑ์หลายประเภทตามระดับ SLA ที่แตกต่างกัน เพื่อช่วยให้นักพัฒนาแอปพลิเคชันของเรามุ่งเน้นไปที่งานของตน แทนที่จะกังวลเรื่องพื้นที่จัดเก็บข้อมูล

และคุณใช้กลยุทธ์อะไรในเรื่องนี้?

ส่วนหนึ่งของสิ่งที่เราพยายามทำคือปรับปรุงประสิทธิภาพการจัดเก็บข้อมูล ลองนึกถึงโมเดล AWS ที่วิศวกรฝ่ายพัฒนาเดินเข้ามา กดปุ่ม จากนั้น "คลิก" จะได้รับประเภทพื้นที่จัดเก็บข้อมูลที่เหมาะสมเพื่อแก้ไขปัญหาของเขาอย่างน่าอัศจรรย์

โครงสร้างพื้นฐานการจัดเก็บข้อมูลของคุณมีลักษณะอย่างไร?

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

คุณไม่ได้ใช้ที่เก็บข้อมูลบนคลาวด์สาธารณะใช่ไหม

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

ในศูนย์ข้อมูลของเรา เราชอบกลยุทธ์ที่มีผู้ค้าหลายราย พวกเขาเป็นซัพพลายเออร์รายใหญ่ แต่เราจะไม่บอกว่าใครแน่ชัด (เป็นนโยบายของ Bloomberg ที่จะไม่รับรองซัพพลายเออร์รายใด ประมาณ นักแปล).

คุณใช้โครงสร้างพื้นฐานแบบไฮเปอร์คอนเวิร์จเพื่อสร้างคลาวด์ส่วนตัวของคุณหรือไม่?

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

อุปสรรคอะไรบ้างที่ต้องเอาชนะเพื่อสร้างไพรเวทคลาวด์?

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

คุณคิดว่าคุณต้องการคุณสมบัติล่าสุดที่มีอยู่ใน AWS และคลาวด์สาธารณะอื่นๆ หรือไม่?

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

คุณใช้อุปกรณ์จัดเก็บข้อมูลอะไร?

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

คุณใช้พื้นที่เก็บข้อมูลอ็อบเจ็กต์เพื่ออะไร?

เรามีนักพัฒนา 6000 รายที่ทำงานเกี่ยวกับโครงสร้างพื้นฐาน พวกเขาไม่ได้รวมเป็นหนึ่งเดียวด้วยกรณีการใช้งานใดกรณีหนึ่ง ตัวเลือกใดๆ ก็ตามที่คุณนึกถึง เราอาจมีมันอยู่ในที่เก็บวัตถุ บางทีมใช้สำหรับพื้นที่จัดเก็บข้อมูลแบบ Cold Archival บางทีมใช้สำหรับการถ่ายโอนข้อมูล และบางทีมใช้สำหรับแอปพลิเคชันการทำธุรกรรม กรณีการใช้งานทั้งหมดนี้ต้องการระดับ SLA ที่แตกต่างกัน ดังนั้นอย่างที่คุณเห็น เรามีการรับส่งข้อมูลประเภทต่างๆ ความต้องการทุกประเภทสำหรับผู้ใช้โครงสร้างพื้นฐานที่แตกต่างกันของเรา นี่ไม่ใช่กรณีการใช้งานที่เป็นเนื้อเดียวกันซึ่งทำงานบนพื้นที่จัดเก็บข้อมูลใดๆ ของเรา ซึ่งทำให้สิ่งต่างๆ ซับซ้อนมากขึ้นอย่างเห็นได้ชัด

Kubernetes และคอนเทนเนอร์มีบทบาทสำคัญแค่ไหนสำหรับคุณ และนั่นส่งผลต่อพื้นที่จัดเก็บข้อมูลอย่างไร

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

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

เรามีสามทีม ทีมแรกคือทีม API การจัดเก็บข้อมูล พวกเขาสร้างการเข้าถึงทางโปรแกรม จุดสิ้นสุด และเวิร์กโฟลว์ที่กำหนดไว้ล่วงหน้าสำหรับไคลเอนต์การพัฒนาแอพที่ Bloomberg นี่คือทีมนักพัฒนาเว็บแบบสแต็กเต็มรูปแบบ พวกเขาใช้ node.js, python, เทคโนโลยีโอเพ่นซอร์ส เช่น Apache Airflow ดังนั้นพวกเขาจึงศึกษาคอนเทนเนอร์และการจำลองเสมือน

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

เรากำลังพยายามติดตามสิ่งที่เกิดขึ้นในอุตสาหกรรม ศึกษาไดรเวอร์ Kubernetes CSI และยังทำงานอย่างใกล้ชิดกับทีมที่ใช้ Kubernetes ที่ Bloomberg เพื่อประเมินว่าเราจะทำให้พื้นที่เก็บข้อมูล Kubernetes ทำงานสอดคล้องกับเทคโนโลยีที่เรามีได้หรือไม่ และเรามี มันใช้งานได้ เราใช้ SDS เพื่อรองรับ Kubernetes ที่เชื่อมต่อกับพื้นที่จัดเก็บข้อมูลถาวร เราประสบความสำเร็จในการพัฒนาเทคโนโลยีนี้ และการอภิปรายยังคงดำเนินต่อไประหว่างทั้งสองทีมเกี่ยวกับวิธีที่เราจะทำให้ทุกคนใน Bloomberg เข้าถึงสิ่งนี้ได้ เราได้แสดงให้เห็นแล้วว่าสิ่งนี้ค่อนข้างเป็นไปได้

คุณใช้ซอฟต์แวร์โอเพ่นซอร์สอื่นใดอีกบ้าง โดยเฉพาะอย่างยิ่งสำหรับการจัดเก็บ?

เราใช้ Apache Airflow, HAProxy เพื่อจำกัดการรับส่งข้อมูลแอปพลิเคชัน นอกจากนี้เรายังใช้ Ceph ซึ่งเป็นแพลตฟอร์มสำหรับ SDS ด้วยเครื่องมือนี้ คุณสามารถมีระบบเดียวสำหรับคำสั่ง แต่ให้หลายอินเทอร์เฟซแก่ลูกค้า หนึ่งในแพลตฟอร์มการจำลองเสมือนทำงานบน OpenStack - เราทำงานอย่างใกล้ชิดกับทีมนี้ เรามีแพลตฟอร์มการจำลองเสมือนแบบโอเพ่นซอร์สที่ใช้แพลตฟอร์ม SDS แบบโอเพ่นซอร์สสำหรับการจัดเก็บข้อมูล มันสนุกมาก.

คุณกำลังพิจารณาเทคโนโลยีการจัดเก็บข้อมูลใดในอีกสองถึงสามปีข้างหน้า

เรามองหาสิ่งใหม่ๆ เจ๋งๆ ที่เกิดขึ้นในอุตสาหกรรมการจัดเก็บข้อมูลอยู่เสมอ นี่เป็นส่วนหนึ่งของงานของเรา ไม่ใช่ “นี่คือ SAN ของคุณ จัดการที่นี่ และนี่คือ NFS ของคุณ จัดการที่นั่น” เราพยายามสื่อสารกับลูกค้าของเราเช่น โดยนักพัฒนาแอปพลิเคชันของเรา เราทำงานร่วมกันเพื่อทำความเข้าใจว่าปัญหาใดที่พวกเขากำลังพยายามแก้ไข และจะส่งผลกระทบต่อลูกค้าภายนอกของ Bloomberg อย่างไร - ธนาคารและบุคคลอื่น ๆ ที่ใช้ซอฟต์แวร์ของเรา จากนั้นเราจะกลับเข้าสู่โลกแห่งการจัดเก็บข้อมูลเพื่อค้นหาโอกาสที่จะช่วยให้พวกเขาบรรลุเป้าหมาย เราจะช่วยพวกเขาค้นหาเทคโนโลยีการจัดเก็บข้อมูลที่เหมาะสมกับ SLA ของพวกเขาหรือสิ่งที่พวกเขาพยายามทำได้อย่างไร เนื่องจากเรามีวิศวกรจำนวนมากที่ทำสิ่งเจ๋งๆ จึงไม่น่าเบื่อ

ขณะนี้เรากำลังพิจารณาวิธีปรับปรุงประสิทธิภาพสำหรับ SDS ที่อาจทำงานบนเซิร์ฟเวอร์วัตถุประสงค์ทั่วไป ดังนั้นเราจึงกำลังพัฒนา NVMe บน TCP นี่เป็นความคิดริเริ่มที่น่าสนใจและเจ๋งมาก หนึ่งในหลาย ๆ ความคิดริเริ่ม นอกจากนี้เรายังทำงานร่วมกับบุคคลสำคัญในอุตสาหกรรมและซัพพลายเออร์บางรายที่มีอยู่เพื่อค้นหาสิ่งที่พวกเขานำเสนอและประสิทธิภาพที่แท้จริงจะเป็นอย่างไร ไม่ว่าเราจะสามารถเริ่มใช้มันในการผลิตในบริษัทได้หรือไม่ นี่เป็นการเปิดโลกทัศน์ใหม่ที่ไม่สามารถเข้าถึงได้มาก่อน

ความช่วยเหลือเล็กน้อยในป.ล.

ป.ล. หากผมทำได้ผมขอเตือนคุณว่าวันที่ 28-30 กันยายนจะเป็น ฐาน Kubernetes แบบเข้มข้นสำหรับผู้ที่ไม่รู้จัก Kubernetes แต่ต้องการทำความคุ้นเคยและเริ่มต้นใช้งาน

ที่มา: will.com

เพิ่มความคิดเห็น