狠狠撸

狠狠撸Share a Scribd company logo
システム開発における基盤環境の
継続的インテグレーション/継続的デリバリー(CI/CD)
- 第1回 -
株式会社シイエヌエス
基盤システム事業部
COPYRIGHT (C)CNS Co., Ltd. All rights reserved.
はじめに
? システム開発において、商用稼働環境以外の環境(例えば
開発環境)などで発生しうる環境不足を、CI/CDを利用することで
解決に導くことを目的とする。
? CI/CDのツールについては、開発者向けの書籍が出版されているが、
今回は基盤担当目線で、ツールではなく、ツールを提供する環境や
ツールを利用する環境について考えていく。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 2
システム開発での基盤について
? 開発や試験に用いる環境数は、プロジェクト開始段階で検討、
準備する必要がある。
利用目的
オンライン
開発チーム1
オンライン
開発チーム2
ウェブ
開発チーム1
ウェブ
開発チーム2
バッチ開発
チーム1
バッチ開発
チーム2
ライブラリ開発
チーム
システム試験
チーム
開発環境 試験用環境
WEBサーバ
APサーバ
オンライン
サーバ
バッチ
サーバ
DBサーバx N1
x N2
x N3
x N4
x N5
???
WEBサーバ
APサーバ
オンライン
サーバ
バッチ
サーバ
DBサーバ
???
x 2
x 2
x 2
x 2
x 2
試験用環境は商用
の構成をベースに
考える。
開発環境はチーム
の利用性を考慮し
て考える。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 3
システム開発での基盤について
? 基盤環境は、アプリ開発チームがプログラム開発当初からの
環境利用を可能にするため、早めに開発環境の構築を終える
必要がある。
基本設計要件定義(業務) 詳細設計 コーディングアプリ開発工程
サーバ?
PP構築
試験基盤構築工程 環境
解放
要件定義
(基盤)
環境
設計
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 4
基盤環境の不足
? 開発工程が進むと、様々な原因により追加で環境が
必要となる場合がある。
? 機能追加が発生し、そのチーム向けに開発環境が必要
? アプリ不具合が多く、並行して品質強化試験を行う
ための試験環境が必要
? リリース時期が分割された影響で、先行リリース分の
維持環境と構造リリース分の試験環境が必要
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 5
基盤環境の不足
? 環境は初期に構築完了しているため、追加開発時は既存アプリが稼
働している環境に追加分のアプリを同居させて利用することが多い。
? 追加アプリの動作確認でプロセスの起動/停止を必要する場合、
既存アプリに影響があるため、単独で利用できる環境が欲しくなる。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 6
求められる基盤環境
? アプリ開発側としては、検証や動作確認等で自由に利用可能な
開発環境が欲しくなる。
? 開発環境は、開発チーム毎に欲しくなる。
? サービス開始後は、商用環境とアプリ状態が同じである
維持環境を残したいが、サービス開始後に追加されるアプリの
試験環境としても利用したい。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 7
基盤環境の追加提供について
? 開発側の生産性を考えると、要望に応じて開発環境を
提供できるようにすることは重要な課題である。
? 環境を用意するには、コストが必要となる。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 8
基盤環境の追加提供について
1) 物理構成での環境追加
? 機器調達から始める。
? 機器配置場所、電源の確保が必要である。
予算を充分に確保できる追加案件でなければ、物理機器の追加は困難。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 9
基盤環境の追加提供について
2) 仮想化構成での環境追加
? 仮想化ホストを事前に用意できていれば、ゲストOSの構築から行う。
? ゲストOSはホストのリソースを消費するため、追加可能数には限度がある。
物理構成での追加より現実的であるが、ホストのリソースについて先を見越
した量を確保できるかはプロジェクト計画によるところが多い。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 10
基盤環境の追加提供について
3) クラウドを利用した環境追加
? 基本的なパッケージが組み込まれた環境を即時に入手可能。
? 調達速度、拡張性とも物理/仮想より優れている。
利用時間や利用リソースにより課金されるため、プロジェクト計画段階で利
用を見込んでいない場合は追加費用となり、見積りも困難。
プロジェクト内での利用ルール、運用方法の検討が必要。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 11
環境の見直し
? 環境利用要望は高いが、本当に新規に環境を作る必要が
あるかは確認が必要。
? 環境を利用した検証作業は、恒久的なものなのか。検証後
の環境は継続して持つ必要があるか。
? 個人利用PCで開発ツールを用いて開発する場合もあれば、
開発用の専用環境を作る場合もある。環境の共通化と構
築コストの折り合いを考える。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 12
本連載での環境の見直し案
? 今回の連載を各環境の構築の方向性を以下に示す。
① 開発環境
? 開発プログラムの機能確認を目的とする。
? 可用性は求めないため、商用に比べて簡易化した環境とする。
? 環境の複製が行えるようにコンテナ化する。
② 試験環境
? 商用と同条件の機器?OS?パッケージ構成で構築する。
? 環境の複製が行えるようにコンテナ化する。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 13
本連載での環境の見直し案
? 環境の利用イメージは以下の通り。
? コーディング~単体試験は、開発専用の共同実施する。
? 必要に応じて実施したい動作検証は、開発環境を用いて実施する。
? 結合試験は、開発環境を用いて実施する。
? システム試験は、システム環境を用いて実施する。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 14
本連載での環境の見直し案
コーディング/
ビルド/UT(単体試験)
開発環境
検証
試験環境
IT
(結合試験)
ST
(システム
試験)
本番障害
確認/調査
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 15
今後について
? 各環境の利用方法と、基盤構築の手法について説明を行っていく。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 16

