DevOps ve altyapı

DevOps hizmeti

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.

Çözdüğümüz sorun

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.

Nasıl çalışıyoruz

  1. Mevcut durumu inceleme

    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.

  2. Tutarlı ortamlar

    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.

  3. Otomatik test ve dağıtım

    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.

  4. İzleme ve yedekleme

    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.

Teslim ettiklerimiz

  • Docker ile tanımlanmış geliştirme ortamı
  • Test, paketleme ve dağıtım adımlarını içeren CI/CD hattı
  • Tek adımlık geri alma ve yayın sonrası kontrol
  • İzleme, yedekleme ve geri yükleme dokümantasyonu

Sık sorulan sorular

cPanel üzerinde çalışan bir sitemiz var. DevOps bize uygun mu?

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.

Yayın sırasında site kapanır mı?

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.

Hangi araçları kullanıyorsunuz?

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.

Kurulumdan sonra hattı kendi ekibimiz yönetebilir mi?

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.

Yedekler nerede tutuluyor?

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.

İlgili hizmetler

  • 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.

  • Legacy kod modernizasyonu

    Eski PHP uygulamanızı baştan yazmadan, çalışır halde tutarak modern bir mimariye taşıyoruz. ONLINEKURUM'u da bu yöntemle taşıyoruz.

Altyapınızı birlikte inceleyelim

Ne yapmak istediğinizi birkaç cümleyle anlatın. İhtiyacınızı inceleyip nasıl ilerleyebileceğimizi size yazalım.