Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
X tips [X==9] for building a Bulletproof Deplo...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
oshai
July 13, 2017
Technology
61
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
X tips [X==9] for building a Bulletproof Deployment Pipeline with Jenkins
JUC 2017 presentation
oshai
July 13, 2017
More Decks by oshai
See All by oshai
Maintaining an Open Source The Good, Bad & Ugly
oshai
0
37
KScript
oshai
0
21
Klean Code with Kotlin
oshai
0
77
JVM languages shootout - Java, Scala & *Kotlin*
oshai
0
64
Koroutinify ; Lessons learned from applying Coroutines in Kotlin Backend ; Deep dive into Coroutines
oshai
1
130
Klean that Code, Boil those Boilerplates
oshai
2
94
Scala vs. Kotlin; Friend or Foe?
oshai
0
170
No forks, One star. Now what?! — How I published my Kotlin Open-Source lib
oshai
0
81
Scala--pack your Future[T]; Kotlin is coming! (Kotlin TLV)
oshai
0
210
Other Decks in Technology
See All in Technology
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
270
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.1k
全社に広がるMCPサーバーを、 どう安全に管理するか MCPass開発の舞台裏
mtpooh
3
280
いま、生成AIにKaggleをどこまで 任せられるか — ROGIIコンペでの進め方とTips
k951286
2
1.4k
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
0
350
Hub & Spoke 環境のネットワークルーティングを分解してみる
tsuyataku
1
520
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
550
Genie Code ワークショップ 基礎編 / Genie-Code-Workshop-fundamental
databricksjapan
PRO
0
340
AndroidでHDRメディアを「壊さずに」扱う
chigichan24
0
380
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
110
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
140
データエンジニアの困りごとをDevinと一緒に解消する
10xinc
2
790
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
540
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
A Tale of Four Properties
chriscoyier
163
24k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Prompt Engineering for Job Search
mfonobong
0
430
First, design no harm
axbom
PRO
2
1.3k
Evolving SEO for Evolving Search Engines
ryanjones
0
280
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
320
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Unsuck your backbone
ammeep
672
58k
Transcript
X tips [X==9] for building a Bulletproof Deployment Pipeline with
Jenkins JULY 13 / TLV, Israel Ohad Shai Software Engineer && Team Leader @ Outbrain
About Me • Developing Software since 2005 • Mainly in
Java and JVM languages • Works on backend systems • Using Jenkins since 2011 • Co-author of codeine open-source tool for Continuous Deployment on large scale
Deployment Pipeline • The driver tool for Continuous-Delivery • Features:
• Complex build flows • Job as a Code (aka JenkinsFile) • Suspend/Resume and survive restarts of Jenkins
Tip #1 You should have done this ages ago •
Define
Tip #2 Start simple
Tip #3 Use Blue Ocean view
Tip #4 Validate artifacts and source code consistency across pipeline
Tip #5 Use commit hook with message regex gitCommitMessage =
sh(returnStdout: true, script: 'git log -1 --pretty=%B').trim() deployToProd = (gitCommitMessage =~ /#d2p/ || params.DEPLOY_TAG == "#d2p") //we also allow '#d2p' when triggering manually
Tip #6 pipeline { agent { docker 'maven:3-alpine' } stages
{ stage('Example Build') { steps { sh 'mvn -B clean verify' } } } } node { stage('Example') { try { sh 'exit 1' } catch (exc) { echo 'Something failed, I should sound the klaxons!' throw exc } } } Declarative Pipeline Scripted Pipeline
Tip #7 Ask for user authorization on sensitive operations timeout(time:5,
unit:'HOURS') { input message: ‘Deploy to production?', ok: 'Deploy!' } http://jenkins508.rssing.com/chan-25443405/all_p18.html
Tip #8 Integrate slack
Tip #9 Make the pipeline fast stage("Testing: phase a") {
parallel 'JUnit': { stage("junit") { sh '...' } }, 'Deploy to simulator': { stage("Deploy to simulator") { sh '...' } } }
Bonus Tip Noise Cancelling Headphones
Questions? Wanna try it? We’re hiring!
Questions? Wanna try it? We’re hiring!
Enjoy piping! https://weeklygravy.com/fashion-grooming/how-old-do-you-have-to-be-before-you-can-smoke-a-pipe/ @OhadShai