จากงาน XConf ที่ผ่านมาเห็นมีหนังสือ Technology Radar 20 ภาษาไทยแจกด้วย
ดังนั้นลองมาทำการสรุปหน่อยว่า
ในครั้งนี้มีอะไรเปที่น่าสนใจบ้าง
โดยแบ่งเป็น 4 หัวข้อดังนี้
- Techniques
- Tools
- Platforms
- Languages and Frameworks
มาเริ่มกันเลย
รูปแบบของ Technology Radar 20 นั้นประกอบไปด้วย 4 เรื่องคือ
- การจัดการข้อมูลที่เกิดขึ้นอย่างรวดเร็วและมีจำนวนสูงมาก ๆ ดังนั้นต้องวางแผนในการจัดการข้อมูลให้ดีและเหมาะสม
- เรื่องของ Terraform ซึ่งมีการเติบโตและได้รับการยอมรับหรือนำมาใช้งานสูงมาก ๆ ตาม Docker และ Kubernetes รวมทั้งมีเครื่องมือที่เกี่ยวข้องให้ใช้มากมาย
- ภาษา Kotlin ได้รับความนิยมสูง รวมทั้ง library และเครื่องมือที่ครบครัน
- อย่านำ Business logic เข้าไปอยู่ใน XXX as a code
มาดูในกลุ่มของ Technique กันหน่อย
ว่าแนะนำอะไรมาให้ใช้งานบ้าง
เรื่องที่ 1 คือตัวชี้วัด 4 เรื่องจาก State of DevOps
โดยเน้นการนำข้อมูลและสถิติมาใช้ในการจัดตัดสินใจขององค์กร ประกอบไปด้วย
- Lead time
- Deployment frequency
- Mean Time to Restore (MTTR)
- Change fail percentage
เป็นสิ่งที่เรียบง่ายมาก ๆ แต่ทรงประสิทธิภาพมากเช่นกัน
ซึ่งช่วยให้องค์กรและทีมมีเป้าหมายที่ชัดเจน
ทำให้สามารถปรับปรุงให้ดีขึ้นอย่างต่อเนื่อง
สามารถเริ่มต้นด้วยการสร้าง pipeline ของการพัฒนาและส่งมอบระบบงานขึ้นมา
เรื่องที่ 2 คือการจัด format ของ code แบบอัตโนมัติ
เป็นเรื่องที่น่าเบื่อหน่ายมาก ๆ ที่แต่ละทีมต้องมานั่งถกเถียงกันว่า
ทีมจะต้องเขียน code ในรูปแบบไหน
แต่ละคนก็มีแนวทางและความนิยมต่างกันไป
เป็นปัญหาที่เกิดขึ้นอย่างต่อเนื่อง
ดังนั้นจะดีกว่าไหมถ้ามีเครื่องมือมาช่วยจัดการ
ถึงแม้จะไม่เห็นด้วยทั้งหมด
ก็สามารถ custom ได้นะ
แต่น่าจะมีประโยชน์มากขึ้น ลดการถกเถียงลงไป
ยกตัวอย่างเช่น
- Prettier สำหรับ JavaScript
- Black สำหรับ Python
- หรือจะ build-in มาใช้ตัวภาษาเลยเช่น Go และ Elixir เป็นต้น
การจัด format ก็ให้ทำแบบอัตโนมัติไปเลย
ยกตัวอย่างเช่น การใส่ไว้ใน git hook ตอนที่กำลัง commit (pre-commit) เป็นต้น
เรื่องที่ 3 คือ Secret as a Service
การเก็บข้อมูลที่เป็นความลับต่าง ๆ
ทั้งข้อมูลของผู้ใช้งาน, infrastructure และ เครื่องมือต่าง ๆ
ยกตัวอย่างเช่น password, credit card, key เข้าระบบ เป็นต้น
จำเป็นต้องมีที่จัดเก็บที่ปลอดภัย
รวมทั้งการเข้าถึง service ก็จำเป็นต้องมี key ในการเข้าถึง
ดังนั้นเรื่องของ key management ก็สำคัญ
ถ้าหลุดไป งานเข้าแน่นอน
อีกเรื่องของ communication ระหว่าง service หรือ ระบบงาน
จำเป็นต้องมีการเชื่อมต่อที่ปลอดภัย และ ข้อมูลก็ต้องเข้ารหัสเช่นกัน
การกำหนดค่าและเข้าถึงข้อมูลที่เป็นความลับมีหลายรูปแบบ
แน่นอนว่า
เราจะไม่ทำการจัดการข้อมูลเหล่านี้ไว้ใน source code management อยู่แล้ว
เพราะว่ามันไม่ปลอดภัยเลย
ดังนั้นจึงแนะนำให้แยกส่วนของการจัดการข้อมูลที่เป็นความลับออกไป
อาจจะใช้เครื่องมือเช่น get-secrets และ tailsman เป็นต้น
เพื่อหลีกเลี่ยงการจัดเก็บใน source control management
แนะนำให้ใช้ Secrets as a Service สามารถใช้งานผ่าน HTTPS
มี endpoint ที่ปลอดภัย เพราะว่ามีระบบ access control ที่ดีและน่าเชื่อถือ
ยกตัวอย่างเช่น Vault และ AWS Key Management Service (KMS)
เรื่องที่ 4 Micro Frontend
ปกติเรามักจะคุยกันแต่เรื่องของ Microservices
ซึ่งจะเน้นไปที่ส่วนของ backend เท่านั้น
แต่เมื่อมาดูในส่วนของ frontend จะพบว่า
ยังคงมีรูปแบบเป็น Monolith frontend
ทำให้ส่วนของ frontend นั้นมีขนาดที่ใหญ่มาก ๆ
แน่นอนว่า ยากต่อการพัฒนาและดูแลรักษา
อาการเหมือนกับฝั่ง backend เลย
ดังนั้นจึงพยายามแก้ไขปัญหาเหล่านี้ลงไป
ดังนั้นเรื่องของ Micro frontend จึงเหมาะสมต่อการนำมาปรับใช้งานอย่างมาก
โดยในส่วนนี้จะพูดถึง Web component standard มากขึ้น
เรื่องที่ 5 Polyglot programming
เทคนิคนี้แนะนำเกี่ยวกับการเลือกภาษาโปรแกรมให้เหมาะสมกับงานที่ต่างกัน
เพื่อให้ได้ productivity ที่สูงขึ้น
แต่ปัญหาที่ต้องระวังคือ
การใช้งานภาษาโปรแกรมที่มากเกินไป
อาจจะก่อให้เกิดปัญหามากกว่าการแก้ปัญหาก็เป็นไปได้
ส่วนเทคนิคที่น่าจะลองนำมาใช้งานเพื่อดูผล
จะเน้นไปที่ security โลกของ DevOps, Container มาก ๆ เช่น
- การ scan เรื่อง security ของ Container
- การ scan เรื่อง security ของ Infrastructure as a Code
- การจัดการ Service mesh
สามารถทำการ Download มาอ่านเพิ่มเติมได้