Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
XPJUG2018-lt-takamii228
Search
takamii228
September 08, 2018
2.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
XPJUG2018-lt-takamii228
takamii228
September 08, 2018
More Decks by takamii228
See All by takamii228
私の情報の集め方、知識の学び方 / how-to-get-information-takamii228
takamii228
0
710
DevFest Tokyo2020 Flutter LT takamii228
takamii228
1
1.5k
gitlab review practice
takamii228
3
4.6k
Jenkinsstudy2018 juc2018 takamii228
takamii228
5
5.8k
Goで絵文字メーカーを作ってみた / gopher-dojo2-emojigen
takamii228
0
610
プライベートでの開発を継続する技術 / techniques to keep personal development
takamii228
0
630
開発支援ツールで疲弊しているあなたへ / for exhausted developers with management tools
takamii228
0
340
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Utilizing Notion as your number one productivity tool
mfonobong
4
590
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
A Soul's Torment
seathinner
8
3.6k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
Transcript
他社ベンダへ越境して 1日約10回リリースを達成した話 2018年 XP祭りLT大会 @takamii228
自己紹介 • @takamii228 ◦ エンタープライズなSIerでアジャイル開発専門組織に所属 ◦ アジャイル開発における開発基盤整備やプロジェクト支援 ◦ 認定スクラムマスター •
なんでもやる雑食エンジニア ◦ CI/CD環境構築、アーキ設計、 AWS設計、Scrum運営、チームビルディング ◦ 仕事でよく使う言語は Java ( Spring )、PHP ( Laravel ) ◦ 開発基盤(GitLab, Jenkins, Mattermost, JIRA, Conflu等) on k8sを運用中
みなさん、1日に何回もサービスを リリースできてますか?
SIerでも一日約10回リリースできた とあるWebサービス開発案件の話
とあるWebサービス開発案件 • B2C向け新規Web ECサービス開発 • 既存システムを含む複数のサービスをAPIで連携 • フロントエンドや各種サービスを複数の会社がそれぞれ新規に開発
開発体制と会社毎の開発範囲 弊社から画面開発ベンダへ フロントエンドの実行環境と APIを提供
プロジェクトにおける課題 • サービス開始までのスケジュールがタイトである • 各社並行新規開発のため頻繁なIF定義変更が予想される • サービス間の連携が多く、特に結合試験時期に炎上が予想される
変更に強いバックエンドと CI/CDパイプラインを作った
変更に強いバックエンドとCI/CDパイプライン① Swaggerを使ってインクリメンタルなAPI実装を実現した 参考 : https://speakerdeck.com/int128/customize-swagger-templates
変更に強いバックエンドとCI/CDパイプライン② AWSとAnsibleでImmutrable Infrastructureを実現した
バックエンドは たくさんリリースできそうだ!
フロントエンドは???
いい仕組みがあるんだから、 フロントエンドも 乗っかれるようにしよう!
「サービス」を頻繁にリリースするために越境 • APIの仕様変更はフロントエンドも影響し、ボトルネックになる • 「サービス」はフロントとバックエンドが合わせて初めて完成する • 責務分担の境界付近において時に会社の枠を超えた歩み寄りが必要 (※) ※自社の戦略やリスク回避のために 責務分担の境界をきちんと定義することも大事です
フロントエンド開発へ越境してやったこと • 開発に必要な環境を提供・教育した ◦ バックエンドのCI/CD開発基盤に乗れるように Gitレポジトリを用意 ◦ リリースも画面開発ベンダのみでできるように Jenkinsジョブを用意 ◦
Gitへの資材反映方法から Jenkinsジョブリリースまでの手順書を提供 • 席を隣に並べて一緒に開発を実施した ◦ 顧客の開発拠点に画面ベンダ用の席を準備してもらった ◦ 隣でいつでもすぐ質問できる体制を整備した ◦ お互いの開発状況を常に共有した → 結果的にXPのプラクティスを実行していた!
越境してみてどうなった? • サービスの開発スピードが上がった(燃えたけど) ◦ 画面ベンダが画面資材をリリースできるため依頼の手間や待ち時間を無くせた ◦ APIのIF仕様レベルの議論に注力できた ◦ 結合試験時における故障発見から修正反映までの リードタイムが最短2時間
◦ 結合期間中には一日に約10回リリースを達成した (※API側も含む) • 商用リリースも自動化できた ◦ 検証環境での実績をそのまま商用環境に適用できた • 顧客からの評価が上がった ◦ 単価上昇、追加案件や追加開発を受注できた
まとめ 開発範囲が会社間で分割されているWebサービス開発案件において、 • 他社ベンダにもGit・Jenkinsリリース環境を提供して、 • 他社ベンダが自分たちでもリリースできるようにした結果、 • 1日に約10回サービスがリリース可能な体制をつくることができた 運用開始後、1年間で約500回リリースを達成しています。 リリース高速化のために会社の壁を越境してみよう!
宣伝
Jenkinsユーザカンファレンス2018で登壇します 絶賛参加者募集中です!奮ってご参加ください。 • 日時:9/23(日) 12:30 - 17:20 • 場所:法政大学市ヶ谷キャンパス •
登壇者 ◦ 川口耕介氏 ( CloudBees CTO ) ◦ James Rawlings氏 ( Jenkins X Project Lead ) ◦ などなど • 詳細リンク ◦ https://jenkins.jp/juc2018/ ◦ https://www.meetup.com/ja-JP/Tokyo-Jenkins-Area-Meetup/events/252614840/