การนำเอาแนวคิด 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
4. Create a Deployment Plan
จาก deployment plan ลองตั้งคำถามเหล่านี้ดูบ้าง อาจจะทำให้เห็นจุดบอด หรือ ข้อเสีย เพื่อที่จะทำการปรับปรุงต่อไป เช่น- ทำการ deploy ระบบช่วงดึก ๆ หรือ ช่วงวันหยุดหรือไม่ ?
- มักจะเจอปัญหาที่ไม่คาดฝันในการ 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 อย่างไร ? เพื่อส่งมอบสิ่งที่คุณพัฒนาไปยังผู้ใช้งาน ให้ง่ายกว่า ให้เร็วกว่า ให้ปลอดภัยกว่า