17 คะแนน โดย kkumaeunsonyeon 2025-09-15 | 8 ความคิดเห็น | แชร์ทาง WhatsApp

หัวใจสำคัญของสภาพแวดล้อมแบ็กเอนด์คือการส่งมอบข้อมูลให้ผู้ใช้อย่างเสถียร เพื่อให้ทำเช่นนั้นได้ จำเป็นต้องมีองค์ประกอบหลัก 3 อย่าง ได้แก่ เว็บเซิร์ฟเวอร์, WAS และฐานข้อมูล ทั้งสามสิ่งนี้ได้วิวัฒนาการมาเพื่อแก้ปัญหาที่เกิดขึ้นในกระบวนการพัฒนาของเว็บ เทคโนโลยีขั้นสูงอย่างการมอนิเตอร์ริง, โหลดบาลานซิง, แคชชิง, CI/CD pipeline และ Kubernetes หากไม่มีความเข้าใจในองค์ประกอบทั้ง 3 อย่างนี้มาก่อน ก็ไม่ต่างจากการสร้างบ้านที่พร้อมจะพังได้ทุกเมื่อ

อย่างแรก บทบาทของเว็บเซิร์ฟเวอร์
บทบาทหลักของเว็บเซิร์ฟเวอร์คือการเป็นไฟล์เซิร์ฟเวอร์ที่ใช้ส่งไฟล์ โดยเว็บเซิร์ฟเวอร์ที่เป็นตัวแทนได้แก่ Nginx, Apache, IIS, Caddy เป็นต้น เว็บเซิร์ฟเวอร์เหล่านี้ทำหน้าที่พื้นฐานในการให้บริการไฟล์แบบสแตติกได้อย่างยอดเยี่ยม และได้รับการปรับแต่งประสิทธิภาพมาอย่างสูง

อย่างที่สอง การปรากฏขึ้นและบทบาทของ WAS(Web Application Server)
WAS ทำงานในลักษณะที่เมื่อได้รับคำขอบางอย่าง ก็จะรันโปรแกรมที่กำหนดไว้ล่วงหน้า และส่งผลลัพธ์ที่โปรแกรมนั้นสร้างขึ้นกลับไปให้ผู้ใช้ วิธีการเช่นนี้ถือได้ว่าเป็นจุดกำเนิดของแบ็กเอนด์อย่างแท้จริง และเป็นช่วงเวลาที่เซิร์ฟเวอร์ก้าวข้ามจากการแค่แสดงไฟล์ ไปสู่การคิด คำนวณ และประมวลผลลอจิก เว็บเซิร์ฟเวอร์จะส่งคืนหน้าเว็บแบบสแตติกที่เหมือนเดิมเสมอ แต่ WAS จะส่งคืนหน้าเว็บแบบไดนามิก

อย่างที่สาม ความจำเป็นและบทบาทของฐานข้อมูล
ฐานข้อมูลมีหน้าที่จัดเก็บข้อมูลอย่างถาวร บริหารจัดการข้อมูลอย่างปลอดภัย และควบคุมการเข้าถึงพร้อมกัน

นอกจากนี้ สิ่งอื่น ๆ ที่มีประโยชน์มากสำหรับการวางแผนแบ็กเอนด์และควรรู้ไว้ ได้แก่ การออกแบบ RESTful API (หลักการออกแบบ API ตาม REST architectural style เช่น การออกแบบ URL ที่ยึดทรัพยากรเป็นศูนย์กลาง, ความหมายของ HTTP(GET, POST, PUT, DELETE เป็นต้น), การใช้สถานะโค้ด ฯลฯ), การยืนยันตัวตน (ความเข้าใจพื้นฐานเกี่ยวกับวิธีการยืนยันตัวตนและการกำหนดสิทธิ์ของผู้ใช้ เช่น การยืนยันตัวตนแบบ session-based รวมถึงการกำหนดนโยบายการจัดการผู้ใช้) และการจัดการข้อผิดพลาด (แนวคิดเกี่ยวกับการจัดการกรณียกเว้นที่จำเป็นต่อการทำให้ระบบมีเสถียรภาพ)

8 ความคิดเห็น

 
aeolian21 2025-09-18

