Browse Category

DevSecOps

DevOps คืออะไร?

ถึงเวลาที่ IT เปลี่ยนแปลง

ก่อนจะเข้าเรื่อง ขอเกริ่นอะไรนิดนึงนะครับ หลายคนอาจจะมีคำถามคล้ายๆผม เมื่อหลายปีก่อน เคยได้ยินคำว่า Cloud, Agile, Sprint, DevOps, DevSecOps, SRE แถมยังมีชื่อตำแหน่งงานใหม่ๆมาเยอะแยะเต็มไปหมด ไม่ว่าจะเป็น Product Owner, Scrum Master, Data Science, UX, UI, Lead Engineer, Full Stack Engineer, Front End Developer etc. ตอนนั้นเคยทำงานร่วมแต่กับ Project Management, SDLC, Waterfall, Project Manager, Project Member ซึ่งตอนแรกที่ทำงานกับทีมงานรูปแบบใหม่ นอกจากทำงานที่รับผิดชอบไปก็พยายามทำความเข้าใจ Outcome ของการทำงาน วิเคราะห์ เทียบเคียงว่ามีความแตกต่างและมีข้อดี-ข้อเสียแตกต่างกันยังไง ระหว่างแบบที่เขาเชื่อกันว่ามันเป็นส่วนหนึ่งของ Digital Transformation พัฒนาคน พัฒนาองค์กร ไปข้างหน้า เน้นว่า “Fail Fast” แบ่งงานเป็นชิ้นๆ ลูกค้าจะได้เห็นของเร็ว วัดผล ไม่ชอบหรือทำมาไม่ใช่ก็เปลี่ยน เปรียบเทียบกับแบบเดิมยึดตามแผน ทำไปตามลำดับแล้วส่งในสิ่งที่ Commit ไว้ ซึ่งหลังจากที่ทำไปสักพักใหญ่ๆ ก็พบว่าแต่ละแบบมีทั้งข้อดีและข้อเสีย แตกต่างกันไป ไม่มีอะไรที่ตายตัว บางงานที่เป็นโครงการขนาดใหญ่ และต้องการ Timeline ชัดเจน อาจจะใช้วิธีการทำงานทั้งสองแบบมาผสมกัน ซึ่งให้ผลดีกว่าการใช้การทำงานรูปแบบเดียวด้วยซ้ำ แต่ผู้บริหารโครงการต้องมีทักษะและเข้าใจการทำงานในการวัดผลและติดตามงานด้วยนะครับ ไม่งั้นก็น่าจะเละพอสมควรครับ

จากที่เกริ่นๆมาข้างต้น เป็น “วิธีการทำงาน” หรือ “Methodology” Methodology แบบใหม่ ที่เพิ่มขึ้นมา แต่ผมไม่ขอลงรายละเอียดในส่วนของ Methodogy ไปมากกว่านี้ เพราะจะไม่ตรงวัตถุประสงค์และหลายๆท่านสามารถหาข้อมูลเพิ่มเติมได้เต็มไปหมดจาก Internet จาก Keyword ประมาณ “Agile Methodology” หรือชื่อตำแหน่งงานต่างๆ ที่ผมร่ายไว้ รับรองว่าออกมาเพียบครับ

Credit ภาพ : https://devops.stackexchange.com/questions/24/what-does-a-devops-transformation-contain

เรื่องของเราจะเริ่มจากนี้ครับ จากภาพด้านบนเราจะเริ่มหลังจากหากเราดูภาพด้านบน จะเป็นภาพรวม กระบวนการพัฒนา Application คือ Plan, Code, Build, Test, Release, Deploy และ Operate ซึ่ง “DevOps” จะเข้ามาช่วยให้การประสานงาน ระหว่างแต่ละ Process ทำได้คล่องตัวขึ้น และ “อัตโนมัติ” มากขึ้น ครับ

จริงๆแล้ว DevOps เป็น ไม่ใช่ Tools แต่เป็น Culture!

