High Scalable Real-Time Web Application with Node.JS and Redis

  • TTDG08
  • Classroom
  • Fundamental
  • Thai
Digital Technology

ผู้เข้ารับการอบรมจะได้ความรู้การสร้างสถาปัตยกรรม Website ที่ push ข้อมูลเข้าหาผู้ใช้โดยที่ไม่ต้อง Refresh เอง
และสามารถโยกย้ายข้อมูลที่เหมาะสมลง Redis และ MySQL ในเวลาที่เหมาะสมได้

Course description

Time
Days :
3 Day(s)
Duration :
18 Hour(s)
Time :
09:00:00 - 16:00:00
Training Date :
05 October 2022 - 07 October 2022
Status :
Class postponed
Instructor
Name :
avatar
Mr.Paiboon Panusbordee

Chief Technology Officer (CTO) บริษัท เลเวลอัพ สตูดิโอ จำกัด

Language :
Thai
Venue
Venue :
Software Park Training Room 3rd floor, Software Park Building Chaengwattana Road, Pakkred Nonthaburi
Type :
Classroom
High Scalable Real-Time Web Application with Node.JS and Redis

ในการสร้าง Web Application ที่มีความสามารถในการโต้ตอบกับผู้ใช้แบบ Real-Time นั้นไม่ใช่เรื่องง่าย จำเป็นต้องใช้ทักษะและความรู้เฉพาะทางที่ไม่เหมือนการพัฒนา Web Application ทั่วไป หากใช้ความรู้เดิมๆ จะเป็นการใช้เครื่องมือที่ไม่เหมาะกับงาน และสร้างความยุ่งยากในการพัฒนาเป็นอย่างมาก การสร้างให้รองรับคนใช้จำนวนมากๆ ก็ยังเป็นเรื่องท้าทายมาก จึงมีบริการ Cloud Service ออกมาช่วยมากมายเช่น Chat Cloud Service, Firebase แต่หากมีจำนวนคนเยอะเกินไประดับหนึ่งจะเสียค่าใช้จ่ายแพงมาก และการต้องใช้ Third Party Service จะทำให้ไม่สามารถควบคุมโครงสร้างระบบได้ 100% อีกทั้งยังต้องพึ่งพิงคนอื่น วัตถุประสงค์ของการเข้ารับการอบรมในวิชานี้คือให้สามารถสร้าง Real-Time Web Application ที่มีการใช้งานของผู้ใช้หลายคนร่วมกันพร้อมๆ กันและเห็นการเปลี่ยนแปลงทันที เช่น Chat Room, Real Time Analytic, Trello, Google Docs, Game Online, เว็บประมูลของ รวมไปถึงWeb Application ที่ต้อง Update ข้อมูลตลอดเวลาเช่น ตลาดหุ้น, ราคาทอง หรือแม้แต่ Twitter ที่จะเห็น Tweet ใหม่ๆ โดยไม่ต้อง refresh โดยอัตโนมัติได้เป็นอย่างดี สอนโดยผู้มีประสบการณ์จริงสร้างระบบให้คนเข้าใช้หลักแสนคนต่อวันมาแล้ว

          กลุ่มลูกค้าเป้าหมาย

         1. นักพัฒนา Website, Startup หรือองค์กร ที่มีระบบการโต้ตอบกับผู้ใช้แบบ Real-Time เช่น Chat Room, Collaborative Tools,
             Real-Time Analytic, Game Online, Stock Exchange, Auto Refresh
         2. นักพัฒนาที่ต้องการขยายขอบเขตความรู้ด้าน Scalability ด้วย Node.JS
         3. นักพัฒนาที่สนใจการใช้งาน Web Socket ใน Scale ใหญ

         คุณสมบัติของผู้เข้าร่วมอบรม
        - มีพื้นฐานการสร้าง Web Application ทั่วไปทั้ง HTML และ Javascript

