Skip to main content
CI/CD

What CI/CD?

Uzuncası “continuous integration and continuous delivery/deployment” olan bu kavram, DevOps’un mihenk taşı ve yazılım geliştirme sürecinin yaşam döngüsüdür. Basitçe ifade etmek gerekirse, yazdığınız kodun canlıya alınması için 3 aşama gerekir: İşte tüm bu adımların otomatize edilme işlemidir.

Why CI/CD?

Tüm bu süreçlerin otomatize edilmesinin birkaç avantajı vardır:

Concepts

CI/CD

Source: gitlab.com

Continuous Integration (CI)

Birden fazla yazılımcının aynı projede çalıştığı durumlarda, kodların sık sık repoya entegre edilmesidir. Daha sonra değişiklikleri doğrulamak için otomatik build ve testler çalıştırılarak kod kalitesi sağlanır. Sorunlar erken tespit edilir ve merge request’ler birikmez.

Continuous Delivery (CD)

Continuous Integration’ın bir adım ötesidir. Kod paketlenip otomatik olarak test ortamına deploy edilir ve production için hazırlanır. Production’a deploy etme kararı manueldir.

Continuous Deployment (CD)

Continuous Delivery’ın bir adım ötesidir. Production’a otomatik deploy eder.

How to measure the effect?

CI/CD workflow’unuzun başarısını ölçmek için birkaç metrikten faydalanabiliriz:

Lead time

Bir özelliğin fikir olarak ortaya çıkışından itibaren kullanıcılara sunulduğu ana kadar geçen süredir. Ancak yazılımda işin board’a açıldıktan sonrası dikkate alınır. Süre ne kadar uzunsa, iş yapıldıktan sonra geribildirim alınması da o kadar uzun olur.

Cycle time

İşin yapılmaya başlandığı andan itibaren kullanıcıya sunulduğu ana kadar geçen süredir.

Time to value (TTV)

Kodun geliştirmesi bittikten sonra kullanıcıya sunulana kadar geçen süredir.

Deployment frequency

Deployment yapmak için CI/CD workflow’unun çalıştırılma sayısıdır. Bu sayı ne kadar yüksekse, çıkan kod o kadar az sayıda değişklik içerir ve incident ihtimali azalır.

Mean time to detect (MTTD)

Deployment yapıldığı andan itibaren değişikliklerden kaynaklanan sorunu tespit etmek için geçen ortalama süredir. Bu süre ne kadar kısa olursa, kullanıcılar o kadar az etkilenir.

Mean time to recovery (MTTR)

Deployment yapıldığı andan itibaren production’daki problemin giderilmesi için geçen ortalama süredir. Otomatik sistem de olsa hatalar kaçınılmaz olabilir. Bu noktada amaç hatalara müdahale süresini en aza indirmektir.

Rollback rate

Rollback yapılan deployment yüzdesidir. Deployment’ın uygulamada problemlere sebep olmasindan dolayi geri alınma işlemine rollback denir.
Artık CI/CD sürecinin ne olduğunu, neden önemli olduğunu ve nasıl ölçüleceğini biliyorsunuz.