More Related Content

Similar to システム开発における基盘环境の颁滨/颁顿について#1 (20)

Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops
裕貴 荒井
?
アプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なことアプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なこと
Atsushi Takayasu
?
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ?プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ?プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ?プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ?プログラミング #vs2019
満徳 関
?
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
GoAzure
?
Go azure tfs_service
Go azure tfs_serviceGo azure tfs_service
Go azure tfs_service
Kaoru NAKAMURA
?
★レビュー支援ツール绍介セミナー资料-2013年04月17日
★レビュー支援ツール绍介セミナー资料-2013年04月17日★レビュー支援ツール绍介セミナー资料-2013年04月17日
★レビュー支援ツール绍介セミナー资料-2013年04月17日
Climb CoLtd
?
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
Yuta Matsumura
?
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
Preferred Networks
?
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
Shingo Kitayama
?
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
?
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
Works Applications
?
チーム开発における顿别惫と翱辫蝉のプラクティス
チーム开発における顿别惫と翱辫蝉のプラクティスチーム开発における顿别惫と翱辫蝉のプラクティス
チーム开発における顿别惫と翱辫蝉のプラクティス
Tsubasa Hirota
?
とりあえす?30分て?ひととおり分かった気にはなれるアシ?ャイル入门
とりあえす?30分て?ひととおり分かった気にはなれるアシ?ャイル入门とりあえす?30分て?ひととおり分かった気にはなれるアシ?ャイル入门
とりあえす?30分て?ひととおり分かった気にはなれるアシ?ャイル入门
陽一 滝川
?
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
Daisuke Nishino
?
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
de:code 2017
?
リーン原则とソフトウェア开発
リーン原则とソフトウェア开発リーン原则とソフトウェア开発
リーン原则とソフトウェア开発
You&I
?
テスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決することテスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決すること
yuichi_kuwahara
?
厂滨别谤におくる、アジャイルプロセスの実践
厂滨别谤におくる、アジャイルプロセスの実践厂滨别谤におくる、アジャイルプロセスの実践
厂滨别谤におくる、アジャイルプロセスの実践
Takashi Makino
?
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre
正善 大島
?
アジャイル开発&罢贵厂导入
アジャイル开発&罢贵厂导入アジャイル开発&罢贵厂导入
アジャイル开発&罢贵厂导入
You&I
?
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops
裕貴 荒井
?
アプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なことアプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なこと
Atsushi Takayasu
?
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ?プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ?プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ?プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ?プログラミング #vs2019
満徳 関
?
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
GoAzure
?
★レビュー支援ツール绍介セミナー资料-2013年04月17日
★レビュー支援ツール绍介セミナー资料-2013年04月17日★レビュー支援ツール绍介セミナー资料-2013年04月17日
★レビュー支援ツール绍介セミナー资料-2013年04月17日
Climb CoLtd
?
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
Yuta Matsumura
?
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
Preferred Networks
?
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
Shingo Kitayama
?
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
?
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
Works Applications
?
チーム开発における顿别惫と翱辫蝉のプラクティス
チーム开発における顿别惫と翱辫蝉のプラクティスチーム开発における顿别惫と翱辫蝉のプラクティス
チーム开発における顿别惫と翱辫蝉のプラクティス
Tsubasa Hirota
?
とりあえす?30分て?ひととおり分かった気にはなれるアシ?ャイル入门
とりあえす?30分て?ひととおり分かった気にはなれるアシ?ャイル入门とりあえす?30分て?ひととおり分かった気にはなれるアシ?ャイル入门
とりあえす?30分て?ひととおり分かった気にはなれるアシ?ャイル入门
陽一 滝川
?
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
Daisuke Nishino
?
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
de:code 2017
?
リーン原则とソフトウェア开発
リーン原则とソフトウェア开発リーン原则とソフトウェア开発
リーン原则とソフトウェア开発
You&I
?
テスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決することテスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決すること
yuichi_kuwahara
?
厂滨别谤におくる、アジャイルプロセスの実践
厂滨别谤におくる、アジャイルプロセスの実践厂滨别谤におくる、アジャイルプロセスの実践
厂滨别谤におくる、アジャイルプロセスの実践
Takashi Makino
?
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre
正善 大島
?
アジャイル开発&罢贵厂导入
アジャイル开発&罢贵厂导入アジャイル开発&罢贵厂导入
アジャイル开発&罢贵厂导入
You&I
?

システム开発における基盘环境の颁滨/颁顿について#1