SlideShare a Scribd company logo
1 of 17
システム開発における基盤環境の
継続的インテグレーション/継続的デリバリー(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 システム開発における基盤環境のCI/CDについて#2

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/26Kaneko Izumi
 
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -Toshiyuki Hirata
 
第5回SIA研究会(例会)プレゼン資料
第5回SIA研究会(例会)プレゼン資料第5回SIA研究会(例会)プレゼン資料
第5回SIA研究会(例会)プレゼン資料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アプリのCIToshiyuki Hirata
 
アプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なことアプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なことAtsushi Takayasu
 
Essentials of container
Essentials of containerEssentials of container
Essentials of containerToru 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で始めるアプリケーション開発IBMソリューション
 
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
 

Similar to システム開発における基盤環境のCI/CDについて#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 ~明日にでも訪れてしまう組込みシステムのテストの姿~
 
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の概要と使い方
 
テスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決することテスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決すること
 
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とはたった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
 
【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 事例活用セミナー
 
App dna step by-stepアプリケーション互換性の検証
App dna step by-stepアプリケーション互換性の検証App dna step by-stepアプリケーション互換性の検証
App dna step by-stepアプリケーション互換性の検証
 
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
 
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
 
第5回SIA研究会(例会)プレゼン資料
第5回SIA研究会(例会)プレゼン資料第5回SIA研究会(例会)プレゼン資料
第5回SIA研究会(例会)プレゼン資料
 
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCI
 
アプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なことアプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なこと
 
Essentials of container
Essentials of containerEssentials of container
Essentials of container
 
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 編
 
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~
 
進化を続けるIBM Bluemix 最新情報(2015年3月)
進化を続けるIBM Bluemix 最新情報(2015年3月)進化を続けるIBM Bluemix 最新情報(2015年3月)
進化を続けるIBM Bluemix 最新情報(2015年3月)
 

システム開発における基盤環境のCI/CDについて#2