


Talentra olarak her hafta farklı bir uzmanlık alanında meslek-eğitim geçişlerine, o alanın gelişim noktalarına, kariyer projeksiyonlarına değiniyoruz. Geçen hafta ilk kez değindiğimiz Devops Engineer konusuna devam ediyoruz.
Farklı deneyimlere sahip isimler, Seda Kurt, Gökhan Karasakal ve Ali Yavuz Doğan sorularımızı yanıtladı. Kendilerine çok teşekkür ediyoruz. Gelecek hafta Cloud Engineer uzmanlığı hakkında merak edilenleri yayınlayacağız.
Her 3 katılımcımıza da şu soruları ilettik:
Başarılı bir DevOps mühendisi sizce hangi yetkinliklere ve hangi deneyimlere sahip olmalı?
Siz neden kariyer olarak DevOps Mühendisliğine yöneldiniz? Görevinizin sizi çeken tarafları nelerdir?
Türkiye’de DevOps alanındaki kariyer fırsatlarını nasıl görüyorsunuz? Yurtdışındaki fırsatları nasıl görüyorsunuz?
Sizce iyi bir DevOps’cu nasıl bir okul formasyonundan geliyor olmalı, DevOps alanında önereceğiniz eğitimler var mı?
Bu alanda son dönemde dikkatinizi çeken kitap ve / veya blog önerebilir misiniz?

1) Başarılı bir DevOps mühendisi proaktif düşünmeli ve hareket edebilmeli. Bir işi ele alırken ben sadece bunun CI'ını yaparım benim işim biter dememeli. Layer 1’den Layer 7 ye yorum yapabilmeli. Araştırmayı sevmeli çünkü öyle bir sektörde bulunuyoruz ki sürekli gelişiyor ve sizin DevOps Mühendisi olarak bulunduğunuz konum o değişimin tam merkezinde. Yeni teknolojileri araştırmak ve bunları süreçlere entegre etmek sizin göreviniz. DevOps mühendisi yeniliğe her zaman açık olmalı.
2) Kariyerime yine kendi isteklerim doğrultusunda Linux/Unix sistem mühendisi olarak başladım. Teknoloji ilerliyor ve eskiden Unix adminlerin yaptığı çoğu iş sistemler tarafından otomatik yapılabiliyor, artık bazı yerlerini kurcalayamadığınız appliance sistemler çıkıyor. Dolayısı artık çoğu şirket Linux adminlerin; Cloud yönetmesini hatta middleware yönetmesini bekliyor. Bundan dolayı Linux/Unix skillerime yenilerini eklemem gerektiğine karar verdim. Tabi birde süreçleri otomatize etmek hep hoşuma gitmiştir. Sadece hazır otomasyonu yapılmış sistemleri yöneten taraf olmak istemiyordum, otomasyonu yapan taraf olmak istiyordum. Sonra çalışırken şunu da fark ediyorsunuz; developerlar ve sistemciler aynı dili konusamıyor çoğu zaman. İki tarafında bazen birbirini anlamaması sorunların uzamasına sebep oluyor. Bir DevOps mühendisi hem sistemcilerle, hem developerlarla yakın çalışmalı, iki tarafıda anlayabilmeli. Aynı zamanda deployment süreçlerinin standardını oluşturup, otomasyonunu yapmasından sorumlu olduğu için bana uygun olduğunu düşündüm ve kariyer pathimi bu yönde şekillendirdim.
3. Artık DevOps süreçleri, kültürü her development yapan firma için olmazsa olmaz diyebilirim. Şu kilişeyin söylemeden geçemeyeceğim; DevOps tabi bir title değildir kültürdür. Bu süreçleri yönetecek kişiler olan bizlere suanda DevOps mühendisi deniyor yarın başka birşey de denebilir ama günün sonunda siz o evrilmeyede bu alanda olursanız çok rahat ayak uyduracaksınız ve her zaman size ihtiyaç olacak. Dolayısı ile Türkiye'de de, Dünya'da da oldukça ihtiyaç duyulan ve çok popüler bir pozisyon. Aslında bunu anlamak için Türkiye'de ve Dünya'da ki iş ilanlarına bakmanız yeterli diyebilirim.
4. Bilgisayar mühendisliğinden mezun olan arkadaşlar çok rahat DevOps işlerine adapte olabilir. Şunu da eklemek isterim. Bilgisayar mühendisliği öğrencilerini sadece iş dünyası yazılımdan ibaretmiş gibi yönlendiriyor okullar. Ama bir bilgisayar mühendisi HW/SW, bilişim sistemleri dersleri alıyor. Bu temelleri içeren bir çok alan var ve bu temel eğitimleri almış birçok insana ihtiyaç. Öğrencilere yeterince bilgilendirme yapılmıyor. Yeni Mezun bir bilgisayar mühendisi DevOps olarak çalışmaya başlarsa işe kısa sürede adapte olabilir ve çok da başarılı olur. Çünkü Computer Science, Operating system, Programing language gibi dersler veriliyor bilgisayar mühendisliğinde. Ve bilgisayar mühendisliği okumuş biri yazılım geliştirme, işletim sistemleri, network konusunda bir alt yapı ile mezun olmuş oluyor. Ve yeni mezun bir bilgisayar mühendisi bu tarafa başladığında en azından yabancısı olmadığı konulardan başlamış oluyor. Tabi Elektrik elektronik mühendisliği, Bilgi teknolojileri mühendisliği gibi bölümlerden mezun arkadaşlarda aldıkları eğitimlerden dolayı belli bir alt yapı ile başlamış olacaklar. Onlar içinde adaptasyonu kolay bir alan. Önereceğim eğitimlere gelince, başlangıç olarak; temel OS bilgisi(özellikle linux OS), temel network, temel yazılım bilgisi yeterli olacaktır. DevOps alanında çalışmak isteyen arkadaşlar bu konularda eğitimlere bakabilirler.
5. İnternete yazdığınızda bu konuda çokça kaynak bulabilirsiniz. Bu konuda şanslıyız. Benim takip ettiğim birkaç blogu yazmam gerekirse:
https://devops.com/category/blogs/
Kitap olarak ise çok sevdiğim ve kendinize ders çıkarabileceğiniz bir kitap önereceğim : Bitmeyen Proje, yazarları:Kevin Behr, George Spafford , Gene Kim

