ด้วยประสบการณ์มากกว่า 34 ปีในการสถาปัตยกรรมและสร้างแอปพลิเคชัน SaaS Lee Atchison เป็นผู้นำความคิดและผู้เชี่ยวชาญที่ได้รับการยอมรับในด้านการทำให้แอปพลิเคชันทันสมัย การย้ายไปคลาวด และการแปลง DevOps คุณสามารถอ่านหรือดูความเชี่ยวชาญของเขาผ่านหนังสือ 3 เล่ม บทความ 70+ ชิ้น หรือการนำเสนอ คลาส และสัมมนา 100+ ครั้ง
คุณและทีมพัฒนาแอปพลิเคชันที่สมควรได้รับความสนใจ ความนิยมแพร่กระจายผ่านปากต่อปาก และความนิยมกระโดดกระโดด แต่ค่าใช้จ่ายในการดำเนินการเริ่มพุ่งสูง แอปพลิเคชันล้มล้มตลอดเวลา และลูกค้าทำสิ่งที่ไม่น่าเชื่อ — พวกเขา tweet ร้องเรียนเรื่องความเร็วช้ามาก
เมื่อฐานลูกค้าเติบโต คุณจะควบคุมค่าใช้จ่ายไม่ให้เพิ่มขึ้นอย่างไร? คุณยินดีต้อนรับความท้าทายในการขยายตัว แต่คุณไม่สามารถแลกความเติบโตด้วยอัตราความล้มเหลวที่สูงขึ้นและค่าบำรุงรักษาที่เพิ่มขึ้น
สิ่งหนึ่งที่แน่นอน: คุณต้องการแคชแอปพลิเคชัน (application cache)
Cache คืออะไร?
“Cache คือส่วนประกอบจัดเก็บข้อมูลที่สามารถเข้าถึงได้เร็วกว่าหรือมีประสิทธิภาพมากกว่าต้นทางข้อมูลเดิม”
Lee Atchison, Caching at Scale With Redis.
เมื่อมีคำขอดึงข้อมูล แคชให้สำเนาข้อมูลนั้นในเวลาจริง และเมื่อลูกค้ามากขึ้นคุณต้องการสถาปัตยกรรมแอปพลิเคชันขั้นสูงที่จัดการคำขอข้อมูลที่เพิ่มขึ้นได้โดยไม่ต้องไป-กลับระหว่าง primary data store
Lee สรุปได้อย่างง่าย: “โลกสมัยใหม่ต้องการแอปพลิเคชันสมัยใหม่”
เป็นความลับที่ไม่ได้เป็นความลับว่าลูกค้าต้องการประสิทธิภาพที่ดีขึ้นเรื่อยๆ ถ้าแอปพลิเคชันของคุณทำงานไม่ถึงเกณฑ์ลูกค้า ลูกค้าจะจากไปและไปหาคู่แข่ง
และด้านหลังแอปพลิเคชันที่เร็วและใช้ง่าย มีชิ้นส่วนที่เคลื่อนไหวเยอะมาก ตาม Lee กล่าว “แอปพลิเคชันวันนี้ต้องจัดการปริมาณข้อมูลมหาศาล ทำการดำเนินการซับซ้อน รักษาความสัมพันธ์มากมายระหว่างองค์ประกอบข้อมูล และทำงานบนสถานะที่แตกต่างและแยกจากกันระหว่างธุรกรรม”
ปวดหัวเกิดขึ้นในแอปพลิเคชันที่ซับซ้อน และแคชอยู่ที่นั่นเพื่อลดปวดหัวเหล่านั้น
อ่าน Caching at Scale With Redis
ใน Caching at Scale With Redis, Lee แนะนำว่า caching คืออะไร ทำไมและเมื่อไหร่ต้องการ และแนวทาง caching ที่จะช่วยให้แอปพลิเคชันของคุณบรรลุประสิทธิภาพสูงสุด
เมื่อผู้ใช้ขอข้อมูลจากบริการ การดำเนินการจะดำเนินการเพื่อรับข้อมูลจาก store แล้วส่งข้อมูลกลับไปยังผู้ใช้ แต่ Lee 指出ว่า การดำเนินการเหล่านี้อาจใช้ทรัพยากรและเวลามากมาย—โดยเฉพาะถ้าข้อมูลเดียวกันถูกดึงซ้ำๆ
“แทนที่จะทำเช่นนั้น ด้วยแคช ครั้งแรกที่ดำเนินการซับซ้อน ผลลัพธ์จะถูกส่งกลับให้ผู้ใช้ และสำเนาของผลลัพธ์ถูกจัดเก็บในแคช ครั้งต่อไปที่ต้องการข้อมูล แทนที่จะดำเนินการซับซ้อนซ้ำ ผลลัพธ์สามารถดึงจากแคชโดยตรงและส่งกลับให้ผู้ใช้เร็วกว่าและใช้น้อยทรัพยากร”
สิ่งที่ caching แก้ไข—แต่ทำไมมันไม่สมบูรณ์
Caching ไม่ใช่ data store ที่เหมาะกับทุกกรณี สถาปัตยกรรมแอปพลิเคชันแตกต่างกันไปทั่วทั้งดิกา โดยเฉพาะเพราะขนาดของแอป หรือแม้แต่งรณีการใช้งานในอุตสาหกรรม แต่ Lee กล่าวว่ามี 4 คุณสมบัติหลักที่ caching จะช่วยปรับปรุง:
- ประสิทธิภาพ (Performance)
- การขยายตัว (Scaling)
- การเพิ่มประสิทธิภาพทรัพยากร (Resource optimization)
- ความสะดวกและความพร้อมใช้งาน (Convenience and availability)
นี่ไม่ได้หมายความว่าการนำแคชมาใช้จะให้สิ่งเหล่านี้โดยอัตโนมัติ
“ในหลายกรณี caching อาจไม่เพิ่มค่า และในบางกรณี caching อาจทำให้ประสิทธิภาพแย่ลง” Lee กล่าว เขาเผย 3 ปัญหาที่อาจเกิดขึ้น:
- Caching อาจทำให้แอปพลิเคชันไม่ดำเนินการ side effects ที่ต้องการของการดำเนินการเป้าหมาย
- ข้อมูลในแคชไม่สอดคล้อง (Inconsistent data)
- ประสิทธิภาพแคชแย่ (Poor cache performance)
Lee ระบุว่าตัวแปรบางอย่างต้องเป็นจริงเพื่อให้แคชมีประโยชน์ (ดูหน้า 8 ของ e-book สำหรับรายการกฎ) “สำหรับแคشที่มีประสิทธิภาพ คุณต้องเข้าใจการกระจายทางสถิติของการเข้าถึงข้อมูลจากแอปพลิเคชันหรือแหล่งข้อมูลของคุณอย่างดีจริง” Lee กล่าว
เตรียมตัวด้วย playbook การแคชอันสุดยอด
ตอนนี้คุณรู้ว่าต้องการแคช e-book ฟรีนี้คือ primer เพียงอย่างเดียวที่คุณต้องการสร้างและขยายแคชกับ Redis
จาก Lee เอง: “หนังสือเล่มนี้อธิบายว่า caching คืออะไร ทำไมมันเป็นหินมุมของแอปพลิเคชันสมัยใหม่ขนาดใหญ่ที่มีประสิทธิภาพ และ Redis จะช่วยคุณตอบสนองความต้องการ caching ที่ demanding นี้ได้อย่างไร”
เมื่อคุณเจาะลึก e-book Caching at Scale With Redis จะอภิปรายกลยุทธ์ caching ต่างๆ และเสนอคำอธิบายเชิงปฏิบัติว่ากลยุทธ์เหล่านี้อาจเหมาะกับคุณอย่างไร—โดยเฉพาะถ้าคุณอยู่ในคลาวด
“แม้จะมีหลายวิธี กระบวนการ และเทคนิคสำหรับทำให้แอปพลิเคชันรักษาความพร้อมใช้งานสูงในระยะกว้าง caching เป็นเทคนิคศูนย์กลางในเกือบทุกวิธี” Lee กล่าว
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ e-book โปรดเยี่ยมชม หน้าของเรา