Architecture Archive

ลองใช้งาน Apache APISIX นิดหน่อย

จากการแบ่งปันเรื่อง Architecture มานิดหน่อยหนึ่งในนั้นคือ การใช้งาน API Gateway ด้วยทำให้เกิดการแนะนำ Apache APISIX นิดหน่อย ดังนั้นเพื่อช่วยทำให้เข้าใจ ก็ลองเล่นใช้งานง่ายแบบง่าย ๆ หน่อยมาเริ่มกันเลย

Read More…

เรื่องที่น่าสนใจจาก Prime Video​ :: สำหรับการ Rearchitecture ของระบบ VDO monitoring

จากบทความเรื่อง Scaling up the Prime Video audio/video monitoring service and reducing costs by 90% ทำการอธิบายสำหรับการย้ายระบบที่อยู่ในรูปแบบของ distributed Microservicesมาเป็น Monolith หรือถ้าพูดให้ตรง ๆ คือ ย้ายออกจาก AWS Lambda นั่นเอง ซึ่งผลที่ได้รับกลับมาคือ Scale ระบบได้สูงขึ้น ระบบมีความ Resilience คือ เมื่อมีปัญหาสามารถ recovery กลับมาทำงานปกติได้ดี ที่สำคัญลดค่าใช้จ่ายไปมากกว่า 90% ดังนั้นมาดูกันว่าทาง Prime Video ทำอย่างไรบ้าง ซึ่งน่าสนใจมาก ๆ

Read More…

RediSearch กับ Geolocation

จากงานเดิมใช้งาน RediSearch เกี่ยวการค้นหาข้อมูล (Full text search) ไปแล้วต่อมามี use case ต้องทำการค้นหาข้อมูล Geolocation (lat,lng) นั่นเองโดยมีความต้องการดังนี้ ยังค้นหาแบบ full text search ในข้อมูลจาก property ต่าง ๆ ได้ หาข้อมูลที่อยู่ใกล้ เรียงลำดับจากใกล้ไปไกลได้ กำหนดจำนวนข้อมูลที่ต้องการ มาดูกันว่าทำอย่างไรได้บ้างใน Redis นั่นเอง

Read More…

บันทึกเรื่อง Architecture ของระบบ Twitch

บันทึกการอ่านเรื่องของปรับปรุง architecture ของระบบ Twitchซึ่งทำการปรังปรุงระบบ Monolith มายัง Microserviceโดยมีขั้นตอนการปรับปรุงที่น่าสนใจทำการเขียนใน blog 2 ตัวคือ Breaking the Monolith at Twitch: Part One Breaking the Monolith at Twitch: Part Two

Read More…

ว่าด้วยเรื่องของ Observability บน Grafana + Loki + Tempo

จากการแบ่งปันเรื่อง Observability ของระบบงานใน Course Microservices workshop ที่ Skooldio มานั้นโดย Observability นั่นประกอบไปด้วย 3 ส่วนหลัก ๆ คือ Application metric Distributed tracing Log aggregation ต่อจากนั้นก็เอาไปทำ dashboard และ alert system ได้อีกเพื่อช่วยให้เราสามารถดูได้ว่า application ทำงานอย่างไรมีปัญหาตรงไหนบ้าง ?หรือมีสัญญาณของปัญหาที่อาจจะเกิดขึ้นไหม ?ถ้าเจอแล้ว สามารถเข้าถึงจุดเกิดเหตุได้ง่ายและรวดเร็วมากยิ่งขึ้น

Read More…

แนวคิดการสร้างระบบ Ranking ของ Reddit

จากเหตุการณ์ที่ระบบ Reddit ล่มจากการ upgrade Kubernetes นั้นก็ไปเจอการอธิบายเรื่องการสร้าง platform ของระบบ Rankingหรือระบบแนะนำ post ต่าง ๆ ในหน้า feed นั่นเองซึ่งพัฒนามาจาก service จนกลายเป็น platform ที่ให้ใช้งานโดยทำการพัฒนาใหม่ด้วยภาษา Goมีแนวทางที่น่าสนใจดังนี้

Read More…

สรุปจากบทความการเปลี่ยนแปลง database ของ Discord

เห็นว่ามีการ share บทความเรื่อง HOW DISCORD STORES TRILLIONS OF MESSAGES ? ซึ่งเป็นบันทึกการเปลี่ยนแปลง database ที่ใช้เก็บข้อมูลที่พูดคุยต่าง ๆ ในระบบ Discordจาก MongoDB -> Cassandra -> ScyllaDBทำให้เราเห็น use case และ เหตุผลในการเปลี่ยนแปลงนั่นคือการแก้ไขปัญหานั่นเองจึงทำการสรุปสิ่งที่สนใจเอาไว้ดังนี้

Read More…

สรุปสิ่งที่น่าสนใจในการย้ายระบบของ 37signals จาก cloud มาใช้ server ของตัวเอง

จากบทความ De-cloud and de-k8s — bringing our apps back homeที่ทาง 37signals ทำการย้ายระบบที่อยู่บน cloudไปยัง data center/server ของตัวเองโดยเท่าที่อ่านพบว่า ไม่ใช่แค่การย้ายเท่านั้นแต่ยังรวมไปถึงการจัดการ dependencyแก้ไข codeการสร้างเครื่องมือสำหรับการย้าย และ deployและ update software ต่าง ๆ อีกด้วย

Read More…

ว่าด้วยเรื่องของ Law of Demeter ในการออกแบบ service

จากบทความเรื่อง Law of Demeter (LoD) ในการเขียน code นั้นเพื่อช่วยลด coupling ระหว่าง classหรือเป็นแนวคิดที่ช่วยให้เรามีความรู้เกี่ยวกับปลายทางที่จะเรียกให้น้อยลงทำให้มีอิสระมากยิ่งขึ้น โดยถ้าเรานำแนวคิดนี้ มาใช้กับการแยก service ด้วยก็น่าจะได้ผลดีเช่นกันนะ

Read More…

สรุปการอ่านเรื่อง How Levels.fyi scaled to millions of users with Google Sheets as a backend

จากบทความเรื่องการ scale ระบบของ Levels.fyi พบว่าน่าสนใจมาก ๆ สำหรับการเริ่มต้นทำ productเริ่มแบบเรียบง่ายเพื่อ validate ว่า product จะไปได้ไหมจากนั้นค่อย ๆ optimize หรือปรับเปลี่ยนไปตามความต้องการหรือตาม business และคนใช้งานที่สูงขึ้นดังนั้นจึงสรุปสิ่งที่น่าสนใจไว้นิดหน่อย

Read More…