เป็นเวลาเกือบหนึ่งทศวรรษแล้วที่ Marc Andreessen ได้ประกาศอย่างโด่งดังว่า “ซอฟต์แวร์กำลังกินโลก” เราพูดถึงเรื่องนี้มาหลายปีแล้ว แต่เมื่อเร็วๆ นี้ เราได้เห็นมันกับตาของเราเองแล้ว

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

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

การปฏิวัติข้อมูลครั้งใหม่

การปฏิวัติ DevOps เสริมศักยภาพให้กับนักพัฒนาและก่อให้เกิด “การเปลี่ยนแปลงทางซ้าย” ที่มุ่งเน้นไปที่การป้องกันปัญหาในขณะเดียวกันก็สร้างเครื่องมือรุ่นใหม่ เช่น GitHub, Jenkins, CircleCI, Gerrit และ Gradle ที่อนุญาตให้ผู้ใช้จัดส่งซอฟต์แวร์ เรามีเครื่องมือเปรียบเทียบอะไรบ้างสำหรับข้อมูล? เรามีกระบวนการที่ได้รับการปรับปรุงอะไรบ้าง?

ยินดีต้อนรับสู่ยุคของ Data as Code (DaC)

Data as Code เป็นแนวทางที่ช่วยให้ทีมข้อมูลสามารถประมวลผล จัดการ ใช้ และแชร์ข้อมูลในลักษณะเดียวกับที่เราทำกับโค้ดในระหว่างการพัฒนาซอฟต์แวร์ Data as Code ช่วยให้ผู้ใช้สามารถควบคุมข้อมูลของตนเพื่อเร่งการทำซ้ำและเพิ่มการทำงานร่วมกัน

ขึ้นอยู่กับความสามารถหลายอย่างแบบเดียวกับที่วิธีการพัฒนาซอฟต์แวร์แบบ Agile พึ่งพา ซึ่งรวมถึง:

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

ปัจจุบัน ข้อมูลส่วนใหญ่ยังคงถูกเก็บไว้ในไซโล ไซโลบางส่วนมีลักษณะเป็นเสาหินและบางส่วนมีการกระจาย แต่ก็ยังคงเป็นไซโล แม้ว่าเราจะเชื่อมต่อระบบผ่าน API ได้ดีขึ้น แต่เราก็ได้เพิ่มทีม DataOps ทั้งหมดซึ่งมีหน้าที่จัดการไปป์ไลน์ข้อมูลควบคู่ไปกับผู้ใช้ข้อมูล แม้ว่าเราจะพยายาม "ทำให้เป็นแจ๊ส" เราก็ยังคงทำ ETL อยู่ (แตกไฟล์ แปลงร่าง และโหลด) แม้จะมียุคใหม่ที่มี Data Lake แบบกระจายบนคลาวด์ แต่ก็ยังรู้สึกเหมือนอาเรย์ระดับไฮเอนด์รุ่นเก่าที่รวบรวมฝุ่นในศูนย์ข้อมูล คุณไม่สามารถย้ายข้อมูลออกจากมันได้

การใส่ DevOps ลงในข้อมูล

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

ด้วย DevOps เรากำลังปิดช่องว่างระหว่างการพัฒนาและการดำเนินงานด้วยความสำเร็จอันยิ่งใหญ่ การถือกำเนิดของคลาวด์ และโดยเฉพาะอย่างยิ่งการประมวลผลบนคลาวด์ด้วย Docker และ Kubernetes ได้เร่งการเสริมอำนาจของเจ้าของแอปพลิเคชันให้เป็นผู้ปกครองชะตากรรมของพวกเขามากกว่าผู้ดูแลระบบโครงสร้างพื้นฐาน

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

แต่จะเกิดอะไรขึ้นเมื่อนักพัฒนาหรือเจ้าของแอปพลิเคชันต้องการข้อมูล พวกเขาขอให้ทีม DataOps หรือเจ้าของแอปพลิเคชันโฮสต์ข้อมูล จะเกิดอะไรขึ้นเมื่อพวกเขาต้องการแชร์ข้อมูลนั้นกับเพื่อนร่วมงานหรือย้ายข้อมูลระหว่างคลาวด์ พวกเขารอให้วิศวกร DevOps มาช่วยเหลือ จะเกิดอะไรขึ้นเมื่อพวกเขาต้องการซิงโครไนซ์ชุดข้อมูลของตนตลอดวงจรชีวิต พวกเขารอให้วิศวกร DevOps มาช่วยเหลือ

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

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

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

