Mục lục bài viết

Blue/Green Deployments là gì?

Dựa trên khái niệm xanh lam/xanh lục, “sau khi xây dựng một môi trường mà việc triển khai mới và cũ tồn tại đồng thời, chuyển đổi traffic bằng cách kiểm soát định tuyến bằng bộ cân bằng tải, và chuyển đổi môi trường mà không cần downtime” được gọi là Blue/Green Deployments.

Sau khi chuyển đổi, môi trường blue vẫn ở trạng thái chờ trong một thời gian, và nếu có vấn đề nghiêm trọng xảy ra trong môi trường green, nó có thể nhanh chóng quay lại (roll back) trạng thái ban đầu. 

Nếu không có vấn đề gì trong việc vận hành ở môi trường mới, bạn có thể loại bỏ môi trường cũ và sử dụng nó như một môi trường để phát triển và kiểm tra cho release tiếp theo.

Các dịch vụ khác của AWS cũng có thể triển khai Blue/Green giống như vậy. 

Nội dung cập nhật

Với cập nhật này, bạn có thể cấu hình triển khai Blue/Green chỉ với vài bước trên management console.

Cập nhật lần này cung cấp triển khai Blue/Green của cơ sở dữ liệu dưới dạng quản lý. Khi kích hoạt triển khai Blue/Green, môi trường mirroring được khởi động đồng thời với môi trường sản xuất. Vì đây là một môi trường mirroring nên không có mất mát dữ liệu.

Về cách sử dụng, được dự định để bảo trì hệ điều hành, ứng dụng bản vá, thay đổi schema hoặc parameter.

Sau khi xác định chắc chắn rằng có thể chuyển từ môi trường triển khai cũ sang môi trường triển khai mới, bạn có thể thực hiện chuyển đổi.

Việc chuyển đổi sang môi trường mới chỉ mất một phút

Trong quá trình chuyển đổi, cả môi trường triển khai cũ và mới đều bị chặn ghi để đảm bảo không mất dữ liệu. Traffic bây giờ sẽ chảy từ môi trường cũ sang môi trường mới.

Amazon Aurora cũng đã triển khai Blue/Green tương tự theo một phương pháp phức tạp hơn. 

https://aws.amazon.com/jp/blogs/database/automate-the-amazon-aurora-mysql-blue-green-deployment-process

Dưới đây là một số yêu cầu tiền quyết khi sử dụng.

Các tính năng chưa được hỗ trợ trong việc triển khai Blue/Green

  • Proxy Amazon RDS
  • Cascading Read Replicas
  • Cross-Region Read Replicas
  • Multi-AZ DB Cluster
  • AWS CloudFormation

Các hạn chế trong quá trình triển khai Blue/Green

  • Không thể thay đổi DB instance chưa được mã hóa sang DB instance đã được mã hóa
  • Không thể thay đổi DB instance đã được mã hóa sang DB instance chưa được mã hóa
  • Không thể thay đổi thành engine version thấp hơn so với DB instance của môi trường Blue.
  • Các tài nguyên của môi trường Blue và Green cần phải thuộc cùng một tài khoản AWS
  • Có thể sử dụng với Amazon Aurora (tương thích MySQL) phiên bản 5.6 trở lên, Amazon RDS for MySQL 5.7 trở lên, Amazon RDS for MariaDB 10.2 trở lên.

Thử nghiệm với Amazon Aurora

  1. Tạo trước một cụm Aurora MySQL để kiểm chứng.
  1. Nhấp vào Create Blue/Green Deployment trong menu thả xuống “Actions”.

Lúc này, vì một lý do nào đó, nó vẫn hiển thị “Creater Blue/Green deployment – Beta”…. 

  1. Cấu hình cơ sở dữ liệu cần thay đổi, như phiên bản Engine, DB cluster parameter group, DB parameter group for the green database. Ở đây đã chọn aurora-mysql8.0 để đặt định danh môi trường Blue-Green là “staging-environment-db”.

Như được ghi chú trong các hạn chế, bạn không thể chọn một engine version thấp hơn DB hiện tại.

  1. Nhấp vào “Create staging environment”.
  1. Thất bại với lỗi “Blue Green Deployments requires cluster parameter group has binlog enabled.”

Cần phải thay đổi giá trị của tham số binlog_format trong nhóm tham số cụm DB từ OFF thành MIXED để kích hoạt binary logging.

  1. Bắt đầu tạo môi trường Green.

Khi hoàn tất việc tạo, như đã hiển thị trên màn hình trước đó, phát sinh chi phí cho môi trường Green.

  1. Chuẩn bị chuyển đổi cơ sở dữ liệu môi trường Green sang môi trường production!
  1. Kiểm tra cấu hình cơ sở dữ liệu môi trường green, chuẩn bị cho việc chuyển đổi (switchover). Chọn “Chuyển đổi”.

Ngoài ra, bạn cũng có thể đặt cấu hình timeout, để xác định thời gian giới hạn tối đa cho switchover. Bằng cách áp dụng “Switchover Guardrail” trong Blue/Green Deployment, nếu phát hiện sự vượt quá thời gian được chỉ định, switchover đó sẽ được hủy. Do đó, không có bất kỳ thay đổi nào đối với môi trường.

  1. Đang trong quá trình chuyển đổi.
  1. Khi chuyển đổi hoàn tất, tên của cơ sở dữ liệu sẽ chứa từ “old”. 
  1. Sau khi switchover hoàn tất, Blue/Green Deployment sẽ không tự động xóa môi trường triển khai cũ (môi trường green). Nếu cần thiết, bạn có thể truy cập vào môi trường sản xuất cũ (môi trường green) để thực hiện các kiểm tra bổ sung hoặc xác nhận hiệu suất, v.v.

Ngoài ra, nếu môi trường cũ không còn cần thiết, người dùng sẽ phải xóa nó. Đối với instance ở môi trường sản xuất cũ, phí sẽ được tính cho đến khi nó được xóa.

Điểm cần lưu ý

  • Cần phải thay đổi giá trị của tham số binlog_format trong nhóm tham số cluster từ OFF sang MIXED. 
  • Không thể xây dựng môi trường đã bao gồm nâng cấp lên phiên bản V3 cho cluster Aurora sử dụng db.t3.small. 

Khu vực áp dụng

Tất cả các khu vực thương mại của AWS và khu vực AWS GovCloud, ngoại trừ Trung Quốc, đều có sẵn cho Amazon Aurora tương thích MySQL phiên bản 5.6 trở lên, Amazon RDS for MySQL phiên bản chính 5.6 trở lên, và Amazon RDS for MariaDB 10.2 trở lên kể từ thời điểm công bố.