12/08/2018, 18:18

Web Architecture 101

Giới thiệu Trong lúc lướt web thì mình đọc được bài viết khá hay với nội dung về kiến trúc hệ thống để một ứng dụng web nói chung hoạt động hiệu quả, chính vì thế mình quyết định sẽ dịch lại và chia sẻ lại với mọi người. Bài viêt được dịch từ nguồn https://engineering.videoblocks.com/web-archit ...

Giới thiệu

Trong lúc lướt web thì mình đọc được bài viết khá hay với nội dung về kiến trúc hệ thống để một ứng dụng web nói chung hoạt động hiệu quả, chính vì thế mình quyết định sẽ dịch lại và chia sẻ lại với mọi người.

Bài viêt được dịch từ nguồn https://engineering.videoblocks.com/web-architecture-101-a3224e126947

Sơ đồ trên là một dạng kiến trúc phổ biến áp dụng trong các ứng dụng web bao gồm các thành phần thường được sử dụng. Nếu thấy hơi phức tạp thì bạn có thể đọc qua ví dụ sau trước khi đi vào cụ thể từng thành phần.

Một người dùng tìm kiếm trên Google từ khóa “Strong Beautiful Fog And Sunbeams In The Forest”. Kết quả đầu tiên xuất hiện là từ Storyblocks (một trang web lưu trữ và chia sẻ ảnh). Người dùng nhấn vào kết quả, chuyển hướng trình duyệt đến trang chi tiết ảnh. Trước đó, trình duyệt của người dùng đã gửi một request đến máy chủ DNS để tìm cách liên lạc với Storyblocks, và sau đó gửi một request tiếp theo.

Request đó đến load blancer và nó sẽ chọn ngẫu nhiên một trong số các web server để tiếp tục xử lý request. Web server tìm kiếm thông tin về hình ảnh từ caching service và tìm nạp các dữ liệu còn lại về ảnh đó từ database. Ngoài ra dữ liệu về màu sắc cũng cần được tính toán, nên một job cho việc đó được đẩy vào job queue để job server thực hiện một cách không đồng bộ, cập nhật database với kết quả đó một cách phù hợp.

Tiếp theo, Storyblocks sẽ tìm kiếm các ảnh tương tự bằng cách gửi một request tới một full-text search service sử dụng tiêu đề của ảnh hiện tại làm đầu vào và hiển thị chúng như một gợi ý cho người dùng. Cuối cùng, là việc lưu trữ các sự kiện trên trang hiển thị vào data firehose, sau đó là cloud storage system và cuối cùng tới data warehouse, để có thể sử dụng cho việc phân tích từ đó tìm ra câu trả lời cho các câu hỏi về nghiệp vụ

Server bây giờ sẽ trả về giao diện (HTML) cho trình duyệt người dùng. Trang hiển thị gồm các tài nguyên Javascript và CSS mà đã tải lên cloud storage system có kết nối tới CDN, nên trình duyệt sẽ liên lạc với CDN để lấy nội dung. Cuối cùng trình duyệt sẽ hiển thị trang web một cách hoàn chình cho người dùng.

Bây giờ, chúng ta sẽ đi qua từng thành phần, giới thiệu sơ lược và cung cấp cho bạn một cái nhìn tổng quan về kiến trúc của một ứng dụng web

1. DNS

DNS là viết tắt của "Domain Name Server" và công nghệ xương sống giúp cho world wide web trở nên khả dụng, phổ biến như bây giờ. Về cơ bản, DNS cung cấp một bảng tìm kiếm dạng key/value từ một tên miền (vd: google.com) tới địa chỉ IP (vd: 85.129.83.120), từ đó giúp máy tính của bạn định tuyến được tới server phù hợp.

So sánh với danh bạ, sự khác biệt giữa tên miền và địa chỉ IP tương đương với sự khác biệt giữa "John Doe" và "201-867-5309". Vì thế, cũng giống như bạn cần một quyển danh bạ để tìm kiếm số điện thoại của John (thời xa xưa             </div>
            
            <div class=

0