İçeriğe geç
Muhammet Şafak
en

Uzmanlık

DevOps ve altyapı mühendisi: kodun çalıştığı ortamı ve oraya giden yolu kuran rol

Bir değişikliğin yayına nasıl çıktığı repodan okunabilmeli; paketlemeyi, testi ve deploy'u tek hatta topluyorum.

yıl
6

DevOps benim için bir araç listesi değil, kodun geliştiricinin makinesinden çalıştığı ortama kadar giden yolun tamamı. Paketlemek, doğrulamak ve yayına almak ayrı işler gibi dursa da aynı hattın parçaları; biri sağlam değilse diğerlerinin güvenilirliği de düşüyor.

Ortamı Docker ile paketliyorum, test ve deploy adımlarını GitHub Actions ya da Jenkins’te tanımlıyorum, altyapıyı Terraform ile kodla tarif ediyorum. Hat kodla tarif edildiği için bir değişikliğin nasıl yayına çıktığı repodan okunabiliyor; aynı hat bulut ortamlarına da self-hosted platformlara da aynı biçimde çıkabilir.

Altyapıyı bir mimari konu olarak Mühendislik bölümü tarafında yazıyorum; bu sayfa işin gündelik, uygulayıcı yüzü.

DevOps ve Altyapı Mühendisi nedir?

DevOps ve altyapı mühendisi, yazılımın geliştiricinin makinesinden çalıştığı ortama güvenle ulaşmasını sağlayan kişidir. Ortamın paketlenmesi, testlerin ve deploy'un otomatikleştirilmesi, sunucu ve ağ katmanının yapılandırılması ve çalışan sistemin izlenebilir kalması onun alanındadır.

DevOps ve Altyapı Mühendisi ne iş yapar?

Gündelik işi uygulamayı container olarak paketlemek, test ve deploy adımlarını bir CI/CD hattında tanımlamak, altyapıyı kodla kurmak, sunucuda servisleri ve uygulamanın önündeki katmanı yapılandırmak, ortamlar arasındaki farkı azaltmaktır. Ben bunu Docker, Kubernetes, Terraform, GitHub Actions ve Jenkins gibi araçlarla, AWS ve Google Cloud gibi ortamlarda yürütüyorum.

Birlikte kullandığım teknolojiler

  • Docker

    Geliştirme ortamı ve dağıtım paketi.

  • Kubernetes

    Container'ların birden çok makinede çalıştırıldığı, ölçeklendiği ve yeniden başlatıldığı orkestrasyon katmanı.

  • Linux

    Uygulamaların çalıştığı sunucu işletim sistemi.

  • nginx

    Uygulamanın önündeki katman.

  • GitHub Actions

    Test ve deploy adımlarını repoda tanımlayan CI/CD hattı.

  • Jenkins

    Build, test ve deploy adımlarını çalıştıran otomasyon sunucusu.

  • Terraform

    Altyapıyı kodla tarif edip tekrarlanabilir biçimde kurmak için.

  • Dokploy

    Self-hosted PaaS; container tabanlı deploy.

  • Cloudflare

    Uygulamanın önündeki DNS, proxy ve içerik dağıtım katmanı.

  • AWS

    Bulut sağlayıcısı; sanal makine, depolama ve yönetilen servisler.

  • Google Cloud

    Bulut sağlayıcısı; sanal makine, depolama ve yönetilen servisler.

Sık sorulanlar

8 soru

  • DevOps mühendisi ne yapar?

    Yazılımın geliştiriciden çalıştığı ortama güvenli ve tekrarlanabilir biçimde ulaşmasını sağlar: ortamı paketler, test ve deploy hattını kurar, altyapıyı ve sunucu katmanını yapılandırır ve çalışan sistemin izlenebilir kalmasına bakar.

  • DevOps alanında kaç yıldır çalışıyorsun?

    2020'den bu yana, 6 yıldır.

  • DevOps ile altyapı mühendisliği aynı şey mi?

    Kesişiyorlar ama aynı değil. DevOps geliştirme ile işletme arasındaki hattı ve çalışma biçimini, altyapı mühendisliği ise bu hattın üzerinde durduğu sunucu, ağ ve platform katmanını öne alır. Bu sayfa ikisini bir arada tutuyor.

  • CI/CD hattını nasıl kuruyorsun?

    GitHub Actions ya da Jenkins ile: testler her değişiklikte koşuyor, deploy adımları aynı hatta tanımlı. Hat kodla tarif edildiği için bir değişikliğin nasıl yayına çıktığı repoda okunabiliyor.

  • Docker ile Kubernetes arasındaki fark nedir?

    Docker uygulamayı ve ortamını bir container olarak paketler; Kubernetes bu container'ları birden çok makinede çalıştırmayı, ölçeklemeyi ve yeniden başlatmayı yönetir. İlki paketleme, ikincisi orkestrasyon sorusu.

  • Altyapıyı kodla yönetmek ne demek?

    Sunucu ve servis kurulumunu elle değil, Terraform gibi bir araçla tarif edilen dosyalardan yapmak. Böylece altyapı tekrarlanabilir olur ve değişiklikleri repoda izlenir.

  • Hangi bulut ve dağıtım araçlarıyla çalışıyorsun?

    Bulut tarafında AWS ve Google Cloud, self-hosted dağıtım için Dokploy gibi platformlar, DNS ve proxy katmanında Cloudflare. Her aracın bu sayfadaki rolü Teknolojiler bölümünde yazılı.

  • Backend geliştirmeden farkın ne?

    Backend geliştirme uygulamanın kendisini, yani API'yi, veriyi ve kuyruğu kapsıyor; DevOps ve altyapı o uygulamanın paketlenmesini, yayına alınmasını ve çalıştığı ortamı. İkisini birbirinden ayrı düşünmüyorum ama ayrı sayfalarda anlatıyorum.

Birlikte çalışalım

Bu ekosistemde bir işiniz varsa, ne yaptığınızı anlatın; nasıl kurulacağını konuşalım.

Sitede Ara

Yazı, proje ve sayfalarda arama yapmak için yazmaya başlayın.

Esc ile kapat Pagefind ile güçlendirildi