[PR] แนวทางประยุกต์ใช้การพัฒนาแอปพลิเคชั่นแบบ Agile และ DevOps ร่วมกับ HCP เพื่อแข่งขันในยุคดิจิทัลทรานฟอร์เมชั่น

“การ์ทเนอร์, ไอดีซี และฟอร์เรสเตอร์ คาดการณ์ว่าการแปรรูปการทำงานองค์กรให้เป็นดิจิทัล หรือ Digital Transformation จะเป็นสิ่งที่บรรดา CEO ให้ความสำคัญเป็นอย่างยิ่งในปี 2016 เพราะต้องปรับตัวให้แข่งขันกับผู้ที่สร้างปรากฏการณ์ใหม่ด้วยเทคโนโลยีดิจิทัล ( Digital Disruptor ) อย่าง Amazon, Ali Baba, FinTech, Airbnb เป็นต้น และเพื่อให้สามารถทัดเทียมกับคู่แข่งเหล่านี้ องค์กรจำเป็นต้องมีกระบวนการในการพัฒนาและส่งมอบผลิตภัณฑ์หรือบริการที่มีความคล่องตัวสูง ด้วยความคาดหวังกับฝ่ายสารสนเทศ หรือ CIO ที่สามารถทำสิ่งนี้ให้บรรลุผลด้วยการแปรรูปวัฒนธรรมไอที ซึ่งสอดคล้องอย่างที่คาดการณ์ไว้ว่าแนวโน้มในปี 2016 เราจะได้เห็นการให้ความสำคัญกับการพัฒนาแอปพลิเคชั่นและการวิเคราะห์เพื่อผลักดันให้ธุรกิจมีมูลค่าเพิ่มมากขึ้น

hitachi-data-system-agile-devops-hcp-article

จากการที่ได้พบปะกับลูกค้าในช่วงปี 2016 ทำให้พบว่า CIO หลาย ๆ แห่งกำลังวางแผนที่จะนำเอาหลักการในการพัฒนาแอปพลิเคชั่น แบบ Agile หรือ DevOps ( Development Operation ) เข้ามาช่วยในการทำงานเพื่อให้เกิดการพัฒนาที่รวดเร็ว โดย Agile คือวิธีการพัฒนาซอฟต์แวร์ โดยผ่านการทำงานร่วมกันระหว่างทีมงานจากส่วนต่าง ๆ ขององค์กรและผู้พัฒนาในการกำหนดความต้องการเพื่อสร้างแนวทางสำหรับการพัฒนาผ่านกระบวนการทำงานแบบซ้ำ ๆ ซึ่งแต่ละฝ่ายขององค์กรสามารถได้เห็นความคืบหน้าที่ชัดเจน และสามารถได้เปลี่ยนข้อกำหนดความต้องการในการใช้งานได้บ่อย ๆ อย่างที่ต้องการ ทำให้มีความยืดหยุ่น สามารถตอบสนองต่อการเปลี่ยนแปลงให้ธุรกิจได้รวดเร็ว ซึ่งตรงข้ามกับแนวคิดแบบ “Waterfall” ซึ่งเป็นหลักการดั้งเดิม โดยมาจากการพัฒนาฮาร์ดแวร์ที่มีขั้นตอนการทำงานตามลำดับ เริ่มจากการกำหนดความต้องการส่งต่อลงไปยังขั้นตอนการออกแบบ การพัฒนา การทดสอบ การใช้งานระดับ Production และการดูแลรักษา แนวคิดนี้ขาดความยืดหยุ่นอย่างมาก เพราะเมื่อเกิดการเปลี่ยนแปลงจะทำให้การทำงานมีความยุ่งยากมากยิ่งขึ้น เนื่องจากทุกกระบวนการทำงานต้องเป็นไปตามลำดับเคลื่อนลงล่างตามหลักการของน้ำตก นับตั้งแต่ต้นทศวรรษ 2000 กระแสการทำงานด้านการพัฒนาซอฟต์แวร์ Agile เช่น Scrum จึงได้รับการพัฒนาเพื่ออำนวยความสะดวกให้กับการพัฒนาซอฟต์แวร์ โดยมีสมาคมและมหาวิทยาลัยจำนวนมากได้ส่งเสริม ให้การรับรองหรือมอบปริญญาบัตรให้กับศาสตร์แขนงนี้ด้วย

