Eğitim

Kurulum mu Dağıtım mı? Yeni Başlayanların Sıkıştığı Nokta

Teknolojiye ilk adım atanların çoğu aynı yerde takılıyor: “Kurulum” ile “dağıtım” arasındaki fark ne? Açık konuşayım, bu ikisi ilk bakışta birbirine gerçekten karışıyor. Hatta ben de yıllar önce, 2010’un sonlarında küçük bir blog projesi üzerinde çalışırken, iki kelimeyi sanki aynı şeymiş gibi kullanıp duruyordum — ta ki işin aslı ortaya çıkana dek. Biri seni işe başlatıyor, diğeri yaptığını başkalarına ulaştırıyor. Basit ama kritik fark.

Bakın şimdi, mesele sadece teknik terim ezberlemek değil. Bir yazılım geliştirirken önce araçlarını kurarsın, sonra ürünü insanlara açarsın. Yani birinde “hazırlık” havası var, diğerinde “yayına çıkma” heyecanı. Arada da epey fark var… hem de sandığınızdan fazla.

Kurulum Nedir, Ne İşe Yarar?

Kurulum dediğimiz şey, en basit hâliyle bir yazılımı kendi bilgisayarında çalışır duruma getirmek. Mesela Visual Studio Code’u indirip laptopuna yüklediğinde artık onu açıp kod yazabiliyorsun. Bu kadar. Kurulum olmadan editör yok, araç yok, iş yok.

Geçen yıl Kadıköy’de bir arkadaşım yeni başlayan kardeşine Python ortamı kurmaya yardım ederken bunu çok net gördüm. Adam kod yazmak istiyor ama terminalden korkuyor — pip nedir bilmiyor, klasör nereye gidiyor anlamıyor, bir de üstüne hata mesajı çıkınca donup kalıyor. İşte tam orada kurulum devreye giriyor: sana çalışma masası kuruyor, köklü bir zemin hazırlıyor.

Kurulumun güzel tarafı şu: lokal ortamda her şeyi kontrol ediyorsun. İnternet kesildi mi? Çoğu zaman sorun olmaz. Sunucu çöktü mü? Seni etkilemez. Ama — dur, eksik tarafı da söyleyeyim — her şey senin makinenle sınırlı kalır ve ekipte başka biri aynı ayarı yapacaksa saatlerce uğraşır durur (yanlış duymadınız)

Ve işler burada ilginçleşiyor.

Kuruluma örnek verelim

Şunu söyleyeyim, Visual Studio Code, XAMPP, JMeter ya da tarayıcılar… Bunların hepsi kurulur çünkü cihazında çalışmaları gerekir. İndirirsin, tıklarsın, birkaç seçenek seçersin ve tamamdır. Hani marketten aldığın masa lambasını prize takınca ışığın yanması gibi düşünün; öncesinde kutuda duruyor, iş görmüyor, hiçbir işe yaramıyor.

💡 Bilgi: Kurulum çoğunlukla yereldir; yani senin cihazında olur ve başkalarının erişimine açık değildir.

Kendi deneyimimden konuşuyorum, Bazı araçlarda kurulum aslında yarım iş gibidir. Yalnızca uygulamayı yüklemek yetmez; eklenti eklemen gerekir, PATH ayarı yapman gerekir, bir de üstüne sanal ortam oluşturursun — ilk bakışta ufak tefek detaylar gibi görünür ama inanın bunlar olmasa programcı daha başlamadan sinirlenir (ki bu çoğu kişinin gözünden kaçıyor). Neyse, hatta ben de sinirleniyorum. Hâlâ.

Çok konuştum, örnekle göstereyim.

Dağıtım Neden Ayrı Bir Hikâye?

Şöyle ki, Dağıtım ise bambaşka bir aşama (buna dikkat edin). Senin makinede çalışan proje artık başkaları tarafından görülebilir hâle geliyor. Basitçe söyleyeyim: yaptığın işi rafın arkasından çıkarıp vitrine koyuyorsun.

Bir web sitesi geliştirdiğini düşünün. Kod senin bilgisayarında dursa kimse erişemez, kimse göremez, kimse faydalanmaz. Ama GitHub Pages’e yüklersen ya da bir hosting sunucusuna gönderirsen site canlıya çıkar; o andan itibaren kullanıcılar adresi açar. Projeni görür. Dağıtım budur işte. Bu konuyla ilgili iPad ve iMac’i Oyun Ekranına Çeviren Küçük Hile yazımıza da göz atmanızı tavsiye ederim.

Editör masasında bu konuyu anlatan bir haberi hazırlarken aklıma 2024 yazında test ettiğim küçük Next.js projesi geldi. Yerelde pırıl pırıl çalışan uygulama sunucuya — itiraz edebilirsiniz tabi — çıkınca iki dosya yolu yüzünden patlamıştı! Şaka gibi ama oluyor. Kurulum tamamdır diye seviniyorsun, dağıtımda ise gerçek dünya tokadı geliyor.

Dağıtım akışı nasıl düşünülür?

Create → Test → Upload → Share

