ทาง Cockroach Labs นั้น ได้แจกฟรีหนังสือ Foundations of Scalable Systems
ตั้งแต่บทที่ 1 - 3 ประกอบไปด้วย
- Introduction to scalable systems
- Distributed system architecture
- Distributed system essentials
ในบทที่ 1 ทำการอธิบายเรื่องของการ scale ของระบบงาน
ว่ามีแนวคิดพื้นฐานอะไรบ้างสำหรับการออกแบบ
เพื่อช่วยให้ระบบ scale ได้ง่าย
เพราะว่า หลาย ๆ ระบบออกแบบโดยไม่ได้คิดถึงเรื่องนี้ ทำให้ scale ได้ยา
หรือต้องใช้ค่าใช้จ่ายมากมาย
หรืออาจจะเป็นไปไม่ได้เลย
ปัญหาที่มักเจอในระบบเมื่อมีผู้ใช้งานมากขึ้น
- database ทำงานช้า
- webserver ทำงานช้า
- แต่ละ request มีการใช้งาน database จำนวนมาก ดังนั้นยิ่งมี request มาก ๆ แล้ว database ก็ยิ่งทำงานหนัก เป็นการออกแบบที่ไม่ดี
- เลือกเครื่องมือ และ เทคโนโลยีในการพัฒนาแต่สนใจแต่ความง่าย หรือ productivity แต่ไม่ได้สนใจเรื่อง scalability ซึ่งต้องให้สมดุลทั้งสองฝั่ง
ในการออกแบบระบบ ล้วนมี trade-offs เสมอ ซึ่งต้องเข้าใจ และ วางแผนไว้เสมอ
- Performance
- Availability
- Security
- Manageability
ในบทที่ 2 และ 3 ว่าด้วยเรื่องของ Distributed architecture
ว่าจะทำการ scale อย่างไรบ้าง
ทั้งการ scale out และ scale up
รวมทั้งการนำ caching data มาใช้งาน เพื่อลดการใช้งาน database
และการใช้งาน distributed database เพื่อกระจายข้อมูลและใช้งานออกไป
หรือกระจาย process การทำงานออกไปแต่ละส่วน
เพื่อช่วยให้ระบบทำงานและตอบสนองได้รวดเร็วยิ่งขึ้น
สามารถ scale แยกกันทั้ง hardware และ software ได้สะดวกขึ้น
แต่ก็ตามมาด้วยความซับซ้อนมากยิ่งขึ้น
นั่นคือการดูแลรักษาก็ไม่ง่ายตามไปด้วย
ในระบบแบบกระจายนั้น ปัญหาหรือสิ่งที่ต้องเข้าใจ เพื่อจัดการไว้
ประกอบไปด้วย
- การติดต่อสื่อสารระหว่างส่วนงานที่แยกออกจากกัน
- ปัญหาเมื่อส่วนใดส่วนหนึ่งเกิดปัญหา จะลดผลกระทบต่อระบบโดยรวมอย่างไร
- การจัดการเรื่องเวลาของแต่ละระบบ จะจัดการอย่างให้ให้ตรงกัน
และมีอีกหลาย ๆ เรื่องที่น่าสนใจ
ดังนั้น Download มาอ่านกันในช่วงวันหยุดได้เลย