Architecture Archive

สรุปสิ่งที่น่าสนใจในการย้ายระบบของ 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…

บันทึกการเรียน Domain-Driven Design (DDD) by Roofimon 2023

จากที่เคยไปเรียน Domain Driven Design by Roofimon มาตั้งแต่ปี 2019ซึ่งสรุปไว้ 3 part ดังนี้ [Part 1] สรุปจากการไปเรียน Domain-Driven Design by Roofimon [Part 2] สรุปการเรียน Domain-Driven Design ในเรื่องของการออกแบบ [Part 3] ว่าด้วยเรื่องของรูปแบบความสัมพันธ์ระหว่าง Boundary context ใน DDD โดยในครั้งนี้ก็ได้ไปเรียนอีกรอบหลังจาก COVID-19 จางไปมีสิ่งที่น่าสนใจเพิ่มเติม และ เติมเต็มหลายอย่างมาดูกันว่ามีอะไรบ้าง

Read More…

น่าสนใจกับ Observability-Driven Development (ODD) ด้วย TraceTest

ระบบการทำงานที่ต้องติดต่อสื่อสารกันผ่านระบบ networkไม่ว่าจะเป็น HTTP/HTTPs, Messaging protocol ต่าง ๆมีคำถามที่น่าสนใจคือเราจะตรวจสอบการทำงานได้อย่างไรว่าทำงานได้อย่างถูกต้องตามที่เราต้องการ

Read More…

จดบันทึกจากการฟังเรื่อง API Evolution without Versioning with Brandon Byars

จาก Podcast เรื่อง API Evolution without Versioning with Brandon Byarsแค่เห็นหัวข้อก็น่าสนใจแล้วเลยลองฟังไปขณะที่นั่ง (ยืน) รถไฟฟ้าไปทำงานหน่อยที่ดีอีกอย่างคือ มีการ transcript ของ Podcast ให้อ่านไปด้วยจึงทำให้ได้ทั้งฟัง และ อ่าน ไปทั้งคู่มาดูกันว่า มีอะไรที่น่าสนใจบ้าง

Read More…

มาทำความรู้จักกับ Ephemeral Environment

ในการสร้าง environment ของระบบงาน ไม่ว่าจะเป็น dev, test, QA, SIT, UAT ใด ๆ ก็ตามส่วนใหญ่มักจะถูกสร้างและใช้งานยาว ๆ กันไปดังนั้นการจะสร้างแต่ละครั้ง ต้องมี process ที่เยอะจะดีกว่าไหมถ้าเรามี environment แบบที่เรียกว่า Ephemeral Environment

Read More…

Zero-ETL คืออะไร

เห็นคำว่า Zero-ETL ผ่าน ๆ ทาง social network มานิดหน่อยก็เลยมาหาดูหน่อยว่า มันคืออะไรถามทาง ChatGPT ก็บอกว่า ไม่รู้จัก ส่วน product ก็มีออกมาให้ลองใช้ ทั้งจากฝั่ง Google และ AWS คือ AWS :: ข้อมูลจาก Aurora ไปยัง Redshift AWS :: Redshift กับ Apache Spark Google :: สามารถทำการ query ข้อมูลจาก BigTable ผ่าน BigQuery ตรง ๆ ได้เลย ดังนั้นมาดูกันหน่อยว่ามันคืออะไรกัน

Read More…

RediSearch อีกหนึ่งความสามารถของ Redis

RediSearch เป็นอีกหนึ่ง module ของ Redisช่วยทำให้เราสามารถทำ ful text search ใน Redis ได้โดยมี feature ที่น่าสนใจดังนี้ Query แบบ single และ multi-field ได้ Filter และ Sorting ได้ครบ Indexing Aggregation การทำงานอยู่ภายใต้ความสามารถของ Redis นั่นเอง

Read More…

บันทึกการพูดคุยเรื่อง tuning performance กันนิดหน่อย

จากการพูดคุยเรื่อง tuning performance ของระบบนั้นก่อนอื่นอย่าเพิ่ง tuning หรือ optimize เยอะนักหรือทำจนเกินความจำเป็นเท่านั้นก่อนแต่คนที่ทำต้องรู้ด้วยนะว่า สิ่งที่เลือกหรือ solution ในการแก้ไขปัญหาจะไม่เกิดปัญหาในระยะอันใกล้หรือมันทำงานได้ ตอบโจทย์ทาง businessทั้งด้วย function การทำงานในสภาวะปกติและสถานที่การณ์ที่จำนวนผู้ใช้งานถึงจุดหนึ่ง

Read More…