狠狠撸

狠狠撸Share a Scribd company logo
システム開発における基盤環境の
継続的インテグレーション/継続的デリバリー(CI/CD)
- 第2回 -
株式会社シイエヌエス
基盤システム事業部
COPYRIGHT (C)CNS Co., Ltd. All rights reserved.
はじめに
? 今回からは、アプリ開発側の工程ごとに必要となる環境について、
基盤として必要な環境について考えていく。
? 今回は、以下の図の破線で囲った工程について記す。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 2
基本
設計
要件定義
詳細
設計
アプリ開発 コーディング
/ビルド
単体
試験
結合
試験
システム
試験
維持
サービス
イン
基本
設計
要件定義
詳細
設計
コーディング
/ビルド
単体
試験
結合
試験
システム
試験
維持
サービス
イン
追加アプリ
開発
開発工程で必要となる環境
開発工程(コーディング~単体試験)にて必要となる環境について、
以下に記す。
① コーディング環境
② ビルド環境
③ 単体試験環境
④ ソースコード/ライブラリ管理環境
⑤ 結合試験 ※次回予定
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 3
コーディング
ビルド
単体試験
ライブラリ登録
結合試験
開発環境
? 開発工程における作業環境
? コード作成については、サービスを行う実環境でなくてもよい。
? コード作成後にビルド確認や単体試験も合わせて、実行できることが
望ましい。
? ライブラリなどは同じ資材を使用して開発できることが望ましい。
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
開発用サーバ
リモート
アクセス
eclipse
git
ライブラリ管理サーバ
セントラル
リポジトリ
コントロールサーバ
maven
ソースコード
リポジトリ
jenkins
maven
git
JUnit
自身がコーディングした
ソースを確認するために
必要なものを導入する。
...
git
SonaType Nexus
開発用サーバの役割
? 開発用サーバを利用する開発者に対して同様の開発ツールを
提供する。
?環境差異によるビルドエラーや単体試験誤りを防ぐ。
? コーディングから単体試験、試験が完了したソースコードの
ライブラリ登録までをサポートする。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 9
開発用サーバでの提供ツール
① Eclipse
?後発の統合開発ツールは出てきているが、開発者の多くが既存知識で利
用可能なツールであること考えるとEclipseが優位。
② Apache Maven
?コンセプトを受け継いでいるGradleがあるが、開発者の既存知識を
考えるとMavenが安定して利用できる。
③ JUnit
?テスティングフレームワークとしては、開発者に対して最有力で、
安定して利用できる。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 10
開発用サーバでの提供ツール
④ Git
?バージョン管理ツールはGit以降の後発ツールもでているが、jenkinsなどの
ツールにおいてデフォルトでサポートされており、相性が良い。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 11
開発用サーバに求める性能
No. 要素 説明
1 台数 利用する開発者数および、開発者が実行するツールが使用するリソースを
元に算出する。
2 CPU 同時利用者数と実行ツールの使用量を考慮して算出する。
3 メモリ 同時利用者数と実行ツールの使用量を考慮して算出する。
4 ディスク 利用開発者数と、開発時の使用量から算出する。
開発中はファイルコピーを行いがちで、ビルドに必要となるライブラリを保
持する為容量はそれなりに必要である。
開発中のソースコードは、開発用サーバにのみ存在する事になるため、
ディスクはRAID5以上の信頼性で守っておく方が良い。
開発者は誤ってファイルを削除してしまうこともあり得るため、バックアップ
を定期的に取得できるようにしておく。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 12
ライブラリ管理サーバの役割
? 単体試験が完了したソースコードをバージョン管理する。
? ビルド時に必要となるjavaライブラリの管理を行う。
? ソースコードは資産となるため、開発用サーバとは別のサーバにて
管理を行う。
? ライブラリ管理機能自体は、案件に関わらず利用できるもので
ある。
? ディスクストレージやメモリのリソースに余裕を持たせて共通サーバ
として稼働させることで、価値を高めることができる。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 13
ライブラリ管理サーバでの提供ツール
? Git
?開発用サーバでの理由と同様。
? Sonatype Nexus
?Mavenがビルド時に依存ライブラリを取得するため、リポジトリサーバの
が必要。Apache HTTP Serverといったウェブサーバだけでリポジトリサーバを
提供する場合、ライブラリ配置時にマニフェストを作成したりと手間がかかる。
Nexusでjavaパッケージのリポジトリ管理を行わせるのが容易。
?ローカル環境でリポジトリ管理を行わせるのであれば、OSS版でも十分に
活用可能である。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 14
ライブラリサーバに求める性能
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 15
No. 要素 説明
1 台数 1台が稼働していればよい。
ただし、サーバが停止すると、ビルドやライブラリ管理ができなくなるため、
予備機を用意しておく必要はある。
2 CPU ライブラリ管理と、パッケージリポジトリ管理であればCPUリソースを潤沢に
用意するには及ばない。
3 メモリ ライブラリ管理と、パッケージリポジトリ管理であればCPUリソースを潤沢に
用意するには及ばない。
4 ディスク 利用案件での開発規模に応じて算出する。
ストレージはディスク故障を考慮して、バックアップを定期的に取得できるよ
うにしておく。
コントロールサーバの役割
? java単体のビルドではなく、javaモジュールまで作成する。
できあがったモジュールを結合試験以降の試験に利用する。
? ソースコードはライブラリ管理に登録されたものを利用する。
? 継続的インテグレーションを行うためjenkinsを用いる
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 16
結合試験以降の工程で利用する
ことを目的とするため次回で説明
次回
? 第3回は、結合試験、システム試験について取り扱う。
COPYRIGHT (C)CNS Co., Ltd. All rights reserved. 17

