DevOps: Dijital Dönüşümünüzü Hızlandıracak İtici Güç

Yayınlanan: 2018-12-11

"Neredeyse herkes sürekli entegrasyon yapıyor. Sürekli dağıtım, Holy Grail gibi bir şey" - Theo Kim, DevOps mühendislik başkanı, GoPro

Yazılım pazarındaki rekabet, kuruluşları yüksek kaliteli yazılımları hızlandırılmış bir hızda geliştirmek ve sunmak için en iyi kaynaklarını tahsis etmeye zorladı. Bu çeviklik seviyesinin anahtarı, Geliştirme ve BT Operasyonları arasında yüksek düzeyde işbirliğine dayalı ve iletişimsel bir ilişki kurmaktır.

Modern Vardiya

"DevOps" terimi ilk olarak 2008 yılında Yazılım Geliştiricileri ve BT Operasyonları profesyonellerinin birlikte çalışarak uygulamaları hızlı ve verimli bir şekilde oluşturmalarını sağlamak amacıyla ortaya çıktı. On yıl sonra DevOps, Amazon, Netflix ve Fidelity Worldwide Investments gibi büyük şirketler - üstün hizmetler ve erişilebilirlik talep eden devasa müşteri tabanlarına sahip kuruluşlar dahil olmak üzere birçok kuruluşun başarısının ayrılmaz bir parçası oldu.

Yüzeyde, DevOps çığır açan bir teknoloji gibi görünmüyor: ekiplerin daha iyi ve daha hızlı sunmak için birlikte çalışmasını sağlamak bariz bir hedef gibi görünüyor.

vardiya

Çevik geliştirme süreci, geliştirme ekibi ve iş paydaşları arasındaki iletişimi artırarak geliştirme sürelerini kısaltır. Ancak son kod satırı yazıldığında ve son test durumu geçildiğinde yazılım projeleri tamamlanmaz. Uygulamalar piyasaya sürülmek üzere paketlenmeli, üretime dağıtılmalı, olası sorunlar için izlenmeli ve yeni özellikler ve gerekli hata düzeltmeleriyle geliştirilmelidir.

Bu geliştirme sonrası görevlerin her biri zaman alır, bu nedenle yeni özelliklerin ve iş işlevlerinin kullanıcılara sunulmasını geciktirir. DevOps, geliştiriciler ve operasyon ekibi arasındaki iletişim ve işbirliğine çevik odaklanmayı getirerek, geliştirme sonrasındaki sürece eşit yanıt verebilirlik sağlar.

Günümüzde DevOps, yazılım geliştirme için en verimli yöntem olarak kabul edilmektedir. Yazılım kuruluşları, DevOps kullanarak geliştirme karmaşıklığını azaltabilir, sorunları daha hızlı tespit edip çözebilir ve sürekli olarak yüksek kaliteli, yenilikçi yazılımlar sunabilir. Sürekli Entegrasyon (CI), Sürekli Teslimat (CDE) ve Sürekli Dağıtım (CD) , kuruluşların kaliteden ödün vermeden hızlı olmalarına yardımcı olan uygulamalardan bazılarıdır.

Sürekli Entegrasyon

Sürekli Entegrasyon (CI), yazılım geliştirme endüstrisinde, bireysel geliştiricilerin çalışma ürünlerini erken ve sıklıkla merkezi bir havuza entegre etmeyi amaçlayan, yaygın olarak kurulmuş bir geliştirme uygulamasıdır. Ekip üyeleri, geliştirme çalışmalarını sıklıkla entegre eder ve birleştirir. CI, entegrasyon hatalarının erken tespit edilmesini sağlayarak ekipler arasında daha iyi bir işbirliği ile sonuçlanarak daha kaliteli bir ürün elde edilmesini sağlar.

CI, entegrasyon sürecini basit, kolayca tekrarlanabilir hale getirir ve kuruluşların daha kısa ve daha sık sürüm döngülerinden yararlanmalarını, yazılım kalitesini iyileştirmelerini ve genel üretkenliği artırmalarını sağlar.

entegrasyon

