Category Archives: Architect

C4 Architecture Model

C4 Model เป็นรูปแบบในการใช้ diagram เพื่ออธิบาย software architecture สำหรับสือสารภายในและภายนอกของทีม software development โดยแบ่งเป็นระดับตามจุดประสงค์ของการสื่อสารใน 4 ระดับ

System Context เป็น high-level ของระบบ software system ที่ให้บริการกับ User หรือ system ด้วยกันเอง และแสดงรายเอียดของ system อื่นๆ ที่เกี่ยวข้องด้วย (system dependency) มีการใช้ term อย่างเช่น application, product, service เป็นต้น scope ของ software system สามารถมองได้หลายมุม เช่น ในระดับ ทีม development, code repository หรือ กลุ่มของ application ที่ต้อง deployment ไปด้วยกัน

Container กลุ่มของ application และ data store ที่ประกอบอยู่ใน software system เพื่อให้ระบบทำงานได้ เช่น web application, mobile app, serverless function, database, file system, shell script เป็นต้น

Component กลุ่มของ function ที่เกี่ยวข้องภายใน Container ที่ประกอบกันเพื่อให้บริการกับภายนอก components อาจจะมีมากกว่าหนึ่ง component ในหนึ่ง container แต่ทั้งหมดจะมี deploy unit เดียวกัน หรือทำงานใน process เดียวกัน

Code เป็น implementation detail ของ component โดยแสดงในรูปแบบ UML class diagram, entity relationship diagram ปกติ code diagram จะถูก generate จาก development tool

Enterprise Architecture Map

ในการออกแบบ IT system ของแต่ละองค์กรต่างมีแบบแผนที่ยึดหลักมาตรฐานต่างๆ เช่น TOGAF หรือไม่ก็ eTOM แต่วิธีการพวกนี้อาจจะเข้าใจยากและใช้เวลามาก เพื่อที่จะได้ landscape ของทั้ง IT ในมุมของการ invest และจัด priority วิธีที่ง่ายที่สุดในการสร้าง IT Enterprise Architecture คือการมองเรื่อง capability และ impact ที่ได้ต่อ business เมื่อมีการ invest และสามารถเห็นภาพรวมในสิ่งที่มีแล้วและสิ่งที่ขาด diagram นี้เป็น diagram หนึ่งที่ช่วยทำให้เราเข้าใจภาพรวมของระบบ IT ได้ง่ายขึ้น

จาก diagram นี้ถือเป็น diagram เริ่มต้น โดยเราต้องใส่ platform ที่เราใช้อยู่ปัจจุบันเข้าไปเช่น Container บน cloud ถ้าใช้ AKS ก็ระบุเข้าไปในกล่อง หรือมี service มากกว่านี้ที่ใช้บน cloud ก็สามารถเพิ่มกล่องเข้าไปได้ หลังจากทำเสร็จแล้วเราจะรู้ว่าปัจจุบันระบบ IT มีอะไรในส่วนไหนบ้าง แล้วยังขาดอะไรที่ต้องเติมเต็ม และสามารถใช้เป็นแผนงานสำหรับในแต่ละปีได้