dev-ops
จาก 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 มีเป้าหมายหลักดังนี้

  1. Communication การพูดคุยมันจะง่ายขึ้น เมื่อคนที่เกี่ยวข้องกับการพัฒนา software อยู่ในทีมเดียวกัน
  2. Collaboration เมื่อทำงานด้วยกันแล้ว โยนปัญหาระหว่าง developement และ operation team ทิ้งไปได้เลย ที่สำคัญทีมจะมีเป้าหมายเดียวกัน ใช้เครื่องมือเดียวกัน และ maintain ระบบร่วมกัน
  3. Integration เมื่อทำงานร่วมกันแล้ว การ integration ส่วนงานต่าง ๆ มันก็ง่ายขึ้น พบปัญหาได้เร็ว แก้ไขได้รวดเร็ว
  4. Automation ทีมจะสร้างระบบการทำแบบอัตโนมัติขึ้นมา เพื่อเพิ่มประสิทธิภาพของการทำงาน เช่น testing, deployment, monitoring, release, logging, report และ การวัดค่าต่าง ๆ ของการทำงาน
  5. Measurement ทำการวัดค่าการทำงานอยู่อย่างเสมอ เช่น จำนวนครั้งของการ release, จำนวนของ defect, เวลาในการแก้ไขปัญหา, ค่าใช้จ่าย และ รายได้ในแต่ละ release และเรื่อง perforamance ของระบบ เป็นต้น

ดังนั้น DevOps จึงมีวิธีการสร้างได้หลายหลายวิธี
แต่ขอให้อยู่บนพื้นฐาน 5 ข้อข้างต้นเป็นพอ
รวมทั้งให้มันเหมาะสมกับองค์กรอีกด้วย

ทำการสรุปรูปแบบของ DevOps ทีม ไว้ 4 รูปแบบดังนี้

1. ทีม DevOps แบบ Fully Embedded หรือแบบปกติ

สมาชิกในทีมประกอบไปด้วย development และ operation
และมีประสบการณ์ในการทำงานทั้งสองฝั่ง
โดยทุกคนในทีมจะมีเป้าหมายในการทำงานเดียวกัน
และทำงานร่วมกันเพื่อสร้าง product ออกมา

แสดงดังรูป
2

2. แยกเป็น 2 ทีมตามโครงสร้างขององค์กร แต่ทำงานร่วมกันได้ดี (Smooth Collaboration)

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

ในรูปแบบนี้ต้องมีการทำงานร่วมกันที่ดี มีการสื่อสารที่ดี
รวมทั้งความสัมพันธ์ของคนระหว่างทีมต้องดีด้วย

แสดงดังรูป
1

3. Infrastructure-as-a-Service (IaaS)

ตัวอย่างขององค์กรที่ใช้รูปแบบการทำงานนี้ คือ
มี Datacenter และ server อยู่คนละที่กับที่ทำงาน

โดย Operation team จะมีพวก standard infrastructure และ service catalogue
ส่วน Development team ก็จะมีคนที่อยู่ในกลุ่ม DevOps
เพื่อมาจัดการสิ่งต่าง ๆ ตามที่ทีมพัฒนาต้องการ
และอยู่ในของเขตของ operation ด้วย

แสดงดังรูป
3

4. DevOps-as-a-Service

จะเป็นสะพานเชื่อมใจระหว่าง Development และ Operation team นั่นเอง
ดังนั้นคนในฝั่ง DevOps ต้องมีความสามารถเรื่องการสื่อสาร และ การทำงานร่วมกับทีมต่าง ๆ ได้ดีอีกด้วย
และต้องมีความรู้ความเข้าใจทั้งสองฝั่งอีกด้วย

แสดงดังรูป
4

มาถึงตรงนี้น่าจะพอทำให้เข้าใจเกี่ยวกับ 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