Your SlideShare is downloading. ×
0
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013

1,574

Published on

A talk I [Haggai Philip Zagury] gave @ JUC 2013 - https://speakerdeck.com/hagzag/juc-israel-2013

A talk I [Haggai Philip Zagury] gave @ JUC 2013 - https://speakerdeck.com/hagzag/juc-israel-2013

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,574
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. .Net Open Source CI & CDwith Jenkins06.06.2013JUC, IsraelHaggai Philip Zagury,#Jenkinsconf@JenkinsconfJenkins User Conference
  • 2. Haggai Philip ZaguryDevOps / PS Engineer“I am a member of Tikals ALM group. Withover 5 members, we meet, share,contribute and code together on a monthlybasiswhoami ?
  • 3. We help companies build,deliver, deploy, manageand optimize ourcustomers products.WHO WE ARE?
  • 4. OUR EXPERTISE
  • 5. Today we are SURE that wemade the right decision, choosingTikal““Guy Ben-Porat,Development Manager “ExLibris”
  • 6. 1600+CummunityMembers150+Blog postslast year460+Meet upMembers12+Years old90+Tikal’sExperts Team100+ProjectsLast YearTIKAL BY NUMBERS
  • 7. Actions speak louder than words““Tikals motto
  • 8. Not that kind of consultant
  • 9. Argument of OSS in MSFT env
  • 10. Lets takeanotherJourney together
  • 11. A love & hate storySteve Ballmer
  • 12. A love & hate story
  • 13. For Visual Studio
  • 14. Microsoft launch [2006]
  • 15. Microsoft launch [2006]An Example I will use
  • 16. The era&
  • 17. In The era&
  • 18. We are fully equipped …FabricThe Open Source Ecosystem
  • 19. The keys to success• Implementing CI’s “ 10 commandments “• Dependency Mechanism• Code Quality & analysis
  • 20. So how to CI & CD for withCI DM CQ CD
  • 21. So how to CI & CD for withCI DM CQ CDHopefully answer them one by one …
  • 22. Continuous IntegrationThe “10 Commandments “• Maintain a code repository (central / shared)• Automate the build• Make the build self-testing• Everyone commits to the baseline every day• Every commit (to baseline) should be built• Keep the build fast• Test in a clone of the production environment• Make it easy to get the latest deliverables• Everyone can see the results of the latest build• Automate deployment
  • 23. • Maintain a code repository (central / shared)Achieving CI
  • 24. • Maintain a code repository (central / shared)• Automate the buildAchieving CI
  • 25. • Maintain a code repository (central / shared)• Automate the build• Make the build self-testingAchieving CI
  • 26. • Maintain a code repository (central / shared)• Automate the build• Make the build self-testing• Everyone commits to the baseline every day• Every commit (to baseline) should be builtAchieving CI
  • 27. • Maintain a code repository (central / shared)• Automate the build• Make the build self-testing• Everyone commits to the baseline every day• Every commit (to baseline) should be builtAchieving CIYou could probably achieve CI withTFS – we will see later why it’s notenough ….
  • 28. Developers experience
  • 29. Developers experienceBut you can always use git  …
  • 30. If you insist / have TFS
  • 31. MSBUILD plug-inAdd / Manage multiple MSBuild versionsConfigure version at job level
  • 32. Execute MSbuild
  • 33. So how to CI & CD for withCI DM CQ CDMSBUILDNCOVERFXCOPNant& more
  • 34. Dependency Management2nd and 3rd party build &development integrationApache / Maven have tried inthe past …Reference from SlaeSforce 2008: http://www.slideshare.net/sgreene/dependency-management-in-a-large-agile-environment-presentationA maven .NET implementationSoon to be terminated …Tip:Don’t Push Binaries ToSource Control,Use NuGet Wisely Instead
  • 35. What is NuGetNuGet is a Visual Studio extension that makes iteasy to install and update third-party librariesand tools in Visual Studio.
  • 36. What is NuGetGrowingrapidlyevery day …
  • 37. From the comfort ofBrowse remote url’s [ Nuget Repositories ]
  • 38. Whats in *.nupkg ?
  • 39. Whats in *.nupkg !
  • 40. Whats in *.nupkg !& more metadata …
  • 41. From the comfort ofAll except Nuget.exe are added toSCM
  • 42. From the comfort ofProject file [csproj]
  • 43. From the comfort ofNuGet “magic” – the omu.* files arereferences imported by thenuget.exe
  • 44. Nuget workflow1. Check for update2. install to pkg dir [ if update needed ]3. Regular compile sequence [ msbuild ]
  • 45. NuGet workflowBuild
  • 46. NuGet workflowBuild Packagenuget pack command:nuget.exe pack <.nuspec file>
  • 47. NuGet workflowBuild Package<?xml version="1.0" encoding="utf-8"?><package><metadata><id>Microsoft.Silverlight.Testing</id><version>4.0.40413.2012</version><authors>hagzag</authors><owners>hagzag</owners><requireLicenseAcceptance>false</requireLicenseAcceptance><description>NuGet package</description></metadata></package>nuget pack command:nuget.exe pack <.nuspec file>
  • 48. NuGet workflowBuild Push/UpdatePackagenuget push command:nuget push <path to .nupkg> -s <artifact server url> -ApiKey<ApiKey>
  • 49. Home Grown solution
  • 50. Home Grown solution
  • 51. Home Grown solution
  • 52. Home Grown solution
  • 53. Home Grown solution• No ACL / AUTH• Friendly URL ?• Friendly UI ?• More …
  • 54. Mature Artifact Repo
  • 55. Mature Artifact Repo
  • 56. Mature Artifact Repo
  • 57. Jenkins NuGet PluginTrigger a build based ondependency change inNuGet – Check every …
  • 58. Jenkins NuGet PluginTrigger a build based ondependency change inNuGet – Check every …Java Guys are saying so what …, Maven does the same thing … 
  • 59. So how to CI & CD for withCI DM CQ CDMSBUILDNCOVERFXCOPNant& more
  • 60. Code Quality
  • 61. Code Quality & Analysis
  • 62. Developers experience
  • 63. Sonar – A standardAdd / Manage Sonar(s)Configure version at job level
  • 64. So how to CI & CD for withCI DM CQ CDMSBUILDNCOVERFXCOPNant& more
  • 65. From CI => CD
  • 66. The easy solution would be …
  • 67. Build => Deploy => Test
  • 68. Build => Deploy => Test
  • 69. Choose you poison& morePAAS
  • 70. Build => Deploy => Test
  • 71. Build => Deploy => Test
  • 72. Build => Deploy => Test
  • 73. Build => Deploy => Test- Reuse Elastic Beanstalk Deployment
  • 74. Build => Deploy => Test
  • 75. Build => Deploy => Test
  • 76. So how to CI & CD for withCI DM CQ CDMSBUILDNCOVERFXCOPNant& more
  • 77. Thank you
  • 78. THANK YOUHaggai Philip ZaguryEmail: hagzag@tikalk.comTel: +972-545302525

×