HIGIS 3/プレゼンテーション資料/J_GrayA.ppt

Similar documents
プレゼンタイトルを入力してください

FUJITSU Cloud Service for OSS 「コンテナサービス」 ご紹介資料

利用者

How to Use the PowerPoint Template

CA Federation ご紹介資料

よくある問題を解決する~ 5 分でそのままつかえるソリューション by AWS ソリューションズビルダチーム

技術レポート 1)QuiX 端末認証と HP IceWall SSO の連携 2)QuiX 端末認証と XenApp の連携 3)QuiX 端末認証 RADIUS オプションと APRESIA の連携 Ver 1.1 Copyright (C) 2012 Base Technology, Inc.

AWS Deck Template

Oracle Cloud Adapter for Oracle RightNow Cloud Service

CloudnPaaS提案書

クックパッドのテスト自動化

WebアプリケーションサーバJBoss入門

CLUSTERPRO MC ProcessSaver 2.3 for Windows 導入ガイド 第 5 版 2018 年 6 月 日本電気株式会社

GitLab + Dokku で作る CI/ CD 環境 Kazuhiro NISHIYAMA 第 78 回 Ruby 関西勉強会 2017/07/29 Powered by Rabbit 2.2.0

CLUSTERPRO MC ProcessSaver 1.2 for Windows 導入ガイド 第 4 版 2014 年 3 月 日本電気株式会社

McAfee Application Control ご紹介

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

PowerPoint プレゼンテーション

スライド 1

製品概要

FUJITSU Cloud Service for OSS 「ログ監査サービス」 ご紹介資料

トラブルシューティング集

Automation for Everyone <デモ で実感できる、組織全体で活用できるAnsible Tower>

