microservice Archive

บันทึกเกี่ยวกับแนวคิด Microservices แบบง่าย ๆ

หลังจากที่ประยุกต์จากแนวคิด Microservices ไปใช้งานบางส่วนเพื่อช่วยแก้ไขปัญหาที่พบเจอทำให้ business และ deliver team ทำงานร่วมกันได้ดีขึ้นแต่ถามว่า ปัญหาหมดไปไหม ตอบเลยว่าไม่เพราะว่ายังมีปัญหาอื่น ๆ ตามมาเช่นกัน

Read More…

รูปแบบที่น่าสนใจ สำหรับจัดการปัญหาการติดต่อสื่อสารระหว่าง service

ในระบบงานมักจะมีการติดต่อสื่อสารระหว่างระบบหรือ serviceผ่านระบบ network ที่ขึ้นชื่อว่า พร้อมพัง ได้เสมอดังนั้นในการออกแบบ พัฒนา และ ทดสอบระบบต้องทำให้มั่นใจว่าการติดต่อสื่อสารจะต้องทำงานตามที่เราต้องการเสมอทั้งการทำงานให้เสร็จ ทั้งการทำงานอย่างไรเมื่อเกิดปัญหาขึ้นมาเพื่อให้ระบบงานมีความน่าเชื่อถือมากยิ่งขึ้น

Read More…

Pinball Architecture คืออะไร ?

อ่านเอกสารแล้วไปเจอคำว่า Pinball Architectureก็ได้แต่สงสัยว่าคืออะไรพอมีเวลาว่างก็ลองมาหาข้อมูลหน่อยว่า คืออะไรหมายถึงอะไรบ้าง

Read More…

ปัญหาที่เกิดจากการนำแนวคิด Microservices มาใช้ในทางที่ผิด

จากการสอนและแบ่งปันเรื่องการออกแบบระบบตามแนวคิด Microservices ที่ Skooldio มามีหนึ่งสิ่งที่อยากแนะนำคือเมื่อเราเข้าใจและปัญหาที่ Microservices เข้ามาช่วยแก้ไขปัญหาแต่ถ้าเรานำมาใช้แล้วดันเกิดปัญหามากกว่าเดิมมันบ่งบอกว่า คุณไม่เข้าใจ หรือ เข้าใจผิด หรือ แก้ปัญหาด้วยวิธีการที่ผิดหรือไม่ ?มาดูกันว่ามีอะไรบ้าง

Read More…

สรุปจากงาน QCon Plus 2020 เรื่อง The Journey from Monolith to Microservices at GitHub

จากงาน QCon Plus 2020 :: The Journey from Monolith to Microservices at GitHub ระบบของ GitHub นั้นมีอายุมากกว่า 12 ปีโดยพัฒนาในรูปแบบของ Monolith architecture เป็นหลักพัฒนาด้วย RoR หรือ Ruby on Railsทำการ deploy หลายครั้งต่อวันระบบต้อง scale เพื่อรองรับจำนวน request มากกว่า 1,000 ล้านครั้งต่อวันโดยระบบสามารถทำงานได้ตามที่ต้องการเป็นอย่างดี

Read More…

ว่าด้วยเรื่อง Chain of Services ที่อาจะก่อให้เกิดปัญหา

ในการออกแบบ service ของระบบงานนั้นมีรูปแบบหนึ่งที่เจอบ่อยมาก ๆ คือเรามักจะแยกเป็น service ย่อย ๆโดยแต่ละ service ทำงานอย่างใดอย่างหนึ่งไปเลย (Single Responsibility)เป็นสิ่งที่ดีมาก ๆ เพราะว่าแต่ละ service มีขอบเขตการทำงานชัดเจนแต่เมื่อนำ service ต่าง ๆ มาทำงานร่วมกันจะเกิดรูปแบบต่าง ๆ มากมาย หนึ่งในรูปแบบคือ Chain of Responsibility หรือ Chain of Services

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…