Целевая аудитория
Kariyerinizi daha gelişmiş bir DevOps modeline yönlendirmek isteyen bir geliştirici misiniz? Klasik bir Ops mühendisi misiniz ve DevOps'un ne anlama geldiğine dair bir fikir edinmek mi istiyorsunuz? Yoksa ikisi de değil misiniz ve BT'de biraz çalıştıktan sonra kariyer değiştirmek mi istiyorsunuz ve nereden başlayacağınız konusunda hiçbir fikriniz mi yok?
Cevabınız evet ise altı ayda nasıl orta düzey DevOps mühendisi olabileceğinizi öğrenmek için okumaya devam edin! Son olarak, eğer DevOps'la uzun yıllardan beri uğraşıyorsanız, entegrasyon ve otomasyon endüstrisinin şu anda nerede olduğunu ve nereye doğru gittiğini öğrenmek için bu makale serisinden yine de pek çok bilgi edineceksiniz.
Bu da ne?
Öncelikle DevOps nedir? Tanımları Google'da arayabilir ve tüm laf kalabalığı arasında dolaşabilirsiniz, ancak tanımların çoğunun, basitleştirilmiş bir biçimde sarılmış kelimelerin karmakarışıklığından ibaret olduğunu bilin. Bu nedenle size tüm bu tanımların bir özetini vereceğim: DevOps, işin ve sorumluluğun ilgili herkes tarafından paylaşıldığı bir yazılım sunma yöntemidir. Bu kadar.
Tamam ama bu kısaltma ne anlama geliyor? Bu, geleneksel olarak Geliştiricilerin (yazılım oluşturan kişilerin), Operasyonların (yazılımı yöneten kişilerin)kinden önemli ölçüde farklı teşviklerle işlerini yapmaya motive oldukları anlamına gelir. Örneğin, bir geliştirici olarak mümkün olduğunca hızlı bir şekilde çok sayıda yeni özellik oluşturmak istiyorum. Sonuçta bu benim işim ve müşterilerin talebi de bu! Ancak ben bir Ops çalışanıysam mümkün olduğunca az yeni özelliğe ihtiyacım var çünkü her yeni özellik bir değişikliktir ve her değişiklik sorunlarla doludur. Teşviklerin bu yanlış hizalanmasının bir sonucu olarak DevOps doğdu.
DevOps, geliştirme ve operasyonları (entegrasyon ve otomasyon) tek bir grupta birleştirmeye çalışır. Buradaki fikir, artık bir grubun müşteriye yönelik yazılım oluşturma, dağıtma ve gelir elde etmenin hem acısını hem de sorumluluğunu (ve muhtemelen ödüllerini) paylaşacağıdır.
Puristler size "DevOps mühendisi diye bir şeyin olmadığını" söyleyecekler. "DevOps bir rol değil, bir kültürdür" diyecekler. Elbette teknik açıdan haklılar ama olduğu gibi Çoğu zaman bu terim kontrolden çıkıyor Bir DevOps mühendisi, orijinal anlamının ötesinde, "sistem mühendisi 2.0" gibi bir şeydir. Başka bir deyişle, yazılım geliştirme yaşam döngüsünü anlayan ve yazılım geliştirme araçları ve süreçleri yaratan kişidir. Klasik operasyonel sorunları çözmek için.
DevOps, sonuçta, bir geliştiricinin dizüstü bilgisayarından kod alan ve bunu nihai ürünün kullanımından elde edilen gelire dönüştüren dijital boru hatları oluşturmak anlamına gelir; tüm mesele budur. DevOps kariyeri seçmenin finansal ödüllerle oldukça yüksek oranda telafi edildiğini ve hemen hemen her şirketin ya "DevOps yaptığını" ya da DevOps olduğunu iddia ettiğini unutmayın. Bu şirketlerin nerede bulunduğuna bakılmaksızın, DevOps olarak genel iş fırsatları oldukça yüksektir ve uzun yıllar boyunca "eğlenceli" ve anlamlı bir istihdam sunar.
Bununla birlikte, şirketlerin bir "DevOps ekibi" veya "DevOps departmanı" işe almalarına karşı dikkatli olun. Açıkçası, bu tür şeylerin var olmaması gerekir, çünkü sonuçta DevOps hala bir kültür ve yazılım sunmanın bir yoludur, yeni bir ekibe kadro vermek veya yeni bir ekip oluşturmak değil. süslü bir isim.
feragat
Şimdi bir anlığına Kool-Aid bardağını bir kenara bırakalım ve şunları düşünelim. "Kıdemsiz DevOps mühendisi yok" şeklindeki eski atasözünü duydunuz mu? Değilse, bunun Reddit ve StackOverflow'ta popüler bir kinaye olduğunu bilin. Ama bu ne demek?
Basitçe söylemek gerekirse, bu ifade, sonuçta gerçekten etkili bir Kıdemli DevOps uygulayıcısı olabilmek için uzun yıllara dayanan deneyimin araçlara ilişkin sağlam bir anlayışla birleştirilmesi gerektiği anlamına gelir. Ve ne yazık ki hedefe ulaşmanın hiçbir kısayolu yok. Dolayısıyla bu, sistemi kandırmaya yönelik bir girişim değil; sektörde birkaç aylık deneyime sahip kıdemli bir DevOps mühendisi gibi davranmanın aslında mümkün olduğunu düşünmüyorum. Hızla değişen araç ve metodolojilere ilişkin sağlam bir anlayışa ulaşmak, uzun yıllara dayanan deneyim gerektirir ve bunun üstesinden gelmek mümkün değildir. Bununla birlikte, çoğu şirketin kullandığı araç ve konseptlerden oluşan neredeyse tutarlı (dilerseniz modaya uygun) bir menü vardır ve biz de bundan bahsedeceğiz.
Tekrar ediyorum, araçlar becerilerden farklıdır; dolayısıyla araçları öğrenirken becerilerinizi (araştırma, ağ oluşturma, yazılı iletişim, sorun giderme vb.) ihmal etmediğinizden emin olun. En önemlisi, bulmak istediğimiz şeyi gözden kaçırmayın; fikirleri alıp bunları gelir getirici kod parçalarına dönüştüren tam otomatik bir dijital boru hattı oluşturmanın bir yolu. Bu makalenin tamamından çıkan en önemli sonuç budur!
Bu kadar sohbet yeter, ne zaman başlayabilirim?
Aşağıda DevOps Temel Bilgi yol haritası bulunmaktadır. Orada gösterilen her şeye hakim olduktan sonra, kendinize güvenli ve dürüst bir şekilde DevOps mühendisi diyebilirsiniz! Veya "DevOps" isminden hoşlanmıyorsanız bir bulut mühendisi.
Bu harita, yetkin bir DevOps mühendisinin neleri bilmesi gerektiğine dair benim (ve muhtemelen bu alanda çalışan çoğu kişinin) fikrini temsil ediyor. Ancak bu sadece bir görüş ve elbette buna katılmayanlar olacaktır. Bu iyi! Burada mükemmellik için çabalamıyoruz, üzerine gerçekten inşa edebileceğimiz sağlam bir temel için çabalıyoruz.
Bu yolu aşama aşama, katman katman geçmelisiniz. Önce mavideki unsurları (Linux, Python ve AWS) öğrenerek temel bilgilerle başlayalım (ve devam edelim!). Daha sonra, eğer zaman veya iş piyasası talebi izin veriyorsa, mor şeyleri yapın: Golang ve Google Cloud.
Dürüst olmak gerekirse, temel üst katman sonsuza kadar çalışmanız gereken bir şeydir. OS Linux çok karmaşıktır ve ustalaşması yıllar alır. Python güncel kalabilmek için sürekli pratik yapmayı gerektirir. AWS o kadar hızlı gelişiyor ki bugün bildikleriniz bundan bir yıl sonra yalnızca genel bilgi portföyünüzün bir parçası olacak. Temelleri öğrendikten sonra gerçek beceri setine geçin. Lütfen ayda bir çalışma olmak üzere toplam 6 mavi sütunun (Yapılandırma, Sürüm, Paketleme, Dağıtım, Başlatma, İzleme) bulunduğunu unutmayın.
Altı aylık test sürecimizde önemli bir aşamanın olmadığını elbette fark etmişsinizdir. Yol haritasına bilinçli olarak dahil etmedim çünkü modül yazmak, entegrasyon ve kabul testleri yapmak kolay değil ve geleneksel olarak geliştiricilerin omuzlarına düşüyor. Ve "test" aşamasını atlamak, bu yol haritasının amacının temel beceri ve araçlara mümkün olan en kısa sürede hakim olmak olmasıyla açıklanıyor. Yazara göre test deneyimi eksikliği, DevOps'un doğru kullanılmasının önünde yalnızca küçük bir engeldir.
Ayrıca, burada bir sürü alakasız teknik gevezelik öğrenmediğimizi, bunun yerine net bir hikaye oluşturmak için bir araya gelen araçların anlaşılmasını öğrendiğimizi unutmayın. Bu hikaye, parçaları bir montaj hattı gibi hareket ettiren dijital bir montaj hattı olan uçtan uca süreç otomasyonuyla ilgilidir. Bir sürü araç öğrenip durmaya devam etmek istemezsiniz! DevOps araçları hızlı bir şekilde değişir ancak kavramlar çok daha az sıklıkta değişir. Bu nedenle, üst düzey kavramların öğretim aracısı olarak araçları kullanmaya çalışmalısınız.
Tamam, biraz daha derine inelim!
Temel bilgi
Temel yazan en üst adımın altında her DevOps mühendisinin uzmanlaşması gereken becerileri görebilirsiniz. Bu beceriler, sektörün üç temel direğinin güvenle ele alınmasını sağlar: işletim sistemi, programlama dili ve genel bulut. Bunlar hemen öğrenip devam edebileceğiniz şeyler değil. Endüstrinin ön saflarında yer alabilmek ve çevrenizdeki profesyonel ortama uygun olabilmek için bu becerilerin sürekli olarak geliştirilmesi ve uzmanlaşılması gerekir. Bunları tek tek ele alalım.
Linux her şeyin çalıştığı yerdir. Tamamen Microsoft ekosisteminin içinde kalarak muhteşem bir DevOps uygulayıcısı olabilir misiniz? Tabi ki yapabilirsin! Yalnızca Linux kullanmanızı gerektiren bir yasa yoktur. Ancak şunu unutmayın ki, Linux ile ilgili tüm işler Windows'ta yapılabiliyor olsa da, orada bu işler çok daha acı verici ve daha az işlevsellikle gerçekleşir. Bu noktada, Linux'u bilmeden gerçek bir DevOps uzmanı olmanın imkansız olduğunu, dolayısıyla Linux'un üzerinde çalışmanız ve öğrenmeniz gereken bir şey olduğunu varsaymak yanlış olmaz.
Dürüst olmak gerekirse, bunu yapmanın en iyi yolu Linux'u (Fedora veya Ubuntu) evde kurmak ve mümkün olduğunca kullanmaktır. Elbette birçok şeyi bozacaksınız, iş süreçlerine takılıp kalacaksınız, her şeyi düzeltmek zorunda kalacaksınız ama Linux öğreneceksiniz!
Bu arada RedHat çeşitleri Kuzey Amerika'da daha yaygın olduğundan Fedora veya CentOS ile başlamak mantıklıdır. KDE'yi mi yoksa Gnome sürümünü mü satın almanız gerektiğini merak ediyorsanız KDE'yi seçin. Linus Torvalds'ın bizzat kullandığı şey budur.
Python bugünlerde baskın arka uç dildir. Başlaması kolaydır ve yaygın olarak kullanılır. Python, yapay zeka ve makine öğrenimi alanında çok yaygındır, dolayısıyla başka bir sıcak alana geçmek isterseniz tamamen hazırlıklı olacaksınız.
Amazon Web Services: Tekrar ediyorum, genel bulutun nasıl çalıştığına dair sağlam bir anlayışa sahip olmadan tecrübeli bir DevOps uzmanı olmak imkansızdır. Bu konuda daha fazla bilgi edinmek istiyorsanız Amazon Web Services'e bakın. Bu hizmet alanında lider bir oyuncudur ve en zengin çalışma araçlarını sunar.
Bunun yerine Google Cloud veya Azure ile başlamak mümkün mü? Tabi ki yapabilirsin! Ancak son mali krizi hatırlayarak, ücretsiz olarak bir hesap kaydetmenize ve bulut hizmetlerinin olanaklarını keşfetmeye başlamanıza olanak tanıdığı için AWS'nin en azından 2018'de en güvenli seçenek olduğunu belirtmek gerekir. Ayrıca AWS konsolu kullanıcıya seçim yapabileceği basit ve anlaşılır bir menü sunar. İyi haber şu ki, bunu yapmak için Amazon'un tüm teknolojilerini bilmenize gerek yok.
Şunlarla başlayın: VPC, EC2, IAM, S3, CloudWatch, ELB (EC2 şemsiyesi altında Elastik Yük Dengeleme) ve Güvenlik Grubu. Bunlar başlamanız için yeterlidir ve her modern, bulut tabanlı kuruluş bu araçları oldukça aktif bir şekilde kullanır. AWS'nin kendi eğitim sitesi başlamak için iyi bir yerdir.
Öğrenmeniz gereken diğer şeylerin yanı sıra, her gün 20-30 dakikanızı Python dilini, Linux işletim sistemini ve AWS bulut hizmetini öğrenmeye ve pratik yapmaya ayırmanızı öneririm. Genel olarak haftada beş kez günde bir saat harcamanın DevOps endüstrisini 6 ay veya daha kısa sürede anlamak için yeterli olduğuna inanıyorum. Her biri bir aylık eğitime karşılık gelen toplam 6 ana bileşen bulunmaktadır. Temel bilgi edinmek için ihtiyacınız olan tek şey bu.
Sonraki makalelerde, karmaşıklığın bir sonraki düzeyine bakacağız: yazılımın konfigürasyonunun, versiyonlanmasının, paketlenmesinin, konuşlandırılmasının, çalıştırılmasının ve izlenmesinin nasıl tamamen otomatikleştirileceği.
Devamı çok yakında...
Bazı reklamlar 🙂
Bizimle kaldığın için teşekkürler. Yazılarımızı beğeniyor musunuz? Daha ilginç içerik görmek ister misiniz? Sipariş vererek veya arkadaşlarınıza tavsiye ederek bize destek olun,
Amsterdam'daki Equinix Tier IV veri merkezinde Dell R730xd 2 kat daha mı ucuz? Sadece burada
Kaynak: habr.com