ทาง StackOverflow เขียนบทความและสรุป Q/A ต่าง ๆ ที่น่าสนใจในทุก ๆ สัปดาห์
โดยในสัปดาห์ที่ผ่านมา
มีบทความที่น่าสนใจเรื่อง DevOps
นั่นก็คือเรื่อง The rise of the DevOps mindset

มีคำที่น่าสนใจคือ DevOps เป็นคำที่หลาย ๆ คนเข้าใจไม่ตรงกัน
แต่ผลการสำรวจในต้นปี 2020 ของ StackOverflow 
บ่งบอกว่ามันมีความสำคัญต่อหลาย ๆ องค์กรอย่างมาก

ในบทความนี้จึงนำมาอธิบายและสรุปให้เข้าใจกัน
มาเริ่มกันเลย

เรื่องแรก What is DevOps and why is it so popular?

คืออะไร และทำไมถึงเป็นที่นิยม ง่าย ๆ คือ
มันเกิดขึ้นจากปัญหาที่สองทีม ประกอบไปด้วย
ทีมเขียน code คือ Development และ
ทีมที่ทำหน้าที่จัดการ infrastructure
ใช้งานเครื่องมือต่าง ๆ ในการ run และดูแล product คือ Operation

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

ความซับซ้อนที่มากมาย
บางครั้งมาจากปัญหาคอขวดในบางส่วนงาน
ก่อให้เกิดปัญหามากมายตามมา
โรคเลื่อนก็เกิดขึ้นบ่อย
ยิ่งเรื่องของคุณภาพยิ่งไม่ต้องพูดถึง ไปวัดกันบน production เลย !!


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

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

  • ปรับปรุงการ deploy ให้บ่อยขึ้น
  • ลดข้อผิดพลาดต่าง ๆ ลง
  • ทันต่อความต้องการของตลาด

มีคำพูดที่น่าสนใจจาก CPO ของ StackOverflow คือ

The right DevOps culture ultimately makes the product you deliver better

เรื่องที่สอง Which problems is DevOps trying to solve?

ปัญหาที่แนวคิด DevOps พยายามที่จะแก้ไข จากหัวใจหลักของแนวคิดนี้ ประกอบไปด้วย

  • Communication
  • Automation
  • Measurement

มาดูสิ่งที่ DevOps พยายามแก้ไขให้ดีขึ้นกัน ประกอบไปด้วย 6 เรื่องดังนี้

  1. From silos to One-team-thinking เรื่องนี้ยากมาก ๆ เพราะว่าบ่อยครั้งเรามักจะมีอีกทีมคือ DevOps ทีม ทำให้ปัญหาไม่หายไป ลด ละ เลิกการแยก แต่ให้มีการคิดและทำงานร่วมกัน เป้าหมายเดียวกัน บางคนมี KPI ควรใช้ร่วมหรือ share กัน
  2. No more ‘hell month’ during releases ถ้าทำตามแนวคิด DevOps แล้วยังคงกลัวการ release ทุกครั้ง พังทุกครั้ง เป็นช่วงเวลาที่เครียดทุกว่า แบบนี้ไม่น่าจะได้นำแนวคิดมาใช้ แต่น่าจะเปลี่ยนแค่ชื่อ
  3. Standardizing tech stacks and lazy paths เรื่องของเทคโนโลยีที่ใช้งานก็น่าสนใจ ควรมีแนวทางที่ชัดเจนว่าจะใช้อะไรบ้าง เพื่อให้ง่านต่อการเรียนรู้และการทำระบบ automation อีกด้วย
  4. From finger pointing to feedback loops แทนที่จะบอกว่าใครผิด ตรงไหนผิด เปลี่ยนมาเป็น feedback loop ที่รวดเร็วดีกว่า feedback ที่ดีที่สุดคือ มาจากลูกค้าหรือผู้ใชงานจริง ๆ
  5. Making friends with failure เรื่องความผิดพลาดกลายเป้นเรื่องปกติ แต่เรารู้ความผิดพลาดได้รวดเร็วเพียงใด เท่านั้นเอง และเรียนรู้ไปกับมัน
  6. DevOps as self-service นี่คือเป้าหมายปลายทางคือ คนใช้งานสามารถใช้ได้เลย

เรื่องที่สามคือ Tools: What are the defining  tools?

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

จาก DevOps Tags Top 30 ใน StackOverflow ประกอบไปด้วย

สามารถสรุปได้ดังนี้

  • การ tracking งาน มี Asana, Monday และ Jira
  • การจัดการ source code มี Git, GitHub, GitLab, BitBucket และ TFS
  • CI/CD มี Jenkins, Team City และ GitHub Actions
  • การวิเคราะห์ Source code มี SonarQube
  • การจัดการพวก Artifact ต่าง ๆ มี Artifactory และ Docker Container Registry
  • Configuration management มี Terraform, Ansible, Puppet และ Chef
  • การจัดการ container มี Docker และ Kubernetes
  • การ monitoring มี Prometheus

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