Tôi đang làm việc với một dự án sử dụng Jenkins để xây dựng và triển khai các dịch vụ siêu nhỏ cho Elastic Beanstalk. Chúng tôi triển khai một nhánh tích hợp vào một môi trường thử nghiệm, phát hành các nhánh sang môi trường dàn dựng và sau đó là bản dựng chính cuối cùng để sản xuất. Tôi có một vài mối quan tâm khi thực hiện theo cách này: đầu tiên, điều đó có nghĩa là chúng tôi kết thúc với một ma trận một bản dựng cho mỗi dự án cho mỗi môi trường, nhân đôi nỗ lực; và hai, điều đó có nghĩa là chúng tôi không triển khai các tạo tác xây dựng giống nhau cho sản xuất đã được xác nhận trong dàn dựng.
Tôi có xu hướng từ bỏ Beanstalk và chuyển sang các ASG đơn giản bằng cách sử dụng thứ gì đó như Chef để triển khai. Điều đó sẽ để lại cho chúng tôi một bản dựng cho mỗi dự án, tạo ra một tạo tác xây dựng và chúng tôi có thể triển khai cùng một vật phẩm để sản xuất đã được phê duyệt trong dàn dựng. Tuy nhiên, quá trình chuyển đổi có chi phí trả trước không đáng kể. Có cách nào để sử dụng Beanstalk tốt hơn cho phép CI / CD đáng tin cậy hơn, dễ quản lý hơn không?
Lưu ý : Quảng bá cùng một tạo phẩm xây dựng là chính xác những gì tôi muốn làm, nhưng từ các tài liệu tôi không thấy bất kỳ cách rõ ràng nào để làm điều đó; nó giải thích cách triển khai EB từ nguồn ứng dụng của bạn, nhưng không giải thích làm thế nào để quảng bá phiên bản hiện có sang môi trường khác, trừ khi tôi quản lý để cuộn ngay qua nó. Nếu bản thân nó có sẵn trong EB, có thể có một hạn chế trong plugin triển khai EB của Jenkins ngăn không cho nó được thực hiện trong Jenkins, nhưng tôi chưa thấy cách nào để làm điều đó.