SlideShare a Scribd company logo
1 of 27
Download to read offline
Jenkins 
ile 
Continuous Integration 
@yuxel
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration 
(Sürekli Tümleştirme)
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
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 
–
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
Neden? 
Çünkü yazılım geliştirme zor bir iş
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
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
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
Neden? 
Herkesin belli parçasını geliştirdiği “şey” düzgün çalışacak mı?
Neden? 
Herkesin belli parçasını geliştirdiği “şey” düzgün çalışacak mı? 
– <3 TEST 
–
Neden? 
Herkesin belli parçasını geliştirdiği “şey” düzgün çalışacak mı? 
– <3 TEST 
– 
“Localimde çalışıyor”
Neden? 
Herkesin belli parçasını geliştirdiği “şey” düzgün çalışacak mı? 
– <3 TEST 
– 
“Localimde çalışıyor” 
– <3 VAGRANT
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)
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
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
Neler sağlar? 
- riski azaltır (Sıfırlamaz) 
- daha az bug, veya tespit edilmesi daha kolay bug
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
Jenkins 
Oracle Sun'ı aldıktan sonra bir grup geliştirici Hudson'ı forkladı
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
Jenkins 
– http://localhost:8080
Jenkins 
– http://jenkins-php.org/ 
– https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project
Bundan sonrasını uygulama üzerinde görelim
Sorular? 
"tşkler...." 
@yuxel

More Related Content

What's hot

React Bootcamp Day 2 - Yunus Demirpolat
React Bootcamp Day 2 - Yunus DemirpolatReact Bootcamp Day 2 - Yunus Demirpolat
React Bootcamp Day 2 - Yunus Demirpolat
kloia
 

What's hot (20)

React Bootcamp Day 2 - Yunus Demirpolat
React Bootcamp Day 2 - Yunus DemirpolatReact Bootcamp Day 2 - Yunus Demirpolat
React Bootcamp Day 2 - Yunus Demirpolat
 
Git ile Sürüm Takibi
Git ile Sürüm TakibiGit ile Sürüm Takibi
Git ile Sürüm Takibi
 
Teams pitch3 (1)
Teams pitch3 (1)Teams pitch3 (1)
Teams pitch3 (1)
 
Abis Teknoloji şirket içi Docker sunumu
Abis Teknoloji şirket içi Docker sunumuAbis Teknoloji şirket içi Docker sunumu
Abis Teknoloji şirket içi Docker sunumu
 
Sanallaştırmada Yeni Akım - Docker
Sanallaştırmada Yeni Akım - DockerSanallaştırmada Yeni Akım - Docker
Sanallaştırmada Yeni Akım - Docker
 
Test Driven Development
Test Driven Development Test Driven Development
Test Driven Development
 
Php projelerinde ci_uygulama
Php projelerinde ci_uygulamaPhp projelerinde ci_uygulama
Php projelerinde ci_uygulama
 
Developer Tools
Developer ToolsDeveloper Tools
Developer Tools
 
Selenium ile Web testi.
Selenium ile Web testi.Selenium ile Web testi.
Selenium ile Web testi.
 
Gradle ile Proje Insası
Gradle ile Proje InsasıGradle ile Proje Insası
Gradle ile Proje Insası
 
Selenium
SeleniumSelenium
Selenium
 
PhpSpec ve TDD
PhpSpec ve TDDPhpSpec ve TDD
PhpSpec ve TDD
 
Sanallastirmada yeni akim: Docker
Sanallastirmada yeni akim: DockerSanallastirmada yeni akim: Docker
Sanallastirmada yeni akim: Docker
 
SVN & CVS by Eren SIMSEK
SVN & CVS by Eren SIMSEKSVN & CVS by Eren SIMSEK
SVN & CVS by Eren SIMSEK
 
Test Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim TestlerTest Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim Testler
 
Selenium sunum
Selenium sunumSelenium sunum
Selenium sunum
 
Angular Web Programlama
Angular Web ProgramlamaAngular Web Programlama
Angular Web Programlama
 
JVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEJVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDE
 
Web Application Testing
Web Application Testing Web Application Testing
Web Application Testing
 
Git ve GitHub
Git ve GitHubGit ve GitHub
Git ve GitHub
 

Viewers also liked

REST yoluyla Web Servis Geliştirme
REST yoluyla Web Servis GeliştirmeREST yoluyla Web Servis Geliştirme
REST yoluyla Web Servis Geliştirme
emirkarsiyakali
 

Viewers also liked (19)

Php1
Php1Php1
Php1
 
Varnish
VarnishVarnish
Varnish
 
PHPkonf'15 - PHP Uygulamanızı Güçlendirin
PHPkonf'15 - PHP Uygulamanızı GüçlendirinPHPkonf'15 - PHP Uygulamanızı Güçlendirin
PHPkonf'15 - PHP Uygulamanızı Güçlendirin
 
Özgür Yazılım ve LINUX
Özgür Yazılım ve LINUXÖzgür Yazılım ve LINUX
Özgür Yazılım ve LINUX
 
Eticaret Güvenliği
Eticaret GüvenliğiEticaret Güvenliği
Eticaret Güvenliği
 
Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015
 
