Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Jenkins

638 views

Published on

Jenkins ile Continuous Integration

Published in: Software
  • Be the first to comment

Jenkins

  1. 1. Jenkins ile Continuous Integration @yuxel
  2. 2. Continuous Integration
  3. 3. Continuous Integration
  4. 4. Continuous Integration
  5. 5. Continuous Integration (Sürekli Tümleştirme)
  6. 6. Continuous Integration (Sürekli Tümleştirme) Ufak parçaları “tümleştirme” Her geliştiricinin ayrı ayrı yaptığı geliştirmeleri “tümleştirme” – Otomatize edilmiş sürümler (automated build) – Otomatize edilmiş testler
  7. 7. Continuous Integration (Sürekli Tümleştirme) Ufak parçaları “tümleştirme” Her geliştiricinin ayrı ayrı yaptığı geliştirmeleri “tümleştirme” – Otomatize edilmiş sürümler (automated build) – Otomatize edilmiş testler Extreme Programming'deki “Continuous process” pratiğidir –
  8. 8. Continuous Integration (Sürekli Tümleştirme) Ufak parçaları “tümleştirme” Her geliştiricinin ayrı ayrı yaptığı geliştirmeleri “tümleştirme” – Otomatize edilmiş sürümler (automated build) – Otomatize edilmiş testler Extreme Programming'deki “Continuous process” pratiğidir – http://martinfowler.com/articles/continuousIntegration.html
  9. 9. Neden? Çünkü yazılım geliştirme zor bir iş
  10. 10. Neden? Çünkü yazılım geliştirme zor bir iş Grup halinde yazılım geliştirme ise çok zor bir iş – - Herkes farklı disiplinlerde gelebilyior – - Herkes farklı geliştirme ortamı/işletim sistemi kullanabiliyor – - Herkes hatasız kod yazdığına inanıyor
  11. 11. Neden? Çünkü yazılım geliştirme zor bir iş Grup halinde yazılım geliştirme ise çok zor bir iş – - Herkes farklı disiplinlerde gelebilyior – - Herkes farklı geliştirme ortamı/işletim sistemi kullanabiliyor – - Herkes hatasız kod yazdığına inanıyor Grup halindeki geliştirmelerde “tümleştirme” yapmak zor
  12. 12. Neden? Çünkü yazılım geliştirme zor bir iş Grup halinde yazılım geliştirme ise çok zor bir iş – - Herkes farklı disiplinlerde gelebilyior – - Herkes farklı geliştirme ortamı/işletim sistemi kullanabiliyor – - Herkes hatasız kod yazdığına inanıyor Grup halindeki geliştirmelerde “tümleştirme” yapmak zor Bunu devamlı yapmak zor
  13. 13. Neden? Herkesin belli parçasını geliştirdiği “şey” düzgün çalışacak mı?
  14. 14. Neden? Herkesin belli parçasını geliştirdiği “şey” düzgün çalışacak mı? – <3 TEST –
  15. 15. Neden? Herkesin belli parçasını geliştirdiği “şey” düzgün çalışacak mı? – <3 TEST – “Localimde çalışıyor”
  16. 16. Neden? Herkesin belli parçasını geliştirdiği “şey” düzgün çalışacak mı? – <3 TEST – “Localimde çalışıyor” – <3 VAGRANT
  17. 17. Neden? Geliştiriciler düzgün iş yapıyor mu? - yazdığı kod başka şeyleri bozuyor mu? (test) - standartlara uyuyor mu? (checkstyle) - bilinen buggy yöntemlerden ne kadar uzak (static kod analizi)
  18. 18. Neler yapmak gerekli? - bir VCS kullanın <3 git - build'ı otomatize edin - compile, migration'lar, asset compile'lar vs - build'ı en hızlı olacak şekilde optimize edin - paralel? - test yazın - ana depoya/branch'e giden her kod otomatik build başlatsın ve herkes mümkünse yaptığı işleri günde bi kere ana branch'e göndersin
  19. 19. Neler yapmak gerekli? - bi'şey patlarsa en kısa sürede düzeltin - test ortamınız, production ortamının kopyası olsun - sunucusu, veritabanı, loadbalancer'ı vs - şeffaf olsun - build'ları herkes görebilsin - deployment'ı da otomatize edin
  20. 20. Neler sağlar? - riski azaltır (Sıfırlamaz) - daha az bug, veya tespit edilmesi daha kolay bug
  21. 21. Nasıl? - Aslında özel bir şey yapmanıza gerek yok – Az önceki şeyleri uygulamanız yeterli – - Ama bunun için özelleştirilmiş yazılımlar var → Continuous Integration Server – * CruiseControl – * Hudson – * Jenkins
  22. 22. Jenkins Oracle Sun'ı aldıktan sonra bir grup geliştirici Hudson'ı forkladı
  23. 23. Jenkins - Java ile geliştirilmiş bir CI Server - Web arayüzü var (komut satırı arayüzü de var) - Bir sürü eklentisi(plugin) var - http://jenkins-ci.org/ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - echo 'deb http://pkg.jenkins-ci.org/debian binary/' >> /etc/apt/sources.list sudo apt-get update sudo apt-get install jenkins
  24. 24. Jenkins – http://localhost:8080
  25. 25. Jenkins – http://jenkins-php.org/ – https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project
  26. 26. Bundan sonrasını uygulama üzerinde görelim
  27. 27. Sorular? "tşkler...." @yuxel

×