Altyapı mühendisi: sunucuları kodla yöneten rol
Kod olarak altyapı yaklaşımıyla çalışan altyapı mühendisinin görevlerini, kullandığı araçları, rol sınırlarını ve kariyer yolunu öğrenin.
Altyapı mühendisi kimdir?
Altyapı mühendisi, bir kurumun uygulamalarının üzerinde çalıştığı sunucu, ağ, depolama ve bulut kaynaklarını tasarlayan, kuran ve işleten kişidir. Modern kullanımda bu rol büyük ölçüde kod olarak altyapı (Infrastructure as Code, IaC) yaklaşımıyla anılır: kaynaklar konsoldan tıklayarak değil, sürüm kontrolünde tutulan tanım dosyalarıyla oluşturulur ve değiştirilir.
Bu yaklaşımın amacı, aynı ortamı gerektiğinde aynı biçimde yeniden kurabilmektir. Geliştirme, test ve üretim ortamları aynı şablondan türer; bir değişiklik kimin tarafından, ne zaman ve neden yapıldığı depo geçmişinde izlenir. Altyapı mühendisi bu şablonları yazan, gözden geçiren ve ekiplerin güvenle kullanabileceği hale getiren kişidir.
Unvan şirketten şirkete değişir. Aynı iş tanımı bazen altyapı otomasyon mühendisi, bulut altyapı mühendisi ya da Terraform uzmanı olarak ilan edilir. Ortak nokta, tekrarlanabilir ve denetlenebilir altyapı üretmektir.
Bir iş gününde neler yapar?
Günün büyük bölümü kod okumak, yazmak ve gözden geçirmekle geçer. Tipik görevler şunlardır:
- Yeni bir uygulama ekibi için ağ, sanal makine ya da yönetilen veritabanı gibi kaynakları tanımlayan altyapı kodunu yazmak
- Başka bir mühendisin açtığı değişiklik isteğinde planlanan değişikliklerin çıktısını okuyup silinecek ya da yeniden oluşturulacak kaynakları denetlemek
- Sunucu içindeki yapılandırmayı (paketler, servisler, güvenlik ayarları) Ansible gibi bir araçla düzenli hale getirmek
- Altyapı kodunu çalıştıran sürekli entegrasyon hatlarını bakımda tutmak
- Yetki, gizli bilgi ve maliyet etiketi gibi kuralları ortak modüllere işlemek
- Bir kesinti sonrasında kaynağın neden beklenen durumdan saptığını (drift) araştırmak
İşin görünmeyen kısmı ise iletişimdir. Uygulama ekipleri ne istediğini bazen kaynak adıyla değil, ihtiyaçla anlatır; mühendis bu ihtiyacı doğru kaynak kombinasyonuna çevirir.
Örnek senaryo: yeni bir ortamın kurulması
Örneğin bir ürün ekibi, mevcut uygulamanın kopyasını test için ayrı bir ortamda istiyor olsun. Altyapı mühendisi önce mevcut üretim ortamının hangi modüllerle kurulduğuna bakar. Ağ, hesaplama ve veritabanı parçaları zaten modül olarak yazılmışsa yeni ortam, aynı modüllerin farklı değişkenlerle çağrılmasından ibaret kalır.
Sonraki adımlar kabaca şöyle ilerler: değişkenler ortama göre ayarlanır, durum dosyası (state) için ayrı ve kilitli bir depolama alanı seçilir, plan komutu çalıştırılarak oluşacak kaynaklar listelenir, plan çıktısı bir meslektaş tarafından gözden geçirilir ve ancak ondan sonra uygulama aşamasına geçilir. Ortam işi bitince aynı kodla kaldırılabilir; böylece unutulmuş kaynakların maliyeti birikmez.
Modüller yoksa mühendis önce onları yazar. Bu işin zaman alan kısmı ve rolün asıl değer ürettiği yer burasıdır.
Gerekli beceriler ve araçlar
Teknik tarafta temel beklenti, işletim sistemi ve ağ bilgisidir. Kaynakları kodla tanımlamak, onların ne işe yaradığını bilmeden mümkün değildir: bir alt ağın, güvenlik kuralının ya da yük dengeleyicinin neden gerektiğini anlamayan kişi güvenli bir şablon yazamaz.
Araç tarafında rolün çekirdeği şunlardır:
- Kaynak oluşturma için bildirimsel (declarative) bir IaC aracı, en yaygın örneği Terraform ve onun HCL dili
- Sunucu yapılandırması için Ansible gibi bir yapılandırma yönetimi aracı
- Git ve değişiklik isteği süreci
- Altyapı kodunu otomatik doğrulayan ve uygulayan CI/CD hatları
- Betik yazmak için Bash ya da Python
- Seçilen bulut sağlayıcısının hizmet ve yetkilendirme modeli
Yumuşak beceriler de önemlidir. Okunabilir kod yazmak, değişikliğin etkisini ekibe açıkça anlatmak ve risk içeren işlemleri adım adım planlamak, rolün günlük kalitesini belirler.
Yakın rollerden farkı
Sınırlar kurumdan kuruma kayar, ancak genel ayrım şöyledir.
Sistem yöneticisi: Mevcut sunucuları ve servisleri çalışır tutmaya odaklanır. Altyapı mühendisi de işletmeyle ilgilenir ama ağırlık, bu işlerin kodla ve tekrarlanabilir biçimde yapılmasındadır.
DevOps mühendisi: Geliştirme ile işletme arasındaki teslimat hattının tamamına bakar. Altyapı mühendisi bu hattın altyapı katmanında uzmanlaşmıştır; bazı şirketlerde bu unvanlar neredeyse eş anlamlıdır.
SRE (site güvenilirlik mühendisi): Hizmet seviyesi hedefleri, olay yönetimi ve güvenilirlik ölçümüne yoğunlaşır. Altyapı mühendisi bu hedeflerin dayanacağı zemini hazırlar.
Bulut mimarı: Çözümün üst düzey tasarımını yapar. Altyapı mühendisi tasarımı çalışan kaynaklara dönüştürür ve bakımını üstlenir.
Platform mühendisi: Uygulama ekipleri için hazır, kendi kendine kullanılabilir altyapı ürünleri sunar. Altyapı mühendisliği bu role geçişin sık görülen basamaklarından biridir.
Altyapı mühendisi nasıl olunur?
Bu role girişte belirli bir diploma şart koşulmaz; bilgisayar, elektronik ya da bilişim bölümlerinden gelenler olduğu kadar sistem yönetiminden geçenler de vardır. Pratikte işe yarayan yol, katmanları sırayla öğrenmektir.
Başlangıç: Linux komut satırı, ağın temel kavramları, bir bulut sağlayıcısında sanal makine ve ağ kurma. Her şeyi önce elle yapmak, sonra otomasyona geçmek kavramları yerine oturtur.
Orta aşama: Terraform ile küçük bir ortamı baştan sona kodlamak, durum dosyasını uzak bir depolama alanında tutmak, Ansible ile sunucu yapılandırmasını playbook haline getirmek.
İleri aşama: Yeniden kullanılabilir modüller yazmak, ortam başına izolasyon kurmak, politika denetimi ve maliyet kontrolünü hatta eklemek, ekip içinde ortak çalışma alanlarını yönetmek.
Gerçek bir proje en güçlü kanıtlardan biridir: kamuya açık bir depoda, ağ ve hesaplama katmanını modüllerle kuran ve hat üzerinden uygulanan küçük bir ortam, birçok özgeçmişten daha açıklayıcıdır.
Sık yapılan hatalar
- Durum dosyasını yerel makinede tutmak: Ekip çalışmasında çakışmaya ve veri kaybına yol açar; kilitli, uzak bir depolama gerekir.
- Her şeyi tek dosyada toplamak: Büyüdükçe okunmaz ve test edilemez hale gelir; modüller ve katmanlar ayrılmalıdır.
- Plan çıktısını okumadan uygulamak: Bir kaynağın silinip yeniden oluşturulacağı genellikle planda açıkça yazar.
- Gizli bilgileri koda gömmek: Parolalar ve anahtarlar depoya girmemeli, gizli bilgi yönetim hizmetinden okunmalıdır.
- Konsoldan el ile değişiklik yapmak: Kodla gerçek durum ayrışır ve bir sonraki uygulamada beklenmedik sonuçlar çıkar.
- Test edilmemiş modülü herkese açmak: Bir hata tüm tüketici ekiplere yayılır.
Bu hataların hepsinin ortak çaresi disiplindir: küçük değişiklik, gözden geçirme, otomatik doğrulama ve geri dönüş planı.
Mindset programlarında nerede çalışılır?
Altyapı otomasyonuna yeni başlayan bir sistem ya da DevOps ekibi için Terraform ile Altyapı Otomasyonu eğitimi uygun bir giriştir; modül başlıkları arasında HCL dili, durum yönetimi ve CI/CD ile Terraform iş akışları yer alır. Sunucu içi yapılandırmayı standartlaştırmak isteyen ekipler için Ansible ile Konfigürasyon Yönetimi aynı zeminin tamamlayıcısıdır.
Altyapı kodu birden çok ekip tarafından paylaşılmaya başladığında Terraform Modül Mimarisi ve Terraform Cloud ve Workspace Yönetişimi eğitimleri devreye girer. Bunlar kurumsal ölçekte modül sözleşmesi, sürümleme ve erişim kontrolü gibi sorunları ele alır ve kurumsal ekiplere toplu eğitim olarak uyarlanabilir.
İlgili Mindset programı
Terraform ile Altyapı Otomasyonu
Sık sorulan sorular
Altyapı mühendisi ile DevOps mühendisi aynı şey mi?
Birçok şirkette bu unvanlar iç içe kullanılır. DevOps mühendisi genellikle kod yazmadan canlıya çıkışa kadar uzanan teslimat hattının tamamına bakar. Altyapı mühendisi ise bu hattın altındaki sunucu, ağ ve bulut kaynaklarını kodla yönetmeye odaklanır. Küçük ekiplerde aynı kişi her ikisini de üstlenir.
Altyapı mühendisi olmak için yazılım bilmek gerekir mi?
Uygulama geliştirici düzeyinde yazılım bilgisi şart değil, ancak kod okumak ve düzenli betik yazmak gerekir. Terraform'un HCL dili ya da Ansible'ın YAML tabanlı playbook yapısı yazılım dillerinden basittir. Bash veya Python bilgisi otomasyon işlerinde çok işe yarar.
Terraform ile Ansible arasında nasıl bir iş bölümü vardır?
Terraform genellikle kaynakları oluşturmak için kullanılır: ağ, sanal makine, veritabanı gibi. Ansible ise oluşan sunucunun içini yapılandırır: paketler, servisler, dosya ayarları. Birçok ekip bu araçları birlikte kullanır; Terraform altyapıyı ayağa kaldırır, Ansible onu uygulamaya hazır hale getirir.
Terraform durum dosyası neden önemlidir?
Terraform, yönettiği kaynakların gerçek ortamdaki karşılığını bir durum dosyasında izler. Ekipçe çalışırken bu dosya paylaşılan ve kilitlenebilen bir uzak depoda tutulmalıdır; aksi halde iki kişinin aynı anda yaptığı değişiklikler çakışır. Dosya gizli değerler içerebildiği için erişimi de sınırlanır.
Altyapı mühendisliğinde kariyer nasıl ilerler?
Sık görülen yol, küçük ortamları kodlayan mühendislikten ortak modül ve politika sahibi kıdemli mühendisliğe, oradan platform mühendisliği veya bulut mimarlığına uzanır. Yönetici hattında altyapı ya da platform ekibi liderliği vardır. Hangi yolun seçileceği kişinin tasarım mı yoksa işletme mi tercih ettiğine bağlıdır.