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