Git ve Docker
23 kurs, 346 ders. Tarayıcıda gerçek Kali Linux labı.
- Git temelleri (Seviye 101, 18 ders): Depo, commit, dal, birleştirme ve uzak depolar.
- Docker temelleri (Seviye 101, 18 ders): İmajlar, konteynerler, ağlar ve birimler.
- VS Code temelleri (Seviye 101, 14 ders): Düzenleyiciyi, tümleşik terminali, arama ve çoklu imleci, Git panelini ve eklentileri günlük işinde rahatça kullanmayı öğrenirsin.
- Git ile ekip çalışması: dallar ve iş akışları (Seviye 201, 17 ders): Ekipte aynı depoda çalışmayı, dal stratejilerini, kod incelemesini ve uzak depoları düzenli tutmayı uygulayarak öğrenirsin.
- Git geçmişini düzenlemek: rebase, cherry-pick, bisect (Seviye 201, 16 ders): Geçmişi güvenle yeniden yazmayı, değişiklikleri dallar arasında taşımayı ve hatayı getiren commit’i bulmayı öğrenirsin.
- Git uygulama görevleri: ekipten gerçek durumlar (Seviye 201, 15 ders): Bir ekibin gününden alınmış kısa Git sorunlarını yönlendirme olmadan çözersin; her görev bir öncekinden biraz zordur.
- Docker Compose ile çok servisli uygulamalar (Seviye 201, 15 ders): Web, veritabanı ve önbellekten oluşan uygulamaları tek dosyayla tanımlar, ortamlar arasında taşır ve güncellersin.
- Docker ağları ve depolama (Seviye 201, 16 ders): Köprü, host ve overlay ağlarını, konteyner DNS’ini, birim sürücülerini ve veri yedeğini paket ve dosya düzeyinde inceleyerek öğrenirsin.
- Docker uygulama görevleri: gerçek durumlar (Seviye 201, 16 ders): Konteynerli uygulamalarda sık görülen sorunları yönlendirme olmadan çözersin; her görevde nedeni bulup kalıcı düzeltme yaparsın.
- PowerShell betikleri, fonksiyonlar ve modüller (Seviye 201, 16 ders): Parametre alan gelişmiş fonksiyonlar, hata yönetimi ve modüllerle tekrar kullanılabilir PowerShell araçları yazarsın.
- VS Code ile hata ayıklama ve uzak geliştirme (Seviye 201, 15 ders): Kesme noktalarıyla Python ve Bash hatalarını ayıklar; Remote-SSH ve Dev Containers ile sunucuda ve konteynerde geliştirirsin.
- Git’in içi ve kancalar (Seviye 301, 16 ders): Nesne veritabanını, referansları ve paket dosyalarını açıp inceler; kancalarla kendi denetimlerini yazarsın.
- Büyük depolar: alt modüller, worktree, LFS ve imzalama (Seviye 301, 15 ders): Büyüyen depolarla başa çıkmayı, birden çok çalışma alanını ve commit’leri imzalayarak kökenini kanıtlamayı öğrenirsin.
- İleri imaj üretimi: çok aşamalı derleme, BuildKit ve kayıt defteri (Seviye 301, 17 ders): Küçük, hızlı derlenen ve tekrar üretilebilir imajlar yapar; kendi kayıt defterini kurup imajları sürümler ve imzalarsın.
- Docker’da sorun giderme ve izleme (Seviye 301, 16 ders): Çöken, yavaşlayan ya da kaynak tüketen konteynerlerin nedenini kayıtlardan, metriklerden ve olaylardan bulmayı öğrenirsin.
- PowerShell ile uzaktan yönetim ve otomasyon (Seviye 301, 15 ders): Etki alanındaki Windows sunucularını PowerShell Remoting ile toplu yönetir, işleri zamanlar ve yetkileri JEA ile daraltırsın.
- Kendi Git sunucunu kur: SSH ve Gitea (Seviye 401, 15 ders): SSH üzerinden çıplak depolardan web arayüzlü Gitea’ya kadar kurum içi Git sunucusu kurar, yetkilendirir, yedekler ve geri yüklersin.
- Docker’ı üretimde işletmek: Swarm (Seviye 401, 14 ders): Birden çok sunucuda Swarm kümesi kurar, servisleri kesintisiz günceller, sırları yönetir ve kümeyi yedekleyip geri yüklersin.
- PowerShell’de test ve yapılandırma yönetimi: Pester ve DSC (Seviye 401, 12 ders): Betiklerini Pester ile test eder, sunucu yapılandırmasını DSC ile kod olarak tanımlar ve sapmayı yakalarsın.
- Görev: sürüm ve yapı mühendisi (Seviye 401, 13 ders): Bir yazılım ekibinin sürüm mühendisi olarak Git ile sürüm dallarını, Docker ile imaj üretimini ve yerel bir teslim hattını uçtan uca yönetirsin.
- Git’te kurtarma ve iz sürme (Seviye 501, 12 ders): Bozulmuş, yanlış yeniden yazılmış ya da kurcalanmış depoları kurtarır; kim neyi ne zaman değiştirdi sorusunu kanıtla yanıtlarsın.
- Docker’ın içi: namespace, cgroup, OCI ve runc (Seviye 501, 12 ders): Docker olmadan, çekirdek özellikleriyle elle konteyner kurar; containerd, runc ve OCI belgelerinin her katmanda ne yaptığını görürsün.
- PowerShell ile araç geliştirme (Seviye 501, 13 ders): Sınıflar, .NET, paralel işler ve ikili modüllerle ekibinin her gün kullanacağı, sürümlenmiş ve belgeli araçlar üretirsin.
Projeler
- Yapılandırma değişikliğini doğru commit et: Bir yapılandırma dosyasındaki değişikliği anlaşılır bir açıklamayla Git'e kaydeder, ekip arkadaşının neyin neden değiştiğini okuyabildiğini gösterirsin.
- Hatalı değişikliği güvenle geri al: Yanlışlıkla kaydedilmiş bir değişikliği geçmişi bozmadan geri alır ve dosyaların eski sağlıklı haline döndüğünü gösterirsin.
- Web uygulamasını konteynere paketle: Bir web uygulamasını konteyner imajına paketler, başka bir makinede de aynı şekilde çalıştığını göstererek teslim edersin.
- PowerShell ile toplu yapılandırma değişikliği: Birçok yapılandırma dosyasındaki aynı ayarı PowerShell ile toplu değiştirir ve her dosyada değişikliğin doğru yapıldığını gösteren bir özet çıkarırsın.
- Operasyon araç seti geliştir (Bash ve Git): Ekibin günlük işlerini kolaylaştıran Bash betiklerinden oluşan bir araç seti geliştirir, Git ile sürümler ve kullanım rehberiyle teslim edersin.
- Ekip değişikliklerini birleştir, çatışmaları çöz: İki kişinin aynı dosyada yaptığı değişiklikleri birleştirir, çıkan çatışmaları elle çözer ve sonucun ikisinin işini de koruduğunu doğrularsın.
- Konteynerde toplu iş çalıştır: Tek seferlik bir veri işini konteyner içinde çalıştırır, işin bitince temiz kapandığını ve çıktının ana makineye kaydedildiğini gösterirsin.
- Eski sürüme güvenlik yaması uygula: Hâlâ kullanılan eski bir sürüme yeni bulunan bir güvenlik açığının yamasını uygular ve açığın kapandığını testle doğrularsın.
- Git bisect ile hatayı getiren değişikliği bul: Bir hatanın hangi değişiklikle ortaya çıktığını git bisect ile geçmişi yarılayarak bulur ve suçlu değişikliği kanıtıyla birlikte raporlarsın.
- Docker Compose ile çok servisli uygulama: Web arayüzü, uygulama ve veritabanından oluşan bir sistemi Docker Compose ile tek komutla ayağa kaldırır ve servislerin birbirini bulduğunu gösterirsin.
- İmajı çevrimdışı ortama taşı: Konteyner imajını internetsiz bir ortama dosya olarak taşır, orada yükleyip çalıştırır ve imajın değişmediğini doğrularsın.
- Uygulama için ayrı bir test ortamı kur: Uygulama için canlı sistemden ayrı bir test ortamı kurar ve test sırasında canlı verilere dokunulmadığını gösterirsin.
- Konteyner yeniden kurulsa da veri kalsın: Veritabanı konteynerini silip yeniden kursan bile kayıtların yerinde kalmasını sağlar ve bunu önce-sonra kontrolüyle kanıtlarsın.
- Konteynerlere bellek ve CPU sınırı koy: Konteynerlere bellek ve işlemci sınırı koyar, bir uygulama aşırı kaynak kullansa bile diğerlerinin etkilenmediğini gösterirsin.
- Konteynerdeki işi güvenle durdur: Konteyner durdurulurken yarım kalan işlerin kaybolmaması için uygulamanın düzgünce kapanmasını sağlar ve verinin bütün kaldığını gösterirsin.
- Küçük ve güvenli imaj üret: Gereksiz araçlardan arındırılmış, yetkisiz kullanıcıyla çalışan küçük bir konteyner imajı üretir ve boyutun ile bilinen açıkların azaldığını raporlarsın.
- Depo kurallarını Git kancalarıyla uygula: Yelkovan Bankası’nın yazılım ekibi için Git kancaları (hook) yazarsın: mesaj biçimini denetleyen, depoya parola ya da anahtar girmesini önleyen istemci kancaları ve ana dala doğrudan itmeyi reddeden sunucu kancası. Her kuralın bilerek yapılan bir ihlali durdurduğunu gösterirsin.
- Bozuk konteyner yığınını teşhis et ve onar: Kuzeyyıldızı Kargo’nun gönderi takip uygulaması Compose ile ayağa kalkmıyor: bir servis sürekli yeniden başlıyor, biri bellek sınırına takılıyor, biri veritabanını adıyla bulamıyor. Kayıtlar, olaylar ve inceleme komutlarıyla üç nedeni bulur, düzeltir ve bir arıza notu yazarsın.
- Kurum için kendi Git sunucunu kur (Gitea): Selvikent Belediyesi’nin bilgi işlem birimi için Gitea ile bir Git sunucusu kurarsın: SSH ile erişim, ekipler ve yetkiler, ana dal koruması, imzalı kayıt zorunluluğu. Sunucunun yedeğini alır, boş bir ortama geri yükler ve depoların eksiksiz geldiğini gösterirsin.
- Kaybolan Git geçmişini kurtar ve olanları belgele: Göktaşı Yazılım’ın ana deposunda zorla itme sonrası bir haftalık çalışma kaybolmuş, bazı nesneler de bozulmuş. Hazırlanmış depo kopyasında reflog, fsck ve sahipsiz nesnelerle kayıp kayıtları geri getirir, kimin ne zaman neyi değiştirdiğini gösteren bir zaman çizelgesi yazarsın.