1. DevOps kavramı çıktığından beri herhalde yapılan en büyük tartışmalardan biri; gerçekte DevOps mühendisi diye bir rol var mıdır yoksa DevOps tüm şirket tarafından uygulanması ve sahiplenilmesi gereken bir kültür müdür? Bence ikisi de. Artık böyle bir rolün varlığını yadsımamak ve de aynı zamanda bu kültürün tüm şirkete yayılmasını sağlamak gerek.
Şirket içinde bu role soyunmuş kişilerin yetkinlikleri ve deneyimlerine değinecek olursak hem soft-skill hem de technical skill set’ten konuşmak gerekir. DevOps’tan sorumlu kişinin her ikisinde de belli seviyelerin üstünde olması gerekir. Bu rolü diğerlerinden ayıran en önemli faktörlerden birisi de budur. Hem iletişimi yüksek hem de teknik altyapısı sağlam olmalıdır. Bu rolde, görev tanımına da bağlı olarak, daima bir paydaş yapısı bulunmakta ve müşterileriniz bulunmaktadır. Bu kişilerle iletişiminiz, olayları ve sorunları yönetiminiz size ya büyük kolaylık sağlayacak veya büyük zorluk çıkaracaktır. Teknik yeterlilik kısmında ise bence en önemli özellik kolay evirilebilir, adapte olabilir ve hızlı öğrenebilir olmaktır. Çünkü iş ilanlarından da görüleceği üzere her şirketin DevOps ihtiyacı sahip olduğu yazılım geliştirme ortamına ve üzerinde çalıştığı ürüne göre değişmektedir. Bazıları public cloud sistemleri üzerinde çalışırken bazıları on-prem sistemler üzerinde çalışmaktadır. Bazıları X tool’unu kullanırken bazıları Y tool’unu kullanmaktadır. Bazı projeler için önereceğiniz çözümler bazı projeler için uygun olmamaktadır. Hatta bugün çok yoğun olarak kullandığınız bir teknoloji yarın var olmayabilir. Bunların hepsine hâkim olmak ve hepsini çok üst düzeyde bilmek çok zor olacağı için önemli olan hızlı öğrenip hızlı adapte olabilmektir. Zaten DevOps’un da çıkış dayanaklarından biri olan hızlı olmak rolün kendisi için de bir o kadar önemlidir. Tabii bunun için de temelin sağlam olması gerekmektedir. Rolün isminden de anlaşılacağı gibi bu rol hem yazılım geliştirme hem de sistem yönetimine çok yakındır. Benim kanaatimce iyi seviyede Linux bilgisi, bir yazılım dilini iyi seviyede bilmek ve mümkünse bir yazılım geliştirme projesinde aktif rol almış olmak, Networking ve Infrastructure konusunda belli bir seviyenin üzerinde olmak bu hızlı öğrenme ve hızlı adaptasyon kısmında çok yardımcı olacaktır. Bundan sonraki kısımda; ilgi, çalışma ve tecrübe ile beraber çok hızlı bir şekilde yol kat edilebileceğine inanıyorum.
2. Bence DevOps’un en güzel yanlarından biri sürekli öğrenmektir. Sürekli olarak yeni bir şey öğrenip onu uygularsınız. Başka bir projede bambaşka bir zorluk çıkar ve onunla ilgili araştırma yaparsınız, yeni şeyler öğrenip onları uygularsınız. Karşınıza yepyeni problemler çıkar ve onları çözmeye çalışırsınız. Tek bir hareket ile tüm sistemi ayağa kaldırıp çalışır hale getirmeye çalışır ve uçtan uca bir çözüm sağlamaya çalışırsınız. Daha önce hiç görmediğiniz tool’lari sisteme entegre etmeye çalışırsınız ki bu tool’lar bir yerden sonra sizin için oyuncak gibi olur ve eğlenmeye başlarsınız. Her bir tool yeni bir oyuncak :)
3. DevOps şu anda hem Türkiye'de hem de tüm dünyada çok popüler durumda. Özellikle günümüzün gerektirdiği hızlı ürün çıkartma ihtiyacı, ürünlerin sürekli geliştirilmesi ve bu yolda otomatik ve son derece güvenli, hızlı ve sağlam süreçlerin ihtiyacı DevOps’un önemini daha da arttırmaktadır. Her ne kadar çok popüler bir konu olsa da hala bu işi kaliteli bir biçimde yapacak yetkinlikteki kişi sayısı çok azdır ve buna bağlı olarak da şu anda hem Türkiye'de hem de yurtdışında çok fazla açık bulunmaktadır.
4. Mühendislik formasyonu için konuşacak olursam bence okul size her şeyden önemlisi nasıl araştırma yapılacağı, bir konunun nasıl öğrenilip uygulanacağını gösterir. Tabii ki günümüz teknolojilerinin derslerde kullanılması ve öğretilmesi çok büyük bir avantajdır ama her şey değildir. Sonuçta işin büyük bölümü kişinin ilgisine bağlıdır.
Onun dışında artık bilgiye ulaşım çok kolaylaşmış durumda. Özellikle teknolojinin çok hızlı gelişmesiyle beraber online eğitim çok hızlı bir yükselişte. Ben özellikle KodeKloud’un eğitimlerini çok beğeniyorum. Özellikle son zamanlarda geliştirmiş oldukları bir sistemle bir şirkette çalışan DevOps Mühendisi rolünü deneyimleyebiliyorsunuz. Sistem size belli görevler atıyor ve siz de bu görevleri zamanında yaparak puanlar toplayıp DevOps mühendisi rolüne terfi etmeye çalışıyorsunuz. Yine son zamanlarda popüler olan Gamification’a da çok güzel bir örnek diyebilirim. Bunun dışında A Cloud Guru, Pluralsight ve tabii ki Udemy. Ancak tavsiyem eğitmenleri iyi seçmek ve sürekli olarak öğrenilenleri uygulamak.
5. Her konunun kendine has bazı duayenleri mevcut. Onları takip etmekte fayda var. Örneğin Kubernetes konusunda Nigel Poulton ve Mumshad Mannambeth; Azure konusunda Mike Pfeiffer. Kitap olarak ise The Phoenix Project’i tavsiye ederim.

