Screen Shot 2558-12-24 at 9.38.21 AM
การนำเอาแนวคิด DevOps เข้ามาประยุกต์ใช้ในองค์กรนั้น
มันอาจจะทำให้หลายที่สับสน และ ไม่ได้ผลตามที่คาดหวังไว้

เนื่องจากแต่ละองค์กรล้วนแตกต่างกัน
ไม่ว่าจะเป็นเรื่องของโครงสร้าง
ไม่ว่าจะเป็นเรื่องของวัฒนธรรม
ไม่ว่าจะเป็นเรื่องของคน
ไม่ว่าจะเป็นเรื่องของแนวปฏิบัติต่าง ๆ
ตลอดจนเครื่องมืออีกด้วย

ดังนั้นทาง VersionOne จึงได้ทำการสรุปวิธีการไว้ในบทความเรื่อง
7 Ways to Get Started with DevOps Today
มาดูว่าได้แนะนำอย่างไรบ้าง ?

1. Invite Your Operations Team Into Your Development Process

ให้เชิญ Operation team เข้ามาอยู่ในกระบวนการพัฒนา software ด้วย
ให้ทำการเปลี่ยนแปลงแบบเล็ก ๆ น้อย ๆ

ตัวอย่างเช่น
ในการประชุมทุก ๆ เช้าหรือ Standup meeting ก็ให้เชิญคนทาง Operation team เข้ามาด้วย

ให้คนจาก Development team ไปนั่งทำงานกับ Operation team
เมื่อมีการพูดคุย หรือ ทำการ deploy ระบบงาน

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

2. Visualize the Work Together

ให้เพิ่มขั้นตอนการทำงานของ Operation team และ Development team เข้าด้วยกัน
เช่นถ้า Development team มี board การทำงาน
ก็ให้เพิ่มขั้นตอนการทำงานของ Operation team เข้าไปด้วย
เช่น Waiting to deployment และ Deployed เป็นต้น

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

Code ที่อยู่ใน repository โดยปราศจาคการ deploy
มันคือสิ่งที่ไร้ค่า หรือ waste ใช่หรือเปล่า ?

3. Automate Your Test/Build Process

ทำการปรับเปลี่ยนวิธีการพัฒนาจาก maunal ไปเป็นแบบ automated
แต่ก่อนอื่นคุณต้องรู้ และ เข้าใจการทำงานแบบ manual ก่อน
เช่น

  • ทำการดึง code ล่าสุดจาก repository ใน Version Control System
  • ทำการ compile code
  • ทำการ run unit test
  • ทำการ package เพื่อให้พร้อมสำหรับการ deploy
  • ทำการ deploy

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

4. Create a Deployment Plan

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

  • ทำการ deploy ระบบช่วงดึก ๆ หรือ ช่วงวันหยุดหรือไม่ ?
  • มักจะเจอปัญหาที่ไม่คาดฝันในการ deploy ระบบงานเสมอ และจะพยายามแก้ไขให้ระบบทำงานได้ไปก่อนหรือไม่ ?

ซึ่งเชื่อได้เลยว่า เจอกันทุกทีม ทุกองค์กร ทุกระบบ
เนื่องจากระบบมันโตขึ้นทุกวัน
เราไม่มีทางรู้ว่าระบบใช้ library อะไรบ้าง ?
เราไม่มีทางรู้ว่ามีการเปลี่ยนแปลง configuration อะไรบ้าง ?
ดังนั้น ถ้าต้องการ deploy ระบบงานเหล่านี้ จะทำอย่างไรล่ะ ?

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

5. Identify Fragile Systems

จากแผนการ deploy ในข้อ 4 นั้น
ให้คุณลองกลับมาดูสิว่า มีระบบ หรือ ขั้นตอนไหนในแผน
ที่อาจจะก่อให้เกิดปัญหาได้บ้าง ?

ซึ่งเชื่อเถอะว่าจะต้องมีอย่างน้อยหนึ่งระบบที่ก่อให้เกิดปัญหา
หรือบางครั้งอาจจะเกิดจาก server เก่า ๆ
ที่ทำการ configuration ไม่ถูกต้อง
แต่ว่าสามารถทำงานได้อย่างถูกต้อง
และอาจจะทำงานผิดพลาดเมื่อแก้ไขส่วนอื่น ๆ !!

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

6. Smooth Out Wait States

จากข้อ 5 คือ การหาระบบ หรือ ขั้นตอนที่มันพัง หรือ ผิดพลาดได้ง่ายไปแล้ว
ซึ่งเป็น pain point อย่างมากของการ deploy ระบบ

ต่อมาคือ การหาขั้นตอน หรือ ระบบ ที่จำเป็นต้องรอเป็นเวลานาน ๆ
หรืออาจจะต้องรอให้คนเข้ามามีส่วนร่วม เช่นการ approve
ซึ่งมันเปลืองเวลาโดยใช่เหตุ
เอาเวลาที่รอไปทำอย่างอื่นดีกว่าไหม !!

ดังนั้นนำปัญหาเหล่านี้มาพูดคุยกัน
ทั้ง Development team และ Operation team
เพื่อหาทางแก้ไข ปรับปรุง ให้เวลาในการรอลดน้อยลงไป

7. Link Your Work to Your Value

ที่ผ่านมาทั้ง 6 ข้อเป็นเรื่องของ teachnical ทั้งหมดเลย

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

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

โดยทั้ง 7 ข้อคือการเปลี่ยนแปลงก้าวเล็ก ๆ

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

Tags: