DevOps Roadmap 2023

Bu, 2023 yılında nasıl DevOps mühendisi olunacağına dair, ilgili öğrenim kaynaklarına bağlantılar içeren adım adım bir kılavuzdur. Aşağıdaki yolda, DevOps hakkında daha fazla bilgi edinmek isteyen biri için bir DevOps Yol Haritası görebiliriz:

Unutmadan makaleyi hazırlarken her başlık için arama sayfasına konu bağlığı türkçe içerik yazarak arattığım ilk sayfalardaki önerileri dikkate alarak eklemeler yaptım sizlerin bilgidiği yada bende bu kaynaktan ok fazla yaralandım dediğiniz bir adres kaynak varsa paylaşın güncelleme olarak ekleyelim.


1. Git

Tüm kaynaklarınız (dosyalar) bir GIT deposunda tutulacaktır. Bu dosyalar uygulama kodunun yanı sıra kod olarak altyapıdır.

Git, kaynak kodu yönetimi için kullanılan ücretsiz bir araçtır. Git, kaynak koddaki değişiklikleri izlemek için kullanılır ve birden fazla geliştiricinin doğrusal olmayan geliştirme üzerinde birlikte çalışmasını sağlar.

En popüler iki onlie Git platformu GitLab ve GitHub'dır.

Burada git clone, branch, merge gibi Git komutlarını ve pull request'lerle bir proje üzerinde nasıl işbirliği yapacağınızı öğrenmeniz gerekir.

Kaynaklar:

* Pro Git Kitabı => https://git-scm.com/book/en/v2

* Git Makale => https://coderspace.io/blog/git-nedir-nasil-kullanilir/

* Git Video => https://www.youtube.com/watch?v=7foV53lJhVQ

2. Bir programlama dili öğrenin

Bir mühendis olarak, otomasyon komut dosyaları yazmak için kullanabileceğiniz en az bir programlama dili bilmeniz önerilir.

DevOps'lar için bazı popüler programlama dilleri Python, Go ve JavaScript'tir.

Python çok paradigmalı bir dildir. Yorumlanan bir dil olduğundan, kod yazıldığı anda çalıştırılır ve sözdizimi farklı şekillerde kod yazmaya izin verir. Python, okunabilirlik, tutarlılık ve kullanım kolaylığına odaklanması nedeniyle yeni kodlayıcıların öğrenmesi gereken ilk dil olarak sıklıkla tavsiye edilir.

Burada sözdizimi, if/else, döngüler, veri yapıları gibi programlama dillerinin temel kavramlarını öğrenmeniz gerekir.

Kaynaklar: 

* Pyhton Dökümantasyan => https://www.python.org/doc/

* 8 saatlik bir Python eÄŸitimi => https://www.youtube.com/watch?v=0KQp2v5vrV8

* BaÅŸka bir youtube eÄŸitim serisi => https://www.youtube.com/watch?v=EzHgbO1Cee4&list=PLWctyKyPphPiul3WbHkniANLqSheBVP3O

* BaÅŸka bir tane daha eÄŸitim serisi => https://www.youtube.com/watch?v=t176iXgG5PI&list=PL3kMAPso9YQ1Ls-5uTTIWWMkJoF_vyj5J

* Go programlama dili eÄŸitim serisi => https://www.youtube.com/watch?v=OufjDqB_cYI&list=PLnyI9QB2O40BtJXlPeLfVUEhPBSaccEAn

* JavaScript EÄŸitim serisi => https://www.youtube.com/watch?v=mcwBvvThO40&list=PLURN6mxdcwL86Q8tCF1Ef6G6rN2jAg5Ht

* BaÅŸka bir JavaScript EÄŸitim serisi =>https://www.youtube.com/watch?v=gndWkaTyo6g&list=PLGrTHqyRDvx6PqKkqSPwph57HNN4RWgR2

3. Linux ve Scripting öğrenin

İşletim sistemi, bir bilgisayarın kullanıcısı ile donanımı arasında bir köprü görevi görür. İşlevi, kullanıcının programları rahat ve etkili bir şekilde çalıştırabileceği bir ortam sunmaktır.

