DevOps'u nereden öğrenmeye başlayabilirim?


10

Gibi pek çoğu, gerçekten "nasıl devops ile başlamak için" yardım etmedi aranıyor bu ve bu gibi diğerleri gerçekten doğru şekilde bana işaret etmemektedir. Şimdiye kadar gördüğüm her youtube videosu da bana yardımcı olmadı (bana IS'nin ne yaptığını açıklayan videolara ihtiyacım olmadığından), bu video şu ana kadarki tek gerçek istisnadır (işlerin birbirleriyle nasıl entegre olduğunu gösterir).

Ben bir CCNA ve aynı zamanda DBMS-s (şu anda paralellik yürütme yanı sıra diğer şeyler öğrenme) ile son derece yetkin.

Ama önce ne öğrenmem gerektiği konusunda hiçbir fikrim yok (ya da bu konu için doğru kaynakları nerede bulacağım ).

Mezun olmak üzereyim, bu yüzden gerçek dünya deneyimine erişimim yok.

Herhangi bir tavsiye veya yardım?

Yanıtlar:


5

Adanmışlar yazılımın yürütülmesi ile ilgilidir. Her şey bir uygulamanın veya hizmetin nasıl çalıştırılacağı ile ilgilidir. Yani sunucu yapılandırma araçları, sanal makineler ve kapsayıcılar sonraki adımlar. Bu araçların belgelerine bakmayı ve onlardan keşif, gözlemlenebilirlik, ölçeklenebilirlik ve artıklık gibi şeyleri öğrenmenizi öneririm. Sadece bazı örnekler vermek gerekirse:

Sunucu yapılandırması:

  • PXE
  • yanıtlayıcı '
  • Kukla

VM:

  • serseri
  • QEMU

Konteyner:

  • Liman işçisi
  • Kubernetes

EDIT: Bulut teknolojilerine genel bakış:

Yazılım mimariniz mikro hizmetlerle ilgili olduğunda, kaplar iyi bir seçimdir. Eski monolitik uygulamaları kullanırken VM'ler kötü bir seçenek değildir. Bu nedenle, her zaman özel olarak öğrenmeniz gereken içeriğe bağlıdır. Konu özetlemek için oldukça geniştir. Bir kitap bu konuda yardımcı olabilir ama ne yazık ki iyi bir geniş kitap öneremem. "Kubernetes in Action", Kubernetes'te iyi bir başlangıç ​​yapmanızı sağlar.


Ayrıca ci / di hakkında bir şeyler ekler, örneğin bambu, jenkinler, teamcity veya benzeri.
Siklon kodu

1
Unuttuğum ve hangisinin yardımcı olabileceği. Bulut teknolojilerine genel bakış: CNCF landscape
jhamfler

Mesajınızı düzenleyin ve daha fazla bilgi ekleyin =) Aslında buna baktım.
Cyclonecode

@Cyclonecode haklısın. done
jhamfler

Üzgünüm, bu aptalca bir soru ise, EC2 zaten sanal bir makinenin içinde çalışıyorsa neden Docker'a ihtiyacım var?
PirateApp

4

Her şeyden önce, DevOps'un bir rol değil bir kültür olduğunu vurgulamak istiyorum. Benim düşünceme göre, keskin nişancı, deniz, kazmacı gibi kendi uzmanlıklarına sahip bir komando takımı ile karşılaştırılabilir (komandolar serisini düşünün). Temel olarak birlikte çalışan bu uzmanlıkların birleşimi, mümkün olan en kısa sürede misyonların gerçekleştirilmesini veya iş değeri yaratılmasını mümkün kılar.

LowOps ve NoOps

Birkaç haftadan beri, insanlarla yapılan çok sayıda konuşmadan sonra, bu günlerde LowOps hakkında oldukça konuştuğunu gördüm. Bir çözüm uygularsam, bu tamamen otomatik olduğu ve bir meslektaşımın bana sormak yerine makineleri kendileri yerleştirebileceği anlamına gelir. Bazen tamamen otomatikleştirmek hemen mümkün değildir, ancak sonra birkaç saat boşa harcamak yerine işi yapmak için sadece bir komut çalıştırmamı sağlamak için kendimin otomatik olmasını sağlarım. Böyle bir çözüm oluşturduysam, bir meslektaşımın kişisel çözümümü herkes için otomatik hale getirmesi için bir bilet oluşturulmasını sağlarım. Örnek: Benim bir kolejim, bash senaryomdan birini şimdi her gece çalıştırdığı bir botta dönüştürdü.

resim açıklamasını buraya girin

Şekil 1: https://www.gslab.com/blog-post/what-is-noops/

