From 94f58be7b5edfc1ff4a91105e4a68de8cd59d6e9 Mon Sep 17 00:00:00 2001 From: kolaynurdan Date: Tue, 8 Aug 2023 13:59:42 +0300 Subject: [PATCH 1/7] added new files --- 2022/tr/Days/day39.md | 204 ++++++++++++++++++++++++++++++++++++++++++ 2022/tr/Days/day40.md | 200 +++++++++++++++++++++++++++++++++++++++++ 2022/tr/Days/day41.md | 117 ++++++++++++++++++++++++ 3 files changed, 521 insertions(+) create mode 100644 2022/tr/Days/day39.md create mode 100644 2022/tr/Days/day40.md create mode 100644 2022/tr/Days/day41.md diff --git a/2022/tr/Days/day39.md b/2022/tr/Days/day39.md new file mode 100644 index 0000000..0d70361 --- /dev/null +++ b/2022/tr/Days/day39.md @@ -0,0 +1,204 @@ +## Değişiklikleri Görüntüleme, Unstaging, İptal Etme ve Geri Yükleme + +Dün kaldığımız yerden git komutlarının bazılarına ve projelerinizde git'i nasıl kullanabileceğinize dair nasıl yapabileceğimize dair konuşmaya devam ediyoruz. Hatırlatmak isterim ki henüz GitHub veya diğer git tabanlı hizmetlere dokunmadık, şu anda projelerinizi yerel olarak kontrol etmenize yardımcı olmak için tüm bunlar, ancak bu araçlarla entegre olmaya başladığımızda hepsi kullanışlı hale gelecek. + +### Staged ve Unstaged Değişiklikleri Görüntüleme + +Commit etmeden önce staged ve unstaged kodu görüntülemek iyi bir uygulamadır. Bunun için `git diff --staged` komutunu çalıştırabiliriz. + +![](Images/Day39_Git1.png) + +Bu bize yaptığımız tüm değişiklikleri ve eklediğimiz veya sildiğimiz tüm yeni dosyaları gösterir. + +Değiştirilen dosyalardaki değişiklikler `---` veya `+++` ile gösterilir, aşağıda yeni satırlar olduklarını belirten +add some text below eklediğimizi görebilirsiniz. + +![](Images/Day39_Git2.png) + +Ayrıca `git diff` komutunu çalıştırarak taahhüt alanımızı çalışma dizinimizle karşılaştırabiliriz. Yeni eklenen code.txt dosyasını değiştiririz ve bazı metin satırları ekleriz. + +![](Images/Day39_Git3.png) + +Daha sonra `git diff` komutunu çalıştırırsak, aşağıdaki çıktıyı karşılaştırır ve görüntüleriz. + +![](Images/Day39_Git4.png) + +### Gorsel Fark(Diff) Aracları + +Benim için yukarıdaki yöntem biraz karışık olduğu için daha çok görsel bir araç kullanmayı tercih ederim. + +Birkaç görsel fark aracını şöyle sıralayabiliriz: + +- KDiff3 +- P4Merge +- WinMerge (Windows Only) +- VSCode + +Bu aracı git içinde ayarlamak için aşağıdaki komutu çalıştırırız: `git config --global diff.tool vscode` + +Yukarıdakini çalıştıracağız ve VScode'u başlattığımızda bazı parametreler belirleyeceğiz. + +![](Images/Day39_Git5.png) + + +Ayrıca konfigürasyonumuzu `git config --global -e` komutu ile kontrol edebiliriz. + +![](Images/Day39_Git6.png) + +Ardından şimdi farklılık görsel aracımızı açmak için `git difftool` komutunu kullanabiliriz. + +![](Images/Day39_Git7.png) + +Bu, farklılık sayfasında VScode düzenleyicimizi açar ve ikisini karşılaştırır, sadece bir dosyayı hiçbir şeyden, şimdi sağ tarafta bir kod satırı ekleyerek değiştirdik. + +![](Images/Day39_Git8.png) + +Bu yöntemi değişiklikleri takip etmek için çok daha kolay buluyorum ve bu, GitHub gibi git tabanlı hizmetlere baktığımızda göreceğimiz bir şeye benziyor. + +Ayrıca stage edilmiş dosyaları aşama ile karşılaştırmak için `git difftool --staged` komutunu da kullanabiliriz. + +![](Images/Day39_Git9.png) + +Ardından stage etmeden önce değiştirilmiş dosyalarımızı döngü içinde gezebiliriz. + +![](Images/Day39_Git10.png) + +Ben IDE olarak VScode kullanıyorum ve çoğu IDE gibi, bu işlevsellik zaten entegre edilmiş durumda, bu komutları nadiren terminalden çalıştırmanız gerekecektir, ancak herhangi bir nedenle IDE yüklü değilse yardımcı olur. + +### History(Gecmiş) Görüntüleme + +Daha önce `git log` komutuna değinmiştik, bu komut bize deposundaki yaptığımız tüm commitleri kapsamlı bir şekilde görüntüler. + +![](Images/Day39_Git11.png) + +Her commitin kendine özgü onaltılık bir dizisi vardır ve bu dizide depoya özgüdür. Burada hangi şubede çalıştığımızı ve ayrıca yazarı, tarihi ve commit mesajını görebilirsiniz. + +Ayrıca `git log --oneline` komutunu kullanarak daha küçük bir onaltılık dizisinin daha küçük bir sürümünü alabiliriz ve bunu diğer `diff` komutlarında kullanabiliriz. Ayrıca yalnızca tek satırlık açıklamaya veya commit mesajına sahibiz. + + +![](Images/Day39_Git12.png) + +Bu komutu tersine çevirerek ilk commitle başlamak için `git log --oneline --reverse` çalıştırabiliriz ve şimdi ilk commitiniz sayfanın en üstünde görüyoruz. + +![](Images/Day39_Git13.png) + +### Bir Commit'i Görüntüleme + +Bir taahhüt mesajına bakma yeteneği, en iyi uygulamaları takip etmeye özen gösterdiyseniz ve anlamlı bir taahhüt mesajı eklediyseniz harikadır, ancak ayrıca bir taahhüdü incelememize ve görüntülememize izin veren `git show` komutu da vardır. + +g`git log --oneline --reverse` komutunu kullanarak commitlerimizin bir listesini alabiliriz. ve sonra bu taahhütleri alıp `git show ` komutunu çalıştırabiliriz. + +![](Images/Day39_Git14.png) + +Bu komutun çıktısı, commitin detayı, yazarı ve neyin değiştiği gibi aşağıdaki gibi görünecektir. + +![](Images/Day39_Git15.png) + +Ayrıca, `git show HEAD~1` kullanarak, 1, mevcut sürümden ne kadar geri gitmek istediğimizi belirtir. + +Bu dosyalarınız hakkında bazı detaylar istiyorsanız harikadır, ancak tüm anlık görüntü dizini için ağaçta bulunan tüm dosyaları listelemek istiyorsak. Bunun için `git ls-tree HEAD~1` komutunu kullanarak bunu başarabiliriz, burada en son committen bir anlık görüntü geriye gitmektedir. Aşağıda iki blok olduğunu görebilirsiniz, bunlar dosyaları gösterirken ağaç, bir dizini gösterecektir. Ayrıca bu bilgilerde taahhütleri ve etiketleri görebilirsiniz. + +![](Images/Day39_Git16.png) + +Yukarıdakini kullanarak, dosyanın içeriğini (bloklar) görmek için `git show` komutunu kullanabiliriz. + +![](Images/Day39_Git17.png) + +Ardından belirli bir dosyanın o sürümünün içeriği gösterilecektir. + +![](Images/Day39_Git18.png) + +### Unstaging Files + +Belki de `git add .` komutunu kullanmış olabilirsiniz, ancak henüz o anlık görüntüye commit etmek istemediğiniz dosyalarınız olabilir. Aşağıdaki örnekte yeni bir dosya olan newfile.txt'yi commit alanıma ekledim, ancak bu dosyayı taahhüt etmeye hazır değilim, bu nedenle `git add` adımını geri almak için `git restore --staged newfile.txt` komutunu kullanacağım. + +![](Images/Day39_Git19.png) + +Aynı şekilde main.js gibi değiştirilmiş dosyaları unstaging bırakabiliriz ve commiti geri alabiliriz, yukarıda değiştirilmiş için yeşil bir M işareti var ve aşağıda bu değişiklikleri committen çıkarıyoruz. + +![](Images/Day39_Git20.png) + +Ben bu komutu 90DaysOfDevOps sırasında oldukça faydalı buldum, bazen ileride çalışıyorum ve bir sonraki gün için notlar almak istediğim günlerde commit ve push işlemlerini genel GitHub deposuna gerçekleştirmek istemiyorum. + +### Local Değişiklikleri İptal Etme + +Bazen değişiklikler yapabiliriz, ancak bu değişikliklerden memnun değiliz ve onları atmak istiyoruz. Tekrar `git restore` komutunu kullanacağız ve anlık görüntülerden veya önceki sürümlerden dosyaları geri yükleyebileceğiz. `git restore .` komutunu dizinimize karşı çalıştırabilir ve anlık görüntüden her şeyi geri yükleyebiliriz, ancak takip edilmeyen dosyanın hala mevcut olduğuna dikkat edin. newfile.txt adında izlenen önceki bir dosya yok. + +![](Images/Day39_Git21.png) + +Şimdi newfile.txt veya takip edilmeyen herhangi bir dosyayı kaldırmak için `git clean` komutunu kullanabiliriz, yalnızca bir uyarı alacaksınız. + +![](Images/Day39_Git22.png) + +Veya sonuçlarını biliyorsak, tüm dizinleri zorla kaldırmak için `git clean -fd` komutunu çalıştırmak isteyebiliriz. + +![](Images/Day39_Git23.png) + +### Bir Dosyayı Daha Önceki Bir Sürüme Geri Yükleme + +Git'in size yardımcı olabileceği büyük bir bölümü, dosyalarınızın anlık görüntülerinizden kopyalarını geri yükleyebilme yeteneğidir (bu bir yedek değil, ancak çok hızlı bir geri yükleme noktasıdır). Benim tavsiyem, ayrıca kodunuzu diğer konumlarda yedek bir çözüm kullanarak kaydetmenizdir. + +Bir örnek olarak, dizinimizdeki en önemli dosyamızı silelim, bunu dizinden kaldırmak için Unix tabanlı komutları kullanıyoruz, git komutları değil. + +![](Images/Day39_Git24.png) + +Şimdi çalışma dizinimizde readme.md dosyamız yok. `git rm readme.md` komutunu kullanabilirdik ve bu, git veritabanımızda yansıtılacaktı. Ayrıca, tamamen kaldırıldığını simüle etmek için onu buradan da silelim. + +![](Images/Day39_Git25.png) + +Şimdi bir mesajla bunu commit edelim ve artık çalışma dizinimizde veya taahhüt alanımızda hiçbir şey olmadığını kanıtlayalım. + +![](Images/Day39_Git26.png) + +Hatalar yapıldı ve şimdi bu dosyaya ihtiyacımız var! + +Son taahhüdü geri alacak olan `git undo` komutunu kullanabilirdik, ancak bir süre önceyse ne yapmalıyız? Taahhütlerimizi bulmak için `git log` komutunu kullanabiliriz ve ardından dosyamızın son taahhütte olduğunu buluruz, ancak tüm bu taahhütlerin geri alınmasını istemiyoruz, bu nedenle belirli bir komut olan `git restore --source=HEAD~1 README.md` komutunu kullanarak dosyayı belirleyebiliriz ve anlık görüntümüzden geri yükleyebiliriz. + +Bu süreci kullanarak dosyanın artık çalışma dizinimizde olduğunu görebilirsiniz. + +![](Images/Day39_Git27.png) + +Artık yeni bir izlenmeyen dosyamız var ve dosyalarımızı ve değişikliklerimizi takip etmek, aşama almak ve commit etmek için önceki olarak bahsedilen komutlarımızı kullanabiliriz. + +### Rebase vs Merge + +Bu, Git ve ne zaman yeniden taban almak veya birleştirmeyi kullanmak gerektiğinde en büyük baş ağrısına neden olan şey gibi görünüyor. + +Bilinmesi gereken ilk şey, `git rebase` ve `git merge` komutlarının aynı sorunu çözdüğüdür. İkisi de bir dalı diğerine entegre etmek içindir. Ancak bunu farklı yollarla yaparlar. + +Yeni bir özellikle yeni bir özel dalda başlayalım. Ana dal, yeni taahhütlerle devam eder. + +![](Images/Day39_Git28.png) + +Kolay seçenek, `git merge feature main` kullanmaktır, bu, ana dalı özellik dalına birleştirir. + +![](Images/Day39_Git29.png) + +Birleştirme, yıkıcı olmadığı için kolaydır. Mevcut dallar hiçbir şekilde değiştirilmez. Bununla birlikte, bu, özellik dalının her seferinde yukarı akış değişikliklerini içermesi gerektiğinde ilgisiz birleştirme taahhüdüne sahip olacağı anlamına gelir. Ana dal çok yoğun veya aktifse, bu özellik dalının geçmişini kirletebilir. + +Alternatif bir seçenek olarak, özellik dalını ana dalın üstüne yeniden taban alabiliriz: + +``` +git checkout feature +git rebase main +``` + +Bu, özellik dalını (tüm özellik dalını) ana dala etkin bir şekilde dahil eder. Ancak, birleştirme commiti kullanmak yerine yeniden taban almak, orijinal dalın her commiti için yepyeni taahhütler oluşturarak proje geçmişini yeniden yazarak yapar. + +![](Images/Day39_Git30.png) + +Yeniden taban almanın en büyük faydası, çok daha temiz bir proje geçmişidir. Ayrıca gereksiz birleştirme taahhütlerini ortadan kaldırır. Ve son iki resmi karşılaştırdığınızda, daha temiz ve lineer bir proje geçmişini takip edebilirsiniz. + +Yine de kesin bir sonuç olmasa da, daha temiz bir geçmişi seçmek bazı karşılıklılıkları da beraberinde getirir. Eğer [Yeniden Taban Almanın Altın Kuralı](https://www.atlassian.com/git/tutorials/merging-vs-rebasing#the-golden-rule-of-rebasing)nı takip etmezseniz, proje geçmişini yeniden yazmak işbirliği iş akışınız için potansiyel olarak felaket olabilir. Ve daha az önemli olarak, yeniden taban alma birleştirme taahhüdünün sağladığı bağlamı kaybeder - yukarı akış değişikliklerinin özelliğe ne zaman dahil edildiğini göremezsiniz. + +## Kaynaklar + +- [What is Version Control?](https://www.youtube.com/watch?v=Yc8sCSeMhi4) +- [Types of Version Control System](https://www.youtube.com/watch?v=kr62e_n6QuQ) +- [Git Tutorial for Beginners](https://www.youtube.com/watch?v=8JJ101D3knE&t=52s) +- [Git for Professionals Tutorial](https://www.youtube.com/watch?v=Uszj_k0DGsg) +- [Git and GitHub for Beginners - Crash Course](https://www.youtube.com/watch?v=RGOj5yH7evk&t=8s) +- [Complete Git and GitHub Tutorial](https://www.youtube.com/watch?v=apGV9Kg7ics) +- [Git cheatsheet](https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet) +- [Exploring the Git command line – A getting started guide](https://veducate.co.uk/exploring-the-git-command-line/) + +Gorusmek Uzere [Gun40](day40.md) diff --git a/2022/tr/Days/day40.md b/2022/tr/Days/day40.md new file mode 100644 index 0000000..79699a4 --- /dev/null +++ b/2022/tr/Days/day40.md @@ -0,0 +1,200 @@ +## Sosyal Network Kod için + +GitHub | GitLab | BitBucket'i Kesfetmek + +Bugün, muhtemelen hepimizin duyduğu ve muhtemelen günlük olarak kullandığımız bazı git tabanlı hizmetleri ele almak istiyorum. + +Daha sonra önceki oturum bilgilerimizden bazılarını kullanarak verilerimizin kopyalarını ana hizmetlere taşıyacağız. + +Bu bölümü "Sosyal Network Kod için" olarak adlandırdım, nedenini açıklayayım mı? + +### GitHub + +En yaygın olarak en azından benim için GitHub'tır. GitHub, git için web tabanlı bir barındırma hizmetidir. Genellikle yazılım geliştiricileri tarafından kodlarını saklamak için kullanılır. Git sürüm kontrol özellikleri ile Kaynak Kod Yönetimi ve birçok ek özellik sunar. Takımlara veya açık katkı sağlayanlara kolay iletişim imkanı sağlar ve kodlamaya sosyal bir yön kazandırır. (bu yüzden sosyal ağ başlığı) 2018 yılından bu yana GitHub, Microsoft'un bir parçasıdır. + +GitHub uzun bir süredir var ve 2007/2008 yılında kuruldu. Bugün platformda 40 milyondan fazla kullanıcı bulunmaktadır. + +GitHub Ana Özellikleri + +- Code Repository +- Pull Requests +- Project Management toolset - Issues +- CI / CD Pipeline - GitHub Actions + +Fiyatlandırma açısından, GitHub kullanıcıları için farklı fiyatlandırma seviyeleri sunar. Daha fazlası için [fiyatlandırma](https://github.com/pricing)'ya bakılabilir. + +Bu kapsamda ücretsiz seviyeyi ele alacağız. + +Bu rehberde zaten oluşturulmuş olan GitHub hesabımı kullanacağım, eğer bir hesabınız yoksa, açılış GitHub sayfasında kaydolma seçeneği ve kurulumu yapmak için bazı kolay adımlar bulunmaktadır. + +### GitHub Açılış Sayfası + +GitHub hesabınıza ilk giriş yaptığınızda, genelde neleri görmek veya ne yapmak istediğinize dair birçok widget içeren bir sayfa görüntülenir. İlk olarak "Tüm Etkinlik"ler kısmı bulunmaktadır, bu, depolarınızla veya hesabınızla ilişkilendirilen genel etkinlikleri gösterir. + +![](Images/Day40_Git1.png) + +Sonra, Kod Depolarımızı görüntüleriz, kendi depolarımızı veya son zamanlarda etkileşimde bulunduğumuz depoları görüntüleyebiliriz. Ayrıca hızlıca yeni depolar oluşturabilir veya depo arayabiliriz. + +![](Images/Day40_Git2.png) + +Daha sonra son zamanlardaki etkinliklerimiz gelir, bunlar genellikle benim tarafımdan oluşturulan veya son zamanlarda katkıda bulunduğum sorunlar ve çekme istekleridir. + +![](Images/Day40_Git3.png) + +Sayfanın sağ tarafında, muhtemelen son etkinlikleriniz veya kendi projeleriniz temel alınarak ilginizi çekebilecek depo önerileri bulunur. + +![](Images/Day40_Git4.png) + +Dürüst olmak gerekirse, şimdi gördüğümüz ve anlattığımız ana sayfada çok nadiren bulunurum, ama artık beslemenin belirli projelerde toplulukla daha iyi etkileşimde bulunmama yardımcı olabileceğini görüyorum. + +Şimdi, GitHub Profilimize gitmek istiyorsak, sağ üst köşeye gidip resminizin üzerine tıklamanız gerekiyor, açılan menüde hesabınızı gezinmek için bir seçenek bulunacaktır. Buradan "Profiliniz"i seçerek profiline erişebilirsiniz. + +![](Images/Day40_Git5.png) + +Sonra, profil sayfanız görünecektir. Varsayılan olarak, yapılandırmanızı değiştirmezseniz, benimkinde olduğu gibi görmeyeceksiniz. Ben, son blog yayınlarımı [vZilla](https://vzilla.co.uk) üzerinde ve ayrıca en son [YouTube](https://m.youtube.com/c/MichaelCade1) kanalımdaki videolarımı gösteren bazı işlevselliği ekledim. + +Profilinizi çok fazla inceleme yaparak geçirmeyeceksiniz, ancak bu, ağınızla paylaşabileceğiniz iyi bir profil sayfasıdır, böylece üzerinde çalıştığınız harika projeleri görebilirler. + +![](Images/Day40_Git6.png) + +Sonra, GitHub'ın temel yapı taşı olan depolara doğru ilerleyebiliriz. Burada depolarınızı göreceksiniz ve özel depolarınız varsa bunlar da bu uzun listede gösterilecektir. + +![](Images/Day40_Git7.png) + +Depo GitHub için çok önemli olduğu için, son zamanlarda oldukça yoğun olan 90DaysOfDevOps deposunu seçtim ve burada kullanabileceğimiz temel işlevselliğin bazılarını anlatacağım. Zaten yerel sistemimde "kod"umuzu düzenlerken kullandığım her şeyin üstüne. + +Öncelikle, önceki pencereden 90DaysOfDevOps deposunu seçtim ve bu görünümü gördük. Bu görünümden, çok sayıda bilgiye sahip olduğumuzu görebilirsiniz. Orta kısımda ana kod yapımızı görüntülüyoruz, depomuzda saklanan dosyalarımızı ve klasörlerimizi gösteriyoruz. Alttan okuma. mdalt kısmına ekran alınmıştır. Sayfanın sağ tarafında, depo bir açıklama ve amaç içeren bir bölüm bulunur. Ardından, projeye kaç kişinin yıldız eklediğini, çatal oluşturduğunu ve izlediğini gösteren birçok bilgi bulunur. + +![](Images/Day40_Git8.png) + +Biraz daha aşağı kaydırırsak, Yayınlananlar bölümünü de göreceksiniz, bunlar meydan okumanın golang kısmından geliyor. Projemizde herhangi bir paket bulunmuyor, katkıda bulunanlarımız burada listeleniyor. (Yazım hataları ve gerçekleri kontrol etme konusunda topluluk yardımı için teşekkür ederim) Ardından yine meydan okumanın farklı bölümlerinden alınan kullanılan dilleri görüyoruz. + +![](Images/Day40_Git9.png) + +Sayfanın üst kısmında sekmelerin bir listesini göreceksiniz. Bunlar değişebilir ve yalnızca ihtiyaç duyduklarınızı göstermek üzere değiştirilebilir. Burada, bunların tümünü kullanmıyorum ve tüm depomun düzenli olduğundan emin olmak için bunları kaldırmalıyım. + +Öncelikle, sadece tartıştığımız kod sekmesi vardı, ancak bu sekmeler, bir depo içinde gezinirken her zaman mevcuttur, bu da bölümler arasında hızlı ve kolay geçiş yapmamıza olanak tanır. Sonraki olarak, sorunlar sekmesine sahibiz. + +Sorunlar sekmesi, GitHub'daki çalışmanızı takip etmenize olanak tanır. Gelişmenin gerçekleştiği yer. Bu belirli depoda diyagram eklemeye veya yazım hatalarını düzeltmeye odaklanan bazı sorunlarım olduğunu görebilirsiniz, ancak aynı zamanda depoya Çince bir sürümün gerektiğini belirten bir sorunumuz da var. + +Bu bir kod deposu olsaydı, bu, sahiplerle ilgili sorunları veya sorunları gündeme getirmek için harika bir yer olurdu, ancak raporladığınız şeyin ne olduğu konusunda dikkatli ve ayrıntılı olmayı unutmayın ve mümkün olduğunca çok ayrıntı verin. + +![](Images/Day40_Git10.png) + +Sonraki sekme pull requestlerdir. Pull requestleri, bir depodaki bir dalda ittiğiniz değişiklikleri başkalarına bildirmenizi sağlar. Bu, birinin depoyu çatallandığı, hataları düzelttiği veya özellikleri geliştirdiği veya bu depoda çoğu durumda sadece yazım hatalarını düzelttiği yerdir. + +Sonradan forklamayı ele alacağız. + +![](Images/Day40_Git11.png) + +Sanırım bir sonraki sekme oldukça yeni mi? Ama böyle bir projede, #90DaysOfDevOps gibi, içerik yolculuğunu yönlendirmeye yardımcı olabileceğini düşündüm, ancak aynı zamanda topluluğa öğrenme yolculukları sırasında yardımcı olabilir. Her meydan okuma bölümü için birkaç tartışma grubu oluşturdum, böylece insanlar katılarak tartışabilirler. + +![](Images/Day40_Git12.png) + +Eylemler sekmesi, kodu inşa etmenize, test etmenize, dağıtmanıza ve GitHub içinden çok daha fazlasını yapmanıza olanak tanır. GitHub Eylemleri, meydan okumanın CI/CD bölümünde ele alacağımız bir şeydir, ancak burada bize adımları otomatikleştirmek için yapılandırma ayarlayabileceğimiz yerdir. + +Ana GitHub Profilimde, ana ekranı güncel tutmak için en son blog yayınlarını ve YouTube videolarını almak için GitHub Eylemlerini kullanıyorum. + +![](Images/Day40_Git13.png) + +Yukarıda bahsettiğim gibi, GitHub sadece bir kaynak kod deposu değil, aynı zamanda bir proje yönetim aracıdır. Proje sekmesi, projeyi daha iyi işbirliği yapmak ve bu görevlerin görünürlüğünü sağlamak için sorunları ve PR'leri bağlayabileceğimiz kanban tipi panoları oluşturmamıza olanak tanır. + +![](Images/Day40_Git14.png) + +Sorunların bana iyi bir özellik talebi kaydetmek için uygun bir yer gibi görünmesine rağmen ve öyledir ancak wiki sayfası, mevcut durumu ile projenin kapsamlı bir yol haritasını oluşturmak için genelde sorunlarınıza daha iyi çözüm olabilecek belge veya sorun giderme tarzı içeriği oluşturmanıza olanak tanır. + +![](Images/Day40_Git15.png) + +Bu projeye pek uygulanamasa da, Güvenlik sekmesi, katkıda bulunanların belirli görevleri nasıl ele alması gerektiğini bildiğinden emin olmak için burada bir politika tanımlayabiliriz, ancak aynı zamanda kod tarama eklentileriyle kodunuzun örneğin gizli ortam değişkenleri içermediğinden emin olabiliriz. + +![](Images/Day40_Git16.png) + +Benim için Insights sekmesi harika, depo hakkında bu kadar çok bilgi sağlıyor, aktivite ne kadar sürdüğünden, taahhütler ve sorunlar hakkında raporlar da dahil olmak üzere, ayrıca depoya yönelik trafiği raporlar. Solda gördüğünüz bir liste, depo metrikleri hakkında detaylı bilgi almanıza olanak tanır. + +![](Images/Day40_Git17.png) + +Son olarak, Ayarlar sekmesi, depomuzu nasıl işleteceğimize dair ayrıntılara girebileceğimiz yerdir. Şu anda repo sadece benim tarafımdan yönetiliyor, ancak bu sorumluluğu burada paylaşabilirdik. Entegrasyonları ve diğer görevleri burada tanımlayabiliriz. + +![](Images/Day40_Git18.png) + +Bu, GitHub'ın hızlı bir genel bakışıydı. Daha ayrıntılı açıklamaya ihtiyaç duyabileceğimi düşündüğüm bazı diğer alanlar da var. Bahsedildiği gibi, GitHub milyonlarca depoyu barındırıyor, bunların çoğu kaynak kodunu içeriyor ve bunlar genel veya özel olarak erişilebilir. + +### Forking(Catallama) + +Yarınki oturumda daha fazla şekilde Açık Kaynaklı (Open-Source) konusuna gireceğim, ancak herhangi bir kod reposunun büyük bir parçası toplulukla işbirliği yapma yeteneğidir. Düşünün ki, bir repodan bir kopya istiyorum, çünkü üzerinde bazı değişiklikler yapmak istiyorum, belki bir hatayı düzeltmek istiyorum ya da belki de kodun orijinal bakımını yapan kişi için öngörülmeyen bir kullanım senaryosu için bir şeyi değiştirmek istiyorum. İşte bu duruma bir depoyu "forklamak" diyoruz. Bir fork, bir reposunun bir kopyasıdır. Bir deponun fork'lanması, orijinal projeyi etkilemeden değişikliklerle serbestçe denemenizi sağlar. + +Giriş yaptıktan sonra ana sayfaya geri döneyip önerilen repolardan birine bakalım. + +![](Images/Day40_Git19.png) + +Bu depoya tıklarsak, gerade 90DaysOfDevOps deposunda gezindiğimiz görünümü alacağız. + +![](Images/Day40_Git20.png) + +Aşağıya baktığımızda 3 seçeneğimiz var: izleme (watch), fork ve yıldız (star). + +- Watch - Depoya bir şeyler olduğunda güncellemeler alırsınız. +- Fork - Bir deponun kopyası. +- Star - "Projeni harika buluyorum" + +![](Images/Day40_Git21.png) + +Bu repoyu kopyalamak istediğimiz senaryomuz göz önünde bulundurulursa, fork seçeneğine tıklıyoruz. Birden fazla organizasyona üyeyseniz, fork'ün nerede gerçekleşeceğini seçmeniz gerekecektir. Ben profilimi seçmeyi tercih ediyorum. + +![](Images/Day40_Git22.png) + +Şimdi, bu repomuzun kopyasına sahibiz ve istediğimiz gibi özgürce üzerinde çalışabilir ve değişiklikler yapabiliriz. Bu, önce kısaca bahsettiğimiz "pull request" (çekme isteği) sürecinin başlangıcı olacak, ancak bunu yarın daha detaylı bir şekilde ele alacağız. + +![](Images/Day40_Git23.png) + +Peki, diyorsunuz, bu depoya ve koda nasıl değişiklik yapabilirim, çünkü bu bir web sitesinde; evet, web sitesi üzerinden düzenlemeler yapabilirsiniz, ancak bunu yerel sistemimizdeki favori IDE'nizle ve favori renk temasınızla yapmak gibi olmayacaktır. Bu depoyu yerel makinenize kopyalamak için deponun bir "clone"unu (kopyasını) oluşturacağız. Bu, yerelde çalışmamıza ve ardından deponun fork'lanmış kopyasına değişikliklerimizi geri itmemize olanak tanır. + +Kodun bu kopyasını elde etmek için birkaç seçeneğimiz var, aşağıda gördüğünüz gibi. + +GitHub Masaüstü uygulaması ile, yerel ve GitHub arasında değişiklikleri takip etmek ve çekmek (pull) ve göndermek (push) için görsel bir masaüstü uygulaması sunulur. + +Bu küçük demoda, üzerinde gördüğümüz HTTPS URL'sini kullanacağım. + +![](Images/Day40_Git24.png) + +Şimdi, yerel makinede, bu deponun indirilmesini kabul edeceğim bir dizine gidip `git clone url` komutunu çalıştıracağım. + +![](Images/Day40_Git25.png) + +Şimdi bunu VScode'a taşıyarak bazı değişiklikler yapalım. + +![](Images/Day40_Git26.png) + +Şimdi bazı değişiklikler yapalım, bu tüm bağlantıları değiştirip başka bir şey ile değiştirmek istiyorum. + +![](Images/Day40_Git27.png) + +Şimdi GitHub'a geri döner ve bu depodaki readme.md dosyasını buluruz, dosyada yaptığımız birkaç değişikliği görebilirsiniz. + +![](Images/Day40_Git28.png) + +Bu aşamada, bu tamamlanmış olabilir ve yeni değişikliğimizi sadece biz kullanacağımız için memnun olabiliriz, ancak belki de bir hata düzeltmesi idi ve eğer durum buysa, o zaman orijinal depo sahiplerine değişikliğimizi bildirmek ve onaylamalarını istemek için bir Pull Talebi (Pull Request) yoluyla katkıda bulunmak isteyeceğiz. + +Bunu aşağıda vurgulanan "contribute" düğmesini kullanarak yapabiliriz. Daha fazlasını yarın Açık Kaynaklı iş akışlarını incelediğimizde ele alacağım. + +![](Images/Day40_Git29.png) + +Uzun bir süre boyunca GitHub'ı inceledim ve bazılarınızın "peki diğer seçenekler ne?" dediğini duyuyorum! + +Evet, başka seçenekler de var ve bazı temel bilgileri kapsayan kaynaklar bulacağım. GitLab ve BitBucket gibi hizmetlerle karşılaşacaksınız ve bunlar git tabanlı hizmetlerdir, ancak farklılıkları vardır. + +Ayrıca barındırılan seçeneklerle de karşılaşacaksınız. En yaygın olarak GitLab'ı barındırılan bir versiyon olarak veya GitHub Enterprise'ı görmüşümdür (Ücretsiz bir barındırılan GitHub mı yoksa?). + +## Kaynaklar + +- [Learn GitLab in 3 Hours | GitLab Complete Tutorial For Beginners](https://www.youtube.com/watch?v=8aV5AxJrHDg) +- [BitBucket Tutorials Playlist](https://www.youtube.com/watch?v=OMLh-5O6Ub8&list=PLaD4FvsFdarSyyGl3ooAm-ZyAllgw_AM5) +- [What is Version Control?](https://www.youtube.com/watch?v=Yc8sCSeMhi4) +- [Types of Version Control System](https://www.youtube.com/watch?v=kr62e_n6QuQ) +- [Git Tutorial for Beginners](https://www.youtube.com/watch?v=8JJ101D3knE&t=52s) +- [Git for Professionals Tutorial](https://www.youtube.com/watch?v=Uszj_k0DGsg) +- [Git and GitHub for Beginners - Crash Course](https://www.youtube.com/watch?v=RGOj5yH7evk&t=8s) +- [Complete Git and GitHub Tutorial](https://www.youtube.com/watch?v=apGV9Kg7ics) +- [Git cheatsheet](https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet) + +Gorusmek Uzere [Gun 41](day41.md) diff --git a/2022/tr/Days/day41.md b/2022/tr/Days/day41.md new file mode 100644 index 0000000..b0983c7 --- /dev/null +++ b/2022/tr/Days/day41.md @@ -0,0 +1,117 @@ +## Açık Kaynak İş Akışı + +Umarım, Git'in son 7 bölümünü inceledikten sonra git'in ne olduğunu ve ardından GitHub gibi bir git tabanlı hizmetin, kaynak kodu depolama alanını sağlamanın yanı sıra geniş topluluğun kod ve projeler üzerinde işbirliği yapabileceği bir yol olduğunu daha iyi anlamışsınızdır. + +GitHub temellerini incelediğimizde rastgele bir projeyi çatallama ve yerel depomuzda bir değişiklik yapma sürecini geçtik. Burada bir adım daha ileri gitmek ve açık kaynak bir projeye katkıda bulunmak istiyoruz. Unutmayın, katkıda bulunmak hata düzeltmeleri veya kodlama özellikleri olmak zorunda değildir, aynı zamanda belgeleme de olabilir. Her türlü katkı faydalı olur ve ayrıca üzerinde çalıştığımız bazı git işlevselliğiyle pratik yapmanıza olanak tanır. + +## Bir Projeyi Çatallama(Forklama) + +İlk yapmamız gereken katkıda bulunabileceğimiz bir proje bulmak. Yakın zamanda [Kanister Project](https://github.com/kanisterio/kanister) hakkında sunum yapmıştım ve şimdi YouTube'da bulunan sunumlarımı projenin ana readme.md dosyasında paylaşmak istiyorum. + +Öncelikle, projeyi çatalamamız gerekiyor. Bu süreci geçelim. Yukarıda paylaşılan bağlantıya gidip repoyu forklayacağım. + +![](Images/Day41_Git1.png) + +Artık tüm depomuzun bir kopyasına sahibiz. + +![](Images/Day41_Git2.png) + +Referans için, Readme.md dosyasındaki orijinal Sunumlar sadece şunlar, bu nedenle işlemimizi düzeltmemiz gerekiyor. + +![](Images/Day41_Git3.png) + +## Yerel Makineye Klonlama + +Şimdi çatalımızı yerelimize getirebilir ve ardından dosyalara düzenlemeler yapmaya başlayabiliriz. Repo üzerindeki kod düğmesini kullanarak URL'yi alabilir ve ardından `git clone url` komutunu, depoyu koymak istediğimiz bir dizinde kullanabiliriz. + +![](Images/Day41_Git4.png) + +## Değişikliklerimizi Yapmak + +Projemizi yerelde sahip olduğumuz için, VSCode veya tercih ettiğiniz bir IDE veya metin düzenleyiciyi açarak değişikliklerinizi ekleyebilirsiniz. + +![](Images/Day41_Git5.png) + +readme.md dosyası markdown dilinde yazıldığı için ve başka birinin projesini değiştirdiğimiz için, mevcut proje biçimini takip ederek içeriğimizi eklemek istiyorum. + +![](Images/Day41_Git6.png) + +## Değişikliklerinizi Test Etme + +En iyi uygulama olarak değişikliklerimizi test etmeliyiz; bu, bu bir uygulamanın kodunda bir değişiklik olduğunda, kod değişikliğinden sonra uygulamanın hala çalıştığından emin olmak isteyeceğiniz gibi, belgelerin de düzgün biçimlendirilip görünüp görünmediğinden emin olmak anlamına gelir. + +VSCode'da birçok eklenti ekleyebiliriz; bunlardan biri markdown sayfalarını önizleme yeteneğidir. + +![](Images/Day41_Git7.png) + +## Değişiklikleri Forklu Repomuzu Geri Yollayalım + +Forklu repomuza doğrudan değişiklikleri itmek için kimlik doğrulamamız yok, bu nedenle bu yolu takip etmeliyiz. Değişikliklerimizden memnun olduğumuzda, artık iyi bilinen bazı git komutlarını inceleyebiliriz. + +![](Images/Day41_Git8.png) + +Şimdi GitHub'a geri dönüp değişiklikleri bir kez daha kontrol edip ana projeye katkıda bulunabiliriz. + +Görünüşe bakılırsa iyi durumda. + +![](Images/Day41_Git9.png) + +Şimdi, Kanister için forklu repomuzun en üstüne dönebilir ve kanisterio:master dalına göre 1 taahhüt ileride olduğumuzu görebiliriz. + +![](Images/Day41_Git10.png) + +Sonraki adım olarak, yukarıda vurgulanan "Katıl" düğmesine tıklıyoruz. "Pull Talebi Aç" seçeneğini görüyoruz. + +![](Images/Day41_Git11.png) + +## Bir Pull Request Açın + +Bu sonraki görüntüde oldukça fazla detay bulunuyor. Sol üst köşede, şu an orijinal veya ana deposunda olduğumuzu görebilirsiniz. Ardından, karşılaştırdığımız şeyi görebilirsiniz ve bu orijinal ana deposu ile forklu repomuzdur. Daha sonra bir pull talebi oluştur düğmesini görebilirsiniz, bu konuya yakında geri döneceğiz. Tek bir commitiniz var, ancak bu daha fazla değişiklik olsaydı, burada birden fazla commitiniz olabilir. Ardından, readme.md dosyasında yaptığımız değişiklikleri görebilirsiniz. + +![](Images/Day41_Git12.png) + +Yukarıdaki değişiklikleri gözden geçirdik ve yeşil düğmeye basarak bir pull talebi oluşturmaya hazırız. + +Sonrasında, bir projenin bakımcısı, pull talebi işlevselliğini depolarındaki nasıl düzenlediğine bağlı olarak, size ne görmek istediğini gösteren bir şablonunuz olup olmadığını belirtebilir. + +Burada yine, ne yaptığınıza dair anlamlı bir açıklama yapmak istersiniz, net ve öz ama yeterli detay içermeli. Ben basit bir değişiklik özetini yapmışım ve dökümantasyon işaretlemesini seçtim. + +![](Images/Day41_Git13.png) + +## Bir Pull Request Olusturun + +Şimdi pull talebi oluşturmaya hazırız. Sayfanın üst kısmındaki "Pull Talebi Oluştur" düğmesine tıkladıktan sonra pull talebinizin bir özetini göreceksiniz. + +![](Images/Day41_Git14.png) + +Aşağı doğru kaydırdığınızda, otomasyonun gerçekleştiğini görebilirsiniz; bu durumda bir inceleme gereklidir ve bazı kontroller gerçekleştirilmektedir. Travis CI'nin devam ettiğini ve bir derleme işleminin başladığını görebiliriz. Bu işlem, eklemelerimizle bir şeylerin bozulmadığından emin olmak için yapılır. + +![](Images/Day41_Git15.png) + +Burada dikkat edilmesi gereken bir diğer nokta, yukarıdaki ekran görüntüsündeki kırmızının biraz korkutucu görünebileceğidir ve sanki hatalar yapmış gibi görünebilir! Endişelenmeyin, herhangi bir şeyi bozmadınız, en büyük ipucum burada, bu sürecin size ve projenin bakımından sorumlu olanlara yardımcı olmak için olduğudur. Hata yapmışsanız, en azından benim deneyimimden yola çıkarak, projenin bakımcısı size ulaşacak ve ne yapmanız gerektiği konusunda tavsiyede bulunacaktır. + +Bu pull talebi artık herkes tarafından görülebilir durumda [added Kanister presentation/resource #1237](https://github.com/kanisterio/kanister/pull/1237) + +Ben bunu yayımlamadan önce, birleştirme ve pull talepleri (PR) kabul edilmeden önce yayımlayacağım, bu nedenle hala takip eden ve başarılı bir PR'ı ekleyebilen herkese küçük bir ödül kazanmak için bir fırsat sağlayabiliriz. + +1. Forkla bu repoyu kendi GitHub hesabına +2. Resminizi ve belki de metni ekleyin. +3. Değişiklikleri forkladıgınız reposuna gönderin. +4. Benim göreceğim ve onaylayacağım bir PR oluşturun. +5. Bir tür ödül düşüneceğim. + +Bu, Git ve GitHub'a bakışımızı sonlandırıyor, bir sonraki adım olarak konteynerlere dalıyoruz, bu da büyük resmi bir bakış açısıyla başlıyor, neden konteynerler ve sanallaştırma konularına göz atıyoruz ve nasıl buraya geldiğimize bakıyoruz. + +## Kaynaklar + +- [Learn GitLab in 3 Hours | GitLab Complete Tutorial For Beginners](https://www.youtube.com/watch?v=8aV5AxJrHDg) +- [BitBucket Tutorials Playlist](https://www.youtube.com/watch?v=OMLh-5O6Ub8&list=PLaD4FvsFdarSyyGl3ooAm-ZyAllgw_AM5) +- [What is Version Control?](https://www.youtube.com/watch?v=Yc8sCSeMhi4) +- [Types of Version Control System](https://www.youtube.com/watch?v=kr62e_n6QuQ) +- [Git Tutorial for Beginners](https://www.youtube.com/watch?v=8JJ101D3knE&t=52s) +- [Git for Professionals Tutorial](https://www.youtube.com/watch?v=Uszj_k0DGsg) +- [Git and GitHub for Beginners - Crash Course](https://www.youtube.com/watch?v=RGOj5yH7evk&t=8s) +- [Complete Git and GitHub Tutorial](https://www.youtube.com/watch?v=apGV9Kg7ics) +- [Git cheatsheet](https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet) + +Gorusmek Uzere [Gun 42](day42.md) From 66ab4bb462021cbe1e3eb70ca0e88b23878fa0eb Mon Sep 17 00:00:00 2001 From: synodical Date: Thu, 17 Aug 2023 13:59:11 +0900 Subject: [PATCH 2/7] Add korean README and day01.md --- 2023/ko/2023.md | 169 ++++++++++++++++++++++++++++++++++++++++++ 2023/ko/2023.png | Bin 0 -> 162893 bytes 2023/ko/days/day01.md | 65 ++++++++++++++++ 3 files changed, 234 insertions(+) create mode 100644 2023/ko/2023.md create mode 100644 2023/ko/2023.png create mode 100644 2023/ko/days/day01.md diff --git a/2023/ko/2023.md b/2023/ko/2023.md new file mode 100644 index 0000000..70b1c3b --- /dev/null +++ b/2023/ko/2023.md @@ -0,0 +1,169 @@ +# 90DaysOfDevOps + +

+ 90DaysOfDevOps Logo +

+ +이 레포지토리는 "DevOps" 의 기본적인 지식을 학습해 나가기 위한 저의 여정을 문서화 하기 위해 사용됩니다. + +[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/N4N33YRCS) + +If you have questions and want to get involved then join the discord and share your questions and stories with the community. +질문이 있거나 디스코드에 참여하거나 당신의 경험 또는 질문을 커뮤니티에 공유하고 싶다면, + +[![](https://dcbadge.vercel.app/api/server/vqwPrNQsyK)](https://discord.gg/vqwPrNQsyK) + +혹은 트위터를 통해 연락 주세요. 제 트위터 핸들은 [@MichaelCade1](https://twitter.com/MichaelCade1) 입니다. 아래에 링크된 트위터를 통해 2023년의 글쓴이들에게 연락할 수도 있습니다. + +## List of Topics + +| Topic | Author | Date | Twitter Handle | +| -------------------------------------- | ----------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------- | +| DevSecOps | Michael Cade | 1st Jan - 6th Jan | [@MichaelCade1](https://twitter.com/MichaelCade1) | +| Secure Coding | Prateek Jain | 7th Jan - 13th Jan | [@PrateekJainDev](https://twitter.com/PrateekJainDev) | +| Continuous Build, Integration, Testing | Anton Sankov and Svetlomir Balevski | 14th Jan - 20th Jan | [@a_sankov](https://twitter.com/a_sankov) | +| Continuous Delivery & Deployment | Anton Sankov | 21st Jan - 27th Jan | [@a_sankov](https://twitter.com/a_sankov) | +| Runtime Defence & Monitoring | Ben Hirschberg | 28th Jan - 3rd Feb | [@slashben81](https://twitter.com/slashben81) | +| Secrets Management | Bryan Krausen | 4th Feb - 10th Feb | [@btkrausen](https://twitter.com/btkrausen) | +| Python | Rishab Kumar | 11th Feb - 17th Feb | [@rishabk7](https://twitter.com/rishabk7) | +| AWS | Chris Williams | 18th Feb - 24th Feb | [@mistwire](https://twitter.com/mistwire) | +| OpenShift | Dean Lewis | 25th Feb - 3rd Mar | [@saintdle](https://twitter.com/saintdle) | +| Databases | Taylor Riggan & Andrew Pruski | 4th Mar - 10th Mar | [@triggan](https://twitter.com/triggan) & [@dbafromthecold](https://twitter.com/dbafromthecold) | +| Serverless | Kristi Perreault | 11th Mar - 17th Mar | [@kperreault95](https://twitter.com/kperreault95) | +| Service Mesh | Marino Wijay | 18th Mar - 24th Mar | [@virtualized6ix](https://twitter.com/virtualized6ix) | +| Engineering for Day 2 Ops | Alistair Hey | 25th Mar - 31st Mar | [@alistair_hey](https://twitter.com/alistair_hey) | + +## Progress + +- [✔️] ♾️ 1 > [2022 Reflection & Welcome 2023](2023/day01.md) + +### DevSecOps + +- [✔️] ♾️ 2 > [The Big Picture: DevSecOps](2023/day02.md) +- [✔️] ♾️ 3 > [Think like an Attacker](2023/day03.md) +- [✔️] ♾️ 4 > [Red Team vs. Blue Team](2023/day04.md) +- [✔️] ♾️ 5 > [OpenSource Security](2023/day05.md) +- [✔️] ♾️ 6 > [Hands-On: Building a weak app](2023/day06.md) + +### Secure Coding + +- [✔️] 🔐 7 > [Secure Coding Overview](2023/day07.md) +- [✔️] 🔐 8 > [SAST Overview](2023/day08.md) +- [✔️] 🔐 9 > [SAST Implementation with SonarCloud](2023/day09.md) +- [✔️] 🔐 10 > [Software Composition Analysis Overview](2023/day10.md) +- [✔️] 🔐 11 > [SCA Implementation with OWASP Dependency Check](2023/day11.md) +- [✔️] 🔐 12 > [Secure Coding Practices](2023/day12.md) +- [✔️] 🔐 13 > [Additional Secure Coding Practices](2023/day13.md) + +### Continuous Build, Integration, Testing + +- [✔️] ⚒️ > [Container Image Scanning](2023/day14.md) +- [✔️] ⚒️ > [Container Image Scanning Advanced](2023/day15.md) +- [✔️] ⚒️ > [Fuzzing](2023/day16.md) +- [✔️] ⚒️ > [Fuzzing Advanced](2023/day17.md) +- [✔️] ⚒️ > [DAST](2023/day18.md) +- [✔️] ⚒️ > [IAST](2023/day19.md) +- [✔️] ⚒️ > [Practical Lab on IAST and DAST](2023/day20.md) + +### Continuous Delivery & Deployment + +- [✔️] 🚚 21 > [Continuous Image Repository Scan](2023/day21.md) +- [✔️] 🚚 22 > [Continuous Image Repository Scan - Container Registries](2023/day22.md) +- [✔️] 🚚 23 > [Artifacts Scan](2023/day23.md) +- [✔️] 🚚 24 > [Signing](2023/day24.md) +- [✔️] 🚚 25 > [Systems Vulnerability Scanning](2023/day25.md) +- [✔️] 🚚 26 > [Containers Vulnerability Scanning](2023/day26.md) +- [✔️] 🚚 27 > [Network Vulnerability Scan](2023/day27.md) + +### Runtime Defence & Monitoring + +- [✔️] 🏃 28 > [System monitoring and auditing](2023/day28.md) +- [✔️] 🏃 29 > [Application level monitoring](2023/day29.md) +- [✔️] 🏃 30 > [Detecting suspicious application behavior](2023/day30.md) +- [✔️] 🏃 31 > [Runtime network protections and policies](2023/day31.md) +- [✔️] 🏃 32 > [Vulnerability and patch management](2023/day32.md) +- [✔️] 🏃 33 > [Application runtime and network policies](2023/day33.md) +- [✔️] 🏃 34 > [Runtime access control](2023/day34.md) + +### Secrets Management + +- [✔️] 🕵 35 > [Understanding the Importance of Secrets Management](2023/day35.md) +- [✔️] 🕵 36 > [Securing Secrets with HashiCorp Vault](2023/day36.md) +- [✔️] 🕵 37 > [Working with HashiCorp Vault's Secrets Engines](2023/day37.md) +- [✔️] 🕵 38 > [Increase the Security Posture of Your Organization with Dynamic Credentials](2023/day38.md) +- [✔️] 🕵 39 > [Getting Hands-On with HashiCorp Vault](2023/day39.md) +- [] 🕵 40 > [](2023/day40.md) +- [] 🕵 41 > [](2023/day41.md) + +### Python + +- [✔️] 🐍 42 > [Programming Language: Introduction to Python](2023/day42.md) +- [✔️] 🐍 43 > [Python Loops, functions, modules and libraries](2023/day43.md) +- [✔️] 🐍 44 > [Data Structures and OOP in Python](2023/day44.md) +- [✔️] 🐍 45 > [Debugging, testing and Regular expression](2023/day45.md) +- [✔️] 🐍 46 > [Web development in Python](2023/day46.md) +- [✔️] 🐍 47 > [Automation with Python](2023/day47.md) +- [✔️] 🐍 48 > [Let's build an App in Python](2023/day48.md) + +### AWS + +- [✔️] ☁️ 49 > [AWS Cloud Overview](2023/day49.md) +- [✔️] ☁️ 50 > [Create Free Tier Account & Enable Billing Alarms](2023/day50.md) +- [✔️] ☁️ 51 > [Infrastructure as Code (IaC) and CloudFormation](2023/day51.md) +- [✔️] ☁️ 52 > [Identity and Access Management (IAM)](2023/day52.md) +- [✔️] ☁️ 53 > [AWS Systems Manager](2023/day53.md) +- [✔️] ☁️ 54 > [AWS CodeCommit](2023/day54.md) +- [✔️] ☁️ 55 > [AWS CodePipeline](2023/day55.md) + +### Red Hat OpenShift + +- [✔️] ⛑️ 56 > [What does Red Hat OpenShift bring to the party? An Overview](2023/day56.md) +- [✔️] ⛑️ 57 > [Understanding the OpenShift Architecture, Installation Methods and Process](2023/day57.md) +- [✔️] ⛑️ 58 > [Deploying Red Hat OpenShift on VMware vSphere](2023/day58.md) +- [✔️] ⛑️ 59 > [Deploying applications and getting a handle on Security Constraints Context (SCC)](2023/day59.md) +- [✔️] ⛑️ 60 > [Looking at OpenShift Projects - Creation, Configuration and Governance](2023/day60.md) +- [✔️] ⛑️ 61 > [Understanding Authentication, Role-Based Access Control (RBAC) and Auditing in Red Hat OpenShift: Control and Secure Your Cluster](2023/day61.md) +- [✔️] ⛑️ 62 > [Compliance and Vulnerability Scanning provided by Red Hat OpenShift Operators](2023/day62.md) + +### Databases + +- [✔️] 🛢 63 > [An introduction to databases](2023/day63.md) +- [✔️] 🛢 64 > [Querying data in databases](2023/day64.md) +- [✔️] 🛢 65 > [Backing up and restoring databases](2023/day65.md) +- [✔️] 🛢 66 > [High availability and disaster recovery](2023/day66.md) +- [✔️] 🛢 67 > [Performance tuning](2023/day67.md) +- [✔️] 🛢 68 > [Database security](2023/day68.md) +- [✔️] 🛢 69 > [Monitoring and troubleshooting database issues](2023/day69.md) + +### Serverless + +- [✔️] 👩🏿‍💻 70 > [What is Serverless?](2023/day70.md) +- [✔️] 👩🏿‍💻 71 > [Serverless Compute](2023/day71.md) +- [✔️] 👩🏿‍💻 72 > [Serverless Storage](2023/day72.md) +- [✔️] 👩🏿‍💻 73 > [Serverless APIs](2023/day73.md) +- [✔️] 👩🏿‍💻 74 > [Serverless Orchestration](2023/day74.md) +- [✔️] 👩🏿‍💻 75 > [Serverless & Well Architected](2023/day75.md) +- [✔️] 👩🏿‍💻 76 > [Serverless - Beyond the Basics](2023/day76.md) + +### Service Mesh + +- [✔️] 🧩 77 > [Let's break down a Service Mesh](2023/day77.md) +- [✔️] 🧩 78 > [Install and Test a Service Mesh](2023/day78.md) +- [✔️] 🧩 79 > [Comparing Different Service Meshes](2023/day79.md) +- [✔️] 🧩 80 > [Traffic Engineering Basics](2023/day80.md) +- [✔️] 🧩 81 > [Observability in your Mesh](2023/day81.md) +- [✔️] 🧩 82 > [Securing your microservices](2023/day82.md) +- [✔️] 🧩 83 > [Sidecar or Sidecar-less? Enter Ambient Mesh](2023/day83.md) + +### Engineering for Day 2 Ops + +- [✔️] 👷🏻‍♀️ 84 > [Writing an API - What is an API?](2023/day84.md) +- [✔️] 👷🏻‍♀️ 85 > [Queues, Queue workers and Tasks (Asynchronous architecture)](2023/day85.md) +- [✔️] 👷🏻‍♀️ 86 > [Designing for Resilience, Redundancy and Reliability](2023/day86.md) +- [✔️] 👷🏻‍♀️ 87 > [Zero Downtime Deployments](2023/day87.md) +- [✔️] 👷🏻‍♀️ 88 > [Monitoring, Alerting and On-Call](2023/day88.md) +- [✔️] 👷🏻‍♀️ 89 > [Oops: When something goes wrong - Post Mortems](2023/day89.md) + +### 2023 wrap up + +- [✔️] 🏁 90 > [Wrapping up the 2023 edition](2023/day90.md) diff --git a/2023/ko/2023.png b/2023/ko/2023.png new file mode 100644 index 0000000000000000000000000000000000000000..8533dfa1100c3612592a0a23aef78dba57c53512 GIT binary patch literal 162893 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 P00000NkvXXu0mjfF)NZ{ literal 0 HcmV?d00001 diff --git a/2023/ko/days/day01.md b/2023/ko/days/day01.md new file mode 100644 index 0000000..ad50292 --- /dev/null +++ b/2023/ko/days/day01.md @@ -0,0 +1,65 @@ +## 2022 회고와 2023년의 환영사 + +2023년 버전의 #90DaysOfDevOps에 오신 여러분을 환영합니다. 이 첫번째 게시물에서는 2022버전에 대한 회고와 통계, 피드백, 그리고 올해(2023)에 대한 아이디어를 이야기해보고자 합니다. + +### 2022 요약 + +먼저, 와우! 2021년 12월 31일 새해 이브에 생각한 미션은 2022년 처음 90일 동안을 보내며 배우고 그 학습을 문서화하는 것이었어요. 사실 유튜브에서 저보다 훨씬 똑똑한 사람들의 영상을 시청한 후에 어떤 내용들을 기록하려고 했죠. + +1년이 지나서, 이제 우리의 레포지토리에는 놀라운 숫자들이 있습니다. 레포지토리 어딘가에 언급했던 것 같긴 하지만, 다른 곳에서도 여러 번 말한 적이 있습니다. 어떤 내용이든 단 하나의 사람에게라도 도움이 된다면 그 가치가 있다고 생각합니다. 우리가 여기서 별을 받은 것부터 포크까지의 숫자들을 가지고 있다는 것은 놀라운 일이에요. + +![](images/day01-1.jpg) + +또한, 거의 **500**명의 사람이 이 레포지토리를 보고 있어요! + +먼저, 이 레포지토리를 커뮤니티와 공유한 모두에게 감사하고 싶습니다. 마이크로소프트와 그와 같은 규모의 거대한 기술 벤더들이 이 레포지토리를 공유했다는 소식을 접하고 겸손한 마음이 들었습니다. + +둘째로, 이 레포지토리의 기여자들에게 감사하고 싶습니다. 이 레포지토리는 공개적으로 학습하고 메모를 정리하는 공간으로 시작되었는데, 처음 몇 일 동안은 사람들이 제 부족한 철자와 문법을 고쳐주고 있었어요. (확실히 올해에도 같은 일이 벌어질 것이라고 확신합니다.) 하지만 가장 크고 놀라운 일은 커뮤니티가 저장소를 자신의 모국어로 번역하기 시작한 것이었습니다! 이런 일이 일어나며 비영어권 사용자들이 데브옵스의 힘에 대해 더 배울 수 있도록 돕는다는 사실이 얼마나 놀라운지 생각해보면 정말 대단한 일이에요. + +![](images/day01-2.png) + +이 레포지토리의 멋진 기여자들을 보고 싶다면, [Contributors](https://github.com/MichaelCade/90DaysOfDevOps/blob/main/Contributors.md) 를 확인하세요. + +### 지속적인 학습 + +저는 계속해서 배움에는 끝이 없다 말했으며, 만약 당신은 그렇게 생각하지 않는다면, 모든 것들이 매시각 빠른 속도로 변화하는 이 산업을 고른 것은 잘못된 선택일 겁니다. + +즉, 우리는 계속해서 학습해야 합니다. 학습이 힘든 사람들을 위해서는 자신이 즐기는 방법을 찾도록 권유합니다. 저는 항상 배우는 것을 문서화하고 이렇게 기록한 내용을 실제로 실습하는 학습법을 즐겨왔습니다. 이 프로젝트의 핵심 아이디어 역시 그와 같습니다. 이 프로젝트는 DevOps의 핵심 영역과 그것을 이룰 수 있게 해주는 도구들에 대한 기본 지식에 관한 것입니다. 이 프로젝트를 따라한다해서 DevOps 엔지니어로써 학습을 졸업하게 되는 것은 아니지만, 용어에 대한 더 나은 이해와 일상적으로 접하지 않는 기술들을 실습해보며 보다 나은 이해를 얻을 수 있을 것입니다. + +또한 모든 사람들은 지속적으로 진화하고 학습하고 있습니다. 소프트웨어 회사의 최고 기술 책임자(CTO)이건, 자동화에 대해 더 배우고 싶은 시스템 관리자건, 누구나 계속 공부해야하며, 가끔 겪을 불안과 걱정은 특별한 게 아닙니다. 제가 하고싶은 조언은 그 불안을 오히려 마주하고 목표를 향해 달려가라는 것입니다. 이렇게 하면 분명 좋은 결과가 있을 것입니다. 또한 자신이 좋아하는 것을 학습하려는 것도 중요합니다. + +### 보안에 중점을 두기 + +이 레포지토리를 계속 공부하신 분들은 알고 계실 것입니다. 2022년 버전에서 가장 크게 빠트린 부분은 보안인 DevSecOps로, 어떻게 보안을 무한한 데브옵스 주기에 통합하여 항상 보안을 고려할 수 있을지에 대한 내용입니다. + +이번 버전에서는 보안 프로세스와 원칙에 집중해 DevSecOps와 관련된 내용을 중점적으로 다룰 예정이며, 첫 번째 버전에서 놓친 몇 가지 주제에 대해 더 다룰 것입니다. + +### 친구들의 작은 도움 + +2022년 버전은 매일 블로그 글을 쓴 것과 같은 작업이었습니다. 우리는 10만 단어가 넘는 글을 썼고, 우리가 이를 eBook 형태로 제작한다면 (이 옵션은 저장소에서 찾아볼 수 있습니다, 원하신다면) A4 용지로 총 700 페이지 이상의 분량이 될 것입니다. 책 아이디어는 아직 사라지지 않았으며, 현재 내부적으로 더 작은 버전을 준비하고 있어서 곧 참여 가능한 컨퍼런스에서 멋진 스티커와 함께 선물로 나올 수 있을 것입니다. + +또한 나에게 있어 부족했던 것 중 하나는 프로젝트의 진정성일 수 있습니다. 나는 그때 학습을 시작하고 그 학습 과정을 기록하는 과정에 있었기 때문입니다. 이번에는 커뮤니티 내에서 몇몇 친구들에게 도움을 청했습니다. + +이에는 두 가지 이유가 있습니다: + +1. 어떠한 주제에 대해 다양한 시각을 얻는 것은 중요하며, 또한 각 영역의 전문가들의 관점에 귀기울이는 것은 우리 모두가 가장 잘 배울 수 있는 방법이라고 생각하기 때문입니다. + +2. 여기에 전문가로써 도움을 줄 사람들은 자신의 브랜드를 확장하고 자신의 주제와 프로젝트에 대해 발표할 기회를 얻을 수 있습니다. + +2023년의 저자들은 개요 페이지인 2023.md에서 바이오와 연락처 링크를 통해 확인할 수 있습니다. + +이 프로젝트에 대해 매우 명확하게 말할 때가 되었다고 생각합니다. 아무도 글을 작성함으로써, 이 프로젝트에 대해 토론함으로써 보수를 받지 않습니다. 몇 차례 후원 제안을 받았지만, 이 프로젝트의 가장 중요한 취지는 중립을 유지하는 것, 커뮤니티를 위해 무료를 유지하는 것입니다. 그렇습니다, 우리는 일부 프로젝트와 제품을 사용했지만 어떠한 회사도 이 프로젝트를 후원하거나 작성 내용에 관여한 적이 없습니다. + +마지막으로, 나의 고용주인 Veeam Software에게 감사하고 싶습니다. 저는 매우 운 좋게도 커뮤니티의 일원으로서 학습을 기록하고 간섭 없이 진행할 수 있는 기회를 주는 회사에 다니고 있습니다. 전통적인 9-5 근무를 하지 않지만, 이러한 프로젝트와 같은 콘텐츠를 자유롭게 만들 수 있는 자유를 가지고 있습니다. + +### 리소스 Resources + +프로젝트와 이전 2022년 버전에서 resource 섹션을 찾아보실 수 있을 것입니다. 이 섹션은 저나 동료 저자들이 참고한 콘텐츠 목록이며, 보다 더 깊게 학습하고자 한다면 이 콘텐츠를 확인해보세요. + +2022년 버전은 [여기에서](https://github.com/MichaelCade/90DaysOfDevOps/blob/main/2022.md) 찾아볼 수 있습니다. + +또한 일부 커뮤니티 멤버들은 [GitHub Pages](https://www.90daysofdevops.com/#/)를 통해 새로운 디자인을 그리는 작업에 바쁘게 참여하고 있습니다. + +[2023 페이지](https://www.90daysofdevops.com/#/2023)에서는 커뮤니티에 참여하는 방법도 찾아볼 수 있습니다. + +그럼 이와 관련된 내용을 [Day 2](day02.md)에서 확인해보겠습니다. From 3b90f35d72fc2684b8bea318ac60dc2b120e486b Mon Sep 17 00:00:00 2001 From: synodical Date: Thu, 17 Aug 2023 13:59:36 +0900 Subject: [PATCH 3/7] Add README link to korean version --- 2023.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/2023.md b/2023.md index da88268..eb33f0e 100644 --- a/2023.md +++ b/2023.md @@ -4,6 +4,8 @@ 90DaysOfDevOps Logo

+English Version | [한국어](2023/ko/README.md) + This repository is used to document my journey on getting a better foundational knowledge of "DevOps". [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/N4N33YRCS) @@ -156,7 +158,6 @@ Or contact us via Twitter, my handle is [@MichaelCade1](https://twitter.com/Mich ### Engineering for Day 2 Ops - - [✔️] 👷🏻‍♀️ 84 > [Writing an API - What is an API?](2023/day84.md) - [✔️] 👷🏻‍♀️ 85 > [Queues, Queue workers and Tasks (Asynchronous architecture)](2023/day85.md) - [✔️] 👷🏻‍♀️ 86 > [Designing for Resilience, Redundancy and Reliability](2023/day86.md) From 63ba6f21fce2ad32319401ae561f673f7a36d1eb Mon Sep 17 00:00:00 2001 From: phamtruc-work <127508999+phamtruc-work@users.noreply.github.com> Date: Sun, 27 Aug 2023 21:30:02 +0700 Subject: [PATCH 4/7] Fix some typo Fix typo on multiple lines --- 2022/Days/day41.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/2022/Days/day41.md b/2022/Days/day41.md index f3a7dd7..4cec5d2 100644 --- a/2022/Days/day41.md +++ b/2022/Days/day41.md @@ -16,7 +16,7 @@ When we went through the GitHub fundamentals we went through the process of fork ## Fork a Project -The first thing we have to do is find a project we can contribute to. I have recently been presenting on the [Kanister Project](https://github.com/kanisterio/kanister) and I would like to share my presentations that are now on YouTube to the main readme.mdfile in the project. +The first thing we have to do is find a project we can contribute to. I have recently been presenting on the [Kanister Project](https://github.com/kanisterio/kanister) and I would like to share my presentations that are now on YouTube to the main readme.md file in the project. First of all, we need to fork the project. Let's run through that process. I am going to navigate to the link shared above and fork the repository. @@ -26,7 +26,7 @@ We now have our copy of the whole repository. ![](Images/Day41_Git2.png) -For reference on the Readme.mdfile the original Presentations listed are just these two so we need to fix this with our process. +For reference on the readme.md file the original Presentations listed are just these two so we need to fix this with our process. ![](Images/Day41_Git3.png) @@ -42,7 +42,7 @@ We have our project local so we can open VSCode or an IDE or text editor of your ![](Images/Day41_Git5.png) -The readme.mdfile is written in markdown language and because I am modifying someone else's project I am going to follow the existing project formatting to add our content. +The readme.md file is written in markdown language and because I am modifying someone else's project I am going to follow the existing project formatting to add our content. ![](Images/Day41_Git6.png) @@ -76,7 +76,7 @@ Next, we hit that contribute button highlighted above. We see the option to "Ope ## Open a pull request -There is quite a bit going on in this next image, top left you can now see we are in the original or the master repository. then you can see what we are comparing and that is the original master and our forked repository. We then have a create pull request button which we will come back to shortly. We have our single commit but if this was more changes you might have multiple commits here. then we have the changes we have made in the readme.mdfile. +There is quite a bit going on in this next image, top left you can now see we are in the original or the master repository. then you can see what we are comparing and that is the original master and our forked repository. We then have a create pull request button which we will come back to shortly. We have our single commit but if this was more changes you might have multiple commits here. then we have the changes we have made in the readme.md file. ![](Images/Day41_Git12.png) From fabf0ddfc7bbeb48e1696d21c9b244459a053b98 Mon Sep 17 00:00:00 2001 From: phamtruc-work <127508999+phamtruc-work@users.noreply.github.com> Date: Sun, 27 Aug 2023 21:36:49 +0700 Subject: [PATCH 5/7] Fix typo Fix typo on day 40 --- 2022/Days/day40.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2022/Days/day40.md b/2022/Days/day40.md index fe192a7..724e767 100644 --- a/2022/Days/day40.md +++ b/2022/Days/day40.md @@ -73,7 +73,7 @@ We can then drill down into the building block of GitHub, the repositories. Here As the repository is so important to GitHub let me choose a pretty busy one of late and run through some of the core functionality that we can use here on top of everything I am already using when it comes to editing our "code" in git on my local system. -First of all, from the previous window, I have selected the 90DaysOfDevOps repository and we get to see this view. You can see from this view we have a lot of information, we have our main code structure in the middle showing our files and folders that are stored in our repository. We have our readme. mdbeing displayed down at the bottom. Over to the right of the page, we have an about section where the repository has a description and purpose. Then we have a lot of information underneath this showing how many people have starred in the project, forked, and watched. +First of all, from the previous window, I have selected the 90DaysOfDevOps repository and we get to see this view. You can see from this view we have a lot of information, we have our main code structure in the middle showing our files and folders that are stored in our repository. We have our readme.md being displayed down at the bottom. Over to the right of the page, we have an about section where the repository has a description and purpose. Then we have a lot of information underneath this showing how many people have starred in the project, forked, and watched. ![](Images/Day40_Git8.png) @@ -179,7 +179,7 @@ Let's now make some changes, I want to make a change to all those links and repl ![](Images/Day40_Git27.png) -Now if we check back on GitHub and we find our readme.mdin that repository, you should be able to see a few changes that I made to the file. +Now if we check back on GitHub and we find our readme.md in that repository, you should be able to see a few changes that I made to the file. ![](Images/Day40_Git28.png) From a7a7698553ad6810507ab8a056a43c82631f1faf Mon Sep 17 00:00:00 2001 From: abhay-raj19 Date: Sat, 23 Sep 2023 20:57:27 +0530 Subject: [PATCH 6/7] Corrected up the YT link for Aws on day_28 Signed-off-by: abhay-raj19 --- 2022/Days/day28.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2022/Days/day28.md b/2022/Days/day28.md index 71e299a..a40ab9e 100644 --- a/2022/Days/day28.md +++ b/2022/Days/day28.md @@ -100,6 +100,6 @@ I am also going to build out a scenario as I have done in the other sections whe - [Hybrid Cloud and MultiCloud](https://www.youtube.com/watch?v=qkj5W98Xdvw) - [Microsoft Azure Fundamentals](https://www.youtube.com/watch?v=NKEFWyqJ5XA&list=WL&index=130&t=12s) - [Google Cloud Digital Leader Certification Course](https://www.youtube.com/watch?v=UGRDM86MBIQ&list=WL&index=131&t=10s) -- [AWS Basics for Beginners - Full Course](https://www.youtube.com/watch?v=ulprqHHWlng&t=5352s) +- [AWS Basics for Beginners - Full Course](https://youtu.be/k1RI5locZE4?si=0wPB2cdTY5hHgjl5) See you on [Day 29](day29.md) From 8edd21cab0f57dfe3bf8696d5a5b4ada67a940b8 Mon Sep 17 00:00:00 2001 From: kolaynurdan Date: Sun, 24 Sep 2023 23:07:33 +0300 Subject: [PATCH 7/7] added day42 --- 2022/tr/Days/day42.md | 124 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 2022/tr/Days/day42.md diff --git a/2022/tr/Days/day42.md b/2022/tr/Days/day42.md new file mode 100644 index 0000000..ef00f0a --- /dev/null +++ b/2022/tr/Days/day42.md @@ -0,0 +1,124 @@ +## Containers(Konteynerlar) + +Şimdi yeni bir bölüme başlıyoruz ve bu bölüm, özellikle Docker'a odaklanacak ve Konteynerler hakkında daha fazla anlayış kazanmak için bazı temel konulara odaklanacak. + +Ayrıca, bu bölümde ve ilerleyen zorlukların sonraki bölümlerinde kullanabileceğimiz bir konteyner oluşturmak için burada pratik yapmaya çalışacağım. + +Her zamanki gibi, bu ilk gönderi, nasıl buraya geldiğimiz ve bunun ne anlama geldiği hakkında büyük resme odaklanacaktır. + +#Platformların ve uygulama geliştirmenin tarihi +#Sanallaştırma ve Konteynerleştirme hakkında konuşmak istiyor muyuz? + +### Neden başka bir uygulama çalıştırma yöntemi? + +Bakmamız gereken ilk şey, neden yazılım veya uygulamalarımızı çalıştırmak için başka bir yönteme ihtiyacımız var? İşte sadece seçeneğin harika olmasıyla ilgili, uygulamalarımızı birçok farklı şekilde çalıştırabiliriz. Fiziksel donanıma sahip bir işletim sistemi ve tek bir uygulamanın dağıtıldığı durumları görebiliriz veya uygulamamızı çalıştıran sanal makine veya bulut tabanlı IaaS örneklerini görebiliriz, bunlar daha sonra bir veritabanına entegre olabilir veya kamu bulutunda bir PaaS teklifi olarak sunulabilir. Veya uygulamalarımızı konteynerlerde çalıştırırken görebiliriz. + +Yukarıdaki seçeneklerin hiçbiri yanlış veya doğru değil, ancak her birinin var olma nedenleri vardır ve ayrıca bu seçeneklerden hiçbirinin ortadan kalkacağına inanmıyorum. Konteynerler vs. Sanal Makineler gibi konuları ele alan birçok içerik gördüm ve gerçekten bir tartışma olmamalı çünkü bu daha çok elma ile armut karşılaştırması gibi bir şey, her ikisi de meyve (uygulamalarımızı çalıştırmanın yolları) olsa da aynı değil. + +Ayrıca, eğer başlıyorsanız ve bir uygulama geliştiriyorsanız, konteynerlere doğru yönelmeniz gerektiğini söylerim, çünkü bu konulara daha sonra değineceğiz, ancak bu verimlilik, hız ve boyutla ilgilidir. Ancak bunun bir bedeli vardır, konteynerler hakkında hiçbir fikriniz yoksa, nedenini anlamak ve bu zihniyete girmek için bir öğrenme eğrisi olacaktır. Eğer uygulamalarınızı belirli bir şekilde geliştirdiyseniz veya yeşil saha bir ortamda değilseniz, konteynerleri düşünmeden önce ele almanız gereken daha fazla zorluk yaşayabilirsiniz. + +Belirli bir yazılım parçasını indirme konusunda birçok farklı seçeneğimiz var, kullanabileceğimiz bir dizi farklı işletim sistemi var. Ve uygulamalarımızı nasıl kurmamız gerektiği için belirli talimatlar mevcut. + +![](Images/Day42_Containers1.png) + +Son zamanlarda giderek daha fazla gözlemliyorum ki bir zamanlar tam bir sunucu işletim sistemine, bir sanal makineye, fiziksel bir sunucuya veya bulut örneğine ihtiyaç duyduğumuz uygulamalar, şimdi yazılımlarının konteyner tabanlı sürümlerini yayınlıyorlar. Bu durumu ilginç buluyorum çünkü bu, konteynerlerin ve ardından herkese değil sadece uygulama geliştiricilerine odaklanmayı açan Kubernetes dünyasını herkese açıyor gibi görünüyor. + +![](Images/Day42_Containers2.png) + +Muhtemelen daha önce söylediğim gibi, cevabın ne olduğunu söyleyeceğimi savunmayacağım, soru nedir! Ama uygulamalarımızı dağıttığımızda farkında olmamız gereken başka bir seçenek olduğunu tartışmak istiyorum. + +![](Images/Day42_Containers4.png) + +Uzun bir süredir konteyner teknolojimiz var, o zaman neden son 10 yılda, son 5 yılda daha da popüler hale geldiğini söyleyebilirim. Onlarca yıldır konteynerlerimiz var. Bunun nedeni, sadece konteyner teknolojisine sahip olsak bile, yazılım yönetimi ile yaşadığımız aynı sorunlara sahip olmamızdır. + +Docker'ı bir araç olarak düşünürsek, popüler hale gelmesinin nedeni, kullanımı kolay ve bulması kolay görüntüler ekosistemidir. Sistemlerinize almak ve çalıştırmak kolaydır. Bunun büyük bir kısmı, yazılım ile karşılaştığımız tüm bu farklı zorlukların tamamında tutarlılıktır. MongoDB veya nodeJS olsun, her ikisini de çalıştırmak için izlenen süreç aynı olacaktır. Her ikisini durdurma süreci de aynıdır. Tüm bu sorunlar hala var olacak, ancak iyi bir konteyner ve görüntü teknolojisini bir araya getirdiğimizde, artık tüm bu farklı sorunları ele almamıza yardımcı olacak tek bir araç setine sahibiz. Bu sorunların bazıları aşağıda listelenmiştir: + +- İlk olarak, internet üzerinde yazılım bulmamız gerekiyor. +- Ardından bu yazılımı indirmemiz gerekiyor. +- Kaynağa güveniyor muyuz? +- Sonra bir lisansa mı ihtiyacımız var? Hangi lisans? +- Farklı platformlarla uyumlu mu? +- Paket nedir? İkili mi? Yürütülebilir mi? Paket yöneticisi mi? +- Yazılımı nasıl yapılandırırız? +- Bağımlılıklar? Genel indirme işini örttü mü, yoksa bunları da mı gerektiriyor? +- Bağımlılıkların bağımlılıkları? +- Uygulamayı nasıl başlatırız? +- Uygulamayı nasıl durdururuz? +- Otomatik yeniden başlar mı? +- Başlangıçta otomatik başlar mı?? +- Kaynak çatışmaları? +- Çakışan kütüphaneler? +- Port cakısmaları +- Yazılım için güvenlik? +- Yazılım güncellemeleri? +- Yazılımı nasıl kaldırabilirim?? + +Yukarıdakileri yazılımın karmaşıklığının üç alanına bölebiliriz ve konteynerler ve görüntüler bu konularda yardımcı olurlar + +| Distribution | Installation | Operation | +| ------------ | ------------ | ----------------- | +| Find | Install | Start | +| Download | Configuration| Security | +| License | Uninstall | Ports | +| Package | Dependencies | Resource Conflicts | +| Trust | Platform | Auto-Restart | +| Find | Libraries | Updates | + +Konteynerler ve görüntüler, muhtemelen diğer yazılım ve uygulamalarda yaşadığımız bazı zorlukları aşmamıza yardımcı olacak. + +Yüksek seviyede, kurulumu ve işletmeyi aynı liste taşıyabiliriz, Görüntüler bize bir dağıtım açısından yardımcı olurken, konteynerler kurulum ve işletme konularına yardımcı olur. + +Tahminen harika ve heyecan verici gelebilir, ancak hala bir konteynerin ne olduğunu anlamamız gerekiyor ve şimdi görüntülerden bahsettim, bu yüzden bir sonraki bölümde bu konuları ele alalım. + +Yazılım geliştirme için Konteynerler hakkında konuşurken sıkça gördüğünüz bir diğer şey, gemi konteynerleri ile birlikte kullanılan bir benzetme, denizlerin üzerinde büyük gemiler kullanılarak çeşitli malların taşınmasında gemi konteynerlerinin kullanıldığı bir gerçektir. + +![](Images/Day42_Containers5.png) + +Bu, konteynerler konusundaki konumuzla ne ilgisi var? Yazılım geliştiricilerinin yazdığı kodları düşünün, bu belirli kodu bir makineden başka bir makineye nasıl taşıyabiliriz? + +Önce yazılım dağıtımı, kurulum ve işletmeye dokunduğumuz şeyi düşünürsek ve şimdi bunu bir çevresel görsel olarak inşa etmeye başlarsak, donanım ve bir işletim sistemi ile birden fazla uygulama çalıştıracağınız bir ortamınız var. Örneğin, nodejs belirli bağımlılıklara ve belirli kütüphanelere ihtiyaç duyar. Daha sonra MySQL'i yüklemek istiyorsanız, gerekli kütüphaneler ve bağımlılıklara ihtiyaç duyar. Her yazılım uygulamasının kendi kütüphanesi ve bağımlılığı olacaktır. Özel kütüphaneler ve bağımlılıkların çakıştığı ve sorunlara yol açtığı özel bir durumumuz olmadıkça, herhangi bir uygulama arasında çakışma olasılığının daha fazla olduğu daha fazla uygulama olacaktır. Bununla birlikte, bu yalnızca her şeyin yazılım uygulamalarınızı düzelten bir dağıtım olduğu bir durum değildir, yazılım uygulamalarınız güncellenecek ve bu çakışmaları da tanıtabiliriz. + +![](Images/Day42_Containers6.png) + +Konteynerler bu sorunu çözmeye yardımcı olabilir. Konteynerler uygulamanızı **inşa etme**nize, uygulamayı **paketleme**nize, **dağıtma**nıza ve **ölçeklendirme**nize yardımcı olur. Mimarisine bir göz atalım, donanım ve işletim sisteminizin üzerinde daha sonra ele alacağımız bir konteyner motoruna sahip olacaksınız. Konteyner motoru yazılımları, uygulamanın ihtiyaç duyduğu kütüphaneleri ve bağımlılıkları paketleyen konteynerler oluşturmanıza yardımcı olur, bu nedenle bu konteyneri bir makineden diğerine sorunsuzca taşıyabilirsiniz ve uygulamanın çalışması için gereken kütüphaneler ve bağımlılıklar hakkında endişelenmeniz gerekmez, çünkü bunlar bir paketin parçası olarak gelir, ki bu da konteynerden başka bir şey değildir, bu nedenle farklı konteynerlere sahip olabilirsiniz ve bu konteyneri sistemler arasında taşıyabilirsinizken uygulamanın çalışması için gerekli olan altta yatan bağımlılıklardan endişelenmeden. + +![](Images/Day42_Containers7.png) + +### Bu Containerların Avantajları + +- Konteynerler, tüm bağımlılıkları içinde paketlemeye ve izole etmeye yardımcı olur. + +- Konteynerleri yönetmek kolaydır. + +- Bir sistemden diğerine taşımak kolaydır. + +- Konteynerler, yazılımı paketlemeye yardımcı olur ve herhangi bir tekrar çaba gerektirmeden kolayca taşıyabilirsiniz. + +- Konteynerler kolayca ölçeklenebilir. + +Konteynerleri kullanarak bağımsız konteynerleri ölçeklendirebilir ve bir yük dengeleyici veya hizmet kullanabilirsiniz, bu da trafiği bölmeye yardımcı olur ve uygulamaları yatay olarak ölçeklendirebilirsiniz. Konteynerler, uygulamalarınızı nasıl yönettiğinizde büyük bir esneklik ve kolaylık sunar. + +### Container Nedir? + +Bilgisayarlarımızda uygulamaları çalıştırdığımızda, bu web tarayıcısı veya bu yazıyı okumak için kullandığınız VScode gibi bir şey olabilir. Bu uygulama, bir işlem olarak çalışır veya işlem olarak bilinen bir şeydir. Dizüstü bilgisayarlarımız veya sistemlerimizde genellikle birden fazla uygulama veya işlem çalıştırmaya çalışırız. Yeni bir uygulama açtığımızda veya uygulama simgesine tıkladığımızda, çalıştırmak istediğimiz bir uygulamadır; bazen bu uygulama sadece arka planda çalışmasını istediğimiz bir hizmet olabilir. İşletim sistemimiz, arka planda çalışan ve sistemle ilgili kullanıcı deneyimini sağlayan birçok hizmetle doludur. + +Bu uygulama simgesi, dosya sisteminizdeki bir yürütülebilir dosyaya bir bağlantıyı temsil eder; işletim sistemi daha sonra bu yürütülebilir dosyayı belleğe yükler. İlginç bir şekilde, bu yürütülebilir dosya bazen bir işlem hakkında konuştuğumuzda bir görüntü olarak adlandırılır. + +Konteynerler işlemlerdir. Bir konteyner, kodu ve tüm bağımlılıklarını paketleyen standart bir yazılım birimidir, böylece uygulama bir hesaplama ortamından başka birine hızlı ve güvenilir bir şekilde çalışır. + +Konteynerleştirilmiş yazılım her zaman altyapıdan bağımsız olarak aynı şekilde çalışacaktır. Konteynerler yazılımı ortamından izole eder ve geliştirme ve sahneleme gibi farklılıklar olsa bile aynı şekilde çalışmasını sağlar. + +Önceki bölümde, konteynerlerin neden ve nasıl popüler hale geldiği konusunda konteynerler ve görüntülerin nasıl birleştiğinden bahsettim. + +### Image Nedir? + +Bir konteyner görüntüsü, bir uygulamayı çalıştırmak için gereken her şeyi içeren hafif, bağımsız, yürütülebilir bir yazılım paketidir: kod, çalıştırma zamanı (runtime), sistem araçları, sistem kütüphaneleri ve ayarlar. Konteyner görüntüleri, çalışma zamanında konteynerlere dönüşürler. + +## Kaynaklar + +- [TechWorld with Nana - Docker Tutorial for Beginners](https://www.youtube.com/watch?v=3c-iBn73dDE) +- [Programming with Mosh - Docker Tutorial for Beginners](https://www.youtube.com/watch?v=pTFZFxd4hOI) +- [Docker Tutorial for Beginners - What is Docker? Introduction to Containers](https://www.youtube.com/watch?v=17Bl31rlnRM&list=WL&index=128&t=61s) +- [Introduction to Container By Red Hat](https://www.redhat.com/en/topics/containers) + +Gorusmek Uzere [Gun 43](day43.md)