สรุป DevOps is DevꝊᵽꞩ by Chai Feng วันแรก
หมายเหตุ* ผมเติมสีใส่ไข่นอกจาก Chai Feng ได้บอกไว้
ในวงการพัฒนาซอฟต์แวร์ เกิดมาก็มีแต่ developer นี่แหละ แล้วเขาก็สร้าง QA มาตรวจงาน (ผมเกิดไม่ทัน แต่เดาว่า) สิ่งที่ developer สร้างไว้อาจจะมีประวัติไม่ดี เลยต้องเอาคนมาตรวจ
ที่นี่ มันก็เกิดการ ping-pong กันเกิดขึ้น dev ไป test ไม่ผ่าน กลับมา dev ใหม่ ซึ่งใช้เวลาเยอะมาก เลยจำมารวมกันซะเลย นั่งทำงานไปพร้อม ๆ กันนี่แหละ รับ requirements ไปพร้อม ๆ กันนี่แหละ
พอรวมกันแล้วเลยไม่เหลือคำว่า QA เหลือแต่ Dev team เพราะมันก็คือ Dev คนเดิมนี่แหละ แต่มีความสามารถในการเขียน unit test, integration test แบบ automate เพิ่มขึ้น ถ้ามี QA นั่งอยู่ในทีมก็ทำงานรวมกัน ให้งานมันจบในรอบ (iteration) ไปไม่ใช่ dev สัปดาห์นี้ เทสสัปดาห์หน้าเป็น mini waterfall
อนาคตของ Ops ก็เหมือนกัน ต้องมารวมกับ Dev เข้าซักวัน
ถามว่า Ops เกิดมาได้ยังไง (ขอเดาอีกรอบ คงจะเป็น) เพราะว่าสมัยก่อน ยังไม่สามารถทำ zero downtime หรือ continuous integration/continuous delivery (CI/CD) ได้แบบทุกวันนี้ การจะขึ้น software ใน server ต้องทำตอนกลางคืน ในเวลาที่คนใช้งานน้อยที่สุด ถามว่า developer จะอยู่ทำได้มั้ย ก็คงยาก เลยต้องฝากชีวิตไว้กับ operations team ขึ้นงานให้ในเวลากลางคืน
ถามว่าตอนนี้จำเป็นมั้ยในการขึ้นงานกลางคืน ตอบเลยว่าไม่จำเป็น หลาย ๆ ที่เริ่มจะขึ้นงานตอนกลางวันในเวลาทำงานกันแล้ว เพราะถ้าพังจะได้มีคน investigate และแก้ไขได้
แถมยังมี blue-green deployment มาช่วยอีก เพราะฉนั้นการขึ้นงานกลางวันในเวลาที่มีคนใช้อยู่ในสมัยนี้ไม่ใช่เรื่องแปลก
Chai Feng ก็เล่าเทียบกับสมัยก่อนที่มีสมัยก่อนจะมาเป็นคอมพิวเตอร์ ก็จะมีของที่ทำได้แค่กับสิ่งที่มันเกิดมาเพื่อเป็นเท่านั้น เช่นเครื่องเล่นเพลง เครื่องคิดเลข เครื่องเกมคอนโซล อุปกรณ์โทรศัพท์ คอมที่ใช้เล่นอินเตอร์เน็ต ทุกวันนี้ โทรศัพท์เครื่องเดียว หรือคอมพิวเตอร์เครื่องเดียวก็ทำได้ทุกอย่างเหมือนกับ Dev -> QA + Dev -> Dev -> Dev + Ops อนาคตก็จะเหลือแต่ Dev อย่างเดียว หรืออาจจะมีเรียก Full Stack Developer, Cross-Functional team แต่สุดท้ายในอนาคตก็คงรียกแค่ว่า “Dev”
จบตรงนี้บอกได้เลย ต้องปรับตัวทั้ง Dev และ Ops เพื่อให้ได้ Customer needed
Chai Feng บอกว่า “Customer need running system not code” แล้วเราจะทำยังไงได้บ้าง ? ให้ได้ในสิ่งที่ลูกค้าต้องการ ก็เอา CI/CD นี่แหละมาช่วย เขาเครมว่าเขาเคยทำให้การ Deploy จาก 5 ชั่วโมงเหลือ 30 นาที แต่ปัจจุบันนี้เหลือแค่ 5 นาทีเท่านั้น :)
Demo
แล้ว Chai Feng ก็สอนการใช้ short keys บน bash << จิ้มเข้าไปดูได้เคยเขียนไว้แล้ว แล้วเขาก็สอนใช้ vagrant และ tmux ง่าย ๆ ซึ่งตรงผมสติหลุดไปแล้ว 555
แล้วก็มีโปรแกรมแนะนำสำหรับผู้ที่ต้องสอนคนอื่นเป็นประจำคือ KeyCastr << จิ้มเพื่ออ่านต่อ
ได้เวลา Workshop
หลังจากนั้น Chai Feng ให้ทำ workshop โดยความต้องการคือ running system ซึ่งเราจะได้มาแต่ code app ที่เป็น Java ให้ build ผ่าน gradle ต้องการ tomcat มารันต้องการ mysql หรือ mariadb โดยมี database name, username, และ password ตามที่กำหนด โดยให้ทำงานได้บน script เดียว T^T
พอทำกันแล้วก็มา refactor ตัว shell script นี่เราสร้างขึ้นกันมา พร้อมกับสอนส่วนหนึ่งของการเขียน shell script
และโชว์ use case ให้ดูเช่น bash script, Jenkinfile, Dockerfile
แล้วก็มาถึงเวลา recap
ว่าตกลงแล้ว ถ้าเทียบกับ Java developer คนนึง กับ operation คนนึงเหมือนกันหรือต่างกันตรงไหน
ขออภัย ตรงนี้จำได้ไม่หมด ถ้าจำได้เดี๋ยวจะมาแก้ไขให้นะครับ
แล้ว Chai Feng ก็แถมการเขียน shell script ต่ออีกเย็นค่ำกันเลยทีเดียว จบวัน ก็มีแยกย้ายกลับบ้าน บ้างก็ไปวิ่ง บางคนก็ไปรอคนวิ่งที่ร้านเนื้อย่าง ในร้านเนื้อย่างก็มีบทสนทนามากมายเช่น Golang, ReactNative ในไทยและในจีน
ราตรีสวัสดิ์ครับ