จากงาน XConf ที่ผ่านมาเห็นมีหนังสือ Technology Radar 20 ภาษาไทยแจกด้วย
ดังนั้นลองมาทำการสรุปหน่อยว่า
ในครั้งนี้มีอะไรเปที่น่าสนใจบ้าง 
โดยแบ่งเป็น 4 หัวข้อดังนี้

  1. Techniques
  2. Tools
  3. Platforms
  4. Languages and Frameworks

มาเริ่มกันเลย

รูปแบบของ Technology Radar 20 นั้นประกอบไปด้วย 4 เรื่องคือ

  1. การจัดการข้อมูลที่เกิดขึ้นอย่างรวดเร็วและมีจำนวนสูงมาก ๆ ดังนั้นต้องวางแผนในการจัดการข้อมูลให้ดีและเหมาะสม
  2. เรื่องของ Terraform ซึ่งมีการเติบโตและได้รับการยอมรับหรือนำมาใช้งานสูงมาก ๆ ตาม Docker และ Kubernetes รวมทั้งมีเครื่องมือที่เกี่ยวข้องให้ใช้มากมาย
  3. ภาษา Kotlin ได้รับความนิยมสูง รวมทั้ง library และเครื่องมือที่ครบครัน
  4. อย่านำ Business logic เข้าไปอยู่ใน XXX as a code 

มาดูในกลุ่มของ Technique กันหน่อย
ว่าแนะนำอะไรมาให้ใช้งานบ้าง

เรื่องที่ 1 คือตัวชี้วัด 4 เรื่องจาก State of DevOps 

โดยเน้นการนำข้อมูลและสถิติมาใช้ในการจัดตัดสินใจขององค์กร ประกอบไปด้วย

  1. Lead time
  2. Deployment frequency
  3. Mean Time to Restore (MTTR)
  4. 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 มาอ่านเพิ่มเติมได้