invalid
invalid

Workshop การสร้างระบบที่อภิมหา Scale ได้โดยใช้ Redis เป็น backend database ด้วยภาษา Golang

฿2,500

Quantity

-
+
invalid
invalid
฿2,500

Workshop การสร้างระบบที่อภิมหา Scale ได้โดยใช้ Redis เป็น backend database ด้วยภาษา Golang

 

 

Scalable architecture using Redis as backend database using Golang + Redis

ปัญหาการ Register แล้วเว็บล่มเป็นปัญหา classic ระดับชาตินะครับ คำถามคือ ทำยังไงถึงจะแก้ได้ ผมใช้ Redis ในการทำระบบที่ สามารถ Scale รองรับ load ได้มหาศาลมาแล้ว เนื่องจากความเข้าใจง่าย และตรงไปตรงมา แต่มีประสิทธิภาพสูงของ Redis ทำให้ Redis สามารถถูกใช้ได้ในหลายusecase เช่น
  1) Cache Layer เพื่อรองรับการ เรียกดูข้อมูลจำนวนมหาศาล
  2) Persistent Layer เพื่อรองรับการ save ข้อมูลจำนวนมหาศาล
  3) Event Streaming เพื่อส่งต่องานไปทำแบบ Asynchrounous
  เรียกได้ว่า Database เดียว ตอบโจทย์ได้หลายๆโจทย์เลย
 สอนโดย คุณ ไชยพงศ์ ลาภเลี้ยงตระกูล ผู้ออกแบบและสร้างระบบ PAM Marketing Automation

 



Workshop Outline
Chapter 1. เรียนรู้พื้นฐานความแตกต่างระหว่าง Redis และ RDBMS ตัวอื่นๆ สาเหตุที่นำมาใช้ในงานที่มี load สูง

Chapter 2. ทำความเข้าใจ และ ลงมือ run load test เพื่อทดสอบ API ว่ามี TPS สูงตามมที่ต้องการหรือไม่

Chapter 3. ทดลอง load test API ที่เขียนเชื่อมต่อกับ RDBMS และ Redis ว่ามีความต่างกันในประสิทธิภาพอย่างไร

Chapter 4. เข้าใจคำสั่งที่อาจจะเกิดปัญหาถ้านำมาใช้โดยรู้เท่าไม่ถึงการณ์ของ Redis

Chapter 5. จัดการกลุ่มของ Key ใน Redis ด้วย data structure ประเภท Hashes

Chapter 6. สร้าง API ยอดฮิต ที่ใช้ในการ register member และ load test เพื่อรีดประสิทธิภาพสูงที่สุด

 


Chapter 7. สร้าง API ยอดฮิต ที่ใช้ในการ นับ Counter โดยได้ inspire จาก API ของ Popcat

Chapter 8. ทำความเข้าใจ Horizontal Scaling และสร้างระบบการ Shardings by key ด้วยตัวเอง

Chapter 9. ทดลองเขียน API เพื่อให้สามารถเก็บข้อมูลการ vote จาก 2 พัน ล้านคนโดยใช้ RAM ไม่ถึง 1Gb ด้วย bitfield

Chapter 10. ใช้ Pub/Sub ของ Redis ใน use case ต่างๆเช่น เพิ่มประสิทธิภาพของ local cache

Chapter 11. ทำความเข้าใจ config ที่สำคัญของ Redis เช่น Max Memory และ Eviction Policy ในแบบเข้าใจง่าย

 

Workshop Objective

หลังจากเรียนจบ ผู้เรียนจะสามารถออกแบบ API ที่รองรับโหลดจำนวนมากได้โดยใช้ Redis เป็น Backend Database และ Golang เป็นภาษาที่ใช้ในการพัฒนา รวมไปถึงสามารถยิง Load Test API เพื่อทดสอบ TPS (Transaction per second) และ Average Latency ได้ และรู้วิธีการเพิ่ม TPS หลังจากทดสอบ


 