DevOps ต่อยอดมาจาก Agile ซึ่งรวมแนวทางการดำเนินงานของหน่วยปฏิบัติการ ( ไอที ), การประกันคุณภาพ และวิศวกรด้านการพัฒนาทำงานร่วมกัน ผ่านการออกแบบ พัฒนา ทดสอบ และนำเสนอซอฟต์แวร์แอปพลิเคชั่น DevOps นั้น เป็นการเปลี่ยนแปลงทางวัฒนธรรม ซึ่งจำเป็นต้องเปลี่ยนแปลงในด้านบุคคลากรและกระบวนการทำงานโดยเฉพาะ จะเห็นได้ว่าในการดำเนินงานทั่วไปนั้น หน่วยปฏิบัติการ ( ไอที ) ต้องการเสถียรภาพและความสามารถในการทำซ้ำได้ ขณะที่นักพัฒนาจะมองหาการเปลี่ยนแปลง และนักทดสอบจะมองหาแนวทางที่สามารถลดความเสี่ยงได้ ในแนวคิด Waterfall นั้นนักพัฒนาจะส่งโค้ดโปรแกรมไปให้นักทดสอบ จากนั้นนักทดสอบจะร้องขอทรัพยากรจากฝ่ายปฏิบัติการ ซึ่งไม่ได้มีการจัดเตรียมไว้สำหรับคำขอที่ “ไม่ได้มีการวางแผน” เหล่านี้ DevOps จึงเป็นการรวมกันของเทคโนโลยีที่เหมาะสม และทัศนคติของกลุ่มคนทำงานที่เกี่ยวข้อง เพื่อช่วยทำให้การพัฒนาและส่งมอบซอฟแวร์มีวิวัฒนาการที่ดีขึ้นกว่าเดิม แต่ก็ไม่ได้มีเครื่องมือ DevOps เพียงชิ้นเดียวที่เข้ามาช่วย แนวคิดนี้ยังมีห่วงโซ่เครื่องมืออื่น ๆ ที่มาช่วย อาทิเช่น เครื่องมืออย่าง Docker สำหรับการทำคอนเทนเนอร์หรือบริการระดับไมโคร, Jenkins สำหรับการผสานรวมการทำงานแบบต่อเนื่อง และ Hitachi Content Platform ( HCP ) สำหรับการจัดเก็บและการแจกจ่าย รวมถึงจัดเก็บผลการทดสอบและบันทึกข้อมูล logs ต่าง ๆ ด้วย

Hitachi Content Platform หรือ HCP นั้นได้รับการยอมรับจากอุตสาหกรรม Cloud Computing และเป็นหนึ่งในเครื่องมือของ DevOps ที่บริษัท ฮิตาชิ ดาต้า ซิสเต็มส์ เองได้ใช้ในการพัฒนาซอฟแวร์ HCP, HCP-Anywhere, HCI, และ HCP-S ของเราที่แล็บในเมือง Waltham สหรัฐอเมริกาอีกด้วย โดยเราได้นำ DevOps เข้ามาใช้ในทีม HCP เมื่อปี 2012 เพื่อเพิ่มประสิทธิภาพการทำงานของทีมงานด้านวิศวกรรมในกลุ่มผลิตภัณฑ์ HCP โดยเฉพาะ ด้วยการระบุจุดขั้นตอนที่ไร้ประสิทธิภาพและสร้างระบบการทำงานที่เป็นอัตโนมัติขึ้นมา เช่น การพัฒนาระบบที่ช่วยให้วิศวกรสามารถติดตั้ง OS ลงในเซิร์ฟเวอร์ของแล็บได้โดยอัตโนมัติ บันทึกข้อมูลที่เก็บรวบรวมได้ของทุกคนโดยอัตโนมัติจากเดิมที่ต้องทำด้วยตนเองซ้ำแล้วซ้ำเล่า นอกจากนี้ยังได้พัฒนาระบบควบคุมการทดสอบแบบอัตโนมัติ ซึ่งทีม QA/Automation สามารถนำไปใช้เพื่อดำเนินการทดสอบในรูปแบบอัตโนมัติได้เป็นจำนวนมากเท่าที่ต้องการ ทำให้พวกเขาสามารถเพิ่มคิวงานทดสอบจากการเรียกใช้เพียงครั้งเดียวได้อย่างง่ายดาย นอกจากนี้ยังมีเครื่องมืออื่น ๆ อีกมากมาย แต่หลักการพื้นฐานที่มีร่วมกันก็คือ การพัฒนาเครื่องมือสำหรับการใช้งานภายใน ซึ่งทำให้การทำงานของบรรดาวิศวกรซอฟแวร์เป็นเรื่องที่ง่ายขึ้น ผลลัพธ์ที่ได้คือคุณภาพและความเร็วในการนำเสนอคุณสมบัติที่ดีขึ้นให้กับผลิตภัณฑ์ HCP ของเรา ทำให้เราสามารถทิ้งห่างคู่แข่งได้อย่างมาก