"adanmışlarla nasıl başlanır"

Karma yetkinlikleri olan bir ekibin parçası olduğunuzdan ve ekibin yazılımı kendileri dağıtması gerektiğinden emin olun. Tüm ekip üyeleriyle konuşun ve bilgi veya istek eksikliği olduğu için kimsenin yapmak istemediği görevlerle başlayın. Bir görevle başlarsanız, bilmediğiniz şeylerle karşılaşırsınız. Videoları izlemeye başlayın, buluşmalara katılın , kitap satın alın ve okuyun, takımlar hakkındaki blogları ve resmi belgeleri okuyun, meslektaşlarınızdan çekme taleplerinizi gözden geçirmelerini ve insanlarla iyi iletişim kurup dinlemelerini isteyin, işleri iyi belgelendirin ve iş arkadaşlarına çözümler hazırlayıp gösterin (bilgi paylaşımı) . Son öneri iş-yaşam dengesine dikkat etmektir .


2

Buradaki diğer cevaplar araçlara odaklandı. Bence, bir araç setinde yetkinlik kazanmak elbette iyi bir şey, ancak bir DevOps kültürüne iyi bir uyum sağlamayacak. DevOps ilk önce bir dizi uygulama veya yöntemdir .

Uygulamaların ve yöntemlerin neden faydalı olduğunu anlamak deneyim ile birlikte gelir, ancak o lükse sahip değilsiniz. Bu yüzden seni işaret ederim

temel metinler olarak.

Sürekli Teslim web sitesi aynı zamanda bir dizi var İlkeleri ve Vakıflar başlatırken size ilgili topraklama vermek.

Bunlardan başlayarak, nasıl işbirliği yaptığınızı ve araçları nasıl kullandığınızı bildirecek uygulama ve yöntemleri öğreneceksiniz .


2

Öğrenmen gereken tüm Bunları etkileşimli öğrenebilirsiniz Jenkins vb Linux, Docker, Ağ, Git, bir buraya

Video eğitimlerini arıyorsanız, çoğul görüşün sizin için iyi bir şey vardır.


1

Bu, kendime birçok kez sorduğum bir tür soru ve bu beni takip etme eğilimindedir (şimdi "yeni başlayanlardan" zar zor uzak olduğum için, daha ileri konuların nerede öğrenileceğini merak ediyorum). Ne yazık ki, işaret ettiğiniz gibi, arama motorunda bu soruları sormak yöneticileri hedefleyen web siteleri ile sel eğilimindedir ve açıklamaya çalışıyor Adanmış nedir? ve Yazılım döngüsünü neden devops ile endüstriyelleştirmeliyiz?

Bununla birlikte, sorunuzu cevaplamaya çalışmak için sadece kişisel deneyimlerden konuşabilirim: Öğrenme yolculuğuma mükemmel Docker Başlangıç ​​kılavuzu ile başladım .


1

"Öğrenmek DevOps" da bulduğunuz gibi, çok geniş bir sorgu vuruyor, ama aynı şeyi google zorunda hatırlıyorum.

@ Jhamfler'ın cevabına eklemek için: Kendinize sorun, neden bu konuyu öğrenmek istiyorsunuz? Hangi bağlamdan geliyorsun? DevOps genellikle takımlardaki manuel engelleri veya silo yapılarını yıkmakla ilgilidir (herkes sadece kendi görevini yerine getirir ve sonuçları entegre etmek için başka birine güvenir). Projenizde böyle bir boşluk var mı (varsayalım). Hangi kısımları otomasyondan yararlanabilir?

Önerebileceğim tipik sorunlar:

  • manuel sunucu bakımı VS kodlu çözümleri
  • güvenilirlik ve yedeklemeler
  • entegrasyon testlerinin otomatikleştirilmesi
  • sürekli konuşlandırmayı otomatikleştirme (örneğin bir web hizmetinin)
  • ...

Belki de "sürekli dağıtım" ve "sürekli entegrasyon" (CI / CD) aramaları da size yardımcı olabilir.


1

Öğrenmeniz ve rahatlamanız gereken ilk şeyler:

  • unix (dosya sistemi, izinler, işlemler, hizmetler, günlükler, ağ iletişimi vb.)
  • ssh ve ters tünel açma
  • Nano / vim
  • piton
  • git

Ardından daha spesifik konulara geçebilirsiniz:

  • konteynerizasyon (örn. liman işçisi)
  • konfigürasyon yönetimi (örneğin ansible)
  • sürekli konuşlandırma (örn. jenkinler)
  • izleme (örn. prometheus / grafana)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.