จาก slide เกี่ยวกับ DevOps ของคุณ Matthew Skelton
โดยรวมทการอธิบายให้เราเข้าใจแนวคิด DevOps
และรูปแบบของทีม DevOps ต้องเป็นอย่างไร เพื่อให้เข้ากับแต่ละองค์กร
เริ่มกันเลยดีกว่า
แนวคิดเรื่อง DevOps
มันคือ methodology ใหม่สำหรับการสร้างทีมพัฒนา software
เป็นแนวคิดที่ต้องการเพิ่มคุณภาพของทีมพัฒนาในรูปแบบ cross-functional team
ซึ่งมีพื้นฐานมากจาก Agile นั่นเอง
แต่ทำการเพิ่มคุณภาพของทีมให้สูงขึ้น
ด้วยการให้คนจากฝั่ง operation และ development มาอยู่ในทีมเดียวกันเลย
ดังนั้นในทีมจะประกอบไปด้วยคนที่มีความสามารถต่าง ๆ เหล่านี้
เพื่อให้การพัฒนา software เป็นไปได้อย่างดี และราบรื่นที่สุด
- Programming
- Integration
- Testing
- Installation on production
- Maintain system เช่น Operating System เป็นต้น
DevOps มีเป้าหมายหลักดังนี้
- Communication การพูดคุยมันจะง่ายขึ้น เมื่อคนที่เกี่ยวข้องกับการพัฒนา software อยู่ในทีมเดียวกัน
- Collaboration เมื่อทำงานด้วยกันแล้ว โยนปัญหาระหว่าง developement และ operation team ทิ้งไปได้เลย ที่สำคัญทีมจะมีเป้าหมายเดียวกัน ใช้เครื่องมือเดียวกัน และ maintain ระบบร่วมกัน
- Integration เมื่อทำงานร่วมกันแล้ว การ integration ส่วนงานต่าง ๆ มันก็ง่ายขึ้น พบปัญหาได้เร็ว แก้ไขได้รวดเร็ว
- Automation ทีมจะสร้างระบบการทำแบบอัตโนมัติขึ้นมา เพื่อเพิ่มประสิทธิภาพของการทำงาน เช่น testing, deployment, monitoring, release, logging, report และ การวัดค่าต่าง ๆ ของการทำงาน
- Measurement ทำการวัดค่าการทำงานอยู่อย่างเสมอ เช่น จำนวนครั้งของการ release, จำนวนของ defect, เวลาในการแก้ไขปัญหา, ค่าใช้จ่าย และ รายได้ในแต่ละ release และเรื่อง perforamance ของระบบ เป็นต้น
ดังนั้น DevOps จึงมีวิธีการสร้างได้หลายหลายวิธี
แต่ขอให้อยู่บนพื้นฐาน 5 ข้อข้างต้นเป็นพอ
รวมทั้งให้มันเหมาะสมกับองค์กรอีกด้วย
ทำการสรุปรูปแบบของ DevOps ทีม ไว้ 4 รูปแบบดังนี้
1. ทีม DevOps แบบ Fully Embedded หรือแบบปกติ
สมาชิกในทีมประกอบไปด้วย development และ operation
และมีประสบการณ์ในการทำงานทั้งสองฝั่ง
โดยทุกคนในทีมจะมีเป้าหมายในการทำงานเดียวกัน
และทำงานร่วมกันเพื่อสร้าง product ออกมา
แสดงดังรูป
2. แยกเป็น 2 ทีมตามโครงสร้างขององค์กร แต่ทำงานร่วมกันได้ดี (Smooth Collaboration)
แม้ว่าจะแยกเป็น 2 ทีม แต่ทั้งสองทีมก็ทำงานร่วมกันอย่างใกล้ชิด
เพื่อให้เป้าหมายที่ตั้งไว้สำเร็จ
โดยที่บางส่วนของ Operation team มานั่งอยู่กับ Development team
เพื่อช่วยกันทำงาน แบ่งปันความรู้ และ เครื่องมือต่าง ๆ
ในรูปแบบนี้ต้องมีการทำงานร่วมกันที่ดี มีการสื่อสารที่ดี
รวมทั้งความสัมพันธ์ของคนระหว่างทีมต้องดีด้วย
แสดงดังรูป
3. Infrastructure-as-a-Service (IaaS)
ตัวอย่างขององค์กรที่ใช้รูปแบบการทำงานนี้ คือ
มี Datacenter และ server อยู่คนละที่กับที่ทำงาน
โดย Operation team จะมีพวก standard infrastructure และ service catalogue
ส่วน Development team ก็จะมีคนที่อยู่ในกลุ่ม DevOps
เพื่อมาจัดการสิ่งต่าง ๆ ตามที่ทีมพัฒนาต้องการ
และอยู่ในของเขตของ operation ด้วย
แสดงดังรูป
4. DevOps-as-a-Service
จะเป็นสะพานเชื่อมใจระหว่าง Development และ Operation team นั่นเอง
ดังนั้นคนในฝั่ง DevOps ต้องมีความสามารถเรื่องการสื่อสาร และ การทำงานร่วมกับทีมต่าง ๆ ได้ดีอีกด้วย
และต้องมีความรู้ความเข้าใจทั้งสองฝั่งอีกด้วย
แสดงดังรูป
มาถึงตรงนี้น่าจะพอทำให้เข้าใจเกี่ยวกับ DevOps ได้บ้างนะครับ
Reference Websites
http://continuousdev.com/2015/08/devops-team-topologies/
https://blog.skeltonthatcher.com/blog/bridge-the-business-devops-gap-with-agile-practices/
http://www.infoq.com/presentations/cd-tools-conway-law