Çoğu sunucu Linux işletim sistemi kullandığından, Linux ve CLI kullanımında kendinizi kendinizi rahat hissetmeniz gerekir.

Başlaması kolay bir dağıtım Ubuntu'dur. Ama siz istediğiniz ile başlayın zaten aralardına dağlar kadar fark yok. çok küçük bir kaç değişiklik var.

Buna ek olarak, geliştirme ve operasyon görevlerini otomatikleştirmek için komut dosyası (scripting) yazmayı bilmeniz gerekir.

Burada Bash veya Powershell gibi işletim sistemine özgü dilleri veya Python veya Go gibi bağımsız dilleri öğrenebilirsiniz.

Kaynaklar: 

* Linux eÄŸitimi => https://www.youtube.com/watch?v=331T9cLCLKs&list=PLeKWVPCoT9e1tqsgPTQabtumX6E1XpAhz

* Linux ve Bash Scripting eÄŸitimi => https://www.youtube.com/watch?v=pnIBLlkaWHY&list=PL8jZTVwefzOxo9XkkBEEbrEC955jlB7Pz

* Power Shell eÄŸitimi => https://www.youtube.com/playlist?list=PL3c5eJe7zH3ZeN_5sv9pMX40bPdZJexah

4. Ağ ve Güvenliği Öğrenin

Bir ağ protokolü, aynı ağdaki farklı cihazlar arasında verilerin nasıl iletileceğini belirleyen yerleşik bir kurallar bütünüdür. Esasen, bağlı cihazların iç süreçlerindeki, yapılarındaki veya tasarımlarındaki farklılıklardan bağımsız olarak birbirleriyle iletişim kurmalarına olanak tanır.

Burada bir ağın nasıl çalıştığını, güvenlik duvarlarının nasıl yapılandırılacağını, DNS'nin nasıl çalıştığını, OSI modelini, IP adreslerini, bağlantı noktalarını vb. bilmeniz gerekecektir.

Kaynaklar: 

* Network Dersleri => https://www.youtube.com/playlist?list=PLero-S9OutFzU95lAH7VAv0YDrghP40xi

* OSI Referans Modeli => https://www.youtube.com/watch?v=v-mgssXSzE8

* DNS Nedir => https://www.youtube.com/watch?v=QfGEKgs7VYE

5. Sunucu Yönetimini Öğrenin

Sunucu yönetimi, sunucuların güvenilir ve optimum performans seviyelerinde çalışması için gereken tüm altyapı izleme ve bakım işlemlerini içerir. Etkili bir sunucu yönetimi stratejisinin başlıca hedefleri şunlardır:

Güvenilirliği en üst düzeye çıkarırken sunucu yavaşlamalarını ve kesinti sürelerini en aza indirin.
Güvenli sunucu ortamları oluşturun.
Zaman içinde kurumun ihtiyaçlarını karşılamak için sunucuları ve ilgili işlemleri ölçeklendirin.

Burada ileri ve geri proxy'lerin, önbellek sunucularının ne olduğunu ve Nginx, Apache veya IIS gibi Web Sunucularının nasıl çalıştırılacağını bilmeniz gerekecektir.

Kaynaklar: 

* Web Servers yönetimi => https://www.youtube.com/watch?v=U7PrQkIb3Ew

* Ha Proxy nedir => https://www.youtube.com/watch?v=9RjoptApfFc

* Firewall nedir => https://www.youtube.com/watch?v=dpN9Gf2Wstw

* SSL nedir => https://www.youtube.com/watch?v=0IlwKfAb8oQ

6. Konteynerleri Öğrenin

Konteyner, kodu ve tüm bağımlılıklarını paketleyen standart bir yazılım birimidir, böylece uygulama bir bilgisayar ortamından diğerine hızlı ve güvenilir bir şekilde çalışır.

