วันศุกร์ที่ 18 กันยายน พ.ศ. 2558

DevOps


DevOps

Development and Operations ที่จะทำให้กระบวนพัฒนา Software ทำงานได้รวดเร็ว คล่องตัวขึ้น
ทำไมถึงรวดเร็วได้ละ ทำไมถึงคล่องตัวละ แล้ว DevOps นี้คืออะไรกันหน่อ

DevOps คือการมีเครื่องมือต่างๆ ที่จะเข้ามาช่วยให้การทำงานที่ต้องทำซ้ำซ้อนลดลงไป เช่น

Case 1
การที่เราต้องการ server ตัวนึงเพื่อที่จะทดสอบ software ตัวนึงที่เรากำลังพัฒนามาได้นั้น
มีหลายขั้นตอนมากมาย เช่น ต้องทำเอกสารแจ้งไปยังทีม ITO เพื่อขอ server ตาม spec ที่เราบอก
เมื่อ ITO ได้ข้อมูล spec ไปก็ต้องตรวจสอบว่า มี resource พอหรือไม่ ถ้าพอก็ต้องไปขอ IP จากทีม
Network เมื่อได้ IP มาแล้วก็ deploy server มาให้เราได้

Case 2
การที่เราต้องการให้ config Middleware บน production ได้นั้นเราต้องทำเอกสารส่งไปให้ ITO ทำ
ITO ก็ต้องมานั่ง config ตามเอกสารอีกที มีโอกาส Human Error สูง

อย่างที่เราเห็นนี้ ขั้นตอนมากมาย ข้อมูลส่งต่อหลายต่อ ปัญหา Human Error นั้นก็มีโอกาส 
จะดีกว่าไหมที่เราสร้าง script ต่างๆเหล่านี้ให้อยู่บน tools ที่จะช่วยให้เราแค่กรอกข้อมูลไป
แล้ว ITO ก็ดู monitor ว่ามีพอหรือไม่พอ ถ้าพอก็กด approve ไป ทุกอย่างก็จะ auto install config ให้
เราอย่างที่เราต้องการได้เลย ถ้าผิดก็ผิดที่เรากรอกข้อมูลลงใน tools เองแล้วละ

เราจะพอได้เห็นว่า การจะได้ Server Middleware นั้นจะง่ายขึ้นละ

Software ที่เราพัฒนาละ ถ้าเราพัฒนา feature ออกมาได้บ่อยๆ ทุกๆสัปดาห์ ทุกๆเดือน
แล้วเราต้อง deploy ลง Develop Environment => QC Environment => UAT Environment => Production Environment ตามลำดับแบบนี้บ่อยๆ จะยุ่งยากขนาดได้ ต้องใช้คนเท่าไรกัน
คนทำงานที่ต้องมาทำอะไรที่ซ้ำๆ มันน่าเบื่อไหม จะได้ไปพัฒนาตนเองได้เรื่องอื่นๆไหม
แล้ว Test ที่ต้องมา Regression Test ละ เยอะขนาดไหนกันเชี่ยว

DevOps แก้เรื่องเหล่านี้ได้น่ะ แต่ๆๆๆ คนที่จะมาทำให้เกิดนั้น ต้องเข้าใจ flow การทำงานในแต่ละ
ขั้นตอนโดยละเอียด รู้ว่าจุดไหนของการทำงานต้องการให้นำมาช่วยได้บ้างนี้ก่อนน่ะ
แล้วถึงจะต้องมาทำ script หรือมี tools ที่จะช่วยให้เขียน script น้อยลง ซึ่ง script นี้ก็จะประกอบ
ไปด้วยเรื่องของการใช้ tools มาทำ unit test, automate test flow งานตาม business , deploy ลง
แต่ละ environment เมื่อผ่าน environment นึงละต้องการให้ไปต่อก็ทำให้เกิดแค่ปุ่มกด approve
เพื่อยืนยันว่า software ผ่าน environment นี้ละต้องไป step ต่อไปได้ละ รวดเร็วไหมละ แค่ปุ่มเดียว

DevOps ต้องใช้ทักษะหลายๆอย่าง เพื่อที่จะต้องเขียน script ให้ support ทุกกระบวนการทำงาน
ถึงแม้ว่า เราจะหา Tools DevOps มาก็ตามที ก็มักจะมีจุดที่เราต้องมาทำ script เองอยู่ดีครับ

Script นี้มีภาษา เช่น shell command สำหรับ OS, Middleware, Database เป็นต้น ขึ้นอยู่กับว่าเราจะ
ช่วยให้ขั้นตอนไหน auto ได้  หรือต้องมา manual ได้ง่ายที่สุด

Tools ขอไม่ระบุว่าเป็นอะไรบ้างในที่นี้ก่อนน่ะครับ เพราะมีหลายตัวให้เลือกใช้

สุดท้ายแล้ว script นี้ก็ทำแค่ครั้งแรกครั้งเดียว และก็เอาไปใช้ต่อได้ใน software ถัดๆไป 
เว้นแต่ว่ามีอะไรที่แตกต่างเพิ่มมา

ไม่มีความคิดเห็น:

แสดงความคิดเห็น