Skip to content

Latest commit

 

History

History
17 lines (10 loc) · 1.97 KB

codebase.md

File metadata and controls

17 lines (10 loc) · 1.97 KB

I. Kod Tabanı

Versiyon kontrol sistemi üzerinde tek bir kod tabanı, birden fazla dağıtım

On iki faktör bir uygulama her zaman Git, Mercurial veya Subversion gibi bir versiyon kontrol sistemiyle izlenir. Bu versiyon kontrol sistemindeki dosya veritabanına kod deposu (İng. code repository) veya kısaca depo (İng. repo) denir.

Bir kod tabanı, tek bir depo (Subversion gibi merkezi versiyon kontrol sistemi) ya da kök commit paylaşan birden fazla depodan (Git gibi merkezi olmayan versiyon kontrol sistemi) oluşur.

Bir kod tabanı bir çok dağıtımla eşlenir

Kod tabanı ve uygulama arasında her zaman birebir ilişki vardır:

  • Eğer birden fazla kod tabanı varsa bu bir uygulama değil, dağıtık sistemdir. Dağıtık sistemdeki her bileşen bir uygulamadır ve her biri on iki faktörle bireysel olarak uyumlu olmalıdır.
  • Aynı kodu paylaşan birden fazla uygulama, on iki faktörü ihlal eder. Burada çözüm, paylaşılan kodun bağımlılık yöneticisi aracılığıyla dahil edilebilecek kütüphanelere dönüştürülmesidir.

Uygulamanın sadece bir kod tabanı vardır fakat birden fazla dağıtımı olacaktır. Bir dağıtım, uygulamanın çalışan bir örneğidir. Bu dağıtımlar genelde bir gerçek ortam (İng. production) ve bir veya birkaç test ortamıdır. Ayrıca her geliştiricinin kendi yerel geliştirme ortamında çalışan bir kopyası vardır ve bunların her biri aynı zamanda dağıtım olarak nitelendirilirler.

Dağıtımlarda anlık olarak farklı sürümler etkin olabilir fakat kod tabanı tüm dağıtımlarda aynıdır. Örneğin, bir geliştirici henüz commit'lemediği değişiklikleri çalıştırıyor olabilir, veya test ortamında henüz gerçek ortama dağıtılmamış bir sürüm çalışıyor olabilir. Bu nedenle hepsi ayrı dağıtım olarak tanımlanır ama kod tabanı aynıdır.