Docker günümüzün açık ara en popüler konteyner teknolojisidir. Docker konteyner görüntüsü, bir uygulamayı çalıştırmak için gereken her şeyi içeren hafif, bağımsız, çalıştırılabilir bir yazılım paketidir: kod, çalışma zamanı, sistem araçları, sistem kütüphaneleri ve ayarlar. Burada konteynerlerin nasıl çalıştırılacağını, Docker Networking, Volumes, Dockerfiles ve Docker-Compose ile birden fazla konteynerin nasıl çalıştırılacağını bilmeniz gerekir.

Kaynaklar: 

* Docker ve Kontayner hakkında bilgiler => https://www.youtube.com/watch?v=-7tl9-bYnqE&list=PLe1QWkyzVMv6psIEboToi7sbcNpQlhc9c

* Docker nedir => https://www.youtube.com/watch?v=a_T2qgh3AGo

* Docker eÄŸitim serisi => https://www.youtube.com/playlist?list=PLZYKO7600KN9xvURpuyVfulv9Zi14obf9

7. Konteyner Orkestrasyonunu Öğrenin

Konteyner orkestrasyonu, konteynerlerin dağıtımını, yönetimini, ölçeklendirmesini ve ağını otomatikleştirir.

Konteyner orkestrasyonu, konteyner kullandığınız her ortamda kullanılabilir. Aynı uygulamayı yeniden tasarlamanıza gerek kalmadan farklı ortamlarda dağıtmanıza yardımcı olabilir. Ayrıca konteynerlerdeki mikro hizmetler, depolama, ağ ve güvenlik dahil olmak üzere hizmetlerin düzenlenmesini kolaylaştırır.

Burada Kubernetes'in nasıl çalıştığını ve Kubernetes kümesini nasıl yöneteceğinizi ve uygulamaları nasıl dağıtacağınızı öğrenmeniz gerekir.

Kaynaklar: 

Kubernetes notlarımız => https://k8s.1w2.net

Kubernetes nedir eÄŸitim serisi => https://www.youtube.com/watch?v=ZE28_lrjRmw 

8. Altyapıyı bir kod olarak öğrenin

Bazen IaC olarak da adlandırılan bu kavram, altyapıyı tipik olarak YAML veya JSON gibi bir işaretleme dilinde tanımlamak için kullanılan teknik ve araçları ifade eder. Kod olarak altyapı, Mühendislerin ortam kurulumunu ve silmesini otomatikleştirmesine olanak tanır. Talep üzerine ana kopya ortamlar sağlayarak dağıtımı hızlandırır ve riskleri azaltır.

Terraform en popüler altyapı hazırlama aracıdır, ancak Ansible, Chef, Puppet ve Vagrant gibi başkaları da vardır.

Burada altyapı hazırlama ve yapılandırma yönetiminin nasıl yapılacağını bilmeniz gerekir.

Kaynaklar: 

* Terraform EÄŸitimi => https://www.youtube.com/watch?v=Ndpg0S0QUCU

* BaÅŸka bir Terraform EÄŸitimi => https://www.youtube.com/playlist?list=PLdryHJhAOJSJZnB-pf3tsmDOLgc4TpFgb

* BaÅŸka bir Terraform EÄŸitimi => https://www.youtube.com/watch?v=cbkXA0U6YC8 

* Ansible Öğrenmek için Eğitim => https://www.youtube.com/playlist?list=PLp2nIigfaaYvRfteBeqFYBqGzQd9QdRng

9. CI/CD öğrenin

Sürekli Entegrasyon / Sürekli Dağıtım (CI/CD), uygulama geliştirme aşamalarına otomasyon getirerek uygulamaları müşterilere sık sık teslim etmek için kullanılan bir yöntemdir. CI/CD, yeni kodu entegre etmenin geliştirme ve operasyon ekipleri için neden olabileceği sorunlara bir çözümdür.

CI/CD, entegrasyon ve test aÅŸamalarından teslimat ve dağıtıma kadar uygulamaların yaÅŸam döngüsü boyunca sürekli otomasyon ve sürekli izleme sunar. Bu baÄŸlantılı uygulamalar genellikle "CI/CD boru hattı" ( pipeline )  olarak adlandırılır ve geliÅŸtirme ve operasyon ekipleri tarafından desteklenir.

