Apa Itu 12-Factor App?

12-Factor App adalah metodologi untuk membangun aplikasi terdistribusi yang berjalan di cloud dan disediakan sebagai layanan. Pendekatan ini dikembangkan oleh Adam Wiggins, salah satu pendiri Heroku, sebuah platform as a service (PaaS) yang kini menjadi bagian dari Salesforce. Tujuan Wiggins adalah merangkum praktik terbaik dalam penerapan aplikasi di Heroku dan menyediakan kerangka kerja bagi pengembang yang baru mengenal cloud untuk memahami tantangan dalam membangun aplikasi cloud-native.

Meskipun beberapa faktor mungkin sudah jelas bagi pengembang saat ini, minat dalam membangun aplikasi yang mengikuti praktik terbaik umum terus meningkat seiring berkembangnya arsitektur microservices dan aplikasi yang terdiri dari layanan web loosely coupled.

12 Faktor dalam 12-Factor App

Metodologi ini mencakup 12 faktor yang harus diperhatikan oleh pengembang saat membangun aplikasi cloud-native. Berikut adalah 12 faktor tersebut:

1. Codebase

Gunakan satu codebase meskipun membangun aplikasi lintas platform. Gunakan sistem kontrol versi untuk menangani kebutuhan spesifik perangkat.

2. Dependencies

Deklarasikan dan isolasi semua dependensi secara eksplisit.

3. Configuration

Jangan menyimpan konfigurasi sebagai konstanta dalam kode. Sebagai gantinya, rancang aplikasi agar membaca konfigurasi dari lingkungan (environment).

4. Backing Services

Perlakukan layanan back-end sebagai sumber daya yang dapat diakses melalui URL atau locator lain yang disimpan dalam konfigurasi.

5. Build, Release, Run

Pisahkan tahap build dan run secara ketat.

6. Processes

Jalankan aplikasi sebagai satu atau lebih proses stateless. Data yang harus bersifat persisten harus disimpan dalam layanan backing yang stateful.

7. Port Binding

Gunakan port binding untuk mengekspor layanan.

8. Concurrency

Gunakan metode scale-out (horizontal scaling) daripada scale-up (vertical scaling).

9. Disposability

Gunakan proses startup yang cepat dan shutdown yang elegan untuk memaksimalkan ketahanan aplikasi.

10. Parity

Permudah continuous deployment dengan memastikan bahwa lingkungan pengembangan, staging, dan produksi memiliki kemiripan sebanyak mungkin.

11. Logs

Perlakukan log sebagai aliran event. Log tidak boleh menangani penyimpanan atau pengiriman output aplikasi.

12. Admin Processes

Jalankan tugas administratif sebagai proses satu kali (one-off process) dari mesin dalam lingkungan produksi yang menjalankan kode produksi terbaru.

Keuntungan 12-Factor App

Tujuan dari kerangka kerja 12-Factor adalah membantu pengembang membangun aplikasi dengan arsitektur yang memastikan kecepatan, keandalan, kelincahan, dan portabilitas serta menghasilkan aplikasi yang tangguh dan andal.

Ketika pengembang menerapkan metodologi DevOps berbasis 12-Factor App, aplikasi yang dihasilkan akan memiliki karakteristik yang seragam untuk menghadapi berbagai skenario saat aplikasi mengalami skala yang lebih besar. Misalnya, metodologi ini merekomendasikan penggunaan format deklaratif untuk otomatisasi setup guna mempermudah pengembang baru dalam memahami proyek.

Aplikasi juga harus dirancang agar memiliki portabilitas maksimum antara berbagai lingkungan eksekusi dan dapat diskalakan dengan mudah tanpa perlu perubahan signifikan. Aplikasi 12-Factor dapat ditulis dalam bahasa pemrograman apa pun dan digunakan bersama layanan back-end apa pun, termasuk basis data.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *