The Twelve-Factor App

Giriş

Modern çağda yazılımlar yaygın olarak servis olarak sunulur;web uygulamaları ya da yazılım hizmetleri. On iki faktörlü uygulama, aşağıdaki gibi bir yazılım hizmeti oluşturmak için bir yöntemdir:

On iki faktör uygulaması herhangi bir programlama dili ile yazılmış uygulamalara uygulanabilir ve destek servislerinin herhangi bir kombinasyonu kullanılabilir (Veritabanı, kuyruk, önbellek vb.).

Arkaplan

Bu belgeye katkıda bulunan kişiler, yüzlerce uygulamanın geliştirilmesi ve dağıtılmasında doğrudan yer almış, ve dolaylı olarak Heroku platformundaki üzerinde çalıştığımız yüz binlerce uygulamanın geliştirilmesi, çalıştırılması ve ölçeklendirilmesine tanık olmuştur.

Bu belge, çok çeşitli yazılım servislerinin, yabancı ortamdaki deneyim ve gözlemlerini birleştirir. Bu uygulama geliştirimindeki uygun, ideal uygulamalarda bir üçgenleştirme vardır; uygulamanın zamanla olan doğal gelişmesinin, büyümesinin temel etmenlerine dikkat etmek, uygulamanın kod tabanında çalışan yazılımcıların arasındaki işbirliğinin önemli noktaları ve yazılım erozyonunun getirdiği ücretten kaçmak.

Bizim motivasyonumuz, modern uygulama geliştirmesinde gördüğümüz bazı sistemik problemlerin farkındalığını arttırmak, terimlerle birlikte geniş kavramsal çözüm setleri sağlamak ve bu problemleri tartışmak için ortak bir kelime sunmakdır. Martin Fowler’ın kitabları Patterns of Enterprise Application Architecture ve Refactoring'den ilham alınmıştır.

Bu belgeyi kim okumalı?

Herhangi bir çalışan uygulama geliştirenler. Bu tür uygulamaları dağıtan ve yöneten Ops mühendisleri.

On İki Faktör

I. Kod Tabanı

Bir çok dağıtım kod tabanı gözden geçirme kontrolünde izleme

II. Bağımlıklar

Bağımlıkları açık bir şekilde açıklama ve ayırma

III. Yapılandırma

Ortamda yapılandırma depolama

IV. Destek servisi

Destek servislerine ekli kaynak olarak davranma

V. Derleme, Sürüm, Çalıştırma

Derleme ve çalıştırma aşamalarını tam olarak ayırma

VI. Süreç

Uygulamayı bir veya daha fazla bağımsız süreç olarak çalıştırma

VII. Port Bağlama

Port bağlama yolu üzerinden dışarı aktarma

VIII. Eş Zamanlılık

Süreç modeli yardımıyla dağıtıklaştırma

IX. Kullanıma Hazır Olma Durumu

Hızlı başlangıç ve otomatik zararsız kapama ile sağlamlığı üst düzeye çıkarma

X.Geliştirme/Üretim Eşitliği

Gelişim, evreleme ve üretimi olabildikçe benzer tutma

XI. Günlükler

Günlüklere olay akışı gibi davranma

XII. Yönetici Süreci

Yönetici/yönetim görevlerini tek seferlik işlem olarak çalıştırma