คิดว่าโลกนี้แบ็กเอนด์ใช้แค่เว็บโปรโตคอลเท่านั้น
พอพูดว่าเป็น 3 องค์ประกอบหลักของแบ็กเอนด์แล้วกลับมีเว็บเซิร์ฟเวอร์โผล่มา ก็ชวนให้มึนงง

 
skageektp 2025-09-16

ตอนนี้มีทั้ง ALB และ CDN ที่ทำในส่วนที่อยากให้เว็บเซิร์ฟเวอร์ทำให้อยู่แล้ว ผมเลยไม่ค่อยเข้าใจว่าทำไมยังต้องยึดติดกับสิ่งนั้นอยู่ พวกคุณมีกรณีด้านความปลอดภัยอะไรบ้างไหมที่ในทางปฏิบัติสามารถป้องกันได้เพราะมีเว็บเซิร์ฟเวอร์อยู่?

 
ifmkl 2025-09-16

หมายความว่า หาก ALB ทำหน้าที่แทนเว็บเซิร์ฟเวอร์ในเชิงฟังก์ชัน และผู้ใช้ไม่สามารถเข้าถึงแบ็กเอนด์อย่าง WAS ได้โดยตรง ก็ถือว่าตรงตามการจัดโครงสร้างสภาพแวดล้อมความปลอดภัยแบบเดิมใช่ไหมครับ และบริการจำนวนมากก็ยังคงทำงานอยู่บนสภาพแวดล้อม on-premises กันอยู่มากด้วยครับ

 
ifmkl 2025-09-16

เมื่อพิจารณาในด้านความปลอดภัย ผมยังคงคิดว่าจำเป็นต้องแยก Web Server / เซิร์ฟเวอร์ WAS ออกจากกัน ไม่ได้มีอะไรเปลี่ยนไปแม้จะอยู่ในสภาพแวดล้อมแบบ cloud-native ก็ตาม Backend อย่าง WAS ไม่ควรอยู่ในเลเยอร์ที่ผู้ใช้สามารถเชื่อมต่อได้โดยตรง

 
kuber 2025-09-15

ยังมีความหมายอยู่ไหมที่จะต้องรู้แนวคิดของเว็บเซิร์ฟเวอร์ / WAS เพื่อการวางแผนแบ็กเอนด์?

ในยุคที่ Java EE, php, CGI กำลังได้รับความนิยม การแบ่งแยกแบบนั้นก็ถือว่าเหมาะสมอยู่ แต่ทุกวันนี้ภาษาส่วนใหญ่ก็มักมี http server ในตัวอยู่แล้ว และเมื่อแนวคิดอย่าง ALB, API Gateway, CDN, Object Storage ได้ถือกำเนิดขึ้นและกลายเป็นเรื่องปกติ ยุคสมัยก็ได้เปลี่ยนไปแล้ว

ในทางกลับกัน หากไม่มีบริบททางประวัติศาสตร์ แนวคิดเรื่อง Web Server กับ WAS ที่แตกต่างจากปัจจุบันอย่างมากนั้น ไม่ใช่แนวคิดที่เหมาะสมอีกต่อไปแล้ว และผมรู้สึกว่ามันอาจยิ่งสร้างความสับสนให้กับผู้เริ่มต้นมากขึ้นเสียด้วย

 
silano08 2025-09-18

ในฝั่งฟินเทค เนื่องจากข้อกำหนดด้านความปลอดภัย จึงยังมีหลายสภาพแวดล้อมที่แยก Web-WAS ออกจากกันอยู่ครับ ไม่รู้ว่าตัวเองจะได้ไปอยู่ในสภาพแวดล้อมแบบไหน ดังนั้นผมมองว่าเตรียมตัวไว้กับทุกแบบน่าจะถูกต้องครับ 555

 
geekdeveng 2025-09-16

แม้ในปัจจุบันที่เป็นสภาพแวดล้อมคลาวด์ ก็ยังใช้เพื่อกระจายโหลด WAS หลายตัวภายในอินสแตนซ์เดียวอย่างมีประสิทธิภาพสำหรับการประมวลผลปริมาณมาก
หากมีคำขอผ่านเครือข่ายไม่มากก็อาจไม่จำเป็น

 
cysl0 2025-09-16

เห็นด้วยครับ คิดว่าการสอนหลักการ 12-factor app และแพตเทิร์น cloud-native น่าจะใช้งานได้จริงมากกว่า ตัวคอนเซปต์เองก็เก่าเกินไปแล้ว