Elimizde bir server var. Ya da henüz aldık. Şimdi üzerine N8N kurmak istiyoruz. Dökümantasyonu açtık. Bunun için en güzel yöntemlerden birinin Docker olduğunu söylüyor. Hatta başlangıç için bir docker-compose yaml parçası bile veriyor. Biz de kabul ediyoruz. Heyecan ile bunu ekleyip başlıyoruz. Her şey yolunda giderken bir database kullanmak ihtiyacı hasıl oluyor. Sunucuya tekrar gidiyoruz. Elimizdeki docker-compose’u güncelliyoruz. Ardından her ne zaman bir şeye ihtiyacımız olduğunda kendimizi sunucudaki nano/vim editor karşısında buluyoruz. Artık yeni bir şey eklemek neredeyse imkansız.

Varsayalım bu sistemin preprod-prod diye iki ayrı sistemi olsun. İki ayrı farklı konfigurasyonlu iki farklı docker demek olur mu? Maalesef evet. E hani pre-prod ve prod iki ayrı sistem üzerine kurulu aynı konfigurasyonlu farklı data yüküne sahip eş değer sistemlerdi. Eş değerlik de çöpe gitti. Ne kaldı geriye. Hiç. Peki çözüm nedir? En başa dönmek…

Sistem Kurulmadan Önce#

Sistemi kurmadan önce herhangi bir docker ya da sistem olabilir bu. İlla N8N olmak zorunda değil. Yapacağınız ilk iş “git init” olsun. Tabii git kullanıyorsanız. Mercurial ya da SVN kullanabilirsiniz. Ama bu kod değil neden versiyon kontrol kullanasınız. İşte tam da bu yüzden adı “VERSİYON KONTROL” yani bir yerde birden fazla değişime mutlaka ev sahipliği yapacak ve birden fazla yerde çalışma ihtimali olan her şeyin bir versiyon kontrolü olmak ZORUNDA. Aksi takdirde elinizdeki versiyonun kontrolleri siz olursunuz.

Biraz da özeleştiri#

N8N çıktığında ilk önce anlamamıştım. Bana Knime benzeri bir yapı gibi gelmişti. Ama içindeki n tane entegrasyonun varlığı beni öyle heyecanlandırdı ki 1 nolu kuralı unutup direkt olarak kuruluma geçtim. Şimdi yapmam gereken git init yapmam ve ana klasör içinde bulunan alt klasörleri submodule olarak tanımlamak.

Son söz… Bir işe başlarken en güzel motto orta-vadeyi düşünerek iş yapmaktır. Ne kısa vadeli düşünüp dağınık çalışmalı ne de uzun vadeli düşünüp henüz başlamamış bir işe ölçeklenebilir sistem tasarlayıp motivasyondan kopmamalı.