หลายคนเคยได้ยิน Jenkin, Kubernetes, Openshift etc. ก็อาจจะเรียกว่า DevOps tools พอติดปากไป คนที่ไม่เคยได้ยินหรือเข้ามาทำงานใหม่ๆหลายคนเลยพาลเข้าใจไปว่า DevOps. มันคือ tools หลายๆ อันที่มันอาจจะต้องใช้ทักษะความเข้าใจเยอะๆ ดูยากๆ เกี่ยวกับ Cloud แต่ความจริงแล้ว มันไม่ใช่ มันคือ Culture หรือวัฒนธรรมการทำงานต่างหากครับ!

หากจะอ้างอิงจาก Wikipedia (https://en.wikipedia.org/wiki/DevOps) ความหมายของ DevOps คือ “การรวมกันของ Development (Dev) + Operation (Ops) เพื่อให้เอางานขึ้น Production ให้เร็วที่สุด รวมถึงส่งมอบงานที่มีคุณภาพให้ได้อย่างต่อเนื่องเป็นระบบ” ซึ่งการจะทำให้ได้ตามเป้าหมายข้างต้นได้ “วัฒนธรรมของทีมงาน” จะต้องจัดการปัญหาหลายๆอย่างให้ได้ ไม่งั้นจะเริ่มต้นไม่ได้เลย เช่น “Dev เขียน Code ตาม Feature”,”Operation ไม่อยากเอาของใหม่ขึ้นเลยตั้งเงื่อนไขอะไรมาเต็มไปหมด”,”ทุกการ Change มันยากไปหมด ต้องส่งไปให้คนที่ไม่รู้เรื่องจริงๆ ช่วยกันกด Approve ไปอีก 10 ขั้น”, “งานทำแบบ Manual ในทุกขั้นตอน”, “ระบบทดสอบมาดีหรือยัง” เป็นต้น

ดูละจะเริ่มยากละ เพราะถ้าตัดกระบวนการข้างบนไป ก็ลูกทุ่งเลย Change กันมั่วไปหมด เป็นความเสี่ยงกับระบบสิ ไม่ว่าเรื่องของคุณภาพของงานที่น่าจะแย่ลง หรือความปลอดภัยของระบบเองก็ตาม คำตอบคือ “ใช่ครับ” หลายอย่างข้างต้นจำเป็นต้องคงอยู่แต่จะต้อง Lean มันลงไป ไม่ทำให้เทอะทะ แต่ปรับแนวคิดและวิธีการทำงาน โดยทำลายกำแพงระหว่าง Developer และ Operation ทุกคน ทุกคนจะต้องร่วมกันทำทุกอย่างให้ Automate และรับ Feedback กลับไปเพื่อปรับปรุงให้ดีขึ้นเรื่อยๆ แล้วมีกระบวนการทดสอบและวัดผลอย่างเป็น Systematic และ Automate ที่สุดที่เป็นไปได้ จากนั้น Release version ที่ปรับปรุงให้ไว รวมถึงสามารถ RollBack ได้อย่างรวดเร็ว ไม่เกิด Downtime กับระบบนาน ซึ่งจากแนวคิดและวิธีการทำงานลักษณะ DevOps นี้ จะเอื้อให้ Agile Methodology, CI(Continues Integration) /CD(Continues Delivery) /CD (Continues Deployment) ทำได้อย่างมีประสิทธิภาพมากขึ้น และจากนั้นจะมาถึง DevOps Tools ต่างๆ เช่น Cloud, Terraform, Ansible, Kubernetes, Openshift, Jenkin etc. จะมามีช่วยให้การทำงานต่างๆเป็นไปอย่างสะดวกขึ้น และส่งผลให้ Product ที่ Deliver ออกมา มีคุณภาพขึ้น กล่าวคือ ทุกการ Change ตรวจสอบได้, ของออกเร็ว, ตรงกับความต้องการของลูกค้า,งานมีคุณภาพมากขึ้นเรื่อยๆ