architecture Archive

บันทึกเรื่อง CDC (Change Data Capture) และ Outbox pattern

ใน course Microservices ที่ Skooldio นั้นมีคำถามเรื่องเกี่ยวกับรูปแบบของการแลกเปลี่ยนข้อมูลระหว่าง serviceว่า CDC (Change Data Capture) และ Outbox pattern มันเป็นอย่างไรจึงทำการอธิบายพร้อมตัวอย่าง code และเครื่องมือที่ผมมีโอกาสใช้งานในงานมาบ้างเลยทำการสรุปและบันทึกแนวทางไว้นิดหน่อย

Read More…

สรุปการแบ่งปันเรื่อง Microservices ตั้งแต่ design -> develop -> testing -> deploy

บันทึกการสอน และ แบ่งปันความรู้เรื่องของ Microservices ที่ Skooldioตั้งแต่การออกแบบ การพัฒนา การทดสอบ และ การ deployรวมไปถึงการ operate เรื่องต่าง ๆ เช่น monitoring และ observabilityจำนวน 4 วัน โดยครั้งนี้เขาบอกว่าเป็นรุ่นที่ 13 แล้วจึงทำการสรุปการแบ่งปันไว้นิดหน่อย

Read More…

ไปส่องดูโครงสร้างของระบบ ectreport.com กันหน่อย

ทาง กกต นั้นทำการสร้างระบบ ECT Report ขึ้นมา(ระบบรายงานผลคะแนนการเลือกตั้งอย่างไม่เป็นทางการ)เพื่อรวบรวมคะแนนการเลือกตั้งจากทั้งประเทศสามารถดูผ่านทางเว็บ ectreport.com กันได้เลย มีให้ดูดังนี้ แสดงผลการนับคะแนน จำนวนผู้มาใช้สิทธิ์ ดูในแต่ละจังหวัด ดูผลตามพรรค ดังนั้นสำหรับนักพัฒนา ลองมาส่องดูหน่อยว่าระบบนี้เป็นอย่างไร

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…

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

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

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…