DevOps ve CI/CD
Her sürümü tekrarlanabilir, izlenebilir ve geri alınabilir kılan DevOps.
ALGOFACT, yazılım ekiplerinin kodu sık ve güvenle yayınlayabilmesi için CI/CD pipeline’ları, kod olarak altyapı, Kubernetes ortamları ve gözlemlenebilirlik kurar. Kodun bugün canlıya nasıl ulaştığını inceler, elle yapılan adımları otomasyona taşır, her ortamı versiyonlanan kodla tanımlar ve ekibinize runbook’larla devrederiz. Ortam AWS, Azure, GCP veya kendi veri merkezinizdir; teslimat Adana ve Ankara TEKMER’deki mühendislik ofislerimizden, ISO 27001:2022 sertifikalı bilgi güvenliği yönetimiyle yapılır.
Kısa bilgiler
Son güncelleme:
- Kapsam
- CI/CD, kod olarak altyapı, Kubernetes, izleme
- Ortam
- AWS, Azure, GCP, şirket içi veya hibrit
- Bilgi güvenliği
- ISO 27001:2022 sertifikalı yönetim sistemi
- Sahiplik
- Pipeline ve altyapı kodu sizin deponuzda
- Yayın
- Kademeli dağıtım ve tanımlı geri alma
- Başlangıç
- Mevcut yayın sürecinin incelenmesi
DevOps desteği ne zaman doğru adımdır?
Yayın günleri ekipte gerginlik yaratıyorsa, bir sunucuya yalnızca bir kişi erişebiliyorsa veya test ortamı canlı ortamdan farklı davrandığı için hatalar ancak müşteride görülüyorsa sorun çoğu zaman koddan değil teslimat sürecinden kaynaklanır. DevOps çalışması bu süreci görünür, tekrarlanabilir ve kişilerden bağımsız hale getirir.
Her ekip Kubernetes’e ihtiyaç duymaz. Tek bir uygulama ve küçük bir ekip için yönetilen bir uygulama platformu ile sade bir pipeline daha az işletme yükü getirir. Birden fazla servis, farklı ölçeklenme ihtiyaçları veya katı ortam ayrımı varsa konteyner orkestrasyonu anlam kazanır. Önerimizi ekibinizin gerçekten işletebileceği seviyeye göre yaparız; kimsenin bakımını üstlenemeyeceği bir platform kurmayız.
DevOps çalışması çoğu zaman bir buluta geçiş projesiyle veya yeni bir ürünün ilk canlıya çıkışıyla birlikte başlar. Altyapınız zaten bulutta ama dağıtımlar elle yapılıyorsa doğrudan buradan başlamak da mümkündür.
Hangi işleri üstleniriz
Çalışma, ekibinizin bugün en çok zaman kaybettiği yerden başlar.
- 01
CI/CD pipeline’ları
Her commit’te derleme, test, güvenlik taraması ve paketleme adımları çalışır. GitHub Actions, GitLab CI, Azure DevOps veya Jenkins gibi zaten kullandığınız aracın üzerine kurarız; araç değişikliğini yalnızca gerçek bir kısıtı çözüyorsa öneririz. - 02
Kod olarak altyapı
Ağlar, veritabanları, kimlik ve erişim tanımları Terraform gibi araçlarla versiyonlanan kod olarak yazılır. Bir ortam, birinin hafızasına dayanarak değil, incelemeden ve onaydan geçen bir değişiklikle kurulur. - 03
Kubernetes ve konteynerler
Uygulamaları konteynere alır, yönetilen Kubernetes servislerinde (EKS, AKS, GKE) veya şirket içi kümelerde çalıştırırız. Kaynak limitleri, otomatik ölçekleme ve gizli bilgi yönetimi ilk günden tanımlanır. - 04
Gözlemlenebilirlik
Log, metrik ve dağıtık izleme verisini tek yerde toplar, iş açısından anlamlı alarmlar kurarız. Alarm, bir kişinin bir şey yapması gerektiğinde çalar; yalnızca gürültü üreten kurallar kapatılır. - 05
Ortam ve sürüm yönetimi
Geliştirme, test ve canlı ortamlarını aynı tanımdan üretiriz. Hangi sürümün hangi ortamda hangi yapılandırmayla çalıştığı her an izlenebilir. - 06
Yapay zeka ve veri iş yükleri
Model eğitimi ve servis etme için GPU kaynakları, MLflow ile model kayıt defteri ve veri hatları için ayrı pipeline’lar kurarız. Modellerin canlıya alınması, altyapıyı yeniden kurmadan yapılabilir hale gelir.
Çalışma nasıl ilerler
- 01
Yayın sürecinin incelenmesi
Kodun commit’ten canlıya kadar izlediği yolu, elle yapılan adımları, erişimleri ve yakın dönemdeki kesintileri birlikte çıkarırız. Sonuç, önceliğe göre sıralanmış kısa bir bulgu listesidir. - 02
Hedef tasarım
Pipeline aşamaları, ortam ayrımı, dallanma stratejisi ve geri alma yöntemi yazılı olarak tasarlanır ve ekibinizle gözden geçirilir. - 03
Kademeli uygulama
Önce tek bir servis veya tek bir ekip üzerinde uygular, çalıştığını gördükten sonra diğer servislere yayarız. Bu süreçte yayınlarınız durmaz. - 04
Ölçüm
Yayın sıklığı, değişikliğin canlıya ulaşma süresi, hatalı değişiklik oranı ve hizmeti geri getirme süresi gibi göstergeleri başta ve sonda ölçeriz. İyileşme tahminle değil veriyle konuşulur. - 05
Devir ve eşlik
Runbook’lar, mimari kayıtlar ve eğitim oturumlarıyla devrederiz. İsterseniz gömülü bir mühendis ilk yayın döngülerinde ekibinizle birlikte çalışır.
Teslim edilenler
- 01
Pipeline tanımları
Deponuzda versiyonlanan derleme, test, tarama ve dağıtım adımları. - 02
Altyapı kodu ve modülleri
Her ortamı yeniden üretebilen, incelemeden geçmiş altyapı tanımları. - 03
Servis panoları ve alarm eşikleri
Servis bazında panolar, alarm kuralları ve her alarmın kime gideceği. - 04
Yayın ve geri alma prosedürü
Kademeli dağıtım adımları, sağlık kontrolleri ve sorun anında önceki sürüme dönüş. - 05
Runbook’lar ve erişim listesi
Kimin neye eriştiği, rutin işlerin nasıl yapıldığı ve olağan dışı durumlarda izlenecek adımlar.
Güvenli yayın ve geri alma
Her yayın küçük ve geri alınabilir olmalıdır. Bu yüzden blue-green veya canary gibi kademeli dağıtım yöntemlerini, otomatik sağlık kontrollerini ve özellik bayraklarını birlikte kullanırız. Veritabanı şema değişiklikleri, uygulamanın önceki sürümüyle de çalışacak şekilde iki adımda yapılır; böylece geri alma bir veri kaybına dönüşmez.
Pipeline’ın kendisi de bir saldırı yüzeyidir. Gizli bilgiler kod deposunda değil bir secrets yöneticisinde tutulur, CI hesaplarına yalnızca ihtiyaç duydukları yetki verilir, bağımlılıklar ve konteyner imajları taranır, canlı ortama dağıtım bir onay adımına bağlanabilir. Bu kontroller, ISO 27001:2022 kapsamında uyguladığımız erişim ve değişiklik yönetimi pratikleriyle aynı çizgidedir.
DevOps hizmeti hakkında sorular
Yaklaşım01Mevcut CI aracımızı değiştirmemiz gerekir mi?
Genellikle hayır. Kullandığınız aracın üzerine kurarız. Değişiklik önerdiğimiz durumlar, aracın lisans, güvenlik veya ölçek açısından gerçek bir sınır oluşturduğu durumlardır ve gerekçesi yazılı olarak sunulur.
02Kubernetes’e geçmek zorunda mıyız?
Hayır. Kubernetes, birden fazla servisi ve bunları işletecek bir ekibi olan yapılarda değer üretir. Daha sade bir yapı yetiyorsa yönetilen uygulama platformlarını veya sanal makine tabanlı dağıtımı öneririz.
03Şirket içi sunucularla da çalışıyor musunuz?
Evet. Kendi veri merkezinizdeki sunucular veya Kubernetes kümeleri için de pipeline ve altyapı kodu kurarız. Hibrit yapılarda buluttaki ve şirket içindeki ortamlar aynı süreçle yönetilir.
04Süreci kendi ekibimiz devralabilir mi?
Evet, hedef budur. Tüm pipeline ve altyapı kodu sizin hesaplarınızda ve depolarınızda yaşar; runbook’lar ve eğitim oturumlarıyla devredilir. Sonrasında destek isterseniz yönetilen destek modeliyle devam edebiliriz.
05DevOps projesinin süresini ve maliyetini ne belirler?
Servis ve ortam sayısı, mevcut otomasyon düzeyi, kullanılacak bulut veya şirket içi altyapı, uyum gereksinimleri ve ekibinizin işin ne kadarını devralacağı. İnceleme sonrasında kapsamı, aşamaları ve tahmini bulut işletme maliyetini yazılı olarak sunarız.
İlgili sayfalar
Projenizi anlatın
Sorunu kısaca yazın; 30 dakikalık keşif görüşmesi için bir zaman önerisiyle size dönelim.
Keşif görüşmesi planlayın