Bununla birlikte, dikkate alınması gereken takaslar vardır. CI süreci herhangi bir ek kalite güvencesi sunmaz. Çoğu kuruluş, böyle bir entegrasyonun maliyetli olduğunu düşünür ve bu nedenle, zamanından ödün vermek anlamına gelse bile, yeni kodun yeni hatalara yol açmamasını sağlamak için manuel prosedürleri tercih eder. Entegrasyon görevleri sırasında sürtünmeyi azaltmak için CI, test takımlarına ve otomatik test yürütmeye güvenir. Bununla birlikte, otomatik testin sürekli testten oldukça farklı olduğunu anlamak önemlidir.

Sürekli Teslimat

Sürekli Teslimat (CDE), Sürekli Entegrasyonun doğal bir uzantısıdır ve CI'nin kaldığı yerden devam eder. Sürekli teslimat, bir uygulamanın otomatik testlerden ve kalite kontrollerinden başarıyla geçtikten sonra her zaman üretime hazır durumda olmasını sağlamayı amaçlar. CDE, örneğin CI ve dağıtım otomasyonu için bir dizi uygulama kullanarak yazılımın hatasız olmasını sağlar, böylece yazılımı otomatik olarak üretim benzeri bir ortama teslim eder.

Sürekli Teslimat, ekip tarafından test ve dağıtım süreçlerini otomatikleştirmek için kullanılan bir dağıtım hattına bağlıdır. İşlem hattının kendisi, yapıya karşı aşamalı bir dizi test paketi yürüten otomatik bir sistemdir. İşlem hattının her bölümünde, yapı kritik bir testte başarısız olabilir ve bu nedenle ekibi uyarır. Değilse, bir sonraki test paketine devam eder ve ardışık test geçişleri, boru hattındaki bir sonraki segmente otomatik terfi ile sonuçlanır. İşlem hattındaki son segment, yapıyı üretime eşdeğer bir ortama dağıtacaktır.

devops süreci

Modern bir CI/CDE ardışık düzeninin en iyi örneklerinden biri AWS'de mevcuttur. Amazon, etkileyici bir CI/CDE işlem hattı ortamı sunar ve birçok geliştirme kaynağı arasından seçim yapabileceğiniz ve bunları kolayca yapılandırılabilen ve kolayca izlenen bir işlem hattında birbirine bağlayabileceğiniz bir gözden geçirme prosedürü sağlar.

Sürekli Dağıtım

Çoğu kişi Sürekli Dağıtımı (CD) Sürekli Teslimat ile aynı olmakla karıştırırken, bu süreç, uygulamayı otomatik olarak ve sürekli olarak üretime dağıtarak bir adım daha ileri giderek kendini farklı kılar. Her değişikliği üretim ortamına otomatik ve istikrarlı bir şekilde dağıtma hedefiyle Sürekli Dağıtım uygulaması, Sürekli Teslimat uygulamasını gerektirir, ancak bunun tersi doğru değildir.

Sürekli Dağıtımdaki son dağıtım manuel bir adım olsa da Sürekli Dağıtımda manuel adım olmadığını unutmamak önemlidir. Geliştiriciler bir değişiklik yaptığında, değişiklik bir dağıtım hattı aracılığıyla üretime dağıtılır. Ayrıca Sürekli Dağıtım uygulaması tüm kuruluş türleri için uygulanabilirken Sürekli Dağıtım uygulaması yalnızca belirli kuruluş türleri için uygun olabilir.

sürekli dağıtım

Bir CD metodolojisi kullanan kuruluşlar, yeni dağıtımları hakkında hızlı kullanıcı geri bildirimlerinden faydalanacaktır. Özellikler kullanıcılara hızlı bir şekilde teslim edilir ve ortaya çıkan herhangi bir hata veya kusur anında giderilebilir.

DevOps'un benimsenmesindeki muazzam büyümeyle birlikte, CI/CD ardışık düzenlerinin uygulanmasına yardımcı olan otomasyon araçlarında da önemli bir artış oldu. Bu araçlar, Github gibi kod deposu sistemleri ve Jira gibi hata izleme sistemleri dahil olmak üzere çeşitli geliştirici araçlarıyla entegre olur. Ayrıca, SaaS popüler bir dağıtım modeli haline geldiğinden, bu araçların çoğu bulutta çalışıyor. En popüler araçlardan bazıları GitLab CI, TeamCity, Bamboo, GoCD,Jenkins ve Circle CI'dir.

devops bilgisi