1. Başarı konusunu kişilik ve teknik olacak şekilde iki farklı alanda ele almak istiyorum. Öncelikli olarak bu işle uğraşacak kişi bence meraklı ve sabırlı olmalıdır. Özellikle open-source kültürünün yaygınlaşması ile her gün daha kolay ulaşılabilir yeni teknolojilerin karşımıza çıktığı bi dünyada yaşıyoruz artık. Hep okumak, araştırma yapmak ve denenmemiş olanı denemek gerekiyor. Fakat, hiç bitmeyen öğrenme yolculuğu keyifli olduğu kadar yorucu da olabiliyor. Buna rağmen pes etmeyip “daha önce kesin başka birinin başına gelmiştir” yaklaşımı ile kimi zaman Github’da kimi zaman Stackoverflow’da kaybolması işten bile değil. Başka bir gereklilik ise analitik düşünebilme yapısı. Genellikle oluşturacağınız çözümlerde kullanabileceğiniz binlerce farklı seçenek bulunuyor. Bunların içinden uygun olanını seçerken artılarını, eksilerini en iyi şekilde tartmak, daha önce çıkmış hatta henüz karşılaşılmamış çıkabilecek olan problemleri göz önünde bulundurmak gerekiyor.
Teknik açıdan ele alacak her ne kadar kapsam alanı çok geniş olsa da bazı teknolojilerin; örneğin sanallaştırma, bulut bilişim, ağ bağlantıları, veri tabanları, işletim sistemleri, yazılım dilleri, CI/CD, cache vs.. temel prensipte nasıl çalıştığını anlaması gerekli. Özellikle 100 milyonlarca kayıtlı üyesi bulunan sosyal medya platformları sayesinde oldukça popüler olan dağınık sistemler konusununda fikirleri olmalı. 20 Milyon kişi aynı anda nasıl login olabilir ve bu trafik nasıl dağıtılır? 5000 mikroservis nasıl deploy edilir? 3 trilyon metric nasıl işlenir? Bu gibi sorulara cevap verebilmeli.
2. Aslında ilk çalışmaya dev olarak başlayıp ops olarak devam ettim, ta ki devops engineer olana kadar. Yazılım mühendisi olarak çalıştığım zamanlar da operasyonel konuları ikinci planda bırakıp, son teslim tarihine yetişmek için hıza önem verir kaliteden ödün vermek zorunda kalırdım. Daha sonra çıkan bi fırsatla operasyon mühendisliğine geçiş yaptım. Birkaç sene ofise uğramadan yurtdışındaki müşteri lokasyonlarını ziyaret ettim. Installation, upgrade, integration gibi bir çok operasyonel işle uğraşırken fark ettim ki, bir çok şeyi aslında manuel olarak yapıyormuşum. Sayfalarca prosedür dökümanı takip edip, excel şablonları doldurmak yerine bunları otomatize eden scriptler yazmaya başladım. Sahada çıkabilecek olan problemleri önceden yakalayabilmek adına test ortamları ve bu ortam farklılıklarını ortadan kaldırmak amacı ile Infrastructure-as-Code yaklaşımını daha çok benimsedim. En sonunda bir müşteride bulut üzerinde yaşayan sistemlerde çalışma şansı bulunca ilk fırsatta devops mühendisi olarak kariyerime yön verdim.
Açıkçası devops olmanın en güzel yanlarından bir tanesi ekip ile beyin fırtınası yapmak. Çok fantastik çözümler ortaya çıkabiliyor. Onun dışında diğer ekiplerin işlerini kolaylaştırmak, olabildiğince süreçleri otomatik hale getirmek ve tek tuşla bütün ortamı ayağa kaldırmak insanı fazlasıyla tatmin ediyor.
3. Devops için son zamanların yükselen yıldızı diyebilirim. Sadece devops için değil devsecops, gitops, chatops gibi alt modeller için de geçerli bu durum. Sayısı hızla artan start-uplar, eski hantal datacenterlar’dan kurtulup cloud teknolojisini adapte etmek isteyen kurumsal firmalar, mümkün olan en yüksek hızda minimum hata ile ürün ve ya uygulama çıkarmak isteyen rekabetçi firmalar. Hepsinin ortak noktası devops mühendisine olan talepleri. Aslında yurtdışında uzun süredir var olan devops kültürünün Türkiye’de revaçta olması sevindirici bir gelişme. Örneğin geçen seneye oranla karşılaştırdığımızda online market uygulamalarında 4-5 kat bir artış var, bu da daha çok devops mühendisi ihtiyacı demek. Devops’a yönelmek için henüz hiç geç değil.
4. 30 sene önce olsaydı kesinlikle bilgisayar mühendisliği okumuş olmalı derdim fakat günümüzde bu konuda bazı sayılı okullar dışında işin yine kişinin kendini geliştirmesinde bittiğini düşünenlerdenim. Biraz hobi, biraz ilgi alanı olması ile alakalı. Low level dillerin yerini high levellara, kapalı kaynak kodların yerlerini açık kaynak kodlara bırakması ile saf teknik bilginin yerini tasarım tecrübelerine bıraktığı bir dönemdeyiz. Hafıza yönetimine gerek kalmadan yazılım yapabilirken, socket yönetimi yapmadan ağ işlemleri oluşturabiliyoruz. Temel mühendislik eğitimi ile beraber kişilerin yapacakları projeler, uzun dönem stajlar, online bulunan lab platformları, senelik ücretsiz bulut servisleri onları okul sonrası dönem için bir adım öne taşıyacaktır.
Eğitimler için ise acloudguru.com ve oreilly.com benim favorilerim.
5. Roman tadında olan “The Phoenix Project” ve “The Unicorn Project ” ikilisini kesinlikle okumalarını tavsiye edebilirim. Bunun dışında “The Devops Handbook” çok keyifli bir kitap. Çok fazla blog takip etme alışkanlığım olmadığı için o konuda bir şey öneremeyeceğim fakat Youtube’da Kubecon, Cloudcon, Devopscon gibi konferansların kayıt edilmiş oturumları gidemeyenler için mevcut ve bedava :) . Son olarak Katakoda ve Acloudguru gibi platformların hands-on-lab’ları merak ettiğim ve altyapısını hazırlamaya üşendiğim şeyler için kullanıyorum.