Môi trường kết hợp, trong đó một phần của cơ sở hạ tầng cơ sở dữ liệu được đặt tại chỗ và một phần nằm trong đám mây công cộng không phải là hiếm. Có thể có những lý do khác nhau để sử dụng thiết lập như vậy - khả năng mở rộng, tính linh hoạt, tính khả dụng cao, khả năng phục hồi sau thảm họa. Làm thế nào để thực hiện thiết lập này một cách thích hợp? Điều này có thể khó khăn vì bạn phải cân nhắc một số mảnh ghép phải khớp với nhau. Blog này nhằm cung cấp cho bạn một số thông tin chi tiết về cách thiết lập như vậy có thể trông như thế nào.
Kết nối
Chúng tôi không đi vào chi tiết ở đây vì có nhiều cách thiết lập kết nối giữa thiết lập tại chỗ của bạn và đám mây công cộng. Nó sẽ phụ thuộc vào cơ sở hạ tầng bạn có, đám mây công cộng bạn muốn sử dụng và nhiều yếu tố khác. Phạm vi tùy chọn có thể bắt đầu với bộ định tuyến hỗ trợ BGP, thông qua VPN phần cứng, VPN phần mềm kết thúc trên đường hầm SSH như một cách để tạm thời kết nối mạng của bạn với các phiên bản trong đám mây công cộng. Điều quan trọng, dù bạn định làm gì, kết quả cuối cùng phải là kết nối đầy đủ và minh bạch từ mạng tại chỗ của bạn với các phiên bản nằm trong đám mây công cộng.
Cân nhắc về tính khả dụng cao
MySQL replication là một cách tuyệt vời để xây dựng các hệ thống có tính khả dụng cao nhưng nó đi kèm với những hạn chế đáng kể. Điều chính cần xem xét là người viết - bạn chỉ có thể có một nơi để gửi bài viết của mình cho - người chủ. Bất kể bạn muốn thiết kế toàn bộ môi trường như thế nào, bạn phải xem xét cẩn thận vị trí của tổng thể. Nhiều khả năng bạn muốn nó trở thành một phần của môi trường chứa các máy chủ ứng dụng. Hãy xem xét thiết lập sau:
Chúng tôi có một thiết lập tại chỗ với ba nút MySQL và hai nô lệ bổ sung nằm trong đám mây công cộng, hoạt động như một phương tiện khôi phục thảm họa cho công ty, rõ ràng là nút có thể ghi phải được gắn với máy chủ ứng dụng trong phần riêng tư của đám mây. Chúng tôi muốn giữ độ trễ thấp nhất có thể cho các kết nối quan trọng nhất.
Kiểu thiết kế này tập trung vào tính khả dụng của cơ sở dữ liệu - nếu các nút đặt tại chỗ không có sẵn, các máy chủ ứng dụng có thể kết nối với phần từ xa của thiết lập - các nút cơ sở dữ liệu nằm trên đám mây công cộng. Lý tưởng nhất là bạn nên sử dụng một số loại proxy cho việc này - ProxySQL là một trong những giải pháp có thể theo dõi cấu trúc liên kết và cấu hình lại nếu cần dựa trên chuỗi nhân rộng hiện có.
Nếu bạn muốn xem xét thêm thiết lập hoạt động tích cực, trong đó bạn có các nút ứng dụng trên cả riêng tư và công khai, bạn phải thực hiện một số thỏa hiệp vì quá trình ghi sẽ phải được chuyển qua mạng WAN, từ đám mây công cộng sang đám mây riêng (hoặc ngược lại, nếu vị trí chính của bạn nơi bạn hoạt động trên đám mây công cộng).
Một lần nữa, ProxySQL là proxy được lựa chọn. Điều tuyệt vời là, ProxySQL có thể được định cấu hình như một Cụm ProxySQL, đảm bảo rằng các thay đổi cấu hình được giới thiệu trong một nút sẽ được sao chép qua các nút ProxySQL còn lại.
Xử lý Lỗi
Chúng ta hãy xem xét một vài tình huống thất bại. Trước bất cứ điều gì, chúng ta phải lưu ý rằng sao chép không đồng bộ MySQL không nhận biết được cụm do đó việc phân chia mạng là thứ phải được xử lý theo cách thủ công - người dùng sẽ quyết định và kéo nút chuyển để thúc đẩy một trong các nô lệ trong môi trường có sẵn. Người dùng cũng phải đảm bảo rằng môi trường bị mất kết nối mạng sẽ hoạt động như bình thường và nó sẽ không tiếp tục hoạt động.
Nếu phần riêng tư của đám mây không khả dụng, như chúng tôi đã đề cập trước đó, thì hành động thủ công sẽ được yêu cầu để thúc đẩy một trong các nô lệ trở thành chủ nhân mới. Sau đó, tất cả các máy chủ ứng dụng web còn lại nằm trong đám mây công cộng, sử dụng ProxySQL cục bộ, sẽ được chuyển hướng lưu lượng truy cập đến máy chủ mới và tất cả các nô lệ còn lại. Mặt khác, do chúng tôi đã mất ba trong số năm nút MySQL, chúng tôi muốn mở rộng quy mô thiết lập đám mây công cộng - ClusterControl có thể giúp bạn thêm một cách hiệu quả các nút bổ sung vào cụm của bạn.
Một tình huống khác có thể là người viết đã gặp sự cố trong khi kết nối giữa thiết lập tại chỗ của chúng tôi và đám mây công cộng hoạt động tốt.
Trong trường hợp như vậy, chúng tôi muốn thăng chức một trong những nô lệ trở thành chủ nhân mới. Tùy thuộc vào các yêu cầu, chúng tôi cũng có thể muốn cái chính mới được thăng cấp giữa các nút trong một phần môi trường nhất định. ClusterControl có khả năng đưa vào danh sách trắng hoặc danh sách đen các nút để chuyển đổi dự phòng, đảm bảo rằng bạn có toàn quyền kiểm soát quá trình chuyển đổi dự phòng và bạn có thể chọn các nút nào nên được coi là ứng cử viên cho một nút chính mới và theo thứ tự nào.
Chúng tôi hy vọng blog này đã cung cấp cho bạn một số ý tưởng về cách thiết lập đám mây kết hợp để nhân rộng MySQL hoạt động và cách nó có thể bảo vệ bạn trong trường hợp cơ sở dữ liệu hoặc mạng bị lỗi.