Ngày nay, có rất nhiều chiến lược triển khai để bạn lựa chọn và khi thời gian trôi qua, sẽ chỉ có nhiều chiến lược triển khai hơn. Điều đó nói lên rằng, hai trong số các chiến lược triển khai phổ biến nhất được một số công ty lớn nhất hiện nay tích cực sử dụng là chiến lược triển khai Canary và Blue-green.
Khi so sánh việc triển khai Blue-Green với Canary, đó không chỉ là về tốc độ hay sự đơn giản; một trong những yếu tố quan trọng nhất cần xem xét khi chọn một trong những chiến lược này là thời gian ngừng triển khai.
Để giảm thiểu thời gian ngừng hoạt động triển khai và cung cấp quá trình chuyển đổi liền mạch khi triển khai các bản cập nhật hoặc sửa đổi của bạn, việc chọn tùy chọn phù hợp hơn trong quá trình triển khai Canary so với Blue-Green là điều tối quan trọng.
Vì vậy, hãy cùng tìm hiểu xem mỗi chiến lược mang lại những gì, bao gồm so sánh trực tiếp về việc triển khai Blue-Green so với Canary và trải nghiệm của chúng tôi khi triển khai Canary so với triển khai Blue-Green.
Triển khai Xanh-Xanh là gì và Nó mang lại những gì?
Trong chiến lược triển khai Blue-Green, phiên bản mới của ứng dụng có thể được triển khai ngay lập tức sau khi nó được thử nghiệm và xác thực. Điều này là nhờ có hai môi trường giống hệt nhau: môi trường xanh lam và xanh lục, do đó có tên triển khai Xanh-Xanh.
Điều này hoạt động vì một trong những môi trường này đang hoạt động và môi trường còn lại không hoạt động. Điều này có nghĩa là phiên bản mới của ứng dụng có thể được triển khai trên môi trường không hoạt động (giả sử là môi trường màu xanh lá cây). Vì hai môi trường này hoàn toàn giống nhau về tài nguyên, cơ sở hạ tầng và cấu hình nên mọi vấn đề trong bản cập nhật đều có thể được giải quyết trước khi nó được triển khai đầy đủ.
Sau khi bản cập nhật đã được thử nghiệm và các nhà phát triển hài lòng rằng nó hoạt động, lưu lượng truy cập trực tiếp sẽ được chuyển sang môi trường không hoạt động này. Điều này làm cho môi trường không hoạt động (màu xanh lá cây) trở thành môi trường hoạt động và môi trường hoạt động trước đó (màu xanh lam) không hoạt động.
Giờ đây, môi trường màu xanh lam không hoạt động sẽ trở thành môi trường chờ và có thể được sử dụng để thử nghiệm các bản cập nhật mới hơn trong khi môi trường màu xanh lá cây đang hoạt động, chạy bản cập nhật mới được triển khai. Bằng cách này, hầu như không có thời gian ngừng hoạt động vì lưu lượng truy cập ngay lập tức được chuyển sang môi trường không hoạt động.
Ngoài ra, nếu bản cập nhật có bất kỳ sự cố nào, tính năng khôi phục cho phép bạn chuyển về phiên bản cũ hơn của ứng dụng. Điều đó có nghĩa là, nếu vấn đề phát sinh khi nhà phát triển bắt đầu thực hiện bản cập nhật mới trong môi trường không hoạt động, thì việc quay lại môi trường này sẽ không còn khả thi nữa vì phiên bản cũ hơn cũng không còn khả dụng trong môi trường này.
Trong khi nhiều công ty và tổ chức sử dụng chiến lược này, bạn có thể thấy một ví dụ về chiến lược này đang hoạt động tại Spotify. Vì các dịch vụ của Spotify cần khả dụng 24/7 nên nó luôn có sẵn môi trường sao lưu, không hoạt động khi có bản cập nhật mới được phát hành.
Triển khai Canary là gì và nó mang lại những gì?
Sự khác biệt chính giữa triển khai Canary so với Blue-Green là thay vì có hai môi trường nơi các bản cập nhật được triển khai cùng lúc cho tất cả người dùng, trong chiến lược triển khai Canary, các bản cập nhật lần đầu tiên được phát hành cho một nhóm nhỏ người dùng.
Nếu bản cập nhật có bất kỳ vấn đề nào, chỉ một phần nhỏ người dùng gặp phải và đưa ra phản hồi. Sau khi các vấn đề đã được giải quyết, bản cập nhật sẽ được phát hành cho nhiều người dùng hơn, nơi họ để lại phản hồi cho nhà phát triển nếu họ gặp bất kỳ vấn đề nào.
Chu kỳ này được lặp lại với lượng người dùng ngày càng lớn hơn và tất cả các vấn đề với bản cập nhật đều được giải quyết cho đến khi bản cập nhật được phát hành cho 100% người dùng. Ví dụ: lúc đầu, bản cập nhật sẽ chỉ được phát hành cho 2%, sau đó là 25%, rồi 75% và cuối cùng là 100% người dùng.
Bản phát hành dần dần này trong quá trình triển khai Canary so với Blue-Green mang lại khả năng triển khai có kiểm soát và linh hoạt hơn, cho phép các nhà phát triển thử nghiệm các tính năng và bản cập nhật trong môi trường được kiểm soát, nơi chỉ một phần nhỏ gặp phải các sự cố tiềm ẩn.
Cuối cùng, Canary cũng cung cấp tính năng khôi phục tương tự; tuy nhiên, vì việc triển khai được thực hiện dần dần và qua các giai đoạn nên việc khôi phục được thực hiện trong Canary cũng được thực hiện dần dần và qua các giai đoạn cho đến khi đạt được phiên bản ổn định.
Một ví dụ nổi tiếng về chiến lược triển khai này là việc Netflix sử dụng Canary song song với một công cụ có tên Chaos Monkey, công cụ này cố tình tạo ra các lỗi trong hệ thống của họ. Nếu lỗi ảnh hưởng đến môi trường canary, nhóm Netflix có thể phân tích cách hệ thống phản hồi và điều chỉnh cho phù hợp. Bằng cách này, Netflix có thể xác minh rằng bản cập nhật vẫn ổn định và linh hoạt ngay cả trong những điều kiện bất lợi.
Triển khai Xanh-Xanh Vs. chim hoàng yến
Cả hai chiến lược triển khai này đều mang lại những lợi ích riêng; tuy nhiên, chúng cũng có những hạn chế. Đó là lý do tại sao điều quan trọng là phải cân nhắc ưu và nhược điểm của việc phát triển Blue-Green so với Canary trước khi đưa ra quyết định.
Nếu bạn vẫn không chắc chắn về chiến lược nào sẽ tiến xa hơn sau phần này, tôi cũng đã đưa ra kinh nghiệm của chúng tôi với hai chiến lược này và những gì chúng tôi đã học được ở cuối bài viết này.
Giảm thời gian ngừng hoạt động
Một trong những mối quan tâm chính và trọng tâm của bài viết này là việc giảm thời gian ngừng hoạt động khi triển khai Blue-Green so với Canary. Một trong những điểm mạnh của việc triển khai Blue-Green là tốc độ của nó, vì bạn có thể triển khai tính năng hoặc bản cập nhật ứng dụng của mình ngay lập tức thông qua việc sử dụng hai môi trường của nó.
Mặt khác, phương pháp triển khai dần dần của Canary cho phép giảm thiểu thời gian ngừng hoạt động vì không chỉ một nhóm nhỏ người dùng gặp phải sự cố mà vì phản hồi được cung cấp ở mỗi giai đoạn nên việc khắc phục sự cố có thể được thực hiện nhanh hơn nhiều và không có thời gian ngừng hoạt động.
Ngoài ra, mặc dù cả hai dịch vụ đều cung cấp tính năng khôi phục, tính năng khôi phục của triển khai Blue-Green diễn ra tức thời, mang đến cho nhà phát triển một bản sao lưu đáng tin cậy trong trường hợp có bất kỳ sự cố lớn nào. Điều đó có nghĩa là, như tôi đã đề cập trước đó, phiên bản sao lưu sẽ không có sẵn nếu công việc trên phiên bản mới hơn được thực hiện trong môi trường không hoạt động.
Tính năng rollback của Canary chỉ có thể được sử dụng dần dần, giống như quá trình triển khai của nó. Tuy nhiên, nó luôn có sẵn vì phiên bản ổn định, cũ hơn không phụ thuộc vào môi trường nơi các bản cập nhật mới hơn được thử nghiệm và hoạt động.
Về mặt giảm thời gian ngừng hoạt động triển khai, khi so sánh việc triển khai Canary với Blue-Green, Canary vượt trội hơn về khả năng kiểm soát rủi ro và kiểm soát chi tiết; tuy nhiên, nếu chúng ta chỉ xem xét việc giảm thời gian ngừng hoạt động thì Blue-Green sẽ tốt hơn vì quá trình chuyển đổi diễn ra tức thời.
Điều đó cho thấy, khi tranh luận về việc triển khai Blue-Green so với việc triển khai Canary, điều quan trọng là phải xem xét các yếu tố khác ngoài việc giảm thời gian ngừng hoạt động.
Loại ứng dụng
Nói chung, chúng ta có thể chia ứng dụng thành các ứng dụng thiên về giao dịch hoặc các ứng dụng thiên về nội dung. Trong các ứng dụng có nhiều giao dịch, việc triển khai Blue-Green là một lựa chọn tốt hơn nhiều vì tính khả dụng của dịch vụ cao và thời gian ngừng hoạt động tối thiểu là ưu tiên hàng đầu, đó là lý do tại sao tính năng chuyển đổi tức thời và khôi phục tức thì của Blue-Green lại vượt trội hơn Canary.
Mặt khác, các ứng dụng hướng nội dung không phụ thuộc vào các giao dịch thời gian thực. Vì các ứng dụng này thường được sử dụng cho các nền tảng truyền thông xã hội và dịch vụ tương tác với người dùng nên Canary là một chiến lược tốt hơn nhiều vì bạn có thể dần dần tung ra các bản cập nhật và nhận phản hồi liên tục ở từng giai đoạn.
Chi phí cơ sở hạ tầng
Một mối quan tâm chính khác khi lựa chọn giữa triển khai Blue-Green và triển khai Canary là chi phí. Đương nhiên, khi triển khai Blue-Green, chi phí sẽ cao hơn do cần phải duy trì hai môi trường riêng lẻ.
Đó là lý do tại sao môi trường sản xuất đơn lẻ của Canary là một lựa chọn tiết kiệm chi phí hơn nhiều, khiến nó trở thành lựa chọn phù hợp hơn cho các nhóm nhỏ hơn hoặc các ứng dụng ít sử dụng nhiều tài nguyên hơn.
Khả năng mở rộng và bảo trì dài hạn
Cuối cùng, mặc dù việc triển khai xanh lam có thể được mở rộng quy mô nhưng việc duy trì hai môi trường hoàn chỉnh cho các ứng dụng quy mô lớn có thể tốn nhiều tài nguyên và phức tạp. Theo thời gian, việc quản lý và duy trì các môi trường trùng lặp có thể tăng thêm chi phí đáng kể, đặc biệt đối với các ứng dụng có nhu cầu cơ sở hạ tầng phức tạp.
Điều này làm cho việc triển khai Canary so với Blue-Green về khả năng mở rộng và bảo trì trở nên khá dễ dàng để quyết định. Với việc triển khai Canary, khả năng mở rộng thường đơn giản hơn và tiết kiệm chi phí hơn vì không yêu cầu môi trường trùng lặp.
Thay vào đó, nó tập trung vào việc mở rộng quy mô trong môi trường chính bằng cách dần dần mở rộng cơ sở người dùng tiếp xúc với những thay đổi mới. Về lâu dài, thiết lập này dễ quản lý hơn nhiều vì nó làm giảm độ phức tạp của cơ sở hạ tầng và đơn giản hóa việc bảo trì.
Trải nghiệm của Cloudzy với việc triển khai Blue-Green Vs. Triển khai Canary
Khi cung cấp dịch vụ DevOps cho khách hàng, chúng tôi hiểu rằng sự hài lòng của khách hàng, tính sẵn sàng cao và thời gian ngừng hoạt động tối thiểu là rất quan trọng đối với sự thành công trong kinh doanh của họ. Trong một trường hợp cụ thể, một khách hàng đã liên hệ với chúng tôi để trợ giúp nâng cấp cơ sở hạ tầng lớn. Nhóm được giao nhiệm vụ quyết định giữa việc triển khai Blue-Green và triển khai Canary cho hệ thống của họ.
Sau khi cân nhắc kỹ lưỡng, lần đầu tiên chúng tôi quyết định thử triển khai Blue-Green vì nó hầu như không có thời gian ngừng hoạt động. Chúng tôi đã thiết lập một môi trường xanh giống hệt nhau và chuẩn bị triển khai bản nâng cấp. Có rất nhiều áp lực vì chỉ cần nhấn nút, tất cả lưu lượng truy cập sẽ được chuyển sang môi trường xanh và như các nhà phát triển biết, cho dù bạn có thử nghiệm những thứ này đến mức nào thì vẫn có một chút khó khăn về cách nó sẽ diễn ra.
Rất may, mọi thứ đều ổn. Quá trình chuyển đổi diễn ra suôn sẻ như bơ và chúng tôi hầu như không gặp bất kỳ vấn đề gì. Theo thời gian, khi dịch vụ và người dùng của khách hàng tăng lên, chúng tôi cần triển khai các tính năng mới và cuộc tranh luận giữa Blue-Green và Canary lại bùng lên.
Tuy nhiên, lần này không có nhiều tranh cãi. Đây là những tính năng tương đối nhỏ hơn và chắc chắn không nằm ở quy mô của bản cập nhật cơ sở hạ tầng đó. Vì vậy, một cách tự nhiên, chúng tôi đã chọn Canary vì chúng tôi có thể triển khai các tính năng cho một phần nhỏ cơ sở người dùng của khách hàng và giải quyết mọi vấn đề mà họ gặp phải thông qua phản hồi của người dùng.
Đó chắc chắn là quyết định đúng đắn vì mặc dù chúng tôi không gặp phải bất kỳ vấn đề lớn nào nhưng một số vấn đề nhỏ hơn bắt đầu xuất hiện, được 5% cơ sở người dùng khách hàng của chúng tôi báo cáo rằng tính năng này đã được triển khai.
Tại Cloudzy, chúng tôi tin vào sức mạnh của các giải pháp phù hợp. Cho dù doanh nghiệp của bạn cần độ tin cậy của việc triển khai Blue-Green hay tính linh hoạt của việc triển khai Canary, nhóm DevOps của chúng tôi đều có kinh nghiệm và kiến thức để triển khai chiến lược tốt nhất cho cơ sở hạ tầng của bạn. Liên hệ với chúng tôi đây ngay hôm nay để tìm hiểu cách chúng tôi có thể tối ưu hóa quy trình triển khai và giữ cho hoạt động của bạn diễn ra suôn sẻ.
Nói về VPS, chúng tôi cung cấp một số mức giá thấp nhất trong ngành VPS với các tính năng bao gồm hơn 12 địa điểm trên toàn thế giới, kết nối Internet chuyên dụng đạt tốc độ lên tới 10 Gbps, bộ lưu trữ SSD NVMe dành cho doanh nghiệp, bộ xử lý AMD EPYC tốc độ tăng áp 3,23 GHz mạnh mẽ và thời gian hoạt động 99,95%. Kiểm tra của chúng tôi Giá VPS để biết thêm chi tiết.
suy nghĩ cuối cùng
Vào cuối ngày, bạn thực sự không thể nói rằng cái này tốt hơn cái kia theo bất kỳ khía cạnh chính nào khi thảo luận về việc triển khai Canary so với triển khai Blue-Green. Đó chỉ là vấn đề trường hợp sử dụng và trường hợp nào phù hợp nhất với nhu cầu cụ thể của bạn.
Câu hỏi thường gặp
Sự khác biệt chính giữa triển khai xanh lam và hoàng yến là gì?
Sự khác biệt chính giữa chiến lược triển khai Blue-Green và Canary là ở cách phát hành các bản cập nhật. Triển khai Blue-Green sử dụng hai môi trường giống hệt nhau, với các bản cập nhật được áp dụng cho môi trường không hoạt động, cho phép chuyển đổi tức thì mà hầu như không có thời gian ngừng hoạt động. Ngược lại, việc triển khai Canary phát hành các bản cập nhật dần dần cho một nhóm nhỏ người dùng trước, theo dõi các vấn đề trước khi triển khai dần dần cho toàn bộ cơ sở người dùng.
Triển khai Blue-Green hay triển khai canary sẽ tốt hơn để giảm thời gian ngừng hoạt động?
Việc triển khai Blue-Green nói chung sẽ tốt hơn trong việc giảm thời gian ngừng hoạt động vì nó cho phép chuyển đổi tức thời giữa các môi trường. Điều này giảm thiểu bất kỳ sự gián đoạn tiềm năng. Mặc dù việc triển khai Canary cũng nhằm mục đích giảm thiểu thời gian ngừng hoạt động, nhưng việc triển khai dần dần có thể liên quan đến một số vấn đề nhỏ, cục bộ, chỉ ảnh hưởng đến một nhóm nhỏ người dùng.
Những cân nhắc về chi phí cho việc triển khai xanh lam và xanh hoàng yến là gì?
Việc triển khai Blue-Green thường đắt hơn vì chúng yêu cầu duy trì hai môi trường hoàn chỉnh. Mặt khác, việc triển khai Canary tiết kiệm chi phí hơn vì chúng không yêu cầu cơ sở hạ tầng trùng lặp; các bản cập nhật được triển khai trong môi trường chính, điều này làm cho môi trường này trở thành lựa chọn tốt hơn cho các nhóm nhỏ hơn hoặc các ứng dụng ít sử dụng nhiều tài nguyên hơn.