More Related Content

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

コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
日本ヒューレット?パッカード株式会社
?
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Yasuharu Nishi
?
Cisco Connect Japan 2014: 実践 Cisco ACI (Application Centric Infrastructure)
Cisco Connect Japan 2014: 実践 Cisco ACI (Application Centric Infrastructure)Cisco Connect Japan 2014: 実践 Cisco ACI (Application Centric Infrastructure)
Cisco Connect Japan 2014: 実践 Cisco ACI (Application Centric Infrastructure)
シスコシステムズ合同会社
?
HSM用ミドルウェア Conduit Toolkitの概要と使い方
HSM用ミドルウェア Conduit Toolkitの概要と使い方HSM用ミドルウェア Conduit Toolkitの概要と使い方
HSM用ミドルウェア Conduit Toolkitの概要と使い方
Hiroshi Nakamura
?
テスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決することテスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決すること
yuichi_kuwahara
?
たった1时间でシステム构筑!“激速”环境构筑を実现する“パターン技术”の秘密とは
たった1时间でシステム构筑!“激速”环境构筑を実现する“パターン技术”の秘密とはたった1时间でシステム构筑!“激速”环境构筑を実现する“パターン技术”の秘密とは
たった1时间でシステム构筑!“激速”环境构筑を実现する“パターン技术”の秘密とは
Rina Owaki
?
【Interop tokyo 2014】 EMCストレージとCisco ACIが示す新しいConverged Infrastructure
【Interop tokyo 2014】  EMCストレージとCisco ACIが示す新しいConverged Infrastructure【Interop tokyo 2014】  EMCストレージとCisco ACIが示す新しいConverged Infrastructure
【Interop tokyo 2014】 EMCストレージとCisco ACIが示す新しいConverged Infrastructure
シスコシステムズ合同会社
?
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
IMJ Corporation
?
App dna step by-stepアプリケーション互換性の検証
App dna step by-stepアプリケーション互換性の検証App dna step by-stepアプリケーション互換性の検証
App dna step by-stepアプリケーション互換性の検証
Citrix Systems Japan
?
CA Japan seminar mainframe2.0 2011/10/26
CA Japan seminar mainframe2.0 2011/10/26CA Japan seminar mainframe2.0 2011/10/26
CA Japan seminar mainframe2.0 2011/10/26
Kaneko Izumi
?
iOSアフ?リ開発のCI環境 - Jenkins編 -
iOSアフ?リ開発のCI環境 - Jenkins編 -iOSアフ?リ開発のCI環境 - Jenkins編 -
iOSアフ?リ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
?
第5回厂滨础研究会(例会)プレゼン资料
第5回厂滨础研究会(例会)プレゼン资料第5回厂滨础研究会(例会)プレゼン资料
第5回厂滨础研究会(例会)プレゼン资料
Tae Yoshida
?
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
Yusuke Suzuki
?
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCI
Toshiyuki Hirata
?
アプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なことアプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なこと
Atsushi Takayasu
?
Essentials of container
Essentials of containerEssentials of container
Essentials of container
Toru Makabe
?
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Daizen Ikehara
?
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
滨叠惭ソリューション
?
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
?
進化を続けるIBM Bluemix 最新情報(2015年3月)
進化を続けるIBM Bluemix 最新情報(2015年3月)進化を続けるIBM Bluemix 最新情報(2015年3月)
進化を続けるIBM Bluemix 最新情報(2015年3月)
Noriyuki Egi
?
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Yasuharu Nishi
?
Cisco Connect Japan 2014: 実践 Cisco ACI (Application Centric Infrastructure)
Cisco Connect Japan 2014: 実践 Cisco ACI (Application Centric Infrastructure)Cisco Connect Japan 2014: 実践 Cisco ACI (Application Centric Infrastructure)
Cisco Connect Japan 2014: 実践 Cisco ACI (Application Centric Infrastructure)
シスコシステムズ合同会社
?
HSM用ミドルウェア Conduit Toolkitの概要と使い方
HSM用ミドルウェア Conduit Toolkitの概要と使い方HSM用ミドルウェア Conduit Toolkitの概要と使い方
HSM用ミドルウェア Conduit Toolkitの概要と使い方
Hiroshi Nakamura
?
テスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決することテスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決すること
yuichi_kuwahara
?
たった1时间でシステム构筑!“激速”环境构筑を実现する“パターン技术”の秘密とは
たった1时间でシステム构筑!“激速”环境构筑を実现する“パターン技术”の秘密とはたった1时间でシステム构筑!“激速”环境构筑を実现する“パターン技术”の秘密とは
たった1时间でシステム构筑!“激速”环境构筑を実现する“パターン技术”の秘密とは
Rina Owaki
?
【Interop tokyo 2014】 EMCストレージとCisco ACIが示す新しいConverged Infrastructure
【Interop tokyo 2014】  EMCストレージとCisco ACIが示す新しいConverged Infrastructure【Interop tokyo 2014】  EMCストレージとCisco ACIが示す新しいConverged Infrastructure
【Interop tokyo 2014】 EMCストレージとCisco ACIが示す新しいConverged Infrastructure
シスコシステムズ合同会社
?
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
IMJ Corporation
?
App dna step by-stepアプリケーション互換性の検証
App dna step by-stepアプリケーション互換性の検証App dna step by-stepアプリケーション互換性の検証
App dna step by-stepアプリケーション互換性の検証
Citrix Systems Japan
?
CA Japan seminar mainframe2.0 2011/10/26
CA Japan seminar mainframe2.0 2011/10/26CA Japan seminar mainframe2.0 2011/10/26
CA Japan seminar mainframe2.0 2011/10/26
Kaneko Izumi
?
iOSアフ?リ開発のCI環境 - Jenkins編 -
iOSアフ?リ開発のCI環境 - Jenkins編 -iOSアフ?リ開発のCI環境 - Jenkins編 -
iOSアフ?リ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
?
第5回厂滨础研究会(例会)プレゼン资料
第5回厂滨础研究会(例会)プレゼン资料第5回厂滨础研究会(例会)プレゼン资料
第5回厂滨础研究会(例会)プレゼン资料
Tae Yoshida
?
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
Yusuke Suzuki
?
アプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なことアプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なこと
Atsushi Takayasu
?
Essentials of container
Essentials of containerEssentials of container
Essentials of container
Toru Makabe
?
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Daizen Ikehara
?
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
滨叠惭ソリューション
?
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
?
進化を続けるIBM Bluemix 最新情報(2015年3月)
進化を続けるIBM Bluemix 最新情報(2015年3月)進化を続けるIBM Bluemix 最新情報(2015年3月)
進化を続けるIBM Bluemix 最新情報(2015年3月)
Noriyuki Egi
?

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