Navigating This Book (การไล่เรียงเนื้อหาในหนังสือเล่มนี้)
หนังสือเล่มนี้จัดเรียงเนื้อหาแบบแบ่งตามหัวข้อเป็นหลัก ผมออกแบบโครงสร้างและเขียนหนังสือเล่มนี้ราวกับว่าคุณจะอ่านตั้งแต่ ต้นจนจบ แต่แน่นอนว่าคุณอาจอยากข้ามไปยังหัวข้อที่คุณสนใจที่สุดโดยตรง หากคุณตัดสินใจกระโดดเข้าไปอ่านบทใดบทหนึ่งเลย คุณอาจพบว่า Glossary ท้ายเล่มมีประโยชน์ในการอธิบายศัพท์ใหม่หรือศัพท์ที่ไม่คุ้นเคย เรื่องคำศัพท์ ผมใช้คำว่า microservice และ service สลับกันไปมาตลอดทั้งเล่ม คุณสามารถสันนิษฐานได้ว่าทั้งสองคำหมายถึงสิ่งเดียวกัน เว้นแต่ผมจะระบุไว้ชัดเจนเป็นอย่างอื่น ผมยังสรุปคำแนะนำสำคัญบางส่วนของหนังสือไว้ใน Bibliography ด้วย เผื่อคุณ really อยากกระโดดไปอ่านตอนท้ายจริงๆ—แต่อย่าลืมว่าถ้าทำแบบนั้นคุณจะพลาดรายละเอียด lot มากมายเลยทีเดียว!
เนื้อหาหลักของหนังสือแบ่งออกเป็นสามส่วนแยกกัน—Foundation, Implementation และ People มาดูกันว่าแต่ละส่วนครอบคลุมอะไรบ้าง
Part I, “Foundation” (รากฐาน)
ในส่วนนี้ ผมอธิบายแนวคิดหลักบางส่วนเบื้องหลัง microservices
Chapter 1, “What Are Microservices?” (Microservices คืออะไร)
นี่คือบทแนะนำทั่วไปเกี่ยวกับ microservices ซึ่งผมพูดถึงหัวข้อต่างๆ โดยสังเขปที่จะขยายความในบทถัดๆ ไปของหนังสือ
Chapter 2, “How to Model Microservices” (จะออกแบบโมเดล Microservices อย่างไร)
บทนี้พิจารณาความสำคัญของแนวคิดอย่าง information hiding, coupling, cohesion และ domain-driven design ในการช่วยหาขอบเขตที่เหมาะสมสำหรับ microservice ของคุณ
Chapter 3, “Splitting the Monolith” (การแยกส่วน Monolith)
บทนี้ให้คำแนะนำเกี่ยวกับวิธีนำแอปพลิเคชันแบบ monolithic ที่มีอยู่แล้วมาแตกออกเป็น microservices
Chapter 4, “Microservice Communication Styles” (รูปแบบการสื่อสารระหว่าง Microservice)
บทสุดท้ายในส่วนนี้พูดถึงรูปแบบการสื่อสารของ microservice ประเภทต่างๆ รวมถึง asynchronous เทียบกับ synchronous และรูปแบบความร่วมมือแบบ request-response กับ event-driven
Part II, “Implementation” (การพัฒนา)
จากแนวคิดระดับสูงสู่รายละเอียดการพัฒนา ในส่วนนี้เราจะดูเทคนิคและเทคโนโลยีที่ช่วยให้คุณใช้ประโยชน์จาก microservices ได้เต็มที่
Chapter 5, “Implementing Microservice Communication” (การพัฒนา Microservice Communication)
ในบทนี้เราจะเจาะลึกเทคโนโลยีเฉพาะที่ใช้ในการพัฒนา inter-microservice communication
Chapter 6, “Workflow” (เวิร์กโฟลว์)
บทนี้เปรียบเทียบ saga กับ distributed transaction และพูดถึงประโยชน์ของแต่ละแบบในการจำลอง business process ที่เกี่ยวข้องกับหลาย microservices
Chapter 7, “Build” (การ Build)
บทนี้อธิบายการแมป microservice เข้ากับ repository และ build
Chapter 8, “Deployment” (การ Deploy)
ในบทนี้คุณจะพบการพูดคุยถึงตัวเลือกมากมายในการ deploy microservice รวมถึงการดู container, Kubernetes และ FaaS
Chapter 9, “Testing” (การทดสอบ)
ที่นี่ผมพูดถึงความท้าทายในการทดสอบ microservices รวมถึงปัญหาที่เกิดจาก end-to-end test และวิธีที่ consumer-driven contract กับการทดสอบใน production สามารถช่วยได้
Chapter 10, “From Monitoring to Observability” (จาก Monitoring สู่ Observability)
บทนี้ครอบคลุมการเปลี่ยนผ่านจากการเน้นกิจกรรม monitoring แบบ static ไปสู่การคิดในวงกว้างมากขึ้นว่าจะ ปรับปรุง observability ของสถาปัตยกรรม microservice ได้อย่างไร พร้อมคำแนะนำเฉพาะเกี่ยวกับเครื่องมือต่างๆ
Chapter 11, “Security” (ความปลอดภัย)
สถาปัตยกรรม microservice อาจเพิ่มพื้นที่ที่เสี่ยงต่อการถูกโจมตี แต่ก็ให้โอกาสเราในการป้องกันแบบ in-depth มากขึ้นเช่นกัน ในบทนี้ เราจะสำรวจความสมดุลนี้
Chapter 12, “Resiliency” (Resiliency)
บทนี้มองในภาพกว้างว่า resiliency คืออะไร และ microservices มีบทบาทอย่างไรในการช่วยเพิ่ม resiliency ให้กับแอปพลิเคชันของคุณ
Chapter 13, “Scaling” (การ Scale)
ในบทนี้ผมสรุปแกนทั้งสี่ของการ scale และแสดงให้เห็นว่าจะนำมันมาใช้ร่วมกันเพื่อ scale สถาปัตยกรรม microservice ได้อย่างไร
Part III, “People” (ผู้คน)
แนวคิดและเทคโนโลยีไม่มีความหมายอะไรเลย หากปราศจากผู้คนและองค์กรที่จะขับเคลื่อนมัน
Chapter 14, “User Interfaces” (User Interface)
ตั้งแต่การเปลี่ยนจากทีม frontend เฉพาะทางไปสู่การใช้ BFF และ GraphQL บทนี้สำรวจว่า microservices และ user interface สามารถทำงานร่วมกันได้อย่างไร
Chapter 15, “Organizational Structures” (โครงสร้างองค์กร)
บทรองสุดท้ายนี้เน้นไปที่ว่าทีมแบบ stream-aligned และ enabling team จะทำงานในบริบทของสถาปัตยกรรม microservice ได้อย่างไร
Chapter 16, “The Evolutionary Architect” (สถาปนิกเชิงวิวัฒนาการ)
สถาปัตยกรรม microservice ไม่ได้หยุดนิ่ง ดังนั้นมุมมองของคุณต่อสถาปัตยกรรมระบบอาจจำเป็นต้องเปลี่ยนแปลง— ซึ่งเป็นหัวข้อที่บทนี้จะสำรวจอย่างลึกซึ้ง