Bir CI/CD pipeline hattının derleme, test etme ve dağıtma gibi farklı aşamaları vardır, ancak çok daha fazla etkinlik dahil edilebilir:

Sürüm kontrolünden kodu kontrol etme ve oluşturma
Farklı onay türleri için aşamalı kapıların olması
Ortam değişkenlerini yönetme
Hizmetleri yeniden baÅŸlatma
Testleri yürütme
Ve daha fazlası...

Burada CI/CD sunucusunu nasıl kuracağınızı, kodu nasıl entegre edeceğinizi ve pipeline hatlarını otomatik olarak nasıl tetikleyeceğinizi ve derleme ve paket yönetimi araçlarını nasıl kullanacağınızı öğrenmeniz gerekir.

Bazı popüler CI/CD araçları Jenkins, TeamCity, CircleCI, Bamboo, GitLab ve Azure DevOps'tur.

Kaynaklar: 

* Jenkins eÄŸitimi => https://www.youtube.com/playlist?list=PLmvLjAZdxZRSKuvcr5IWXODlwBSwAFy5N

* Azure Devops EÄŸitimi => https://www.btkakademi.gov.tr/portal/course/microsoft-azure-devops-12930

Buraya bir not eklemek şart : BTK Akademi. Devletimiz tarafından desteklenen ve tamam Türkçe içeriğine sahip ve ücretsiz olarak sunulan bir eğitim platformu. Sadece yapmanız gereken abone olmak ve kullanmak. İçinde kişisel gelişimden yazılım mühendisliğinden Siber güvenlik uzmanlığı Server sistem yönetilmene kadar bir çok eğitim var ve hepsi ücretsiz arkadaşlar bol bol kullanın derim.

* Gitlab EÄŸitimi => https://www.youtube.com/playlist?list=PLPrHLaayVkhnNstGIzQcxxnj6VYvsHBHy

10. Ä°zleme ve Gözlemlene bilirliÄŸi Ã–ÄŸrenin

İzleme, planlama, geliştirme, entegrasyon ve test, dağıtım ve operasyonlardan tüm geliştirme sürecinin denetlenmesini gerektirir. Üretim ortamındaki uygulamaların, hizmetlerin ve altyapının durumunun eksiksiz ve gerçek zamanlı bir görünümünü içerir.

Bu özellikle yazılımımız üretimdeyken önemlidir ve altyapımızdaki ve uygulamamızdaki her türlü sorunu izlememiz gerekir.

En popüler iki araç Prometheus ve Grafana'dır.

Burada izlemeyi nasıl kuracağınızı ve verileri nasıl görselleştireceğinizi bilmeniz gerekir.

Kaynaklar: 

* Prometheus ve Grafana eÄŸitimi => https://www.youtube.com/watch?v=NWt75kyGUxA

* Prometheus ve Grafana eÄŸitimi 1 => https://www.youtube.com/watch?v=EOJQRiMVZys

* Prometheus ve Grafana eÄŸitimi 2 => https://www.youtube.com/watch?v=SDQDbIpZMpQ

11. Bir Bulut sağlayıcısı öğrenin

Bulut sağlayıcıları, altyapıyı soyutlamak ve güvenlik ve faturalandırma sınırlarına göre sağlamak için bir API katmanı sağlar. Bulut, veri merkezlerindeki sunucular üzerinde çalışır, ancak soyutlamalar akıllıca tek bir "platform" veya büyük bir uygulama ile etkileşim görüntüsü verir. Bulut sağlayıcılarla kaynakları hızlı bir şekilde sağlama, yapılandırma ve güvence altına alma becerisi, modern DevOps'un hem muazzam başarısının hem de karmaşıklığının anahtarı olmuştur.

Piyasadaki en popüler bulut sağlayıcıları AWS ve Azure'un yanı sıra Google Cloud'dur.

Burada kullanıcıları ve yönetimi, ağları, sanal sunucuları vb. nasıl yöneteceğinizi bilmeniz gerekir.

Kaynaklar: 