คุณประโยชน์หลักของ HCP สำหรับ DevOps คือความสามารถด้าน High Availability ( HA ) ที่ทำให้ระบบพร้อมใช้งานตลอดเวลา ช่วยป้องกันเครื่องมือปลายทางในการทดสอบอัตโนมัติ ไม่ว่าจะเป็นจากการอัพเกรดซอฟต์แวร์ การซ่อมบำรุงฮาร์ดแวร์/ความผิดพลาดของฮาร์ดแวร์ เป็นต้น รวมทั้งช่วยป้องกันไม่ให้เกิดปัญหาด้านความพร้อมใช้งานของเครื่องมือต้นทางด้วยเช่นกัน อาทิเช่น เมื่อใช้ Jenkins สำหรับการผสานการทำงานแบบต่อเนื่องและหากเกิดความล้มเหลวหรือมีการอัพเกรดระบบ เครื่องมือทดสอบปลายทางไม่จำเป็นต้องสังเกตเห็นหรือสนใจ เนื่องจากเครื่องมือเหล่านี้จะเรียกข้อมูลจาก HCP ที่พร้อมทำงานอยู่เสมอ อีกทั้ง HCP มีคุณสมบัติในการเรียกค้นข้อมูลเพื่อวิเคราะห์ในระบบบรรณารักษ์ข้อมูลขนาดใหญ่ที่ซับซ้อน โดย Metadata Query Engine ( MQE ) ของ HCP ช่วยดึง artifacts ที่มีอยู่และที่มีชื่ออยู่ใน namespace ออกมาด้วย ตราบใดที่ออบเจ็คต์ถูกทำดัชนีไว้ MQE จะตรวจพบออบเจ็คต์เหล่านั้น และแสดงให้ได้เห็น โดยไม่คำนึงถึงชื่อหรือเส้นทางของออบเจ็กต์นั้น ๆ สำหรับในส่วนปลายทาง หลังจากที่มีการรันการทดสอบอัตโนมัติแล้ว เราจะได้รับประโยชน์จาก HCP เพิ่มเติมอีกจากการจัดเก็บผลการทดสอบและบันทึกข้อมูล logs ต่าง ๆ บน HCP ( ใน namespace แยกต่างหากแทนที่จะเป็น build artifacts )

นอกจากนี้ คุณสมบัติด้านความปลอดภัยและการเข้ารหัสของ HCP ทำให้แน่ใจได้ว่าระบบขององค์กรจะปลอดภัย ซึ่งคุณสมบัตินี้จะไม่มีในเครื่องมือ DevOps ทั้งนี้ การใช้ HCP ใน DevOps จะสามารถทำให้การบริหารจัดการด้านการใช้พื้นที่เป็นรูปแบบอัตโนมัติโดยใช้ประโยชน์จากการเก็บรักษาและการจัดการ “ข้อมูลที่หมดอายุ” และลบบันทึก logs หรือ builds เก่า ๆ ออก หรือจัดแบ่งระดับชั้นสำหรับการจัดเก็บระยะยาว ( เช่นใน S10, Amazon, Glacier เป็นต้น ) นอกจากนี้ HCP ยังให้โซลูชั่นสำรองข้อมูลแบบอัตโนมัติโดยใช้คุณสมบัติการทำสำเนา ( replication ) ซึ่งเรียกใช้สำเนาสำหรับ Disaster Recovery แบบ off-site

หากคุณกำลังริเริ่มการจัดตั้งกระบวนการ DevOps อยู่ และต้องการทราบถึงการใช้ HCP สำหรับระบบ Continuous Integration Build Artifact storage system ทางเราแนะนำให้อ่าน whitepaper ซึ่งเขียนโดยทีม HCP developers ของเราโดยดาวน์โหลดได้ที่ https://www.hds.com/en-us/pdf/white-paper/hcp-as-continuous-integration-build-artifact-storage-system.pdf

ข้อดีของการนำ DevOps มาใช้ในการแปรรูประบบไอทีจะได้รับการจัดทำเป็นเอกสารอ้างอิงด้วยเช่นกัน อาทิ Puppet Labs ซึ่งเป็นบริษัทด้านซอฟต์แวร์การทำระบบไอทีให้เป็นอัตโนมัติ ได้ทำการสำรวจสถานะของ DevOps ทุกปี และในรายงาน 2015 State of DevOps Report ซึ่งสำรวจจากผู้เชี่ยวชาญด้านเทคโนโลยีมากกว่า 20,000 คนทั่วโลกได้ข้อมูลสรุปพ้องกันว่า:

“เราพิสูจน์แล้วว่าองค์กรไอทีที่มีประสิทธิภาพสูงได้ปรับใช้โค้ดโปรแกรมบ่อยกว่าบริษัทอื่น ๆ มากถึง 30 เท่า โดยที่มีความล้มเหลวไม่ถึง 50% และนี่เป็นครั้งแรกที่แสดงให้เห็นว่าไอทีเป็นสิ่งที่มีความสำคัญอย่างแท้จริงต่อธุรกิจ: บริษัทที่มีประสิทธิภาพด้านไอทีระดับสูงสามารถทำผลกำไร ได้รับส่วนแบ่งตลาด และบรรลุเป้าหมายด้านการผลิตได้มากกว่าเดิมถึงสองเท่า”

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

 

บทความโดย มร. ฮิวเบิร์ท โยชิดะ ประธานเจ้าหน้าที่ระดับสูงฝ่ายเทคโนโลยี (CTO) บริษัท ฮิตาชิ ดาต้า ซิสเต็มส์ คอร์ปอเรชั่น หรือ เอชดีเอส

hitachi-data-system-hubert-yoshida

from:https://www.techtalkthai.com/hitachi-data-system-agile-devops-hcp-article/