Başarılı Bir DevOps Stratejisi Nasıl Uygulanır?
Yayınlanan: 2022-06-29giriiş
DevOps, yazılım geliştiricileri ve BT operasyon personeli arasındaki işbirliğini vurgulayan bir geliştirme stratejisidir. Ancak DevOps'u uygulamak için ekiplerinizden birlikte çalışmalarını istemekten daha fazlası var.
DevOps terimi, popüler olarak “DevOps'un Babası” olarak da bilinen Patrick Debois tarafından 2009 yılında ortaya atıldı. Süreç aşağıdaki ana aşamalardan oluşur:
- Plan
- Oluştur/Kodla
- İnşa etmek
- Ölçek
- Serbest bırakmak
- Dağıtmak
- Çalıştırın ve
- monitör
DevOps'u başarılı bir şekilde uygulamak için gerekenlere ve bunu yapmak için birçok farklı stratejiye ilişkin bir kılavuz.
Her Şeyi Aynı Anda Yapmaya Çalışmayın
DevOps'u ilk kullanmaya başladığınızda bunalmak kolaydır. Orada çok fazla bilgi var ve nereden başlayacağınızı bilmek zor olabilir. Küçükten başlamanızı ve ilerlemenizi tavsiye ederim.
İlk olarak, otomatikleştirmesi, izlemesi ve son kullanıcılarla iletişim kurması kolay bir alan seçin. Bu, başarıyı erken göstermenizi ve işin diğer alanlarına doğru ivme kazanmanızı kolaylaştıracaktır. Örneğin: dağıtımları otomatikleştiriyorsanız veya izleme araçları kuruyorsanız, web uygulamalarını veya kapsayıcılı uygulamaları (Docker gibi) dağıtmak gibi bir şeyle başlamayı düşünebilirsiniz. Bu tür hizmetler genellikle veritabanları gibi diğer sistem türlerinden daha az bağımlılığa sahiptir, bu nedenle DevOps uygulamalarını kuruluşlarımız genelinde uygulamadaki ilerlememizi ölçebileceğimiz daha kolay test durumları olma eğilimindedirler.
Yapabileceğini Yap, Yapabildiğin Zaman
Yapılacak ilk şey, ekibinizin ihtiyaç duydukları araçları kullanmasını sağlamaktır. Mevcut olanlarla başlayın ve daha rahat ettikçe daha fazla özellik ekleyin. Her şeyi aynı anda yapmaya çalışmayın; işinize yarayan bir veya iki şey bulun, ardından diğerine geçin.
Otomasyonu Çalıştırın
DevOps'un amacı hızı artırmak, maliyetleri ve insan hatasını azaltmak ve kaliteyi iyileştirmektir. Bu yüzden otomasyon çok önemli kabul edilir. Otomasyon, farklı bağlamlarda farklı anlamlara gelebilir (otomatik test ve sürekli entegrasyon iki yaygın örnektir), ancak genellikle belirli görevleri gerçekleştirmek için yazılım kullanımına atıfta bulunur. Bu, geliştirme ve üretim süreçlerinde daha az insanın yer alacağı ve bu da kaliteyi artırırken maliyetleri düşüren ve tüm bunları hızı artırırken olacağı anlamına gelir.
Özel Çözümler Geliştirmek için Mevcut Araçlarla Başlayın
Özel çözümler geliştirmek yerine mevcut araçlarla başlamak daha kolay olabilir. Yeni başlıyorsanız, hızlı bir şekilde çalışmaya başlamanıza yardımcı olabilecek bir dizi açık kaynaklı proje ve bulut hizmeti vardır. Örneğin:
- DevOps otomasyon çerçevesi Jenkins Stack: Tüm yazılım geliştirme yaşam döngüsünü yöneten açık kaynaklı bir proje. Sürekli entegrasyon (CI) ve sürekli teslimat (CD) için araçların yanı sıra test etme, oluşturma, paketleme ve kod dağıtma gibi diğer yaygın DevOps görevleri için araçlar içerir. Linux ve macOS dahil olmak üzere çeşitli işletim sistemlerini destekler.
- Elasticsearch: Birçok sunucuda gerçek zamanlı olarak büyük hacimli yapılandırılmamış veriler için tam metin arama yetenekleri sağlayan Apache Lucene tabanlı bir arama motoru. Netflix veya PayPal gibi birçok şirket tarafından kullanılır, böylece yatay olarak ölçeklenebilmesi (gerektiğinde daha fazla örnek eklenmesi) nedeniyle bu varlıklar içinde gerçekleşen tüm işlemlerini çok hızlı bir şekilde endeksleyebilirler.
Kültürünüzle İyi Birleşen Araçlarla Başlayın
DevOps yolculuğunuza başladığınızda, her şeyi bir anda değiştiremeyeceğinizi anlamanız önemlidir. Kültürünüzü, süreçlerinizi, insanlarınızı veya teknolojinizi değişmeye zorlayamazsınız; DevOps ve Çevik geliştirmenin hedefleriyle uyuşmazlarsa, başarısını engellerler.
Bu öğeleri, işinizin bugünkü işleyişine uymayan sabit bir kalıba sokmaya çalışmak yerine, özellikle Çevik metodolojileri benimseyen yazılım ekipleri için tasarlanmış araçları arayın ve ekibin yeteneklerini zamanla artırdıkça büyümelerine olanak tanıyın. .
İşbirliğine Odaklanın ve Mümkün Olduğunda En İyi Beyinleri Elde Edin
Ancak bu kaynakları bulmak ve işe almak kolay değildir.
Neyse ki, yardım almak için birkaç harika seçenek var:
- DevOps'u zaten uygulayan diğer şirketlerden yardım alın. Zor derslerden bazılarını zaten öğrenmiş olacaklar ve kendi deneyimlerine dayanarak size tavsiyelerde bulunabilirler.
- DevOps'un içini ve dışını kendi başınıza öğrenmek için zamanınız yoksa danışmanlar da iyi bir seçenek olabilir. Hangi soruları soracaklarını ve cevapları nerede arayacaklarını bilme eğilimindedirler; ayrıca, diğer şirketlerdeki (günlük işlerine odaklanmış olabilecek) çalışanlardan daha olasıdırlar çünkü yalnızca bilgi paylaşımından ziyade parayla motive olurlar.* GitHub gibi açık kaynak toplulukları, daha sonra ek kaynaklar sağlar. işbirliği yoluyla birlikte nasıl çalıştıklarını öğrenmek.* Ek olarak veya dışarıdan bir danışman kullanmak yerine başka birinin uzmanlığını istiyorsanız, eğitim kursları başka bir seçenek olabilir.* Phoenix Projesi gibi kitaplar, bir şirketin DevOps'u nasıl başarılı bir şekilde uyguladığına dair içeriden bir bakış sunar; genellikle sadece uzaktan gözlemlemek yerine onu uygulamakla ilgilenen kişiler tarafından yazılırlar.
Otomatik İzleme ve Raporlama
Otomatik izleme ve raporlama, önemli bir DevOps uygulamasıdır. Yazılımınızın kalitesini artırmak için üretimde ne kadar iyi performans gösterdiğini ölçebilmeniz gerekir. Geliştiriciler, sorunları hızlı bir şekilde belirleyebilmeleri için kodlarını izlemekten sorumlu olmalıdır. Ayrıca, bu verileri toplamak ve üretimde çalışırken uygulamalarında neler olduğunu anlamalarını sağlayacak analiz araçlarını uygulamak için bir stratejiye sahip olmaları gerekir.

