crash, m ng server không n đ nh, d li u ngo i tuy n. Đ a ra l a ch n ạ ổ ị ữ ệ ạ ế ư ự ọ
Horizontal Scaling s giúp m i vi c đ n gi n h n do n u b n có nhi u ẽ ọ ệ ơ ả ơ ế ạ ề
server, khi m t server g p v n đ thì b n v n còn các server khác giúp cho ộ ặ ấ ề ạ ẫ
web c a b n v n ch y. M t u đi m n a là nhi u server có th giúp b n ủ ạ ẫ ạ ộ ư ể ữ ề ể ạ
chia nh công vi c cho ph n backend c a web – database, web server, ỏ ệ ầ ủ
service,… b ng cách cho m i th ch y trên m t server riêng. Khi các ằ ỗ ứ ạ ộ
request đ c chuy n đ n, chúng s đ c phân ph i đ u t i các server d n ượ ể ế ẽ ượ ố ề ớ ẫ
đ n vi c không có m t server nào b quá t i. Còn vi c l a ch n Vertical ế ệ ộ ị ả ệ ự ọ
Scaling là không kh thi vì kh năng nâng c p máy tính cũng có gi i h n vàả ả ấ ớ ạ
vi c đ server ph i x lý quá nhi u vi c d n đ n quá t i.ệ ể ả ử ề ệ ẫ ế ả
Web Application Servers
Đây đ n gi n là n i x lý công vi c logic, nghĩa là x lý request t ơ ả ơ ử ệ ử ừ
phía user và tr l i code HTML cho trình duy t. Đ làm đ c vi c ả ạ ệ ể ượ ệ
này thì Web server ph i đ c k t n i v i c s h t ng nh ả ượ ế ố ớ ơ ở ạ ầ ư
database, caching layers, job queues, data queues, services, … và nên
dùng load balancer đ x lý khi l ng request t user l n. B n có thể ử ượ ừ ớ ạ ể
dùng ngôn ng nh Node.js, Ruby, PHP, Scala, Java, C# .NET và ữ ư
MVC framework cho ngôn ng đó: Express, Ruby on Rails, Play, ữ
Laravel đ xây d ng web app servers.ể ự
Database Servers
H u h t các ng d ng web hi n t i đ u s d ng m t hay nhi u ầ ế ứ ụ ệ ạ ề ử ụ ộ ề
database đ l u tr d li u. Database cung c p nhi u cách đ đ nh ể ư ữ ữ ệ ấ ề ể ị
nghĩa c u trúc d li u, thêm m i d li u, tìm d li u, s a hay xóa dấ ữ ệ ớ ữ ệ ữ ệ ử ữ
li u đã có, tính toán d li u, … Trong m t s tr ng h p, web app ệ ữ ệ ộ ố ườ ợ
server s nh n d li u t job servers thay vì l y tr c ti p trong ẽ ậ ữ ệ ừ ấ ự ế
database. SQL và NoSQL là ngôn ng truy v n mang tính c u trúc, ữ ấ ấ
dùng đ truy v n, thao tác v i Database.ể ấ ớ
Caching Service