Architecture Archive

ความรู้พื้นฐานเกี่ยวกับ 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…

สรุปแนวปฏิบัติในการออกแบบ Microservices ด้วย IDEALS

จากบทความเรื่อง Principles for Microservice Design: Think IDEALS, Rather than SOLID ทำการอธิบายแนวทางการออกแบบตามแนวคิด Microservices ได้อย่างน่าสนใจ โดยทำการหยิบเอาแนวคิดจาก SOLID  สำหรับการออกแบบระบบที่พัฒนาด้วย Object-Oriented Programmingมาประยุกต์ใช้กับ Microservies

Read More…

ตอบคำถามเรื่อง การใช้งาน RabbitMQ

จากการสอนใน course Microservices workshop ที่ Skooldio ไปนั้น มีการแนะนำในเรื่องของการนำ messaging และ Event-based architecture มาใช้งาน และได้มีคำถามเกี่ยวกับการนำ RabbitMQ มาใช้งาน ว่าจะออกแบบตามที่ต้องการอย่างไรบ้าง

Read More…

สิ่งที่น่าสนใจจากบทความเรื่อง 5 Key Takeaways From My Experience with Microservices

เรื่องของ Microservices นั้น ไปที่ไหนก็มีแต่คนพูดถึง หรือบางครั้งมันกลายเป็นแนวทางหลักของระบบต่าง ๆ ไปแล้ว แต่บ่อยครั้งจะพบว่า เราเน้นไปเรื่องว่าจะทำ อย่างไร ก่อนปัญหาที่เราต้องการแก้ไข มันอาจจะทำให้เกิดปัญหามากมายตามมา จากบทความ 5 Key Takeaways From My Experience with Microservices ทำการสรุปจากประสบการณ์การนำแนวคิด Microservices มาใช้งาน ว่ามันมีข้อดีข้อเสีย ข้อระมัดระวังรวมทั้งความเข้าใจ จึงทำการสรุปไว้นิดหน่อย น่าจะพอมีประโยชน์บ้าง

Read More…

สรุปการแบ่งปันเรื่องของ Microservices

ในช่วง 2-3 เดือนที่ผ่านมานั้น มีโอกาสได้แลกเปลี่ยนความรู้และประสบการณ์ เกี่ยวกับการนำแนวคิด Microservices มาใช้งาน ผ่านทางการพูดคุย สอน แบ่งปันแบบ Remote/Online ทำให้ได้เห็นแนวทางที่ชัดเจนขึ้นว่า

Read More…

บันทึกการอ่านบทความเรื่อง How Django can handle 100 millions of requests per day

บันทึกการอ่านบทความเรื่อง How Django can handle 100 millions of requests per day มีหลาย ๆ แนวคิดที่น่าสนใจ เพื่อให้ระบบมีประสิทธิภาพสูงขึ้น จึงทำการบันทึกสิ่งที่น่าสนใจไว้ มาเริ่มกันเลย

Read More…