Web Onyuzu Nasil Olmali
Web Onyuzu Nasil OlmaliWeb Onyuzu Nasil Olmali
Web Onyuzu Nasil Olmali
 
PHP Sunusu - 1
PHP Sunusu - 1PHP Sunusu - 1
PHP Sunusu - 1
 
Algoritma kurmak
Algoritma kurmakAlgoritma kurmak
Algoritma kurmak
 
Php mysql sunum
Php mysql sunumPhp mysql sunum
Php mysql sunum
 
Özgür Yazılım & GNU/Linux
Özgür Yazılım & GNU/LinuxÖzgür Yazılım & GNU/Linux
Özgür Yazılım & GNU/Linux
 
Java script
Java scriptJava script
Java script
 
Php MySQL
Php MySQLPhp MySQL
Php MySQL
 
REST yoluyla Web Servis Geliştirme
REST yoluyla Web Servis GeliştirmeREST yoluyla Web Servis Geliştirme
REST yoluyla Web Servis Geliştirme
 
Jquery Giriş
Jquery GirişJquery Giriş
Jquery Giriş
 
Linux sunum
Linux sunumLinux sunum
Linux sunum
 
Nmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
Nmap101 Eğitim Sunumu - Nmap Kullanım KılavuzuNmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
Nmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
 
JavaScript sunumu
JavaScript sunumuJavaScript sunumu
JavaScript sunumu
 
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux'a Giris ve VirtualBox a Ubuntu KurulumuLinux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
 

Similar to Jenkins

Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleriVisual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Murat Başeren
 
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme PratikleriBaşarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Lemi Orhan Ergin
 

Similar to Jenkins (20)

GDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme TeknikleriGDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme Teknikleri
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
Açık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeAçık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım Geliştirme
 
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleriVisual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
 
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme PratikleriBaşarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
 
ASP.Net MVC ile Web Uygulamaları -12(Test Drive Developmet)
ASP.Net MVC ile Web Uygulamaları -12(Test Drive Developmet)ASP.Net MVC ile Web Uygulamaları -12(Test Drive Developmet)
ASP.Net MVC ile Web Uygulamaları -12(Test Drive Developmet)
 
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with NetduinoBilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
 
Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013
Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013
Büyük Kamu Projelerinde PHP Kullanımı @ Phpİst 2013
 
Eclipse
EclipseEclipse
Eclipse
 
Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme Teknolojileri
 
Yazilim Gelistirme Yöntemleri
Yazilim Gelistirme YöntemleriYazilim Gelistirme Yöntemleri
Yazilim Gelistirme Yöntemleri
 
Windows 7 Ortamında Zararlı Yazılım Analizi
Windows 7 Ortamında Zararlı Yazılım AnaliziWindows 7 Ortamında Zararlı Yazılım Analizi
Windows 7 Ortamında Zararlı Yazılım Analizi
 
Devfest istanbul'14 - Web Application Attacks and Trusting Frameworks
Devfest istanbul'14  - Web Application Attacks and Trusting FrameworksDevfest istanbul'14  - Web Application Attacks and Trusting Frameworks
Devfest istanbul'14 - Web Application Attacks and Trusting Frameworks
 
Software development life cycle yazılım geliştirme yaşam döngüsü
Software development life cycle   yazılım geliştirme yaşam döngüsüSoftware development life cycle   yazılım geliştirme yaşam döngüsü
Software development life cycle yazılım geliştirme yaşam döngüsü
 
Sunum tdd
Sunum tddSunum tdd
Sunum tdd
 
Hepsiburada Micro Frontends Dönüşümü
Hepsiburada Micro Frontends DönüşümüHepsiburada Micro Frontends Dönüşümü
Hepsiburada Micro Frontends Dönüşümü
 
Meteor.js Hakkinda
Meteor.js HakkindaMeteor.js Hakkinda
Meteor.js Hakkinda
 
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
 
Nedir Bu Java ?
Nedir Bu Java ?Nedir Bu Java ?
Nedir Bu Java ?
 
Çevik Manifesto Sunum
Çevik Manifesto Sunum Çevik Manifesto Sunum
Çevik Manifesto Sunum
 

Jenkins

  • 1. Jenkins ile Continuous Integration @yuxel
  • 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. 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. 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. Neden? Çünkü yazılım geliştirme zor bir iş
  • 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. 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. 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. Neden? Herkesin belli parçasını geliştirdiği “şey” düzgün çalışacak mı?
  • 14. Neden? Herkesin belli parçasını geliştirdiği “şey” düzgün çalışacak mı? – <3 TEST –
  • 15. Neden? Herkesin belli parçasını geliştirdiği “şey” düzgün çalışacak mı? – <3 TEST – “Localimde çalışıyor”
  • 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. 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. 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. 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. Neler sağlar? - riski azaltır (Sıfırlamaz) - daha az bug, veya tespit edilmesi daha kolay bug
  • 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. Jenkins Oracle Sun'ı aldıktan sonra bir grup geliştirici Hudson'ı forkladı
  • 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
  • 25. Jenkins – http://jenkins-php.org/ – https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project
  • 26. Bundan sonrasını uygulama üzerinde görelim