Blue/Green Deployment Và Cách Triển Khai Trên AWS RDS Service Chuyên mục Devops 2024-05-21 8 Lượt xem 8 Lượt thích 0 Bình luận
Tổng quan về Triển khai Amazon RDS Blue/Green
Bằng cách sử dụng Amazon RDS Blue/Green Deployments, bạn có thể thực hiện và kiểm thử các thay đổi cơ sở dữ liệu trước khi triển khai chúng trong môi trường production. Một triển khai blue/green tạo ra một môi trường đánh giá mà sao chép môi trường production. Trong một triển khai blue/green, môi trường Blue là môi trường production hiện tại. Môi trường Green là môi trường staging. Môi trường staging được đồng bộ với môi trường production hiện tại bằng cách sử dụng sao chép logic.
Bạn có thể thực hiện các thay đổi cho các phiên bản RDS DB trong môi trường Green mà không ảnh hưởng đến các khối công việc production. Ví dụ, bạn có thể nâng cấp file system configuration, or change database parameters, hoặc thay đổi các thông số cơ sở dữ liệu trong môi trường staging. Bạn có thể thử nghiệm các thay đổi một cách kỹ lưỡng trong môi trường Green. Khi sẵn sàng, bạn có thể chuyển đổi các môi trường để thúc đẩy môi trường Green trở thành môi trường production. Việc chuyển đổi thường chỉ mất dưới một phút mà không có mất mát dữ liệu và không cần thay đổi config lại ứng dụng.
Vì môi trường Green là một bản sao của cấu trúc của môi trường production, môi trường Green bao gồm các tính năng được sử dụng bởi các DB instance. Những tính năng này bao gồm các bản sao đọc, cấu hình lưu trữ, DB snapshots, sao lưu tự động, Performance Insights và Enhanced Monitoring. Nếu DB instance Green là một triển khai DB instance Multi-AZ, thì DB instance Green cũng là một triển khai DB instance Multi-AZ.
Benefits of using Amazon RDS Blue/Green Deployments
Bằng cách sử dụng Triển khai Blue/Green trên Amazon RDS, bạn có thể duy trì cập nhật các bản vá bảo mật, cải thiện hiệu suất cơ sở dữ liệu và áp dụng các tính năng cơ sở dữ liệu mới một cách nhanh chóng, dễ dàng. Các triển khai blue/green giảm thiểu rủi ro và thời gian downtime cho các cập nhật cơ sở dữ liệu, chẳng hạn như nâng cấp phiên bản động cơ lớn hoặc nhỏ.
Các triển khai blue/green cung cấp các lợi ích sau:
- Dễ dàng tạo một production-ready staging environment.
- Tự động sao chép các thay đổi cơ sở dữ liệu từ môi trường production sang môi trường staging.
- Kiểm tra các thay đổi cơ sở dữ liệu trong một môi trường staging an toàn mà không ảnh hưởng đến môi trường production.
- Giữ cập nhật với các bản vá cơ sở dữ liệu và cập nhật hệ thống.
- Triển khai và kiểm tra các tính năng cơ sở dữ liệu mới.
- Chuyển đổi môi trường staging của bạn thành môi trường production mới mà không cần thay đổi config ứng dụng của bạn.
- Chuyển đổi một cách an toàn thông qua việc sử dụng các rào cản bảo vệ tích hợp sẵn.
- Loại bỏ mất mát dữ liệu trong quá trình chuyển đổi.
- Chuyển đổi nhanh chóng, thường dưới một phút tùy thuộc vào khối lượng công việc của bạn.
Workflow of a blue/green deployment
Link doc trên AWS Workflow of a blue/green deployment.
Best practices for blue/green deployments
General best practices
- Kiểm tra kỹ lưỡng các DB instance trong môi trường Green trước khi chuyển đổi.
- Giữ các cơ sở dữ liệu trong môi trường Green ở chế độ read-only. Bạn có thể enable writeable với các hoạt động ghi, update trên môi trường Green thì nên cẩn thận vì chúng có thể dẫn đến xung đột sao chép. Chúng cũng có thể dẫn đến dữ liệu không mong muốn trong các cơ sở dữ liệu production sau khi chuyển đổi.
- Khi sử dụng triển khai blue/green để triển khai các thay đổi schema, chỉ thực hiện các thay đổi tương thích với sao chép.
- Ví dụ, bạn có thể thêm cột mới vào cuối bảng, tạo chỉ mục hoặc xóa chỉ mục mà không làm gián đoạn sao chép từ Blue deployment
sang Green deployment. Tuy nhiên, các thay đổi schema, chẳng hạn như đổi tên cột hoặc đổi tên bảng, sẽ làm gián đoạn sao chép đến Green deployment.
- Ví dụ, bạn có thể thêm cột mới vào cuối bảng, tạo chỉ mục hoặc xóa chỉ mục mà không làm gián đoạn sao chép từ Blue deployment
- Sau khi bạn tạo triển khai blue/green, xử lý tải lazy loading nếu cần. Đảm bảo việc tải dữ liệu đã hoàn tất trước khi chuyển đổi. Để biết thêm thông tin, xem Xử lý tải lazy loading khi bạn tạo một triển khai blue/green.
- Khi bạn chuyển đổi một triển khai blue/green, tuân thủ các switchover best practices. Để biết thêm thông tin, xem best practices Tốt Nhất Cho Việc switchover.
RDS for MySQL best practices
- Tránh sử dụng các bộ công cụ non-transactional storage engines, chẳng hạn như MyISAM, không được tối ưu hóa cho sao chép.
- Tối ưu hóa các bản sao đọc cho sao chép nhật ký nhị phân.
- Ví dụ, nếu phiên bản động cơ DB của bạn hỗ trợ, hãy xem xét sử dụng sao chép GTID, sao chép song song và sao chép an toàn khi gặp sự cố trong môi trường sản xuất của bạn trước khi triển khai triển khai blue/green của bạn. Các tùy chọn này thúc đẩy tính nhất quán và độ bền của dữ liệu của bạn trước khi bạn chuyển đổi triển khai blue/green của mình. Để biết thêm thông tin về sao chép GTID cho bản sao đọc, xem Sử dụng sao chép dựa trên GTID.
Thực Hành
Tuỳ vào loại DB instance mà bạn lựa chọn ở bài thực hành này chúng ta sẽ sử dụng Mysql.
- Tạo Parameter groups
- Vì mặc định khi RDS tạo ra một DB instance mysql chỉ cho phép read-only, trong dư án của các bạn nếu có tính năng mới mà cần chỉnh sửa schema hoặc thay đổi kiểu dữ liệu thì các bạn phải custom một Parameter groups để có quyền chỉnh sửa.
- Nếu mục đích của bạn khi loại bỏ read_only là để thay đổi các loại cột như tiny thành int, bạn cũng cần thay đổi tham số slave_type_conversions. Mình khuyến nghị đặt nó thành ALL_NON_LOSSY như là tùy chọn an toàn nhất. Xem tài liệu để biết thêm thông tin.
- Tạo Blue/Green deployment và gắn Parameter groups.
- Bước 3: Test Blue/Green deployment
- Các bạn cùng xem chi tiết trong video nhé!
Bình luận (0)