วันอาทิตย์ ที่ 18 ตุลาคม 2569

Login
Login

แนวทางประยุกต์ใช้การพัฒนาแอปพลิเคชั่นแบบAgile และ DevOps

ร่วมกับ HCPเพื่อแข่งขันในยุคดิจิทัลทรานฟอร์เมชั่น บริการที่มีความคล่องตัวสูง ด้วยความคาดหวังกับฝ่ายสารสนเทศ หรือ CIO

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

จากการที่ได้พบปะกับลูกค้าในช่วงปี 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 ซึ่งขณะนี้เทคโนโลยี เครื่องมือ ความรู้ต่างๆ มีพร้อมแล้ว ความท้าทายที่สำคัญที่สุดคือการเปลี่ยนแปลงบุคลากรและกระบวนการทำงาน ซึ่งส่วนประกอบที่สำคัญยิ่งสำหรับการเปลี่ยนแปลงในครั้งนี้คือความสามารถในการเป็นผู้นำ

กรุณาติดต่อ:

ฮิตาชิดาต้าซิสเต็มส์ พีทีอี ลิมิเต็ด

เจษฎาพร สุนทราภัย

โทร. 02-126-8039

บริษัทคอร์แอนด์พีคจำกัด

จิราภรณ์ พิศมัย, จิตต์แจ่ม อัศวแก้วมงคล

02-439-4600ต่อ8303

[email protected], [email protected]