The Twelve-Factor App

V. Xây dựng, phát hành, vận hành

Tách biệt hoàn toàn giữa bước xây dựng và vận hành

Mã gốc được chuyển sang (tạm dừng phát triển) triển khai thông qua ba bước:

Mã nguồn được xây dựng, kết hợp với các cấu hình để cung cập một phát hành.

Ứng dụng sử dụng mười hai-hệ số tách biệt hoàn toàn giữa các bước xây dựng, phát hành và vận hành. Ví dụ, chúng ta không thể tạo ra các thay đổi của mã nguồn khi đang vận hành, do đó không có khả năng quay ngược lại bước xây dựng.

Công cụ triển khai thường cung cấp công cụ quản lý phát hành, cùng với các ký pháp cho phép quay ngược lại bản phat hành trước đó. Ví dụ, công cụ triển khai Capistrano lưu trữ các phát hành trong thư mục con tên là releases, nơi mà phiên bản hiện tại được liên kết giả đến thư mục phát hành hiện tại. Lệnh rollback làm cho việc quay trở lại phiên bản trước trở nên dễ dàng.

Mỗi phát hành đều có một định danh duy nhất ID, như là dựa vào thời gian phát hành (như 2011-04-06-20:32:17) hoặc một số tự tăng (như v100). Các phiên bản được tạo ra thành một chuỗi liên tục và một phiên bản không thể thay đổi sau khi nó được tạo ra. Bất cứ thay đổi nào đểu tạo ra một bản phát hành mới.

Các bước xây dựng được khởi tạo với nhà phát triển ứng dụng khi mà mã nguồn được triển khai. Thời gian thực thi, ngược lại, có thể tự động xảy ra trong trường hợp các máy chủ được khởi động lại, hoặc tiến trình tạm dừng được khởi động lại bởi bộ quản lý các tiến trình. Do đó, bước vận hành nên được giữ các thành phần thay đổi càng ít càng tốt, vì các sự cố xảy ra làm ứng dụng không vận hành được có thể gây ra các thiệt hại lúc nửa đêm khi mà không có bất kỳ lập trình viên nào có thể khắc phục sự cố. Bước xây dựng có thể phức tạp hơn, vì các lỗi có thể xuất hiện trước mắt cho lập trình viên, người đang thực hiện triển khai biết được.