Arrikto เปิดใช้งานข้อมูลเป็นรหัส

Arrikto กำลังทำกับข้อมูลที่ DevOps ทำกับการพัฒนาซอฟต์แวร์ จำรายการความสามารถพื้นฐานของ DevOps ที่เราอธิบายไว้ข้างต้นได้ไหม เรากำลังทำให้สิ่งนี้เป็นไปได้สำหรับข้อมูลในวันนี้

การจัดการเชิงโปรแกรม

นี่คือฟังก์ชันพื้นฐานหลักที่เปิดใช้งาน Data as Code ได้อย่างแท้จริง ดำเนินการกับข้อมูลเสมือนเป็นโค้ด เข้าถึงและแก้ไขข้อมูล ย้ายและแปลงข้อมูลผ่านระบบอัตโนมัติและการทำซ้ำ

การบูรณาการอย่างต่อเนื่องและการปรับใช้อย่างต่อเนื่อง

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

การควบคุมเวอร์ชัน

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

บรรจุภัณฑ์

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

การโคลนและการแตกแขนง

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

การเปรียบเทียบและการผสาน

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

การติดตามและเชื้อสาย

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

ความคล่องตัวและการเข้าถึงได้ทุกที่

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

จัดการโดยผู้ใช้ปลายทาง

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

การทำงานร่วมกันแบบกระจาย

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

ข้อมูลเป็นประชาธิปไตย

เรากำลังทำให้การจัดการข้อมูลเป็นประชาธิปไตยมากยิ่งขึ้นไปอีกขั้นของแอปพลิเคชันด้วย "แพลตฟอร์มการจัดการข้อมูล Rok" เป็นเรื่องดีที่วิศวกร DevOps และวิศวกรความน่าเชื่อถือของไซต์ (SRE) จะต้องไม่พึ่งพาเวิร์กโฟลว์แบบ ITIL แบบร้องขอ-รออีกต่อไปสำหรับผู้ดูแลระบบโครงสร้างพื้นฐาน แต่สิ่งที่จะดียิ่งขึ้นไปอีกก็คือผู้ใช้จริงของข้อมูลที่จะเข้าควบคุม

ในโลกวิทยาศาสตร์ข้อมูล นี่คือสิ่งที่เรากำลังทำอยู่จริงๆ เราเริ่มต้นด้วย "Kubeflow" บน Kubernetes เพื่อเป็นแพลตฟอร์มสำหรับไปป์ไลน์วิทยาศาสตร์ข้อมูลและการเรียนรู้ของเครื่อง และเรากำลังขยายไปยังระบบนิเวศข้อมูล Kubernetes ทั้งหมด

ทำไมต้อง Kubernetes? เพราะมันคืออนาคตของระนาบควบคุมแอปพลิเคชัน

ทำไมต้องอาริกโต? เพราะเราคืออนาคตของเครื่องบินควบคุมข้อมูล

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

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

หลักการเหล่านี้นำไปใช้กับแอปพลิเคชันที่มีข้อมูลจำนวนมากอย่างเท่าเทียมกัน และ Arrikto กำลังดำเนินการเพื่อทำให้สิ่งนี้เป็นจริง

หากคุณต้องการเข้าใจว่า Data as Code สามารถช่วยคุณได้อย่างไร โปรดติดต่อ เราอยากจะแสดงให้คุณเห็นว่าคุณจะได้รับประโยชน์อย่างไร

ใน "ส่วนที่ 2" เราจะสำรวจต่อไปว่า Data as Code ขับเคลื่อนนวัตกรรมได้อย่างไร และเน้นตัวอย่างแอปพลิเคชันด้านการดูแลสุขภาพที่ขับเคลื่อนด้วยการเรียนรู้ของเครื่องที่ติดตามผู้ป่วยหัวใจวาย

เผยแพร่ครั้งแรกที่ https://www.arrikto.com เมื่อวันที่ 12 พฤศจิกายน 2020