Tôi đang làm việc trên một dự án Angular2 với Yii2 (PHP / MySQL) làm điểm API của nó. Chúng tôi sẽ cần triển khai ứng dụng Angular bằng các ngôn ngữ khác nhau cho các khách hàng khác nhau (sử dụng trình biên dịch AOT từ angular-cli).
cách tốt nhất để đạt được điều này là gì? Tôi đang xem Docker hoặc Ansible (-container) để thực hiện công việc này. Nhưng các ví dụ chủ yếu dành cho thiết lập 1: 1. Nhưng tôi sẽ cần 1: n, đại loại như:
deploy app-de new_costomer prod_server
Thêm vào đó, khi có sẵn phiên bản mới của ứng dụng, tôi muốn cập nhật toàn bộ mạng với ứng dụng mới (yêu cầu tải lên src / thư mục AOT được biên dịch và tập lệnh di chuyển db ở phía Yii2).
Lý tưởng nhất là nó sẽ làm một cái gì đó như:
deploy update network-all prod_server
Có ý kiến gì không?
Để làm rõ: Tôi có một số khách hàng, mỗi khách hàng nên có container riêng (docker, thông qua ansible-container). Có các công cụ Angular được biên dịch AOT (chỉ là JS) và phụ trợ PHP với MySQL.
Mỗi khách hàng có được thiết lập này trên một máy chủ (vì vậy 3 khách hàng = 3 container docker với Angular + PHP + MySQL).
Chúng tôi đẩy các bản cập nhật lên cả Angular và PHP khá thường xuyên (tức là toàn bộ thư mục DIST cần được tải lên hoặc ít nhất là một tập lệnh di chuyển khác nhau cho phần phụ trợ PHP / MySQL cần chạy, v.v.).
Và điều này từ một lệnh (vì rõ ràng tôi không muốn có SSH vào mỗi vùng chứa để thực hiện tất cả điều đó một cách thủ công).
Vì tôi chưa bao giờ thực hiện loại thiết lập này trước đây, tôi muốn có một số ý tưởng về cách điều này có thể đạt được với những thứ như Ansible (hoặc tương tự).