ขั้นตอนในการเข้า workshop
1. ทำการสั่งซื้อ และชำระเงินภายในเว็ป https://bit.ly/scalable-redis-web
2. copy เลขใบสั่งซื้อที่ได้รับเมื่อชำระเงินสำเร็จ ตัวอย่างเลขใบสั่งซื้อ BEST2102010XXXXXXXXX
3. request invitation ไปที่ Facebook Group https://www.facebook.com/groups/458018778857775
4. ตอบคำถามเพื่อเข้า group โปรดแจ้ง email หรือเบอร์โทรศัพท์ ที่สมัครในเว็ป boodaBEST และกรอกเลขใบสั่งซื้อ
5. รอไม่เกิน 24 ชั่วโมงเพื่อให้ admin approve เข้ากลุ่ม
6. คลิปการสอนทั้งหมดจะอยู่ในกลุ่ม สามารถดูได้ตลอดชีพ และอาจจะมี clip ใหม่ๆ update เข้ามา
7. หากท่านมีข้อสงสัยประการใดสามารถติดต่อสอบถามได้ที่ Facebook Page : boodaBEST

 

 

 

 

 



Workshop Lessons

Chapter 1. Start Redis project
Lesson 1.1 Start Redis with docker
Lesson 1.2 Redis detail explain

Chapter 2. Load test setup
Lesson 2.1 Setup our load test
Lesson 2.2 Run load test with SET, GET

Chapter 3. Optimize SET, GET with MSET, MGET
Lesson 3.1 Optimize SET, GET with MSET, MGET

Chapter 4. Optimize KEYS with SCAN
Lesson 4.1 Optimize KEYS with SCAN

Chapter 5. Use hashes for group of keys
Lesson 5.1 Use hashes to manage group of keys

Chapter 6. Build register API using Redis
Lesson 6.1 Build register API

Chapter 7. INCR, DECR for counter
Lesson 7.1 Build popcat counter API

Chapter 8. Custom shardings to scale write throughput
Lesson 8.1 Custom shardings

Chapter 9. Eco memory using Bitfield
Lesson 9.1 Optimize memory with Bitfield

Chapter 10. PUB/SUB
Lesson 10.1 Create message queue with PUB/SUB
Lesson 10.2 Optimize local cache using PUB/SUB

Chapter 11. Data persistence
Lesson 11.1 Start and shutdown
Lesson 11.2 Config max memory and eviction policy



Prerequisite

Workshop นี้เหมาะสำหรับ Developer, Software Engineer, Network Engineer ที่มีพื้นฐานการโปรแกรมมาพอสมควร มีความเข้าใจในการเขียนโปรแกรมพื้นฐานมาบ้างแล้ว ไม่เหมาะกับบุคคลที่ไม่เคยเขียนโปรแกรมมาก่อน เนื้อหาต่างๆใน Workshop ทดสอบและบันทึกบนเครื่อง Mac ดังนั้น ถ้าจะทำตามเนื้อหาใน Workshop ควรจะใช้ Mac เป็นเครื่องที่ใช้ทำ Workshop

อย่างไรก็ตามเครื่องมือ ต่างๆใน Workshop เป็นเครื่องมือที่มีใน Cross Platform ทั้งใน Mac, Windows หรือ Ubuntu ด้วยเช่นกัน เช่น Golang, Git, Docker, VSCode, Kafka, Redis ฯลฯ ซึ่งสามารถนำความรู้ใน Workshop ดังกล่าวไปใช้บนระบบอื่นๆได้ เพียงแต่การทำตามตัวอย่างใน Clip อาจจะไม่ได้ตรงกัน 100% ต้องมีการปรับเปลี่ยนไปตาม OS บ้าง แต่เนื่องจากผู้สอนใช้ Mac เป็นเครื่องมือหลัก จึงขออนุญาตที่จะไม่ตอบปัญหาในกรณีที่ปัญหาเกิดจากการใช้ OS อื่น

 

Messenger