Operasyon ekibi, altyapısını izlemelidir, çünkü her şeyin günlük olarak sorunsuz çalışmasını sağlamaktan sorumludurlar. Bu, CPU kullanımı, disk alanı kullanımı, ağ bant genişliği tüketimi vb. ile ilgili ölçümlerin toplanması ve ayrıca uygulamalarda ortaya çıkan sorunların hemen ele alınabilmesi için günlüğe kaydedilmesi anlamına gelir.
İşletmeniz, geliştirme süresi ve yolun aşağısındaki bakım maliyetleri (devam eden destek dahil) gibi maliyetlere göre her yeni özelliğin ne kadar gelir getirdiğini ölçerek kârlılığını izlemelidir. Bu tür metrikleri doğru bir şekilde ölçebilme yeteneği, bir kuruluştaki veya mikro hizmetleri kullananlar gibi tek bir proje üzerinde birlikte çalışan birden fazla kuruluştaki ekiplerin, finansal hedeflere dayalı olarak ürün yol haritalarını oluştururken hangi özelliklerin öncelikli olması gerektiği konusunda daha iyi kararlar almasına olanak tanır. büyük resme bakmaksızın sadece teknik borç azaltmaya odaklanmak yerine.”
Müşterilerinizi Bilgilendirin, Sürprizlerden Hoşlanmayabilirler
Kuruluşunuzun tüm web uygulaması için yeni bir kod tabanı uyguladığını varsayalım. Bunun son kullanıcıları etkileyeceğini ve değişiklik karşısında şaşırırlarsa bundan hoşlanmayacaklarını biliyorsunuz.
Onları uyarabilir ve değişime hazırlanmaları için zaman verebilirsiniz ya da canlıya geçene kadar bekleyip ne olduğunu, neden olduğunu ve değişikliklere alışmalarına nasıl yardımcı olabileceklerini açıklayabilirsiniz.
Kullanıcıları bilgilendirmenin bir yolu, insanların yeni araçlarını nasıl kullanmaları gerektiğine ilişkin talimatların yanı sıra, üretime sunulduktan sonra bu özelliklerden nasıl yararlanabileceklerine ilişkin ipuçlarının (ör. yeni bir arama özelliği olacak).
Küçük Başlayın, Otomatikleştirin, İlerlemeyi İzleyin ve Optimize Edin
DevOps'u uygulamak için en iyi strateji, küçük başlamak, otomatikleştirmek ve zaman içindeki ilerlemeyi izlemektir.
Küçük başlayın: Yönetilebilir bir kapsamla başladığınızda ivme oluşturmak daha kolaydır. Tüm departmanınızı veya kuruluşunuzu bir kerede ele almaya çalışırsanız, bunaltıcı olabilir ve kendinizi imkansız hissedebilirsiniz. DevOps'u tüm şirkette aynı anda uygulamaya çalışmak yerine, her seferinde bir projeye veya ekibe odaklanın.
Otomatikleştirme: Geliştirme sürecinizin bazı bölümlerini otomatikleştirmeye yardımcı olabilecek birçok araç vardır (Jenkins veya TeamCity gibi sürekli entegrasyon sunucuları), ancak henüz mevcut araçlara sahip olmayan bazı şeyler olabilir; örneğin üretim için yedeklemeler ayarlamak gibi AWS CloudFormation şablonlarındaki sunucular; bu nedenle, başka bir şeyle ilerlemeden önce bunların otomasyon planınıza dahil edildiğinden emin olun!
Zaman içindeki ilerlemeyi izleyin: Metriklerin yerinde olması, dahil olan herkesin (kendiniz dahil) zaman içinde işlerin ne kadar iyi gittiğini değerlendirmesine olanak tanır, böylece tam otomasyona giden yolculuğumuzun her adımında gerektiği gibi ayarlamalar yapabiliriz!
Çözüm
Artık DevOps'un kuruluşunuz için nasıl çalışabileceğini daha iyi anladığınızı umuyoruz. Gördüğümüz gibi DevOps ekibi, ilk geçişi yaptıktan sonra başlamanıza ve devam etmenize yardımcı olabilecek faydalı kaynaklar ve araçlarla doludur. Başarılı uygulamanın anahtarı, zaten bildiklerinizle başlamak ve daha sonra mükemmel olana kadar onu yinelemek. Bunu yaparak, bütçenizi aşmadan veya ekibinize yeni sorumluluklar yüklemeden etkili bir DevOps stratejisi uygulayabileceksiniz!
Öne Çıkan Resim: DevOps'un İş Akışı: Kaynak: Pease, 2017 .
Yazar Biyografisi:
Priya, Pazar Araştırmasında yaklaşık 7 yıllık deneyime sahiptir. Şu anda Valasys Media'da, dünyanın en iyi B2B Medya Yayıncıları arasında yer alan İçerik Stratejisti - Müdür Yardımcısı olarak çalışmaktadır. Müşterilerimiz için birkaç kişiselleştirilmiş rapor hazırlıyor ve pazar bölümlendirme, kitlelerin küme analizi ve gelen metodolojiler hakkında birçok araştırma yaptı. Çeşitli projelerde devlet kurumları ve kurumsal evlerle çalıştı. Çeşitli ilgi alanlarına sahiptir ve problem çözmede veriye dayalı bir yaklaşıma inanır. Bilim alanında yüksek lisans derecesine sahiptir ve pazarlama, bilim, veri bilimi ve istatistiklerin yanı sıra yaşamla ilgili her şey hakkında kapsamlı yazılar yazmaktadır. O, daha yüksek gerçekliklere ve hayatta her zaman bizim anladığımızdan daha fazlası olduğuna kesin olarak inanır. Ruhsal bir yaşam biçimine inanan ve Yoga ve meditasyon uygulayan bir psişik şifacı ve bir tarot uygulayıcısıdır. Yazmadığı zamanlarda müzikten veya yemek yapmaktan keyif aldığını görebilirsiniz.