
เห็นใน feed มีสิ่งที่น่าสนใจคือ Dapr (Distributed application runtime)คำถามแรกคือ มันคืออะไรถูกสร้างมาเพื่ออะไรจึงทำการอ่านและสรุปไว้นิดหน่อย
หนึ่งในเรื่องพื้นฐานที่ควรต้องรู้และเข้าใจคือ Load Balancerหรือการกระจายงานที่เข้ามาไปยัง server หรือ resource ต่าง ๆเพื่อให้ระบบทำงานอย่างมีประสิทธิภาพรวมทั้งต้องทำให้มั่นใจด้วยว่า ทำการกระจายงานไปยัง server ตามที่ต้องการ ไปเจอ web อธิบายเรื่อง Load Balancer ด้วยรูปการ์ตูนจาก Cloud for Geeksเห็นว่าน่าสนใจ จึงนำมาฝาก
วันนี้อ่านบทความเรื่อง Everything you need to know about Caching — System Design อธิบายเรื่องพื้นฐานเกี่ยวกับ caching หรือข้อมูลชั่วคราว ว่าคืออะไร มีการใช้งานใน use case หรือในกรณีอะไรบ้าง รวมทั้ง strategy และ policy การใช้งาน caching ว่าเป็นอย่างไร ผมคิดว่าเป็นเรื่องพื้นฐานที่นักพัฒนาจำเป็นต้องรู้และเข้าใจ เพื่อนำมาประยุกต์ใช้งานได้อย่างมีประสิทธิภาพ จึงทำการสรุปไว้นิดหน่อย
เจอรูปที่น่าสนใจว่า เราให้ความสำคัญกับคำว่า Loose coupling มากจนเกินไปทำให้เกิดระบบแยกกันมาก ๆ ทำการเกิด communication และ relationship กันเยอะไปยิ่งกว่านั้นกลายเป็น dependency ที่เหนียวแน่นมาก ๆ (แยกกัน แต่ตอนทำงานดันติดกันมาก)สุดท้ายก็กลายเป็นระบบที่ Complicate หรือซับซ้อนจนเอาไม่อยู่กันอยู่หรือเปล่านะ
จากบทความเรื่อง The Elephant in the Architecture นั้น ทำการอธิบายถึงที่มาที่ไปของปัญหาต่าง ๆ ที่เกิดขึ้นในการออกแบบ software ว่าเราทำการออกแบบด้วยแนวคิดอย่างไร ? ซึ่งแนวทางนั้นจะเทียบเคียงได้กับสำนวน The Elephant in the room นั่นคือ เราทุกคนนั้นเห็นปัญหา เห็นข้อเท็จจริงต่าง ๆ อย่างชัดเจน แต่ทุกคนหลีกเลี่ยงที่จะพูดถึงมัน เหมือนกับการมีช้างอยู่ในห้อง แต่ทุกคนจะไม่พยายามหรือมองเห็นมันนั่นเอง
หนึ่งในเรื่องที่น่าสนใจจากหนังสือ Monolith to Microservices (Evolutionary patterns to transform your monolith) อธิบายว่า เมื่อจำนวน service ของระบบเพิ่มมากขึ้นแล้ว ปัญหาที่ต้องพบเจอก็มากและแตกต่างกันไป เช่นปัญหาของ service ที่ไม่เกิน 10 service จะแตกต่างจาก 50 หรือ 100 service ดังนั้นสิ่งที่เราควรต้องรู้แล้วเข้าใจคือ จะรับมือหรือแก้ไขปัญหาเหล่านั้นกันอย่างไร