* Aws EÄŸitimi = > https://www.btkakademi.gov.tr/portal/course/amazon-web-servisleri-aws-ile-bulut-bilisim-20027

* Google Cloud EÄŸitimi => https://www.btkakademi.gov.tr/portal/course/google-cloud-ile-bulut-bilisim-16431

* Azure EÄŸitimi => https://www.btkakademi.gov.tr/portal/course/microsoft-azure-ile-bulut-bilisim-12854

12. Yazılım Mühendisliği Uygulamalarını Öğrenmek

Bir DevOps mühendisi olarak muhtemelen Scrum gibi çevik bir dünyada diğer geliştiricilerle birlikte bir ekip içinde çalışacaksınız. Bu nedenle, (Software Development Life Cycle) SDLC' nin farklı bölümlerini ve burada kullanılan araçları bilmek çok önemlidir.

Buna ek olarak, otomasyon testinin nasıl çalıştığını bilmek iyi olacaktır, çünkü bunu CI/CD yöntemiyle kurmanız gerekecektir.

Burada Scrum'ın ne olduğunu, SDLC'nin tüm aşamalarını, otomasyon testinin nasıl çalıştığını vb. bilmeniz gerekir.

Software Development Life Cycle = Yazılım geliştirme yaşam döngüsü

* Yazılım yaÅŸam döngüsü eÄŸitimi => https://www.youtube.com/watch?v=MmAX8bY7LdY

* Scrum ve Kanban nedir ? Agile nedir ? => https://www.youtube.com/watch?v=Hm6DvMwJHiU

* Scrum EÄŸitimi => https://www.youtube.com/watch?v=Lk7N1zd7Mv8

Bitmeden önce bir çok detay olmada sadece linkler olarak birkaç konuda karşınıza çıkabilecek bazı baÅŸlıklar ve o baÅŸlıklara ait uygulama isimlerinden bahsedeyim istedim. Bunun sebebi sadece devop yolunda yuakrıdaki 12 baÅŸlık yok bir çok alan ve yazılım vb durumlar var olabildiÄŸince bilgiye sahip olmak iyidir. 

Bu arada kişisel bir not arkadaşlar yukarıdaki 12 maddenin hepsi aynı uzmanlık gerektieren konular, yani hepsini bir günde öğrenemez ve gelişemezsiniz ama junior olarak başlar ve bir kaç yıl içinde 12 ana başlıktan bir kaçında uzman seviyesine çıkarsanız artık bir devops ekibi içinde etkin rol alan senior bir platform mühendisi (DEVOPS) olabilirsiniz.

Ek kaynaklar

* Araçlar

Ä°ÅŸ Takibi: Asana, Monday, Jira, Trello, Azure Boards

Kaynak kodu kontrolü : Git, Github, GitLab, BitBucket, Azure DevOps

Sürekli Yeni Entegrasyon / Sürekli Yeni Sürüm = CI/CD : Jenkins, Team City, Github Actions, Travis CI, Bamboo, Circle CI, Azure Pipelines, Octopus Deploy, Harness, CloudBees CodeShip

Kaynak Kod Analizi: SonarQube, Veracode

Yapı / Eser yönetimi: Artifactory, npm, Yarn, NuGet

Konfigürasyon Yönetimi: Terraform, Ansible, Puppet, Chef

Konteyner orkestrasyonu:  Kubernetes, Red Hat OpenShift, Rancher

Ä°zleme: Prometheus, Grafana, Splunk, Dynatrace, Kibana.

Evet bir yazımızın daha sonuna geldik arkadaÅŸlar umarım devops kariyeriniz noktasında 2023 yılı itibari ile yukarıdaki tüm Türkçe eÄŸitim ve kaynaklar ve unutmadan tamamen ücretsiz ÅŸekilde sizlerle paylaşılmıştır. Umarım bu kaynaklar sizin devops kariyerinizde önemli katkılar saÄŸlar. 

Paylaşmayı ve beğenmeyi unutmayınız.

Faydalı olması dileklerimle. Kolay gelsin.

Daha yeni Daha eski