Cách cấu hình cân bằng tải vòng quanh DNS để có tính khả dụng cao
Mặc dù một trong những kỹ thuật gây tranh cãi hơn, một phương pháp tốt để phân phối ứng dụng của bạn theo địa lý bằng cách tận dụng sự hiện diện global của nhà cung cấp của bạn là sử dụng và quản lý các phản hồi DNS (tức là danh sách các địa chỉ IP được trả về). Trừ khi bạn sẵn sàng chi một ít tiền cho chi phí phần cứng và cơ sở hạ tầng, việc làm việc với DNS để đạt được tính khả dụng cao có lẽ là một cách tốt .Trong bài viết này, ta sẽ xem cách khai thác một số khả năng thực sự xuất sắc và độc đáo được cung cấp bởi cơ sở hạ tầng trung tâm dữ liệu / server cloud global của DigitalOcean để cài đặt ứng dụng có tính khả dụng cao, được phân phối theo địa lý nhằm giảm thiểu thời gian chết (và do đó, dữ liệu ) bằng cách quản lý các phản hồi DNS.
Bảng chú giải
1. Cấu trúc triển khai ứng dụng truyền thống
2. Tính sẵn sàng cao
- Cấu trúc triển khai ứng dụng khả dụng cao
- Cách đạt được tính khả dụng cao bằng DNS
- Tóm lược
3. Cách triển khai các ứng dụng có sẵn
- Cài đặt Load-Balancers / Reverse-Proxy
- Cài đặt bản ghi DNS
- Cài đặt server ứng dụng
- Cài đặt database
Cấu trúc triển khai ứng dụng truyền thống
Việc triển khai ứng dụng truyền thống và phổ biến nhất phụ thuộc vào các cài đặt với tất cả các thành phần liên quan được đặt ở cùng một nơi do một số lý do, chẳng hạn như:
Thiếu phương tiện của nhà cung cấp;
Chi phí cao, và / hoặc;
Công việc kỹ thuật phức tạp.
Ngay cả khi một ứng dụng được cung cấp từ nhiều máy ngồi sau bộ cân bằng tải (hoặc Reverse Proxy ) và ngay cả khi database cũng được cài đặt theo cách để cung cấp độ tin cậy và ngăn ngừa mất dữ liệu, thì những kiểu sắp xếp này có xu hướng khác nhau mức độ lỗi, khiến bạn, đôi khi, thời gian chết.
Để ngăn chặn điều này, người ta phải dựa vào và sử dụng một kiến trúc hệ thống tin cậy hơn. Một trong đó dữ liệu và server được phân phối global tại các khu vực khác nhau (ví dụ: San Francisco và New York).
Tính khả dụng cao
Nếu ứng dụng của bạn là doanh nghiệp của bạn, bạn cần giữ cho nó có thể truy cập 24/7, nếu có thể, hầu như không bị gián đoạn. Thật không may, việc mở rộng quy mô theo chiều ngang trên nhiều server tại một vị trí không phải lúc nào cũng là giải pháp vì các sự cố trung tâm dữ liệu không mong muốn.
Tuy nhiên, việc phân phối global các server ảo của bạn trên các trung tâm địa lý khác nhau có thể cung cấp cho bạn sự ổn định mà bạn yêu cầu - do đó, giữ cho mức thời gian hoạt động của ứng dụng càng cao càng tốt.
Về mặt thiết kế hệ thống CNTT, loại cấu trúc này được gọi là tính sẵn sàng cao .
Nhờ sự hiện diện của DigitalOcean ở hai lục địa, tại năm địa điểm khác nhau, bạn cũng có thể trải rộng ứng dụng của bạn trên phạm vi global .
Bạn có thể kết nối IP nổi, là địa chỉ IP tĩnh có thể truy cập , có thể được ánh xạ tới một trong các Server của bạn, với cơ sở hạ tầng dự phòng của bạn và chạy trang web hoặc dịch vụ của bạn bằng một IP công cộng. IP nổi này có thể được ánh xạ lại ngay lập tức thành một server mới, để cho phép sự linh hoạt và khả năng đáp ứng trong cơ sở hạ tầng của bạn. Đọc thêm về tính năng mới này tại đây .
Cấu trúc triển khai ứng dụng khả dụng cao
Nói một cách đơn giản, cấu trúc triển khai ứng dụng có tính khả dụng cao, như ta vừa đề cập, phụ thuộc vào việc phân phối và phản hồi cho khách hàng từ các trung tâm dữ liệu khác nhau.
Mặc dù có một số cách khả thi để có được loại cấu trúc này, nhưng có lẽ cách đơn giản nhất và hợp lý nhất là tận dụng cách thức hoạt động của DNS.
Một ví dụ cơ bản được cài đặt có thể được coi như sau:
________________ | | | CLIENT | | WEB BROWSER | |________________| || || _______\/_______ | | | DNS SERVER | |________________| || || _______/ \_______ / \ / \ ____________________ ____________________ | | | | | SAN FRANCISCO | | SAN FRANCISCO | |____________________| |____________________| | ______________ | | ______________ | | | | | | | | | | | WEB SERVER | | | | WEB SERVER | | | | LOAD BALANCE | | | | LOAD BALANCE | | | | PROXY | | | | PROXY | | | |_____ _____| | | |_____ _____| | |________| |________| |________| |________| || __ __ || ||<=====||==================||=====>|| \/ \/ \/ \/ ____________________ ____________________ | | | | | SAN FRANCISCO | | NEW YORK | |____________________| |____________________| | ______________ | | ______________ | | | | | | | | | | | APP SERVER | | | | APP SERVER | | | |______ ______| | | |______ ______| | | ______||______ | | ______||______ | | | | | | | | | | | DATABASE |<==================>| DATABASE | | | |______________| | | |______________| | |____________________| |____________________|
Cách đạt được tính khả dụng cao bằng DNS
Khi user nhập domain của một trang web, thông qua một tập hợp các luật xác định (tức là một giao thức), trình duyệt web sẽ quay số server định danh và hỏi họ địa chỉ của các máy lưu trữ trang web nói trên. Sau khi nhận được địa chỉ IP, nó sẽ gửi yêu cầu đến máy tính đó cùng với một số dữ liệu bổ sung và hiển thị phản hồi.
Vì DNS cho phép lưu giữ nhiều bản ghi (thậm chí là cùng một loại), nên có thể liệt kê nhiều server lưu trữ làm server .
Do đó, như được minh họa trên schemas trên, nếu bạn liệt kê địa chỉ IP của 2 bộ cân bằng tải / bộ đảo ngược, nằm ở hai vị trí khác nhau, mỗi bộ để cân bằng tải giữa các server ứng dụng, lại nằm ở ít nhất hai dữ liệu khác nhau- trung tâm, nếu một trong các trung tâm dữ liệu không thể truy cập được, trình duyệt web của khách hàng sẽ thử các bản ghi địa chỉ IP tiếp theo do server DNS trả về và lặp lại quá trình để lấy trang web.
Loại cân bằng tải này được gọi là cân bằng tải Round Robin DNS.
Tóm lược
Thoạt nhìn, mọi thứ có thể hơi phức tạp. Hãy tóm tắt chúng bằng cách sử dụng hướng dẫn từng bước:
DNS có thể chứa nhiều bản ghi cho cùng một domain .
DNS có thể trả về danh sách các địa chỉ IP cho cùng một domain .
Khi trình duyệt web truy cập một trang web, nó sẽ thử từng địa chỉ IP này cho đến khi nhận được phản hồi.
Các địa chỉ IP này không phải là các server ứng dụng mà tại các bộ cân bằng tải / đảo ngược proxy.
Các Reverse Proxy này cần phải cân bằng tải giữa nhiều server tại nhiều vị trí.
Nếu một trung tâm dữ liệu không hoạt động và trình duyệt web không thể nhận được phản hồi từ một địa chỉ IP (tức là một bộ cân bằng tải), nó sẽ cố gắng truy cập địa chỉ của một địa chỉ khác.
Vì rất ít khả năng không thể truy cập đồng thời cả hai trung tâm dữ liệu, bộ cân bằng tải thứ hai sẽ trả về phản hồi.
Server ứng dụng web nên không trạng thái để giúp công việc của bộ cân bằng tải dễ dàng hơn.
Server database nên được cài đặt theo cách tái tạo.
Cách triển khai các ứng dụng khả dụng cao
Lưu ý: Hướng dẫn này là ngôn ngữ lập trình hoặc kiểu web server bất khả tri. Thực hiện theo các hướng dẫn này, bạn có thể đạt được tính khả dụng cao dù bạn lựa chọn khung, web server hay HTTP.
Cài đặt Load-Balancers / Reverse-Proxy
Bước đầu tiên để đạt được tính khả dụng cao là cài đặt hai hoặc nhiều Reverse Proxy cân bằng tải sẽ giao tiếp giữa các server ứng dụng của bạn.
- Khởi tạo hai server cloud tại hai vị trí:
Tạo hai server DigitalOcean.
ví dụ: Bài viết: Cách tạo server cloud DO
- Cài đặt bộ cân bằng tải / Reverse Proxy trên mỗi server :
Cài đặt và cấu hình Nginx, Apache hoặc HAProxy.
ví dụ: Bài viết: Nginx làm proxy giao diện user , cân bằng tải HAProxy trên Ubuntu
- Nhận địa chỉ IP của bộ cân bằng tải của bạn:
/sbin/ifconfig
và tìm địa chỉ IP của các server của bạn.
ví dụ: inet addr:107.170.40.112
Cài đặt bản ghi DNS
Bản ghi DNS A dịch domain (ví dụ: www.digitalocean.com
) sang địa chỉ IP mà máy có thể truy cập.
Khi bạn đã hoàn tất việc cấu hình hai server với Reverse Proxy cân bằng tải trên mỗi server , bước tiếp theo bao gồm thêm 2 bản ghi A thông qua dịch vụ DNS của DigitalOcean để trỏ domain của bạn đến địa chỉ IP.
- Đăng nhập vào console DigitalOcean của bạn:
Nhấp vào DNS
trên menu bên trái và thêm một domain mới trỏ đến server cân bằng tải từ bước trước.
- Thêm Bản ghi A mới:
Khi bạn đã ở bước tiếp theo, hãy nhấp vào “Thêm bản ghi” ở phía trên và tạo bản ghi A mới, với địa chỉ IP của server cân bằng tải khác.
Cài đặt server ứng dụng
Bước tiếp theo là cài đặt các server ứng dụng.
Để phân phối global hoạt động, giống như các server cân bằng tải đầu tiên mà bạn đã tạo, bạn cần hai server mới để lưu trữ các server ứng dụng của bạn .
Lưu ý: Bạn cũng có thể chạy từng server ứng dụng của bạn trên cùng một máy như bộ cân bằng tải; tuy nhiên, điều này sẽ không được khuyến khích.
Triển khai hoặc nhân bản server server ứng dụng của bạn trên hai vị trí. Ví dụ:
Ở NY 1 và NY 2 ;
Trong AMS 1 và AMS 2 ;
Ở SF 1 và NY 2, v.v.
Quay lại bước đầu tiên và làm theo các bài viết cài đặt bộ cân bằng tải, cấu hình chúng cho các kết nối đến proxy tới hai server phục vụ ứng dụng này.
Cài đặt database
Thật khó để tưởng tượng một ứng dụng web không có database . Phần khó nhất của việc phân phối ứng dụng trên nhiều server có lẽ là xử lý database .
Tùy thuộc vào sự lựa chọn của bạn về server database , hãy tạo một cấu hình trùng lặp nhưng trên nhiều vị trí.
Xem:
- Đối với MySQL Master / Slave Replication:
Cách cài đặt Master Slave Replication trong MySQL
- Đối với MySQL Master / Master Replication:
Cách cài đặt MySQL Master-Master Replication
- Đối với PostgreSQL Master / Slave Replication:
Cách cài đặt bản sao Master Slave trên PostgreSQL
Sau khi bạn hoàn tất việc tạo cấu trúc database sao chép, hãy trỏ các ứng dụng của bạn sử dụng địa chỉ của chúng, như được tương tác trong hướng dẫn với quyền là server DB.
<div class = “author”> Gửi bởi: <a
href = “https://twitter.com/ostezer”> Hệ điều hành Tezer </a> </div>
Các tin liên quan