Buradaki mantık çok basit görünüyor ama pratikte ince işler var: ortam değişkenleri doğru mu, build başarılı mı, güvenlik açıkları kapalı mı? Küçük bir startup için bunlar hızlı geçilebilir, ama enterprise seviyede işler ciddileşir; onay süreçleri, loglama, rollback planı derken konu büyür de büyür.

Çok konuştum, örnekle göstereyim.

Konu Kurulum Dağıtım
Amaç Araçları kullanılır hâle getirmek Projeyi başkalarına açmak
Nerede olur? Kendi cihazında Sistem dışındaki kullanıcıların erişebileceği yerde
Zamanlama İlk aşamalar Sona yaklaşırken veya canlıya çıkarken
Kimin işi? Daha çok geliştirici Daha çok kullanıcı / operasyon / ekipler

Neden İkisini Karıştırıyoruz?

Dürüst olayım, karıştırmamız normal. Çünkü ikisi de “bir şeyi çalışır yapmak” gibi duyuluyor. Ama biri kişisel alanla ilgili, diğeri kamusal alanla ilgili. Kurulum mutfağa malzeme dizmek gibi; dağıtım ise yemeği misafirlere servis etmek gibi. Bambaşka şeyler. Daha fazla bilgi için HTTP’yi Yanlış Okuyoruz: Hız Sırrı Sandığınız Gibi Değil yazımıza bakabilirsiniz.

Bunu ilk kez gerçekten ayırdığım an 2018’de Ankara’da bir freelance projede oldu. Yerel geliştirme ortamını kurmuşuz. Müşteri siteyi göremiyor diye panik yaşanmıştı — meğer ortada dağıtılmış sürüm yokmuş! O gün anladım ki teknik kavramları hafife almak, bazen baya pahalıya patlıyor. Gerçekten.

E tabi yeni başlayan biri için terimler üst üste binince kafa karışıyor: deploy etmek ne demek, install etmek ne demek… Üstelik bazı platformlarda tek tuşla ikisi birden yapılıyormuş gibi görünüyor — mesela uygulama mağazaları. Ama perde arkasında süreç yine ayrılıyor; sadece gözden kaçırıyoruz. WordPress SSO’da Ayrı Domainler İçin Sağlam Yol Haritası yazımızda bu konuya da değinmiştik.

Küçük ekipte nasıl görünür?

Küçük ekiplerde kurulum genelde hızlıdır; herkes kendi bilgisayarını hazırlar geçer gider. Dağıtım ise çoğu zaman basit hosting veya GitHub Pages üzerinden yapılır. Kolaylık güzel, ama hata toleransı düşüktür — yanlış dosya yükledin mi geçmiş olsun.

Büyük kurumda nasıl görünür?

Şunu söyleyeyim, Büyük kurumlarda tablo değişiyor. Güvenlik taraması var mı, test geçti mi, staging ortamı onay verdi mi… Bunların hepsi zincirin parçası oluyor. Yani dağıtım yalnızca “yükle gitsin” değildir; kontrollü ilerleyen, sabır isteyen bir operasyon işidir.

Kurulum seni üretmeye başlatır; dağıtım ise ürettiğini dünyaya çıkarır.

Günlük Hayattan Basit Benzetmeler İşe Yarıyor

İtiraf edeyim, Lafı gevelemeden söyleyeyim: teknik kavramları öğrenmenin en kolay yolu onları gündelik hayata benzetmekten geçiyor. Kurulumu araba anahtarını kontağa takmak gibi düşünebilirsiniz — motoru hazırlıyorsunuz ama henüz yola çıkmadınız. Hazırlık tamam, yolculuk yok.

Dağıtım ise arabayı trafiğe çıkarmak gibi. Hava güzelse keyiflidir. Trafik vardır, kırmızı ışık vardır, hatta bazen lastik bile patlayabilir! Yazılımda da aynısı oluyor; yerelde uçan proje prodüksiyonda tökezleyebiliyor. Mantıklı değil mi? Tökezlemesi de garantili sayılır açıkçası.

Bir de şu var: bazı insanlar kurulumu bitince işi tamam sanıyor. Hayır dostum, o daha başlangıç! Asıl sınav kullanıcıya ulaşınca başlıyor — çünkü gerçek veri orada geliyor ve sistem sana naz yapmadan kusurlarını gösteriyor.

  • Kurulum: Araçları hazırlarsın. — ciddi fark yaratıyor
  • Teslim: Projeyi paketlersin.
  • Dağıtım: Paketi kullanıcıya ulaştırırsın (evet biraz sert ama gerçek bu).
  • Süreklilik: Güncellemeleri yönetirsin.
  • Sorun çözme: Hata varsa geri dönüp düzeltirsin. (bu kritik)

Peki Hangisine Daha Çok Odaklanmalı?

