Son Yazılar

Ücretsiz SVN Hosting Geliştirmekte olduğunuz projeler için ücretsiz olarak size SVN hizmeti sunan bir site var. Projelerinizi oluşturduktan sonra, yapacaklarınızı, buglarınızı kaydedip...

Readmore

Sitem hacklendi ne yapmalıyım Merhaba, Son günlerde, web sitenizin adresini girdiğinizde, web siteniz yerine aşağıdaki gibi hata mesajları alıyorsanız, Parse error: syntax error, unexpected...

Readmore

Ücretsiz Web Hosting Geliştirmekte olduğunuz web siteleri için ücretsiz hosting arıyorsanız aşağıdaki adres tam size göre. http://www.000webhost.com adresine girerek bu servisten faydalanabilirsiniz....

Readmore

www.SevgiKorkmaz.com Rss

Continuous Integraton Nedir?

Posted on : 26-07-2008 | By : admin | In : Genel, Proje Yönetimi, Yazılım

1


Continuous Integration yani “Sürekli Entegrasyon“, Extreme Programming topluluÄŸu tarafından geliÅŸtirilmiÅŸ ve yazılım geliÅŸtirme sürecini otomatize ederek ürünün geliÅŸtirilmesini hızlandırmaya yönelik bir takım iyileÅŸtirmeleri kapsayan bir metodolojidir.
Sürekli Entegrasyonun temelini oluşturan aktiviteler aşağıdaki gibidir.

Kodları tek bir yerde barındırmak
Yazılım ekibi tarafından geliştirilen kodlar tek bir noktada toplanmalıdır. CVS ya da SVN gibi programlar kullanılarak birden fazla ortamda geliştirilen kodlar tek bir sunucuda toplanır. Bu şekilde yazılan kodların son haline sunucudan her zaman ulaşmak mümkün olacaktır. Ayrıca kodun aynı anda farklı kişiler tarafından farkında olunmadan değiştirilmesini engellenmiş olur ve yapılan her değişiklik, değişikliği yapan kişi ve değişikliğin yapıldığı tarih bilgisiyle kayıt altına alınmış olur. Sürekli Entegrasyon için kodlari tek bir yerde barındırmak istenmesinin nedeni, sürüm alınacağı zaman kodların son haline tek bir noktadan ulaşma ihtiyacıdır.



Sürüm(Build) alma işlemini otomatize etmek
Sürüm almak kodların derlenmesi, bazı dosyaların taşınması, veritabanında bir takım şemalar yaratılması gibi bir takım aktiviteleri kapsar. Her ne kadar karışık görünse de bütün bu aktiviteler aslında çeşitli araçların kullanılması ile otomatize edilebilir. Jakarta tarafından geliştirlen Ant ve Maven, Microsoft tarafından geliştirilen MSBuild gibi araçlar derleme, taşıma gibi bir çok aktivitenin otomatize edilmesi için gerekli altyapıya sahiptir.


Alınan sürümle beraber sürümün testlerinin yapılması
Test Odaklı Yazılım geliştirme metodolojilerine göre, yazılımlar, kendilerinin istenildiği gibi yazılıp yazılmadığını doğrulayacak testlerle beraber geliştirilmelidirler. Sürekli Entegrasyonda da alınan sürümün doğru şekilde oluşturulduğu ( bir takım konfigürasyon dosyalarının doğrulanması ), sürümün çalışıyor olması ( birim testleri ) kontrol edilmelidir. Sistemin testleri ile beraber geliştirilmesi, yazılım süreci ilerledikçe daha önemli hale gelmektedir.


Her gün yapılan değişikliklerin ortak bir noktada toplanması
Artık yazılım projeleri bir geliştiricinin tek başına yapacağı projeler olmaktan çıkmış, büyük kapsamlı, çok geliştirici tarafından aynı anda geliştirilen, belki yıllar sürecek projeler haline gelmiştir. Aynı anda bir sürü geliştiricinin geliştirdiği kodların birbiri ile uyumlu olmaları, birinin yaptığı değişikliği bilmeden diğer geliştiricilerin belki sonradan çöpe atılacak kodlar yazmalarını engellemek için her geliştirici yapmış olduğu ve çalışır durumdaki değişiklikleri kodların barındırıldığı ortak kod deposuna her gün kaydetmelidir.


Her değişikliğin sürüme girmesi
Her gün yapılan değişikliklerin ortak depoda toplanması ardından yapılan her değişiklik ile beraber yeni bir sürüm alınmalı ve bu sürüm sonucunda geliştiriciler, yaptıkları değişikliğin sistemi ve eskiden yazılmış kodları nasıl etkilediğini görmelidirler. Hatalara yol açan bir değişiklik yapıldıysa, bu değişiklik en kısa zamanda diğer geliştiricileri etkilemeyecek hale getirilmelidir.


Sürüm alma işleminin hızlandırılması
Sürekli ve hızlı bir şekilde sürüm almak, hataların bir an önce tespit edilmesi ve giderilmesi için gereklidir.


Bir test ortamı yaratılarak alınan sürümün testlerinin yapılması
Yazılımın çalışacağı ortamın bir benzeri yaratılarak alınan sürüm test edilmelidir. Üretim ortamında yapılacak testler, ürünün çalışacağı ortamdan farklı bir ortamda denenmiş olacağı için yanlış sonuçlar doğurabilir.


Sürümde çıkan problemlerin herkes tarafından görünmesi
Sürümde çıkan problemlerden o problemin çözümünü sağlayacak ve problemden etkilenecek herkes tarafından görünmesi, hataların giderilmesini sağlamaktadır.

Sürekli Entegrasyon için kullanılan araçlar aşağıdaki gibidir.

  • AnthillPro
  • Apache Continuum
  • Apache Gump
  • Atlassian Bamboo
  • Automated Build Studio
  • BuildBot
  • Build Forge
  • CABIE
  • CruiseControl
  • CruiseControl.NET
  • CruiseControl.rb
  • Electric Commander
  • FinalBuilder Server
  • Hudson
  • OpenMake Meister
  • OpenMake Mojo
  • Parabuild
  • Pulse
  • Rephlux
  • TeamCity
  • Team Foundation Server
  • Xinc
  • SCLM
  • Comments (1)

    Sürekli entegrasyon hakkinda yazdigim bir makale:

    http://www.kurumsaljava.com/2008/11/26/surekli-entegrasyon-continuous-integration/

    Write a comment

    Advertise Here