Ana içeriğe atla

DevOps Yolculuğum - 1 - Continous Delivery


DevOps Yolculuğum

2018 yılıyla birlikte kariyerime DevOps Mühendisi olarak devam edeceğim. Bu zamana kadar IT altyapı ve operasyon ekiplerinde kazandığım, server operasyon ve yönetimi, veritabanı operasyon ve yönetimi, uygulama operasyon ve geliştirme deneyimlerimi DevOps için kullanacağım. Bu süreçte fırsat buldukça DevOps adına öğrendiklerimi blog yazılarımda toparlamayı hedefliyorum. Umarım hem yeni kariyer hedefimde hem de blog zinciri hedefimde başarılı olabilirim:)

Bu zincirdeki ilk yazımda Continous Delivery mekanizmasından bahsetmeyi düşündüm. Umarım bana ve okuyan herkese faydası dokunur.

Continous Delivery Nedir?

Continous Delivery temelde software release sürecinin tamamını etkileyen yazılım mühendisliği yaklaşımıdır. Test otomasyonu, uygulama deploymentlarının otomasyonu ve development sırasında kullanılan süreçlerin otomasyonu Continous Delivery'nin önemli bileşenleridir. Continous Delivery'in temel hedefi büyük ölçekli dağıtık ortamlara, kompleks production ortamlarına predict edilebilir deployment yapabilmektir. Bu hedefe ulaşabilmek için development sırasında en başta tekrarlayan süreçlerimiz olmak üzere süreçlerimizin mümkün olan adımlarını otomasyona uyumlu olarak tekrar dizayn etmeli, development ortamından test ortamına kodu otomatik deploy edebilmeli, test ortamındaki testlerimizi de insan hatasını ortadan kaldırabilmek için yine test otomasyon toollarıyla yapabilmeliyiz. Bileşenlerden bir tanesinin otomasyon yerine manuel süreçlerle ilerlemesi, hataya yol açabileceğinden dolayı bu bileşenlerin herhangi birisinin CD süreçlerinin içerisinden çıkarılması düşünülemez. 
Tüm bunlar organizasyonel yapıda ciddi değişikliklere gidilmesini, kişilerin bu yapıya uygun çalışma yapılarını da düzeltmesini gerektirmektedir. Bir uygulama release'ine ve deployment'ina dokunan herkes bu sürece uyumlu çalışmalıdır. 
Özetle Continous Delivery, deployment ve release süreçlerinde çeviklik (agility) ve hızı (velocity) arttırmak adına ortaya çıkarılmış bir mekanizmadır. 
 
Peki neden Continous Delivery mekanizmasını software release süreçlerimize entegre etmeliyiz?
  • CD'nin birincil hedefi uygulama deploymentlarının daha az sancılı ve esnek olabilmesini sağlamaktır. Zero-downtime hedefine ulaşabilmeyi hedefler.
  • Daha çevik ve hızlı yazılım geliştirmesiyle pazarda öncü olmayı hedefler. 
  • Süreçleri hatasız devam eden bir sowftware release döngüsüyle daha kaliteli kod hedefler.
  • Otomasyon süreçleri sayesinde tekrarlayan işlerde harcanan kaynaklar boşa çıkacağı için aslında daha düşük kaynak kullanımını hedefler.
  • Operasyonel ve tekrarlayan işlerden uzaklaşan takımların daha üretken ve mutlu olmasını hedefler.








Yorumlar

Bu blogdaki popüler yayınlar

gMSA (group managed service account) and SQL Server

MSA (managed user account) teknolojisinin sorunlarından bir tanesi aynı MSA'i birden fazla computer objesinde kullanamamaktı. Bu nedenle de gMSA (group managed service account) duyuruldu. gMSA ile; Passwordler Active Directory tarafından yönetileceği için complex olurlar ve sık sık otomatik olarak değiştirilir (default 30 days). Passwordler 240 bytes uzunluğunda randomly şifrelenmiş olarak üretilir. Ek olarak interactive logon amaçlı kullanılamazlar, yanlış şifre girilmesi sonucunda meydana gelen lock-out olma durumuna yakalnmazlar. Şifre değişikliği sonrasında SQL Server Servisinin restart edilmesine gerek bulunmaz. Aşağıda belirtilen adımlar pre-reqlerin tamamlanmış olduğu varsayılarak step by step aktarılmıştır. Prerequisetlerle ilgili detaylı bilgilendirmeye  https://technet.microsoft.com/en-us/library/jj128431.aspx#BKMK_gMSA_Req  linkinden erişilebilir. 1-  Active Directory Users and Computers Altında Global Security Group Oluşturma gMSA 'i kullanacağım...

VbScript ile Local Kullanici Yönetimi (Change Local User Password)

Bu yazı Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 ve Windows Server 2016 işletim sistemleri üzerinde kullanılabilecek bilgiler içerir. Birden fazla sunucuda ya da bilgisayar üzerinde işlem yapmak otomasyon ve scripting gerektiren bir süreçtir. İhtiyaç dahilinde yazmış olduğum scriptle txt uzantılı bir dosyadan sunucu isimleri teker teker okunarak, loop döngüsü içerisinde sunuculara bağlantı kuruluyor ve şifresi değiştirilmek istenilen local kullanıcının sistemde tanımlı olup olmadığı kontrol ediliyor. Eğer local kullanıcı yok ise kullanıcı verilen şifre ile create edilerek administrators lokal grubuna dahil ediliyor, kullanıcı sistemde tanımlı ise şifresi yeni şifreyle değiştiriliyor. Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile("D:\computerlist.txt", 1) myUserName = "myUser" myPassword = "myNewP@$$w0rd" Do Until objTextFile.AtEndOfStream ...

Fun With Docker.. Jenkins Edition

D ocker son zamanların kaçınılmaz bir şekilde moda haline gelen teknolojisi, ben de işimin parçası olan jenkins, ansible, elastic stack yapılarını docker ile kendi ortamımda ayağa kaldırarak bazı testler yapmaya karar verdim. Bu sırada Jenkins için izlediğim yolu da sizlerle paylaşmak istedim. Öncelikle docker for windows için community (ce) edition ‘ı download ederek bilgisayarımıza kurmamız gerekiyor. https://www.docker.com/docker-windows Docker for Windows kurulumunu tamamladıktan sonra geriye sadece kurmak istediğimiz imajı repositoryde aratmak kalıyor. Ben CI ve CD akışlarımda kullanmak için Jenkins’i kurmayı tercih etmiştim. Sizinle de Jenkins için kurulum ekran görüntülerini paylaşıyorum. Öncelikle komutlarımızı çalıştırabilmek için Powershell’i run as administrator moduyla açmalıyız. Powershell açıldıktan sonra “docker pull jenkins” yazarak enter tuşuna basmamız Jenkins imajının indirilmesi için yeterli olacaktır. Bu aşamada pull işleminin ta...