Install / Protect / Monetize InstallShield 全機能 データシート プロフェッショナルなインストールの作成 PREMIER PROFESSIONAL EXPRESS MSIX パッケージ サポート フレームワークをサポート Windows Installer(

Oracle Access ManagerとOracle Identity Managerの同時配置

PowerPoint Presentation

FUJITSU Cloud Service for OSS 認証サービス サービス仕様書

Congress Deep Dive

Presentation Template Koji Komatsu

Slide 1

SIOS Protection Suite for Linux v9.3.2 AWS Direct Connect 接続クイックスタートガイド 2019 年 4 月

はじめに このマニュアルは BACREX-R を実際に使用する前に知っておいて頂きたい内容として 使用する前の設定や 動作に関する注意事項を記述したものです 最初に必ずお読み頂き 各設定を行ってください 実際に表示される画面と マニュアルの画面とが異なる場合があります BACREX-R は お客様の

K5移行サービス ご紹介資料

2017 年 6 月 14 日 スムーズな API 連携でデジタルビジネスを推進する API Gateway as a Service の提供を開始 ~ 外部との API 接続を容易にし xtech ビジネス連携を加速 ~ NTT コミュニケーションズ ( 以下 NTT Com) は 複数のシステム

楽2ライブラリ クライアントサーバ V5.0 体験版 クライアントOS利用時におけるIIS設定手順書

FUJITSU Cloud Service A5 for Microsoft Azure サービス仕様書

オープンソース・ソリューション・テクノロジ株式会社 代表取締役 チーフアーキテクト 小田切耕司

LDAP Manager SupportList

PowerPoint プレゼンテーション

JavaもJava Scriptも! コンテナ型アプリケーション開発PaaS登場

Windows Server 2016 Active Directory環境へのドメイン移行の考え方

Docker/Kubernetes実践コンテナ開発入門

OSSTechプレゼンテーション

metis ami サービス仕様書

Workspace Gate ~ Workspace ONE(AirWatch) 連携 Cloud ホワイトペーパー ~ 1. Workspace Gate とは Workspace ONE(AirWatch) と社内サーバーやクラウドとの連携に必要なゲートウェイサーバーを Azure/AWS など

28th Embarcadero Developer Camp

Yahoo! JAPANにおけるOpenStack on Kubernetes導入までの道のり

延命セキュリティ製品 製品名お客様の想定対象 OS McAfee Embedded Control 特定の業務で利用する物理 PC 仮想 PC や Server 2003 Server 2003 ホワイトリスト型 Trend Micro Safe Lock 特定の業務で利用するスタンドアロン PC

LightSwitch で申請システム Windows ストアアプリで受付システムを構築してみた 情報政策グループ技術職員金森浩治 1. はじめに総合情報基盤センターでは 仮想サーバホスティングサービスや ソフトウェアライセンス貸与といった さまざまなエンドユーザ向けサービスを行っている 上記のよう

Notesアプリが iPadで動くDomino Mobile Apps ご紹介

FUJITSU Cloud Service K5 認証サービス サービス仕様書

IIJ Technical WEEK アプリ開発を楽にするRuby PaaS「MOGOK」について

統合運用管理ソフトウェア Systemwalker 総合カタログ

PowerPoint プレゼンテーション

統合 ID 管理システム SECUREMASTER/EnterpriseIdentityManager(EIM) 連携先システム : AD 1, 業務サーバ 3 監査オプション : あり ユーザ ID 情報を一元管理し 業務システム (CSV インポートが可能なシステム ) や AD などの ID

JP1 Version 12

オージス総研のご紹介 社名 代表者 設立 株式会社オージス総研 取締役社長平山輝 1983 年 6 月 29 日 資本金 4 億円 ( 大阪ガス株式会社 100% 出資 ) 売上実績 512 億円 ( 連結 ) 270 億円 ( 単体 ) ( 2010 年度 ) 従業員数 2,847 名 ( 連結

10年オンプレで運用したmixiをAWSに移行した10の理由

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat

そこが知りたい!AWSクラウドのセキュリティ

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat

Fujitsu Standard Tool

オープンソース・ソリューション・テクノロジ株式会社 代表取締役 チーフアーキテクト 小田切耕司

Docker Enterprise EditionではじめるCaaS

開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX]

IceWall FederationによるOffice 365導入のための乱立AD対応ソリューション(オンプレミス型)

変更履歴 項番版数内容更新日 版新規作成 2013 年 11 月 18 日 1

タイトルを1~2行で入力 (長文の場合はフォントサイズを縮小)

JBoss と Arquillian で実現する 究極のテスト環境 レッドハット株式会社 JBoss サービス事業部 コンサルタント 山 田義和

Transcription:

DevOps 開発プラットフォームの構築と本プラットフォームにおける Ruby の優位性 2016/11/4 株式会社日立ソリューションズ技術統括本部技術開発本部生産技術部 牧俊男

1. DevOps 開発プラットフォームの構築 1

1-1 モチベーション 開発ツールは年々大型化している傾向にあり ツールの運用自体はクラウドサービスに任せる傾向がある 当社でもこれらのサービスを利用した開発を推奨したかったが 適用が難しかった 例えば 権利関係の問題 当社 ( もしくは当社顧客 ) の著作物を社外に置いてもよいか 機密情報保護の問題 何らかのミスで情報が流出する恐れがないか 輸出管理の問題 海外のサーバにソースコードを置くため 輸出管理を行う必要 セキュリティの問題 誤って外部のサイトを攻撃してしまう可能性はないか 社内に DevOps の考え方を広めていくため 自社管理の DevOps 環境を構築して 社内に展開する活動を始めた 2

1-2 社内 DevOps 環境の構築 高速開発プロセス実現のためのツール基盤 1. プルリクエスト型のコードレビュー 2. テスト デプロイの自動化 3. PaaS 環境での評価 フィードバック 回帰テスト 評価 テスト 課題登録 ビルド PaaS 環境へ導入 ソース更新 コードレビュー drone 反映依頼 ( プルリクエスト ) 3

1-3 GitLab GitHub と同等の機能を提供するソースコード管理ツール Git によるソースコードリポジトリの提供 Issue 管理 ( バグ報告や機能追加の受付をするもの ) マージリクエスト管理 ( 変更のためのワークフロー ) 最近 Docker Registory が統合され Docker Image のリポジトリとしても利用可能 4

1-4 drone 継続的インテグレーションを実現するための自動テスト デプロイ実行基盤 GitLab のイベントにフックして 自動的に予定されたイベントを実行 リポジトリ内に配置した設定ファイルで drone を制御できる Docker コンテナを使ったクリーンなビルド テスト PaaS 環境へのデプロイ自動化 5

1-5 Cloud Foundry 継続的デリバリーを実現するための PaaS 基盤 1 コマンドでのシンプルなデプロイプロセス インスタンスのスケールアップ 数の増減が簡単に可能 死活監視や負荷分散など非機能要件のほとんどをサポートする MySQL 等のミドルウェアや自前のサービスをカタログサービスとして 高速に提供できる IaaS or On-Premise cf push Cloud Controller Service Broker Go-Router Deago Blobstore 6

1-6 構成 (2016/03 時点 ) IaaS 基盤として Microsoft Azure を利用 ( 日本リージョン ) ( パブリッククラウドを利用するための申請は 基盤運営チームでまとめて実施 ) 当社プロキシサーバからのアクセス (HTTPS) のみを許可 それ以外のアクセスをブロック 各サービスへの認証処理は社内の IDP サーバを利用して LDAP+SAML 認証で SSO を実現 開発 PC LDAP ソースコード管理 CI/CD drone 開発 PC 認証サーバ PaaS 開発 PC 社内 7

2. 本プラットフォーム上における DevOps の実践 8

2-1 本プラットフォーム上における DevOps の実践 プラットフォーム上で何ができればよいのかを検証するため DevOps を実践しながら構築 プラットフォーム上で稼働する管理ポータルやサービスの開発 アプリケーションの起動 停止やリソース管理 Cloud Foundry のマネージドサービスの管理とアプリへのバインド処理 Cloud Foundry 上で提供するサービスの開発 アジャイル開発 2 週間を 1 イテレーションとして 実装する機能を決定 9

2-2 コード取り込みのフローを決定 GitLab のマージリクエストを中心とした 今時のフローを採用 Git-Flow の開発方式を採用し develop master ブランチへの直接 push を禁止 GitLab のマージリクエスト機能を使って 作成した機能を提出する コードレビューは自分以外の誰かが行う マージリクエストで承認したら ステージング環境に自動デプロイされる ステージング環境でテストして問題なければ 本番環境へのマージリクエストを出す 10

2-3 CI/CD のサイクルの流れを作成 ビルドプロセスを記述 ベースとなる Docker コンテナの指定 ソースのビルド 依存ライブラリの取得 Rubocop によるソースコードのチェック db:migrate の実行 RSpec の実行 デプロイプロセスを記述 Drone の Cloud Foundry プラグインを利用 Ruby on Rails はディレクトリを push すれば OK master ブランチが変更されたとき 本番環境へ cf push する それ以外のブランチが変更されたとき ビルド番号を付与して cf push する 11

2-4 Docker Service Broker の実装 Docker コンテナを Cloud Foundry に統合する仕組み 予め Cloud Foundry のサービスとして動作させたい Docker イメージを登録 Cloud Foundry 上でサービスインスタンスを作成するコマンドが用意されている 実行すると Cloud Foundry からサービスブローカーに REST API を投げる API を受けてサービスブローカーが コンテナを Docker クラスタに配置する インスタンスへの接続情報を Cloud Foundry に返す Cloud Foundry アプリケーションとサービスインスタンスのバインドは 1 コマンドで実行 管理ポータル機能の一機能として実装 サービスブローカー Docker クラスタ cf create-service サービス作成 (REST) docker run インスタンス情報の返却 コンテナ ID の記録 コンテナ ID の返却 12

2-5 管理ポータルと Docker Service Broker の分割 アプリケーションが大きくなってきたので分割したくなった 目的の違う管理ポータルと Docker Service Broker とのコードの混在が気になってきた ソースコードの可読性の観点 アプリケーションの可用性の観点 プロジェクトを 2 つのリポジトリに分割 API しか投げない Docker Service Broker は Rack+Grape に書き換えた 管理ポータルの AP サーバを Passenger から Puma へ変更 Request Spec を書いていたため テストケースが全部通るのを確認ながら分割 Before After 管理ポータル 管理ポータル Docker Service Broker Docker Service Broker 13

2-6 Blue-Green-Deployment の実践 Blue-Green-Deployement とはアプリ切り替え時のダウンタイムを 0 にする技術 マーチン ファウラー氏の著書 Continuous Delivery で紹介されている 一時的に新旧のアプリを混在させ ルーティングを差し替える 問題があった場合は 古いアプリにルーティングを戻す 問題がなかった場合は 古いアプリを削除する Cloud Foundry の場合は cf push cf map-route cf unmap-route の手順で実現可能 app.example.com App App App Service Binding router DB new-app.example.com 14

2-7 Blue-Green-Deployment 機能の実装 コマンドラインから手動でも実現できるが 便利なので管理ツール側にも実装した Drone がデプロイする際に アプリ名に Drone のビルド番号を付与して デプロイ 指定した Route に紐づいているアプリと 更新するアプリを切り替える 15

2-8 アプリケーションの運用監視 プラットフォーム上の動態監視を行うための仕組み作り Elasticsearch + Logstash + Kibana アクセスログやセキュリティ監査ログなどを統合 アプリ側からは標準出力にログを出力するだけで この仕組みに載るように構築 それ以外のコンポーネントは syslog から収集して統合 16

2-9 現行の構成 GitLab でコード管理することで コードの取り込みがシステムで管理できるようになった Drone を使って CI/CD の基本的な仕組みが構築できた Blue-Green-Deployment で メンテナンス告知なしにアプリの更新ができるようになった Docker Service Broker により簡単にミドルウェアサービスを提供できるようになった ログ管理もプラットフォームに統合されたことで 運用が楽になった CI/CD 環境 運用監視 Docker クラスタ LDAP GitLab, drone 開発 PC 管理ポータル Docker Service Broker 開発 PC 認証サーバ PaaS アプリ 各言語環境 ruby java 開発 PC 仮想マシン OS 管理運用 社内 17

3. 本プラットフォーム上における Ruby の優位性 18

3-1 本プラットフォーム上における Ruby の優位性 アーキテクチャ面での優位性 文化面での優位性 19

3-2 アーキテクチャ面での優位性 Ruby on Rails と The Twelve-Factor App クラウドネイティブなアプリケーションを作るための方法論 https://12factor.net/ja/ Heroku 社の創業者である Adam Wiggins 氏が提唱 Cloud Foundry 上で動くアプリケーションのベストプラクティスとして紹介されている RubyGem にも rails_12factor という gem が公開されている 20

3-3 12 factor App のフレームワーク別の対応状況 # エッセンス Ruby on Rails(Ruby) Spring Boot(Java) Struts(Java) 1 コードベース 2 依存関係 (Gradle/Maven) 3 設定 4 バックエンドサービス (rails_12factor) 5 ビルド リリース 実行 6 プロセス (activerecord-session 等 ) (memcached-session-manager 等 ) 7 ポートバインディング 8 並行性 (Jetty 等 ) (Jetty 等 ) 9 廃棄容易性 10 開発 / 本番一致 11 ログ (rails_12factor) (Log4j 等 ) 12 管理プロセス (Flyway 等 ) (Flyway 等 ) DevOps 開発プラットフォームでサポートされる フレームワークレベルで対応 外部ツールで対応 フレームワークやツールでの支援はなく 自前で対応する必要がある 21

3-4 文化面での優位性 DevOps は開発効率を上げていくための改善活動 改善していくためには 改善内容に明確なメリットが見えないといけない 常に改善するために 変化への適用が辛くならないように工夫する Ruby を採用しているプロジェクトには 変化に前向きなマインドがある Ruby 以外のプロジェクトにも少しずつ考えを広めていきたい ツール求められる変化工夫内容 GitLab Drone ブランチ管理ポリシーの導入コードレビューの必須化ビルドスクリプトの用意テストコード文化の導入 ブランチが増えすぎないように 管理するブランチを最小にするレビュアーを分散させて負荷が集中しないようにするカバレージ率を気にするより まず少しずつ書くことから始める Cloud Foundry 12factor App の設計思想の導入全てを一気に入れるのではなく 効果 を見ながら少しずつ対応していく 22

3-4 まとめ 社内に限定された環境で DevOps を実現する環境を構築した 社外のサービスを利用するのと同等レベルのことは実現できるようになった DevOps を推進するための環境は整った 当社の製品やサービスなどをこの仕組みに載せ サービスの拡充をめざす 今後は運用回りについてもノウハウを蓄積していく DevOps の実践を通して Ruby の優位性を実感した 既に Ruby を採用しているチームには導入障壁は高くないので 推進したい これらの文化に馴染みのないプロジェクトに推進していくためにどうすればよいかは 今後の課題としたい 23

商標等 CircleCI は CircleCI 社の米国およびその他の国における登録商標または商標です Docker は Docker Inc. の米国およびその他の国における登録商標または商標です Drone は Drone.io 社の米国およびその他の国における登録商標または商標です Elastic logstash kibana は Elasticsearch BV の米国およびその他の国における登録商標または商標です GitHub は GitHub Inc., の米国およびその他の国における登録商標または商標です GitLab は Gitlab BV の米国およびその他の国における登録商標または商標です Heroku は salesforce.com の米国およびその他の国における登録商標または商標です Oracle と Java は,Oracle Corporation 及びその子会社, 関連会社の米国及びその他の国における登録商標です OpenAM はオープンソース ソリューション テクノロジ株式会社の登録商標です Pivotal Web Services Cloud Foundry Spring Boot は, 米国および日本 その他の地域における Pivotal Software,Inc. の登録商標または商標です Ruby on Rails は David Heinemeier Hansson 氏の米国およびその他の国における商標または登録商標です Microsoft Azure は, 米国 Microsoft Corporation の米国およびその他の国における商標または登録商標です その他記載の会社名 製品名は それぞれの会社の商号 商標もしくは登録商標です 24

END DevOps 開発プラットフォームの構築と本プラットフォームにおける Ruby の優位性 2016/11/04 株式会社日立ソリューションズ技術統括本部技術開発本部生産技術部 牧俊男