Architecture Archive

Six Levels of Cloud Maturity

จากหนังสือฟรีเรื่อง Architecting for Scaleเฉพาะในบทที่ 4 Service and Dataมีหนึ่งสิ่งที่น่าสนใจคือ การกำหนด Six Levels of Cloud Maturityสำหรับขั้นตอนการนำ Cloud มาประยุกต์ใช้งานในองค์กรประกอบไปด้วย

Read More…

สวัสดี OpenTelemetry

หลังจากที่ใช้งาน OpenTracing มานานซึ่งตอนนี้ OpenTracing ได้รวมเข้ากับ OpenCensus แล้วมีชื่อว่า OpenTelemetry จึงมาลองศึกษาและใช้งานดูกันหน่อย

Read More…

ว่าด้วยเรื่อง API Security ของ ClubHouse ที่โดนโจมตี

วันนี้ดู Tweet เรื่อง การวิเคราะห์ต้นเหตุปัญหาของ API ของ ClubHouse ที่โดนโจมตียกตัวอย่างเช่น ผู้ใช้งานหนึ่งคนสามารถทำการเปิดและเข้าห้อง stream ได้มากกว่า 1 ห้องโดยใช้งานผ่าน web browser ได้เลยซึ่งแน่นอนว่า มันขัดแย้งกับ terms of service อย่างแรง

Read More…

ทำความรู้จักกับ Dapr (Distributed application runtime)

เห็นใน feed มีสิ่งที่น่าสนใจคือ Dapr (Distributed application runtime)คำถามแรกคือ มันคืออะไรถูกสร้างมาเพื่ออะไรจึงทำการอ่านและสรุปไว้นิดหน่อย

Read More…

สรุปจากบทความเรื่อง Engineering For Failure

จากบทความเรื่อง Engineering For Failureทำการอธิบายถึงระบบงานที่มีความซับซ้อนมากขึ้นแต่ละส่วนงานแยกกันทำงานยกตัวอย่างเช่น service, database และ caching ต่าง ๆ แน่นอนว่า การติดต่อสื่อสารกันผ่านระบบ networkอาจจะเกิดข้อผิดพลาดในการติดต่อสื่อสารได้ดังนั้นเป็นสิ่งที่ต้องคิดและหาวิธีการจัดการเมื่อเกิดข้อผิดพลาดขึ้นมา (Design for failure)

Read More…

ความรู้พื้นฐานเกี่ยวกับ Load Balancer

หนึ่งในเรื่องพื้นฐานที่ควรต้องรู้และเข้าใจคือ Load Balancerหรือการกระจายงานที่เข้ามาไปยัง server หรือ resource ต่าง ๆเพื่อให้ระบบทำงานอย่างมีประสิทธิภาพรวมทั้งต้องทำให้มั่นใจด้วยว่า ทำการกระจายงานไปยัง server ตามที่ต้องการ ไปเจอ web อธิบายเรื่อง Load Balancer ด้วยรูปการ์ตูนจาก Cloud for Geeksเห็นว่าน่าสนใจ จึงนำมาฝาก

Read More…

คำแนะนำในการออกแบบ API ที่ดี

จากการสอนและแนะนำเรื่องการออกแบบ API (Application Programming Interface) ที่ดีไม่ว่าจะเป็น code ไม่ว่าจะเป็น RESTFul API ก็ตามAPI เหล่านั้นควรมีคุณสมบัติต่าง ๆ ดังนี้ ออกแบบในมุมมองของคนใช้งาน ไม่ใช่มุมมองขอคนสร้าง ง่ายต่อการเรียนรู้และใช้งาน โดยเอกสารเป็นสิ่งสุดท้ายที่ควรอ่าน ยากต่อการใช้งานผิด ง่ายต่อการดูแลรักษาในระดับ code ซึ่งทำให้พัฒนาและต่อยอดได้ง่าย ต้องมีความสัมพันธ์กับความต้องการต่าง ๆ

Read More…

แนวทางการนำ Elixir มาใช้พัฒนาระบบ Change.org

จากบทความเรื่อง Delivering social change with Elixir at Change.org นั้น อธิบายการย้ายระบบ messaging จากใช้ software อื่น ๆ  เปลี่ยนมาเป็นระบบที่พัฒนาด้วยตนเอง โดยใช้ภาษา Elixir มีเป้าหมายเพื่อลดค่าใช้จ่ายและความยืดหยุ่น เพื่อรองรับความต้องการของระบบที่หลายหลายมากขึ้น โดยในบทความจะอธิบายถึงปัญหาที่พบเจอ เหตุผลว่าทำไมถึงเลือก Elixir ?วิธีรองรับ email มากกว่า 1,000 ล้าน email ต่อเดือนกันอย่างไร

Read More…

อธิบายเกี่ยวกับรูปแบบของ CQRS (Command-Query Responsibility Separation)

จากการแบ่งปันเรื่องปัญหาของระบบที่ทำงานช้า เมื่อพูดคุย วาดรูปของ architecture ของระบบแล้ว ได้เห็นว่า ต้นเหตุของปัญหาหลัก ๆ คือ เรื่องการการจัดการข้อมูล นั่นคือ  ปัญหาในการแก้ไขข้อมูลทั้งการเขียน แก้ไขและลบ ปัญหาในการอ่านข้อมูล มักจะแก้ไขข้อมูลโดยไม่คำนึงถึงการใช้งาน เช่นการ ดึงข้อมูลเลยเก็บ ๆ กันไปก่อน แล้วค่อยไปดึงการทีหลัง !!

Read More…

ทำไมต้องมี API Gateway ด้วย ?

คำถามที่น่าสนใจมาก ๆ ที่ถูกถามเป็นประจำคือ ทำไมต้องมี API Gateway ด้วย ? ไม่ใช้ได้ไหม ? พอดีซื้อมาแล้ว ก็ต้องใช้ ? คนออกแบบกำหนดว่าต้องให้มี ? แต่ก็มักตอบกลับด้วยคำถามคือ ใช้ API Gateway ไปทำไม ? ทำไมต้องใช้ ? ไม่ใช้ได้ไหม ? การใช้หรือไม่ใช้ มีข้อดีและข้อเสียอะไรบ้าง

Read More…