หลักสูตร IT ระบบคอมพิวเตอร์และเครือข่าย 008_บริการเว็บและการพัฒนาจากระยะไกล
สภาพแวดล้อมเซิร์ฟเวอร์เว็บ
สภาพแวดล้อมเว็บหมายถึงการรวมกันของฮาร์ดแวร์และซอฟต์แวร์ที่ทำงานบนเซิร์ฟเวอร์เว็บเพื่อโฮสต์และประมวลผลแอปพลิเคชันเว็บ โดยทั่วไปจะรวมถึงระบบปฏิบัติการ ซอฟต์แวร์เซิร์ฟเวอร์เว็บ ระบบฐานข้อมูล ภาษาโปรแกรมมิ่ง และเครื่องมืออื่นๆ ที่เกี่ยวข้อง
ระบบปฏิบัติการ:
- Linux: สภาพแวดล้อมเซิร์ฟเวอร์เว็บจำนวนมากเลือก Linux เป็นระบบปฏิบัติการเพราะมันมีเสถียรภาพ เชื่อถือได้ และเป็นโอเพนซอร์ส การแจกแจง Linux ทั่วไป ได้แก่ Ubuntu, CentOS, Debian ฯลฯ
- Windows Server: สำหรับสภาพแวดล้อมองค์กรเฉพาะบางอย่าง Windows Server ก็เป็นตัวเลือกที่พบบ่อยเช่นกัน
ซอฟต์แวร์เซิร์ฟเวอร์เว็บ:
-
Apache: โอเพนซอร์ส ใช้กันอย่างแพร่หลาย รองรับแพลตฟอร์มหลายแพลตฟอร์ม เหมาะสำหรับแอปพลิเคชันเว็บต่างๆ
-
Nginx: เบา สมรรถนะสูง เหมาะสำหรับการจัดการเนื้อหาคงที่และความเว้นที่สูง
-
IIS (Microsoft Internet Information Services): เซิร์ฟเวอร์เว็บที่เป็นทางการในสภาพแวดล้อม Windows รองรับ ASP.NET และเทคโนโลยี Microsoft อื่นๆ
-
LiteSpeed: สมรรถนะสูง การใช้ทรัพยากรต่ำ เข้ากันได้กับ Apache สามารถใช้เป็นทดแทนได้
-
OpenResty: แพลตฟอร์มเว็บสมรรถนะสูงที่ใช้ Nginx และ Lua ซึ่งรวมฟังก์ชันหลักของ Nginx เข้ากับความสามารถในการเขียนโปรแกรมแบบไดนามิกของ Lua เพื่อสร้างแอปพลิเคชันเว็บและเว็บไซต์ที่มีประสิทธิภาพและยืดหยุ่นมากขึ้น
-
Tomcat: ซอฟต์แวร์เซิร์ฟเวอร์เว็บโอเพนซอร์สที่ให้การรองรับ Java Servlets และ JSP ไม่ใช่เซิร์ฟเวอร์เว็บที่สมบูรณ์ แต่ต้องใช้กับเซิร์ฟเวอร์เว็บอื่นๆ เช่น Apache หรือ Nginx
ระบบฐานข้อมูล:
- MySQL: โอเพนซอร์ส เบา เหมาะสำหรับแอปพลิเคชันเว็บส่วนใหญ่
- PostgreSQL: ทรงพลัง รองรับคุณสมบัติขั้นสูง เหมาะสำหรับความต้องการข้อมูลที่ซับซ้อน
- MongoDB: ฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์ เหมาะสำหรับการจัดการข้อมูลที่คล้ายเอกสารในปริมาณมาก
- Microsoft SQL Server: ระบบฐานข้อมูลเชิงสัมพันธ์ของ Microsoft
ภาษาโปรแกรมมิ่งและเฟรมเวิร์ก:
- PHP: ใช้กันทั่วไปเพื่อสร้างแอปพลิเคชันเว็บแบบไดนามิก ใช้กับ Apache และ Nginx, Laravel, thinkphp
- Python: ด้วยเฟรมเวิร์กเช่น Django และ Flask เหมาะสำหรับการพัฒนาเว็บและวิทยาศาสตร์ข้อมูล
- Ruby: ด้วยเฟรมเวิร์ก Ruby on Rails เหมาะสำหรับการพัฒนาอย่างรวดเร็ว
- JavaScript: การพัฒนาฝั่งหน้าและฝั่งหลัง React.js, Angular, Vue.js, Node.js
- C#: ภาษาเชิงวัตถุ พิมพ์อย่างมาก คอมไพล์ เหมาะสำหรับสร้างแอปพลิเคชันเว็บระดับองค์กร ASP.NET
- Java: ภาษาวัตถุประสงค์ทั่วไป เหมาะสำหรับแอปพลิเคชันประเภทต่างๆ รวมถึงแอปพลิเคชันเว็บ Spring
- Go: ภาษาคอมไพล์ที่พิมพ์อย่างเข้มข้นแบบสถิต พร้อมเวลา เหมาะสำหรับสร้างแอปพลิเคชันเว็บสมรรถนะสูงและขยายได้ Echo
คอนเทนเนอร์ไรเซชันและเวอร์จวอลไลเซชัน:
- Docker: ให้วิธีแก้ปัญหาการคอนเทนเนอร์ไรเซชัน ลดความซับซ้อนในการปรับใช้และการจัดการ
- Kubernetes: ระบบการประสานการทำงานของคอนเทนเนอร์ที่ขยายได้สูง เหมาะสำหรับการปรับใช้คอนเทนเนอร์ขนาดใหญ่
LAMP/LNMP/WAMP/WNMP
| Stack | ระบบปฏิบัติการ | เซิร์ฟเวอร์เว็บ | ฐานข้อมูล | ภาษาโปรแกรมมิ่งฝั่งเซิร์ฟเวอร์ |
|---|---|---|---|---|
| LAMP | Linux | Apache | MySQL | PHP/Perl/Python |
| LNMP | Linux | Nginx | MySQL/MariaDB | PHP/Perl/Python |
| WAMP | Windows | Apache | MySQL/MariaDB | PHP/Perl/Python |
| WNMP | Windows | Nginx | MySQL/MariaDB | PHP/Perl/Python |
การพัฒนาจากระยะไกล
การพัฒนาจากระยะไกลหมายถึงนักพัฒนาเขียนและดีบักโค้ดบนคอมพิวเตอร์ในเครื่อง แต่การดำเนินการและการทดสอบโค้ดจริงนั้นดำเนินการบนเซิร์ฟเวอร์ระยะไกลหรือสภาพแวดล้อมบนคลาวด์ วิธีการพัฒนานี้ให้ข้อดีเช่นการจัดการโค้ดแบบรวมศูนย์ ทรัพยากรคอมพิวเตอร์ที่ทรงพลังมากขึ้น และสภาพแวดล้อมการทำงานที่ยืดหยุ่นมากขึ้น
-
การควบคุมเวอร์ชันจากระยะไกล (Remote Version Control): Git, SVN. ช่วยให้นักพัฒนาสามารถเขียนโค้ดในเครื่อง แต่การควบคุมเวอร์ชันและการทำงานร่วมกันของโค้ดนั้นดำเนินการในที่เก็บข้อมูลระยะไกล สิ่งนี้ช่วยอำนวยความสะดวกในการทำงานร่วมกันของทีมและการจัดการโค้ดอย่างปลอดภัย
-
สภาพแวดล้อมการพัฒนาจากระยะไกล (Remote Development Environment): Remote - SSH, Plugin Remote Development ของ VS Code เป็นต้น การพัฒนาจากระยะไกลของ WebStorm ช่วยให้นักพัฒนาสามารถใช้สภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) ในเครื่อง แต่การดำเนินการและการดีบักโค้ดจริงนั้นดำเนินการบนเซิร์ฟเวอร์ระยะไกล สิ่งนี้ช่วยให้มั่นใจได้ว่าสภาพแวดล้อมในเครื่องและระยะไกลสอดคล้องกัน ลดปัญหาที่เกิดจากสภาพแวดล้อมที่แตกต่างกัน
-
เซิร์ฟเวอร์ระยะไกล (Remote Servers): SSH, FTP, SCP เป็นต้น นักพัฒนาสามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล เรียกใช้คำสั่งโดยตรงบนเซิร์ฟเวอร์ แก้ไขไฟล์ เป็นต้น สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับโครงการที่ต้องพัฒนาและทดสอบในสภาพแวดล้อมเฉพาะ
-
การดีบักจากระยะไกล (Remote Debugging): Visual Studio Code, WebStorm และคนอื่นๆ ให้ฟังก์ชันการดีบักจากระยะไกล ช่วยให้นักพัฒนาสามารถดีบักโค้ดในส่วน IDE ในเครื่องของพวกเขา แต่การดำเนินการดีบักจริงนั้นดำเนินการบนเซิร์ฟเวอร์ระยะไกล สิ่งนี้ช่วยแก้ไขปัญหาที่เกิดขึ้นในสภาพแวดล้อมที่แตกต่างกัน
-
การพัฒนาคลาวด์ (Cloud Development): AWS Cloud9, Microsoft Azure Dev Spaces, Google Cloud Shell ฯลฯ ให้สภาพแวดล้อมการพัฒนาบนคลาวด์ที่ช่วยให้นักพัฒนาสามารถพัฒนา สร้าง และทดสอบบนคลาวด์ สิ่งนี้ช่วยลดความกดดันต่อทรัพยากรคอมพิวเตอร์ในเครื่องและปรับปรุงความยืดหยุ่น
-
การพัฒนาแบบคอนเทนเนอร์ (Containerized Development): Docker, Kubernetes, VM. การห่อหุ้มแอปพลิเคชันและการอ้างอิงทั้งหมดในคอนเทนเนอร์ที่สามารถย้ายได้อย่างง่ายดายระหว่างสภาพแวดล้อมการพัฒนาในเครื่องและเซิร์ฟเวอร์ระยะไกล
ลิงค์:
1Panel 宝塔 WDCP PHPStudy XAMPP OneinStack (Linux) UPUPW (Windows) phpEnv、PHPTS、LNMP……
ปลั๊กอิน VS Code: Remote - SSH Remote Development
Google Chrome เว็บเบราว์เซอร์ Google Chrome เว็บเบราว์เซอร์ (จีน)