Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Koji Takahara
691 views
大崎的デリバリー第2章
Read more
1
Save
Share
Embed
Embed presentation
Download
Downloaded 17 times
1
/ 22
2
/ 22
3
/ 22
4
/ 22
5
/ 22
6
/ 22
7
/ 22
8
/ 22
9
/ 22
10
/ 22
11
/ 22
12
/ 22
13
/ 22
14
/ 22
15
/ 22
16
/ 22
17
/ 22
18
/ 22
19
/ 22
20
/ 22
21
/ 22
22
/ 22
More Related Content
PDF
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2014/12/10
by
Akihiro HATANAKA
PDF
継続的デリバリー読書会 14章
by
Yusuke HIDESHIMA
PDF
Mysql diagnostics w/jetprofiler
by
拓也 岸本
PDF
継続的デリバリー読書会資料 #1
by
Yusuke HIDESHIMA
PDF
継続的デリバリー第11章.Ppt
by
Yusuke HIDESHIMA
KEY
(PlayScala(0.9.1) until Play(2.0))
by
Takuma SHIRAISHI
PPTX
継続的12章
by
shinjiyoshida
PDF
「継続的デリバリー」読書会 第3章 継続的デリバリー
by
Norikazu Hiraki
Questetra ハンズオンセミナー ビギナー向け業務プロセス設計 その1 2014/12/10
by
Akihiro HATANAKA
継続的デリバリー読書会 14章
by
Yusuke HIDESHIMA
Mysql diagnostics w/jetprofiler
by
拓也 岸本
継続的デリバリー読書会資料 #1
by
Yusuke HIDESHIMA
継続的デリバリー第11章.Ppt
by
Yusuke HIDESHIMA
(PlayScala(0.9.1) until Play(2.0))
by
Takuma SHIRAISHI
継続的12章
by
shinjiyoshida
「継続的デリバリー」読書会 第3章 継続的デリバリー
by
Norikazu Hiraki
Viewers also liked
PDF
継続的8章
by
shinjiyoshida
PDF
継続的デリバリー読書会 第 7 章 コミットステージ
by
Yasutomo Arai
PDF
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
by
Takuma SHIRAISHI
KEY
Netty 入門 - 「Netty ベース」の何かに着手する前に
by
Takuma SHIRAISHI
PDF
深層学習生き地獄
by
Yusuke HIDESHIMA
PDF
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
by
Junya Suzuki
継続的8章
by
shinjiyoshida
継続的デリバリー読書会 第 7 章 コミットステージ
by
Yasutomo Arai
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
by
Takuma SHIRAISHI
Netty 入門 - 「Netty ベース」の何かに着手する前に
by
Takuma SHIRAISHI
深層学習生き地獄
by
Yusuke HIDESHIMA
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
by
Junya Suzuki
Similar to 大崎的デリバリー第2章
PDF
TDDBC osaka 2012/06/02
by
Hiro Yoshioka
PDF
はじめてがアジャイル
by
Kenichi Takahashi
PDF
テスト勉強会よしおか100311 1
by
Hiro Yoshioka
PDF
大規模ソフトウェア開発とテストの経験について
by
Rakuten Group, Inc.
PDF
ソフトウェア開発の現場風景
by
Koichi ITO
PDF
GCSアジャイル開発を使ったゲームの作り方
by
Hiroyuki Tanaka
PPTX
Continuous delivery chapter13
by
favril1
PDF
ワンクリックデプロイ101 #ocdeploy
by
Ryutaro YOSHIBA
PDF
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
by
智治 長沢
PDF
Scrum"再"入門
by
You&I
PPTX
Continuous delivery 6
by
ShinyaOzawa
PPTX
20151127 agile japanpreseminar_公開用
by
Makiko Nakasato
PPT
レガシーコード読書会 20120618
by
Suguru Shirai
PDF
20151127 Agile Japan ビギナー向けセミナー
by
麻記子 中佐藤
PDF
Agile japan2010 rakuten様プレゼン資料
by
Akiko Kosaka
PDF
Ldd13 present
by
Masashi Kayahara
PDF
アジャイルソフトウェア開発の道具箱
by
Koichi ITO
PDF
ソフトウェア調達におけるアジャイル開発の要点と現状 Slideshare
by
Yoichi Tamamaki
PDF
"Ordinary" System Development
by
Shintaro Kakutani
PPTX
はじめてのアジャイルのその後 ーシン・サービス立ち上げ、スクラムぽくなってきたー
by
Otsuka Reina
TDDBC osaka 2012/06/02
by
Hiro Yoshioka
はじめてがアジャイル
by
Kenichi Takahashi
テスト勉強会よしおか100311 1
by
Hiro Yoshioka
大規模ソフトウェア開発とテストの経験について
by
Rakuten Group, Inc.
ソフトウェア開発の現場風景
by
Koichi ITO
GCSアジャイル開発を使ったゲームの作り方
by
Hiroyuki Tanaka
Continuous delivery chapter13
by
favril1
ワンクリックデプロイ101 #ocdeploy
by
Ryutaro YOSHIBA
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
by
智治 長沢
Scrum"再"入門
by
You&I
Continuous delivery 6
by
ShinyaOzawa
20151127 agile japanpreseminar_公開用
by
Makiko Nakasato
レガシーコード読書会 20120618
by
Suguru Shirai
20151127 Agile Japan ビギナー向けセミナー
by
麻記子 中佐藤
Agile japan2010 rakuten様プレゼン資料
by
Akiko Kosaka
Ldd13 present
by
Masashi Kayahara
アジャイルソフトウェア開発の道具箱
by
Koichi ITO
ソフトウェア調達におけるアジャイル開発の要点と現状 Slideshare
by
Yoichi Tamamaki
"Ordinary" System Development
by
Shintaro Kakutani
はじめてのアジャイルのその後 ーシン・サービス立ち上げ、スクラムぽくなってきたー
by
Otsuka Reina
大崎的デリバリー第2章
1.
『継続的デリバリー』読書会
第2章 構成管理 大崎的デリバリー @kapara_c
2.
2.1 導入
構成管理の定義 • プロジェクトに関連するあらゆる成果物とそれ らの間にある関係性が、保存され、検索され、 一意に特定され、修正されるプロセスのこと である。
3.
2.1 導入
適切な構成管理とは • あらゆる環境を再現できる – OS – パッチレベル – ネットワーク構成 – ソフトウェアスタック – デプロイされるアプリケーションとその設定 • インクリメンタルな変更を行い、他の環境に対して簡 単にデプロイできる
4.
2.1 導入
適切な構成管理とは • 変更点を容易に確認できる また、誰がいつ変更を行ったかを追跡できる • コンプライアンスの規約をすべて満たす • チームの全員が必要な情報を取得し、変更すること ができる。 – チーム間に壁を作って、サイクルタイムが長くなり、フィー ドバックが減ることになっていないか?
5.
2.2バージョン管理を使う • バージョン管理システムを使う理由
– ソフトウェアの特定のバージョンを構成しているものを知り たい – いつ、誰が、何のために、何を行ったのかを把握できる • チームが離れた場所、別の時間帯で作業しても協力できる
6.
2.2.1 ひとつ残らずすべてバージョン
管理に保存せよ • ソースコード • テスト、データベーススクリプト • ビルド・デプロイメントスクリプト • ドキュメント • ライブラリ • 設定ファイル • テスト環境や本番環境を再現するのに必要な情報 アプリケーションのバイナリと実行環境を再現するのに必要な すべてを保存する
7.
2.2.2 定期的にtrunkにチェックインせよ • こまめにチェックインすることで、問題の解決を容易にするこ
とができる • 機能毎にブランチを切る方法は、継続的インテグレーションと は相容れない – 機能の統合が先延ばしになる – 複数のブランチを作ると問題はより複雑になる – 統合に関わる問題がマージの時にしか発見されない – マージツールも意味上の競合は解決してくれない • チェックインの際にビルドを壊さないために – チェックインの前にコミットテストを一式実行する – 変更をインクリメンタルに行う
8.
2.2.3 意味のあるコミットメッセージを使え • どんな変更をしたのかをきちんと説明するコミットメッセージ
を使うことで、後々何時間というデバッグをしなくて済む • よりよいメッセージ – 1行目に要約を書く – 以降の複数行にわたって詳細な説明を記述する • コミットをプロジェクト管理ツールに紐付ける – 紐付けができていないコミットが失敗するように
9.
2.3 依存関係の管理
2.3.1 外部ライブラリを管理する • RubyGemsなどを使って特定のライブラリをダウン ロードできるようにする – リポジトリが肥大化しなくて済む • 社内の共通リポジトリに外部ライブラリのコピーをお いておく – 新メンバーのスタートアップが楽になる • どちらにしても、外部ライブラリの正確なバージョン を常に指定しなければならない
10.
2.3.2 コンポーネントを管理する • 一つのコンポーネントをビルドした場合に、依存関
係のあるコンポーネントのみリビルドして欲しい • しかし、現実にはそんなことができるツールはない • ビルドエンジニアが自前で依存関係を管理する必要 がある
11.
2.4 ソフトウェアを管理する
2.4.1 設定と柔軟性 • ソースに対する安全装置はいろいろあるが、設定に 対する安全装置はほとんどない • 設定を柔軟にしようとするせいで分析麻痺に陥る • システムが複雑になってしまい、柔軟性の恩恵が失 われてしまう • スモークテストは設定によって起こる問題を和らげ てくれる
12.
2.4.2 設定の種類 • 設定の種類にはいくつかある
– ビルド時の設定 – パッケージング時の設定 – デプロイメント時の設定 – 起動時や実行時の設定 • ビルド時やパッケージング時の設定は悪い設定 – あらゆる環境に同じバイナリをデプロイできるべき • 設定情報は可能な限り同じ手段で提供されるべき
13.
2.4.3 アプリケーションの設定を管理する
設定にアクセスする • ファイルシステム経由の管理 – あらゆる言語でサポートされる – アプレットのようなものでは使えない • Web経由で管理 • 設定にアクセスする際は、インターフェイスのみ公開 し、実装は隠蔽すること
14.
2.4.3 アプリケーションの設定を管理する
設定をモデリングする • 設定情報はタプルの集合でモデル化される • 設定情報は以下に依存する – アプリケーション – アプリケーションのバージョン – アプリケーションの実行環境
15.
2.4.3 アプリケーションの設定を管理する
システム設定をテストする • 外部サービスへの参照が適切であるかテストする – 最低でもすべての外部サービスにpingを打つ程度は – 依存しているサービスが一つでも動いてなければ落ちな ければならない • アプリケーションがインストールされた後で、いくつ かスモークテストを行う – 設定が正しいことに依存するテストをいくつか行う
16.
2.4.4 アプリケーションをまたいで設定を
管理する • プロジェクトに関連する設定を一欄できるようにする • 可能であれば設定を自動生成するように • もしくはWikiなどに集約させる • 動作しているアプリケーションの設定情報を監視シ ステムを通じて見ることができるように
17.
2.4.5 アプリケーション構成管理の原則 • 設定オプションはソースコードと同じレポジトリで管理する。た
だし、値は別の場所で保存すること。 • 設定は設定用のリポジトリで管理した値を常に使うこと • アプリケーションやバージョン、デプロイ環境に応じて個別の 値を提供できること • 設定オプションには明確な命名規約を用いよう • 設定情報はモジュール化しておこう • DRY(don’t repeat yourself)原則を用いよう • 設定情報はシンプルに保とう • 設定はきちんとテストしよう
18.
2.5 環境を管理する • 設定情報を管理する上でのアンチパターン
– 環境を手作業で構築し、設定ファイルを変更する • こういった『職人芸』は生産性を大きく下げる • 完全に自動化されたプロセスで環境構築出来る必 要がある
19.
2.5.1 環境管理のためのツール • Puppet
– hIp://puppetlabs.com/ • CfEngine – hIp://cfengine.com/
20.
2.5.2 変更プロセスを管理する • 本番環境を変更できる人は限られた人でないといけ
ない • テスト環境は本番環境と同じように扱わなければな らない – 管理、デプロイメント、設定が同じ仕組であればよい
21.
2.6 まとめ • 構成管理プロセスの徹底には、以下の要件が必須
– 本番システムをバージョン管理ツールからスクラッチで構築すること ができる – 正しく動くとわかる以前のバージョンにロールバックできる – ステージングやテスト環境が本番と同じやり方でセットアップされてい る
22.
私的まとめ • 直接関係ないことが混じってるが、要はPuppetとか
使って環境構築を自動化しましょうというお話 • 定期的にtrunkに〜のくだりとかは、後の章でも同じ 話がでてくるので省いていいんじゃ・・・
Download