เมื่อ Technology Radar Volume 21 จากบริษัท ThoughtWorks ออกมา
ก็มีทั้งเทคนิค เครื่องมือและเทคโนโลยีต่าง ๆ ที่น่าสนใจออกมา
ดังนั้นเรามาดูกันว่าในครั้งนี้ มีอะไรที่น่าสนใจบ้าง ?
แยกออกเป็นหัวข้อหลักได้ดังนี้
- การใช้ function ต่าง ๆ จาก Cloud provider เยอะ ก็มีทั้งข้อดีและข้อเสีย จากครั้งที่ผ่านมาให้ระวังเรื่อง vendor lock-in
- เรื่องของกระบวนการส่งมอบ software (CI/CD) ทำงานแบบอัตโนมัติ ดังนั้นเรื่องของการป้องกันกระบวนการนี้จึงมีความสำคัญ ทั้ง security, dependency management และปรับการทำงานที่สำคัญ ๆ ให้เป็นแบบอัตโนมัติ
- ว่าด้วยเรื่องของ Machine Learning เราต้องเข้าใจการทำงาน ความเหมาะสมและข้อจำกัดต่าง ๆ
- Software development เหมือนกันทีมกีฬา โดยที่เรื่องของ 10x engineers นั้นขอให้เลิกใช้หรือใช้อย่างระมัดระวัง แต่ให้เน้นไปที่ 10x teams มากกว่า นั่นคือการทำงานแบบ Cross functional
มาดูในเรื่องของความปลอดภัยและการป้องกันกระบวนการทำงาน
พบว่าในส่วนของเทคนิคนั้นมีเพียบเลย
ยกตัวอย่างเช่น
- Container security scanning ซึ่งทำงานอยู่ใน pipeline ของ CI/CD เลย
- Run cost as architecture fitness function (เป็นคำมาจาก Evolutionary architecture) เป็นขั้นตอนที่ช่วยทำให้รรู้ว่า cost ที่ใช้ไปมันคุ้มค่าหรือไม่ เนื่องจากการเปลี่ยนแปลงมันเกิดขึ้นได้ตลอดเวลา
- Dependency drift fitness function ทำการตรวจสอบและ tracking dependency ต่าง ๆ ที่ใช้งานกัน ว่าต้องทำการเปลี่ยนแปลงหรือไม่ ? เช่นมันเก่าแล้ว หรือ เป็นส่วนที่ส่งมอบล่าช้า หรือ มีปัญหาในการทำงาน ยกตัวอย่างเรื่องมือเช่น Dependabot เป็นต้น
- Security policy as code นั่นคือการกำหนดนโยบายเรื่องความปลอดภัยด้วย code เลย เหมือนกับ pipeline as a code และ infrastructure as a code ทำให้เราสามารถเก็บไว้ใน version control, ทำการตรวจสอบได้อย่างอัตโนมัติ เมื่อทำการ deploy หรือ monitoring เป็นต้น ยกตัวอย่างเช่น Open Policy Agent (OPA) และ Istio เป็นต้น
- Sidecars for endpoint security ก็มาเช่นกัน ช่วยทำให้เราสามารถจัดการ component/service ได้ง่ายขึ้น
มาดูเครื่องมือที่น่าสนใจฝั่งการพัฒนาระบบงานบ้าง
มีหลายตัวแจ่มมาก ๆ เช่น
- Commitizen ช่วยเรื่องของการ commit ด้วย git
- Detekt คือ Static code analysis สำหรับภาษา Kotlin
- KotlinTest เป็นเครื่องมือสำหรับทดสอบระบบที่พัฒนาด้วยภาษา Kotlin ซึ่งสามารถทำ properties-based testing ได้ด้วย
- Jib สำหรับการสร้าง Docker image ของ Java application
- React styleguidist ใช้สำหรับเป็น development environment ของการสร้าง react component นั่นเอง ใช้ง่ายดี มีประโยชน์มาก ๆ
- Figma สายออกแบบไม่พลาดแน่นอน เพราะว่าออกแบบมาให้ทำงานร่วมกันได้ง่ายและสะดวกมากยิ่งขึ้น หลาย ๆ คนน่าจะย้ายมาใช้กันแล้ว ยิ่งสาย DesignOps ไม่น่าพลาด
- Docker notary สำหรับการ signed Docker Image ที่สร้างด้วย private key และการ hash ทำให้เราสามารถตรวจสอบ Docker image ได้เลยว่ามันสิ่งที่เราสร้างขึ้นมาหรือไม่ ?
- ส่วน Enzyme นั้น ที่ใช้ทดสอบระบบงานที่พัฒนาด้วย React แนะนำให้ไปใช้งาน React Testing Library แทนเลย เนื่องจาก Enzyme ไม่ค่อยถูก maintain และ update แล้ว
ส่วนเรื่องอื่น ๆ ลองอื่นเพิ่มเติมในเอกสารตัวเต็ม ๆ ได้เลยครับ
มีอีกหลายเรื่องที่น่าสนใจ