The Twelve-Factor App

XII. Tiến trình quản trị

Thực thi nhiệm vụ quản trị như là một tiến trình

Công thức cho các tiến trình là danh sách các tiến trình được sử dụng để thực thi các nghiệp vụ của ứng dụng (như là điều khiển web) khi chúng vận hành. Ngoài ra, lập trình viên thường mong muốn thực hiện các nhiệm vụ quản trị ứng dụng như là:

Tiến trình quản trị thực thi một lần nên đươcj vận hành trong một môi trường giống như tiến trình vận hành lâu dài của ứng dụng. Với một bản phát hành, các tiến trình quản trị sử dụng cùng mã gốccấu hình như bất kỳ các tiến trình vận hành trong bản phát hành đó. Đoạn mã quản trị cần được triển khai cùng với mã của ứng dụng để đảm bảo không có các vấn đề về mặt động bộ hoá.

Kỹ thuật cô lập phụ thuộc tương tự được sử dụng cho cùng một kiểu tiến trình. Ví dụ tiến trình web sử dụng Ruby sử dụng câu lệnh bundle exec thin start, sau đó việc đồng bộ hoá cơ sở dữ liệu sử dụng câu lệnh bundle exec rake db:migrate. Tương tự, một chương trình Python sử dụng môi trường ảo cung cấp câu lệnh bin/python cho việc vận hành máy chủ web Tornado và bất cứ tiến trình quản trị thông qua manage.py.

Mười hai hệ số ưu tiên sử dụng các ngôn ngữ cung cấp vỏ REPL linh hoạt, và làm nó trở nên dễ dàng cho việc thực thi một lần các kịch bản. Trong môi trường triển khai cục bộ, lập trình viên thực thi các tiến trình quản trị bằng cách thực thi trực tiếp các câu lệnh trong thư mục lưu trữ mã nguồn của ứng dụng. Trong môi trường vận hành thực tế, lập trình viên có thể sử dụng ssh hoặc các câu lệnh điều khiển thực thi cơ chế được cung cấp bởi môi trường vận hành của quá trình triển khai để thực thi các tiến trình.