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 User Conference 2018 Tokyo LT

2,992 views

Published on

「Jenkinsを簡単運用ツールとして活用して 非エンジニアに喜ばれた話」
Jenkins ユーザ・カンファレンス 2018 東京のLT資料です

Published in: Technology
  • Be the first to comment

Jenkins User Conference 2018 Tokyo LT

  1. 1. Jenkinsを簡単運用ツールとして活用して 非エンジニアに喜ばれた話 オイシックス・ラ・大地(株) 林 如弥 LT @ Jenkins User Conference 2018 Tokyo 09/23 Photo by Alexandr Podvalny on Unsplash: https://unsplash.com/photos/WOxddhzhC1w
  2. 2. 自己紹介(Jenkinsfile風) pipeline { agent Yukiya Hayashi (@morihaya55) stages { stage(‘Work’) { steps { sh '10年ほどSIerでインフラエンジニアとして NW、物理サーバ、Linux、Oracle、VMware' sh '3年ほどゲーム会社でインフラエンジニアとしてオンプレなプライベートクラウド担当 ' sh '2018/4からオイシックス・ラ・大地で SREとして駆け出し中!' } } } } Photo by Alexandr Podvalny on Unsplash: https://unsplash.com/photos/WOxddhzhC1w
  3. 3. 好きなJenkinsのPlugin Role-based Authorization Strategy (https://plugins.jenkins.io/role-strategy) 理由は100人近いユーザがMatrix-based securityで管理されてて 悲しい気分になってた時、救世主に見えたからです(^^)b Photo by Alexandr Podvalny on Unsplash: https://unsplash.com/photos/WOxddhzhC1w
  4. 4. 今日お伝えしたいメッセージ ● Jenkinsは本当に多機能 (Many useful plugins !) ● エンジニアだけで使うのは ”MOTTAINAI” Photo by Alexandr Podvalny on Unsplash: https://unsplash.com/photos/WOxddhzhC1w
  5. 5. オイシックス・ラ・大地での Jenkinsさん紹介
  6. 6. ver1系Jenkins オイシックス・ラ・大地でのJenkinsさん紹介 Photo by Alexandr Podvalny on Unsplash: https://unsplash.com/photos/WOxddhzhC1w ver2系Jenkins
  7. 7. ver1系Jenkins オイシックス・ラ・大地でのJenkinsさん紹介 Photo by Alexandr Podvalny on Unsplash: https://unsplash.com/photos/WOxddhzhC1w ver2系Jenkins超重要&Untouchable ・本番へのデプロイ ・テスト環境の起動/停止 ・トイルな作業のジョブ (Versionあげたいけど怖い)
  8. 8. ver1系Jenkins オイシックス・ラ・大地でのJenkinsさん紹介 Photo by Alexandr Podvalny on Unsplash: https://unsplash.com/photos/WOxddhzhC1w ver2系Jenkins 存在は知っているが、何やって るか不明(そのうち調べる) ※前任Jenkinsおじさん転職
  9. 9. ver1系Jenkins オイシックス・ラ・大地でのJenkinsさん紹介 Photo by Alexandr Podvalny on Unsplash: https://unsplash.com/photos/WOxddhzhC1w ver2系Jenkins 基本的に最新Version 検証で新しいことを試す用 Jenkinsさん
  10. 10. ver1系Jenkins オイシックス・ラ・大地でのJenkinsさん紹介 Photo by Alexandr Podvalny on Unsplash: https://unsplash.com/photos/WOxddhzhC1w ver2系Jenkins 本日はこちらの闇 からは目を背けま す!
  11. 11. ある日、運用チームの若者から相談をうけ ました 運用チーム:お客様の様々な課題を解決する部隊。 ガチエンジニアでは無いが SQLの達人だったりするし、 Gitを使えるし、優秀でタフ。
  12. 12. Photo by frank mckenna on Unsplash: https://unsplash.com/photos/QROrwAt_WY8 「日々の業務効率を改善したいんです」
  13. 13. 業務効率の課題 ● データ抽出作業(DBへのクエリ実行)が、外部協力会社、インフ ラ担当に依頼する必要があり手間 ● 既存のJava製ツールは存在するが、既に飽和状態で触りたく 無いし、開発工数がかかる Photo by frank mckenna on Unsplash: https://unsplash.com/photos/QROrwAt_WY8
  14. 14. 業務効率改善の要件 ● 定型的なSQLクエリを、オンデマンドでデータベースに実行した い ● ただしSQLには変数を渡したい(商品ID、期間など) ● 実行できる人間は制限したい ● 実行するクエリは自分たちで書いてどんどん増やしたい ● コードで管理してレビューを通す Photo by frank mckenna on Unsplash: https://unsplash.com/photos/QROrwAt_WY8
  15. 15. 要件を踏まえて考えてみました
  16. 16. Rundeck 要件は満たすし使った事が(自 分は)ある。しかし会社に初めて のツールを入れるほどでも無い と踏みとどまる。
  17. 17. digdag 分析関連で動いており社内認知 もあるが、GUI認証がまだ弱い (謎のLogoutボタン)
  18. 18. Go言語 興味があるのでスクラッチ開発し ちゃう? いやいやそんな時間は流石に取 れない(やってみたいが)
  19. 19. Jenkins 要件を満たし、社内認知もある君 に決めた!! (出来レース感は否定しません)
  20. 20. Jenkinsで実装! (料理開始!)
  21. 21. 構成図 Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ DataBase ActiveDirectory 運用チーム レビュワー
  22. 22. 構成図 Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ DataBase Jenkinsfile , SQL fileをpush 運用チーム レビュワー
  23. 23. 構成図 Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ DataBase review&merge 運用チーム レビュワー
  24. 24. 構成図 Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ DataBase webhookで通知 運用チーム レビュワー
  25. 25. 構成図 Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ DataBase SQLクエリを実行(初回) 運用チーム レビュワー
  26. 26. 構成図 Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ DataBase ユーザ認証 ActiveDirectory オンデマンド実行 運用チーム レビュワー クエリ 実行
  27. 27. 実装について -1- ● Jenkinsには以下のPluginを導入 ○ Active Directory Plugin ○ Role-based Authorization Strategy Plugin ○ GitLab Plugin ● AD認証とRole認可で部門単位で実行制限が可能に ● GitLabとの連携も簡単 Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ
  28. 28. 実装について -2- ● GitLabとJenkinsのprojectを1対1の関係とする ● GitLabのprojectでは以下をコードとして管理 ○ Jenkinsfile ○ SQL生成シェル ○ その他 ■ テスト用のシェル(DDL有無、CUD有無、RのみOK) ■ 後処理用のシェル(公開Dirへの移動、キャラ型変換) Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ
  29. 29. 実装について -3- ● GitLabへ”テンプレートproject”を準備 ● 運用チームはclone&編集して新規projectとして作成 ● テンプレートprojectから変更するポイントは少ない ○ SQLクエリの部分 ○ SQLへ渡す変数の部分 Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ
  30. 30. 実装について -4- Jenkinsfile:変数の定義とSQL作成 pipeline { agent any parameters { string(name: 'buy_date', defaultValue: '2018/09/23 00:00:00', description: 'When is date?') string(name: 'user_id', defaultValue: "id123", description: 'What is user_id?') } stages { stage('build') { steps { sh "bash -x ./sqlcreate.sh '${params.buy_date}' '${params.user_id}' > temp.sql" } } … ※上記は発表用に改変したものです Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ
  31. 31. Jenkinsfile:sqlintによる構文チェックと、 自前のDDL,CUDチェック(ただのgrep) … stage('test') { steps { sh '/usr/local/bin/sqlint temp.sql' sh 'bash ./checksql.sh temp.sql' } } … ※上記は発表用に改変したものです 実装について -5- Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ
  32. 32. 実装について -6- Jenkinsfile:実行。credentialsで事前に設定しておいた         変数からID/PASSを取り出して実行 stage('deploy') { when { branch 'master' } environment { ORACLE = credentials('db') } steps { sh "/usr/bin/sqlplus64 ${ORACLE_USR}/${ORACLE_PSW}@${env.MAIN_DB} @temp.sql" } } … ※上記は発表用に改変したものです Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ
  33. 33. 実行画面の参考(日本語もいける) BlueOcienなら以下の様に        Classicなら以下の様に Photo by Katie Smith on Unsplash: https://unsplash.com/photos/uQs1802D0CQ
  34. 34. 効果とまとめ
  35. 35. 効果 ● Jenkinsからいつでもクエリが実行できる! ● 実行するクエリをどんどん増やす事ができる! ○ もちろんレビューも通る ● コードの文化のめばえ Photo by Alexandr Podvalny on Unsplash: https://unsplash.com/photos/WOxddhzhC1w
  36. 36. (再掲)今日お伝えしたいメッセージ ● Jenkinsは本当に多機能 (Many useful plugins !) ● エンジニアだけで使うのは ”MOTTAINAI” Photo by Alexandr Podvalny on Unsplash: https://unsplash.com/photos/WOxddhzhC1w ご静聴感謝! m(_ _)m

×