İtiraf edeyim, Açık konuşayım: başlangıçta kurulu düzeni sağlam yapmak daha önemli olabilir. Kötü kurulmuş bir ortam bütün öğrenme sürecini yorar, insanı bezdirip bıraktırır. Ben bunu kendi küçük API denememde yaşadım; Windows tarafında eksik paket yüzünden saatlerce uğraştığımı hatırlıyorum, hâlâ içim sızlar. Halbuki sorun kodda değil, altyapıdaydı. Bazen en büyük hata en sıkıcı yerde çıkar. İşte böyle. AOC Agon Pro’nun Yeni OLED Canavarı: Fiyatı Belli Oldu yazımızda da bu konuya değinmiştik. GKE’de Zero-Trust Dağıtım: Pod’u Kilitlemenin İnce Ayarı yazımızda da bu konuya değinmiştik.

Neyse, sistemi toparlayınca iş hızlandı. Dağıtıma gelince ise durum tersine dönüyor: projen ne kadar iyi kurulursa kurulsun, canlıya alınmadığı sürece kimseye faydası yok. Bilhassa SaaS, e-ticaret ya da içerik odaklı projelerde yayınlama adımı altın değerinde — çünkü ürün. O zaman gerçek kullanıcıyla buluşuyor.

Kısacası, yeni başlayan biri önce “kurulumu sorunsuz yapmayı” öğrenmeli, sonra “doğru dağıtmayı”. Bu ikiliyi erken ayıran kişi hem daha az hata yapıyor hem de ekiple konuşurken çok daha rahat ediyor. Bir dakika, şunu da ekleyeyim: CI/CD denen şey tam burada devreye giriyor — yani el yordamıyla yapılan yayın süreçlerini otomatiğe bağlamak… ama o başka yazının konusu!

Kendiniz için pratik kontrol listesi

  1. Araçları doğru kurdun mu?
  2. Sürümler uyumlu mu?
  3. Lokal ortam çalışıyor mu? — bunu es geçmeyin
  4. Canlı ortama çıkmadan önce test yaptın mı?
  5. Yedekleme ve geri dönüş planın var mı? — ciddi fark yaratıyor
💡 Bilgi: İyi bir dağıtım süreci, sadece yayınlamak değil; gerektiğinde geri almak (rollback) için de plan yapmak demektir.

Küçük Startup ile Kurumsal Ekip Arasındaki Fark

Küçük startup tarafında hız öne çıkar. Bir geliştirici sabah kodu yazar, öğlen test eder, akşam deploy eder. Kaotik görünür ama bazen işe yarar — özellikle erken aşamada esneklik önemli. Fakat risk de büyüktür: tek kişinin hatası herkesi etkileyebilir, anında.

Enterprise tarafta ise disiplin ağır basar. Onay mekanizması vardır, staging vardır, izleme vardır, güvenlik taraması vardır. Açıkçası bu yapı (belki yanılıyorum ama) bazen yorucu gelir ama kaos yerine öngörü sağlar. Ben şahsen orta ölçekli bir fintech projesinde bunu deneyimledim; deployment günü toplantıya gireriz, üç ayrı ekip sıraya dizilir, herkes kendi imzasını atar — biraz bürokrasi hissi verir ama gece uykusu kazandırır.

Sıkça Sorulan Sorular

Kurulum ile dağıtım arasındaki temel fark nedir ?

Kurulum, yazılımı kendi cihazınızda kullanılır hâle getirmektir. Dağıtım ise proje veya uygulamayı başkalarının erişebileceği yere taşımaktır. Kısaca biri hazırlık, diğeri yayına çıkıştır ។

Bir web sitesi için önce hangisi yapılır ?

Önce geliştirme ortamını kurarsınız ; yani editör, runtime ve gerekli araçlar yüklenir. Ardından site hazırlanır ve son aşamada dağıtılır. Mantık sırası neredeyse her projede böyledir.

Deployment sadece internete yüklemek midir ?

Hayır, biraz daha geniştir. Dosyaları yüklemek bunun parçasıdır ama versiyonlama, test, doğrulama izleme gibi adımlar da olabilir. Hele bir de büyük sistemlerde deploy süreci tek tuşa indirgenmez.

Yeni başlayan biri önce ne öğrenmeli ?

Önce temel kurulum mantığını öğrenmek iyi olur. Çünkü araçları düzgün çalıştırmadan proje geliştirmek zorlaşır. Sonra dağıtımı öğrenmek gelir ; aksi hâlde yaptığınız şeyi kimseye gösteremezsiniz.

Kaynaklar ve İleri Okuma>

GitHub Docs – Depolama ve Yayınlama Rehberi”>

Microsoft DevOps Documentation”>

Atlassian – Continuous Deployment Guide”>

}

Aşkın KILIÇ

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

← Onceki Yazi
WordPress SSO’da Ayrı Domainler İçin Sağlam Yol Haritası
Sonraki Yazi →
AOC Agon Pro’nun Yeni OLED Canavarı: Fiyatı Belli Oldu

Yorum Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Kategoriler
Ara
Paylaş
İçindekiler
← WordPress SSO’da Ayrı Domainle...
AOC Agon Pro’nun Yeni OLED Can... →
📩

Gitmeden önce!

Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

📬 Haftalık bülten: Teknoloji + AI haberleri