ประโยชน์ที่ผู้เข้าอบรมได้เรียนรู้:

  1. ได้ความรู้การสร้างสถาปัตยกรรม Website ที่ push ข้อมูลเข้าหาผู้ใช้โดยที่ไม่ต้อง Refresh เอง

  2. เข้าใจความแตกต่างระหว่างการสร้าง Website แบบ Synchronous และ Asynchronous

  3. เข้าใจการใช้งาน Redis และงานที่เหมาะสมกับ Redis

  4. สามารถโยกย้ายข้อมูลที่เหมาะสมลง Redis และ MySQL ในเวลาที่เหมาะสมได้

  5. สามารถสร้างคำสั่ง Redis ของตนเองด้วย Lua Scripting ได้

  6. สามารถสร้าง Node.JS Application ใน Scale ขนาดใหญ่ รองรับการกระจายตัวไปหลาย server

วันที่ 1

พื้นฐาน Node.JS และ Asynchronous Programming
•แนะนำ Javascript ES6
•Node.JS คืออะไร
•แนะนำพื้นฐาน Asynchronous Programming, Event Loop, Single Thread
•การ Handle Error
•ปัญหา Callback Hell
•การใช้งาน Promise, Async, Await
•ติดตั้ง Node.JS และ NPM เรียนรู้การติดตั้ง Library ผ่าน command line

วันที่ 2

•ตัวอย่าง Real-Time Application ในชีวิตจริงที่สามารถประยุกต์สร้างได้
•ติดตั้ง Socket.io เพื่อลองสร้างระบบ Chat Room ด้วย Web Socket อย่างง่าย
•การเชื่อมต่อ Node.JS เข้ากับฐานข้อมูล MySQL
•การใช้ Connection Pool
•รู้จัก Redis In-Memory Database
•Command พื้นฐานของ Redis
•การใช้ Redis ร่วมกับ Socket.io
•เปรียบเทียบข้อดี ข้อเสีย การเก็บบันทึกข้อมูลใน Disk และ Memory
•การตั้งเวลา Sync ข้อมูลระหว่าง Redis และ MySQL

วันที่ 3

•Advanced Scalability
•ปัญหา Race Condition ใน Real-Time Application
•พื้นฐานการใช้งาน Lua Scripting ใน Redis
•การใช้งาน Pub/Sub ใน Redis
•การ Scale Node.JS ให้รันได้หลาย Core และหลาย Server
•Log Management
•การ Update Code แบบ Zero Down Time
•การติดตั้ง Keymetrics เพื่อ Monitor Process ผ่าน Cloud Service ฟรี

Payment can be made by:

    1. Cash or Credit Card or Bank Cheque payable to “Software Park Thailand #2” (a post-dated cheque is not accepted) on the first day of the service or within the last day of the service.
     2. Account transfer and send the proof of the payment (the deposit slip) via fax or email to fax no. 02-583-2884 or email ttd@swpark.or.th

        2.1 Siam Commercial Bank, Chaengwattana Branch
             Saving Account Number: 324-2-56262-0
             Account Name: Software Park Thailand#2

        2.2 Krungsri Bank, Chaengwattana (Software Park) Branch
             Saving Account Number: 329-1-34850-3
             Account Name: Software Park Thailand#2

Notes:
- Withholding tax (3%) is exempt.
- Should you need to withdraw, you must send the notice of the withdrawal in writing no later than 7 working days before the commencement date. The cancellation less than 7 days will be subject to a fine of 40% of the fee.
- Software Park Thailand reserves the rights to cancel courses due to unforeseen circumstances.

Contact Person

For more information, contact our course coordinator on:

Songsiri Sittikun
Tel: +66-2583-9992 Ext. 81426
Fax: +66-2583-2884
Email: songsiri@swpark.or.th

You are encouraged to use the course schedule as a guide to plan your training. The schedule is accessible at www.swpark.or.th for more information. 

12,000 THB .

Enroll nowขออภัย คลาสนี้เลื่อนอบรมและขอปิดรับลงทะเบียน

Course Detail :
Days :
3 Day(s)
Duration :
18 Hour(s)
Time :
09:00:00 - 16:00:00
Training Date :
05 October 2022 - 07 October 2022
Status :
Class postponed

Instructor info
avatar
Mr.Paiboon Panusbordee

Chief Technology Officer (CTO) บริษัท เลเวลอัพ สตูดิโอ จำกัด