GitOps
Altyapıyı ve dağıtımları Git üzerinden yönetiyoruz. Her değişiklik incelenir, kayıt altında kalır ve tek adımda geri alınabilir.
DevOps ve altyapı
Geliştirmeden canlıya giden yolu otomatikleştiriyor, sunucularınızı izlenebilir ve yedekli hale getiriyoruz.
Kodun geliştiricinin bilgisayarından canlı sunucuya giden yolunu otomatikleştiriyoruz. Docker ile tutarlı geliştirme ortamları, otomatik test ve dağıtım hatları, izleme ve yedekleme kuruyoruz. Bu site de böyle yayına alınıyor: ana dala gelen her değişiklik otomatik olarak test ediliyor, paketleniyor ve sunucuda tek bir adımla canlıya geçiyor. Bir sorun çıkarsa önceki sürüme dönmek de tek bir adım.
Birçok projede yayına alma, bir kişinin bildiği bir ritüeldir. Dosyalar sunucuya kopyalanır, birkaç komut çalıştırılır ve her şeyin yolunda gittiği umulur. Bir adım atlandığında site yarım güncellenir, sorun çıktığında geri dönmenin yolu belli değildir. Bu yüzden yayınlar ertelenir, değişiklikler birikir ve her yayın daha riskli hale gelir. Geliştirici ortamları birbirinden farklı olduğu için bir bilgisayarda çalışan kod sunucuda çalışmayabilir. Sunucular izlenmez, yedeklerin geri yüklenip yüklenemediği denenmez. DevOps bu belirsizliği ortadan kaldırır ve yayını tekrarlanabilir, ölçülebilir ve geri alınabilir hale getirir.
Kodun nasıl geliştirildiğini, test edildiğini ve yayına alındığını adım adım çıkarıyoruz. Sunucuları, yedekleme düzenini ve izleme eksiklerini inceleyip riskleri öncelik sırasıyla yazıyoruz.
Geliştirme ortamını Docker ile tanımlıyoruz. Her geliştirici aynı sürümlerle çalışıyor ve ekibe yeni katılan biri projeyi tek bir komutla ayağa kaldırabiliyor. Geliştirme, test ve canlı ortamlar aynı tanımlardan üretildiği için sürüm farkından doğan hatalar ortadan kalkıyor.
Her değişikliğin testlerden geçtiği, paketlendiği ve onaydan sonra canlıya çıktığı bir CI/CD hattı kuruyoruz. Yeni sürüm hazırlanıp kontrol edilmeden eski sürüm devreden çıkmıyor ve geri alma tek bir adım.
Hata kayıtlarını, sunucu kaynaklarını ve sitenin yanıt süresini izliyoruz. Yedekleri düzenli alıyor ve geri yüklemeyi deneyerek yedeğin gerçekten işe yaradığını doğruluyoruz.
Evet. Otomatik dağıtım için büyük bir bulut altyapısı gerekmez. Bu site de cPanel ve LiteSpeed üzerinde çalışıyor ve GitLab CI ile otomatik olarak yayına alınıyor. Önemli olan, sunucunun SSH erişimi gibi temel olanakları sunması ve dağıtımın tekrarlanabilir adımlarla tanımlanmasıdır.
Kurduğumuz yapıda kapanmaz. Yeni sürüm sunucuda ayrı bir klasörde hazırlanır ve kontrol edilir. Ziyaretçiler bu sırada eski sürümü görmeye devam eder. Geçiş en son adımda ve tek seferde yapılır. Bir sorun çıkarsa önceki sürüme aynı şekilde dönülür.
Geliştirme ortamları için Docker, otomatik test ve dağıtım için GitLab CI kullanıyoruz. Mevcut altyapınızda başka bir CI aracı ya da barındırma çözümü varsa önce onu inceliyor, gereksiz bir araç değişikliği önermiyoruz.
Evet, hedefimiz de bu. Hattın her adımı depoda yazılı olarak durur ve neyi neden yaptığı dokümante edilir. Kurulumun sonunda ekibinizle birlikte bir yayın yapıyor, bir geri alma deniyor ve sık karşılaşılan sorunların çözümünü kılavuza ekliyoruz.
Yedekleri canlı sunucudan ayrı bir yerde tutmanızı öneriyoruz. Aynı sunucudaki bir yedek, sunucuyla birlikte kaybolabilir. Yedekleme sıklığını ve saklama süresini verinin ne kadar sık değiştiğine göre belirliyor, geri yükleme adımlarını belgeliyor ve düzenli aralıklarla deniyoruz.
Altyapıyı ve dağıtımları Git üzerinden yönetiyoruz. Her değişiklik incelenir, kayıt altında kalır ve tek adımda geri alınabilir.
Eski PHP uygulamanızı baştan yazmadan, çalışır halde tutarak modern bir mimariye taşıyoruz. ONLINEKURUM'u da bu yöntemle taşıyoruz.
Ne yapmak istediğinizi birkaç cümleyle anlatın. İhtiyacınızı inceleyip nasıl ilerleyebileceğimizi size yazalım.