The Twelve-Factor App

IV. Dịch vụ hỗ trợ

Dịch vụ hỗ trợ như là tài nguyên bổ xung

Dịch vụ hỗ trợ là các dịch vụ mà ứng dụng sử dụng thông qua mạng như là một thành phần trong vận hành. Ví dụ bao gồm nơi lưu trữ dữ liệu (như là MySQL hoặc CouchDB), hệ thống tin nhắn/hàng đợi (như là RabbitMQ hoặc Beanstalkd), dịch vụ SMTP để gửi thư điện tử ra ngoài (như là Postfix), và hệ thống đệm (như là Memcached).

Dịch vụ hỗ trợ như cơ sở dữ liệu thường được quản lý bởi chính hệ thống quản trị của dịch vụ đó trong quá trình triển khai ứng dụng. Thêm vào đó, việc quản trị dịch vụ cục bộ, các ứng dụng có thể sử dụng các dịch vụ được cung cấp và quản lý bởi bên thứ ba. Ví dụ như các dịch vụ SMTP (như Postmark), các dịch vụ thu thập thông tin đo lường (metrics-gathering services) (như New Relic hay Loggly), dịch vụ tài sản nhị phân (binary assets services) (như Amazon S3), và các dịch vụ sử dụng API (như Twitter, Google Maps, hoặc Last.fm).

Mã nguồn của ứng dụng áp dụng mười hai-hệ số cho phép không có sự khác biệt giữa dịch vụ cục bộ và bên thứ ba. Đối với ứng dụng, cả tài nguyên bổ xung và có thể truy cập thông qua URL hoặc thông tin tài khoản được lưu trữ trong cấu hình. Một triển khai của ứng dụng áp dụng mười hai-hệ số có thể chuyển đổi giữa cơ sở dữ liệu MySQL cục bộ với một cơ sở dữ liệu được quản lý bởi bên thứ ba (như Amazon RDS) mà không phải thay đổi bất kỳ một đoạn mã nguồn nào của ứng dụng. Giống như, máy chủ SMTP cục bộ có thể được thay thế bởi dịch SMTP của bên thứ ba (như Postmark) mà không thay đổi mã nguồn. Trong cả hai trường hợp, chúng ta chỉ cần thay đổi các tài nguyên được quản lý trong cấu hình.

Mỗi dịch vụ hỗ trợ riêng biệt là một tài nguyên. Ví dụ, cơ sở dữ liệu MySQL là một tài nguyên, hai cơ sở dữ liệu MySQL (sử dụng cho việc phân tách ở tầng ứng dụng) được xác định là hai tài nguyên riêng biệt. Ứng dụng áp dụng mười hai-hệ số đối xử các cơ sở dữ liệu như là tài nguyên bổ sung, nhằm đảm bảo kết nối lỏng lẻo với triên khai mà chúng được bổ xung.

A production deploy attached to four backing services.

Tài nguyển có thể được thêm vào triển khai khi cần thiết. Ví dụ, nếu cơ sở dữ liệu của ứng dụng bị mất do lỗi phần cứng, quản trị viên của ứng dụng có thể thêm vào một máy chủ cơ sở dữ liệu được khôi phục từ các sao lưu trước đó. Các thay đổi bao gồm cơ sở dữ liệu chính đang sử dụng có thể được loại bỏ, và bổ xung cơ sở dữ liệu mới có thể xảy ra mà không cần thay đổi bất kỳ một đoạn mã nguồn nào.