จากการแบ่งปันเรื่อง Microservices design ที่ Skooldio มาบ้าง
คำถามที่น่าสนใจคือ ในทีม หรือ บริษัทนั้น มี software อะไรบ้าง
หรือถามลงไปในรายละเอียดเช่น

  • มี service อะไรบ้าง
  • แต่ละ service มีใครเป็นเจ้าของ รายละเอียดเช่น API spec เป็นอย่างไร มี relation กับส่วนใดบ้าง

ส่วนอื่น ๆ ก็เช่นกันทั้งระบบงานต่าง ๆ library ที่มี และ data pipeline ต่างๆ
มีรวมไว้ตรงกลาง เพื่อให้เข้าถึง หรือ ใช้งานง่าย ๆ
ไม่ต้องไปถามคนโน้นที คนนั้นที !!
อยากให้เป็น centralize system ได้ไหม
หนึ่งในเครื่องมือที่ใช้ในการจัดการสิ่งเหล่านี้ก็คือ Backstage นั่นเอง

แนวคิดง่าย ๆ ของ Backstage คือ

ทำการสร้าง catalog ขึ้นมาด้วยรูปแบบของไฟล์ YAML
ซึ่งจัดเก็บไว้กับ code ของเราใน version control ไปเลย
จากนั้นทำการสร้าง หรือ register catalog ต่าง ๆ ที่สร้างขึ้นมาไว้ใน Backstage ต่อไป
แสดงดังรูป

โดยใน software catalog นั้น ประกอบไปด้วย entity หลายแบบที่เชื่อมต่อกัน เช่น

  • Domain
  • System
  • API
  • Component
  • Resource

แสดงดังรูป

เรื่องของ Technical Document ก็มีให้เขียนเช่นกัน

เพื่อเป็นศูนย์กลางของความรู้ในแต่ละ entity อีกด้วย
ซึ่งน่าจะช่วยให้ทีมรู้และเข้าใจการทำงานของระบบงานอีกด้วย
แน่นอนว่าก็เก็บไว้ใน version control ที่เดียวกับ code
น่าจะช่วยให้เปลี่ยนไปตามความจริงไหมนะ !!
สามารถเขียนในรูปแบบ markdown ของ backstage
แสดงนำมาแสดงในรูปแบบของ HTML ต่อไป

ยังไม่พอนะครับ ถ้าเรามีระบบที่ deploy บน Kubernetes cluster แล้ว
ทาง Backstage ก็มี Kubernetes plugin ให้ใช้งาน
และยังมี integration plugins ให้อีกเพียบ

สุดท้ายจะสามารถสร้าง Backstage Software Template ได้อีกด้วย
เพื่อลดการทำซ้ำลงไป

ลองใช้งานดูครับ
น่าจะช่วยเรื่องของการทำงานของทีมต่าง ๆ ได้ง่ายขึ้น

Backstage ได้เตรียมตัวอย่างของไฟล์ YAML ของ entity ต่าง ๆ ไว้ให้ลองศึกษากัน

  • Example
  • ใครยังมองถาพไม่ออก ลองดู demo ได้ครับ

ใครสนใจลองติดตั้ง และ start server บนเครื่องเราก่อนได้ Let’s start

$npx @backstage/create-app@latest