19
Copyright © 2018 EXA CORPORATION Drive “ exa way”! F 2 0 1 8 o r m V l 既存ウェブシステムの SaaS化とDevOps適用 (株)エクサ テクノロジーイノベーション部 金丸 正憲 2018/11/7

エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

F 2 0 1 8EXa o r

umV

alue

既存ウェブシステムのSaaS化とDevOps適用

(株)エクサ テクノロジーイノベーション部

金丸 正憲

2018/11/7

Page 2: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

目次

1. はじめにa. 目的b. 技術分野と実施内容c. ESEC®-EXESとは

2. 既存WebシステムのSaaS化a. 認証方式b. マルチテナント方式c. バッチプロセスのAPI化d. Framework移植

3. DevOpsの適用a. インフラ構築の自動化b. アプリ構築の自動化

4. むすび※本資料に記載されているロゴ、システム名称、 企業名称、製品名称は各社の登録商標または商標です。

1

Page 3: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

1.はじめに

a. 目的b. 技術分野と実施内容c. ESEC®-EXESとは

2

Page 4: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

a) 既存WebシステムSaaS化の目的

今回のお話

オンプレミスな社内資産をSaaS商品化するための技術を蓄積する

実現に向けた進め方

3

Page 5: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

b) 技術分野と実施内容

技術分野 実施内容 状況

1. セキュリティ技術 1) SaaSの非機能要件策定 ◎

2) SAML認証 ◎

3) ADとの連携 ◎

4) セキュアなマルチテナント対応 ◎

5) データ更新のAPI化 ◎

6) F/Wの脆弱性対策 ◎

2.DevOps技術 1) 自動構築ツール/フレームワーク技術 ◎

2) SaaSに適したプロセスフロー ◎

3.API技術 1) SpringFrameworkによるAPI公開用I/Fとアーキテクチャの設計 ◎

2) バッチプロセスのAPI化 ◎

4.フレームワーク技術 1) struts1 から Spring MVCへ移植 ◎

2) Spring 3から4へ移植 ◎

3) iBatis から MyBatis へ移植試行 △

5. 運用 1) DevOpsによる運用 〇

状況凡例◎ 完了○ 実施中△ 試行のみ× 未実施

4

Page 6: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

業務経歴表

②業務経歴管理システム(業歴)

①目標管理システム

目標管理シート

能力開発計画・実績表

・・・

スキルデータ(時系列)

③技術管理システム(技管)

連携

スキル開発計画を連携

④E-ラーニングと研修実績管理システム

Eラーニングシステム

研修実績管理システム

遠隔研修システム

連携育成支援ITシステム

• ①目標管理• ②業務経歴管理• ③技術管理• ④・E-ラーニング

・遠隔研修受講・研修実績管理

レベルを認定スペシャリスト制度

計画

目標管理

研鑽OJT、研修、自学

点検・評価自己申告と面接

合意と改善達成評価と記録

③② ④

①③

c) EXESとは(1/2) - EXA SE育成プロセスと育成支援ITシステム

EXAEngineersSkill management system

EXES = SE育成プロセス 育成支援ITシステム

ESEC®-EXES (以下EXES)

5

Page 7: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

c) EXESとは(2/2) – 技術管理システム機能概要

1. ダッシュボード表示

2. タイムライン表示

3. レーダーチャート表示

4. スキルセット検索

5. 目標設定と実績評価

6. 運用機能:更新状況の追跡調査

7. 入力を支援するレコメンド機能

本人 室平均 本部平均

技術項目の登録数

登録数の5年間の変化

カテゴリ(技術分類の中分類項目)別に最大値をレーダーチャート表示

技術管理システム機能概要

① ③

②④

6

Page 8: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

2.既存WebシステムのSaaS化

a. 認証方式b. マルチテナント方式c. バッチAPI化d. Framework移植

7

Page 9: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

目的・要求

現行の統合認証システム(AD)をそのまま利用できる

複数のSPがシングルサインオン(SSO)できる

個人情報を外部に置かない

認証方式

イントラネット

エクサ統合認証サーバ(AD)

ユーザー(イントラ)

LDAP

技術管理システム(SP)

業務経歴システム(SP)

フェデレーション方式(SAML)IdPを社内に配置

IdP-SP間はブラウザが中継(redirect)

ADFS(Federation Service)

(IdP)

インターネット

他の社内システム

Trust Circle

Spring Security SAML

Terminologies

SSO: Single Sign On

AD: Active Directory ™ (Microsoft ™)

ADFS: Active Directory ™ Federation Service (Microsoft ™)

IdP: Identification Provider (SAML)

SP: Service Provider (SAML)

Page 10: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

マルチテナンシーモデル

① ② ③

b) マルチテナント方式 (1/3) – マルチテナンシーモデル

Web アプリケーションをマルチテナント型 SaaS ソリューションに変換するマルチテナンシーモデルhttps://www.ibm.com/developerworks/jp/cloud/library/cl-multitenantsaas/

変更工数:大・DBスキーマの変更・アプリの改修

リソースの効率

シングルテナントを並べたもの アプリケーションを統合データベースは独立

Better

使用例:Salseforce

アプリ、DBとも統合

[出典]

目的・要求

マルチテナントを扱えるようにする

各テナントで干渉しない(独立性)

テナント当たりのコストが少ない

アプリの改修が少なくて済むEXESで採用

Page 11: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

モデル② モデル③

b) マルチテナント方式 (2/3) – DBの分離方法

DB DB DBDB

リソース効率/制御の粒度

A B C D

DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora MySQL

データモデル変更不要 データベースを単一にできる

Better/Finer

分離モデル

インスタンス統合DBは独立

インスタンスDBとも独立

EXESで採用

DBは統合スキーマで独立

させる

スキーマ(破線)

データベースオブジェクト

インスタンス

[参考]

DBは分離したままがいい(修正工数を下げたい)

DBは統合したい(テナント単価を下げたい)

矛盾する要求

解決策

Page 12: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

b) マルチテナント方式 (3/3) – アーキテクチャ

全体のアーキテクチャ

t1.war

Apache(WAF+LB)

Tomcat

t2.war

Connection Pools DB2

Java VM

https://foo.com/t1

https://foo.com/t2

特徴• ウェブアクセスは1つのサーバに統一 (必要に応じて負荷分散)

• ソースコードは1つに統合• 実行モジュール(war)はテナント毎にデプロイする(カスタマイズの余地)

• DBはスキーマでテナント別、モジュール別に住みわける

user:t1schema:t1

user:t2schema:t2

11

Page 13: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

Spring Batch を用いた公開用API のアーキテクチャ

c) バッチプロセスのAPI化

利用者

Client

Adaptor

(SpringBatch)

※既存Batch

DB

csvアップロード

Adaptorをキック

既存Batchをキック

ステータスコードを返す

レスポンスステータスコード

を返す

クライアントWeb サーバ DB サーバ

※ 場合によってはBatch サーバ

scpでコピー

CSVデータ

REST API

(SpringMVC)

• API独自の認証機構(API鍵方式)• 自動実行機能

バッチの形式 利用実績

同期型 Shell script (既存shell scriptをそのまま利用可) 人事情報更新、研修実績更新バッチ

Javaプログラム

非同期型 Shell script(既存shell scriptをそのまま利用可)

Javaプログラム 休業者データの投入バッチ

目的・要求

運用者による作業をなくし、ユーザが処理を行える

既存のバッチ処理がそのまま使える

Page 14: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

目的・要求

既存Webアプリで利用する版が古く、脆弱性があるため更新が必須

現在メンテナンスされていて、将来もメンテナンスされそうなフレームワーク

基本的に最新バージョンを使用するが、社内標準があるものは合わせる

d) Framework移植一覧(主なもの)

旧 新 成果

Struts1 SpringMVC • 全画面移植済• EVF2017発表• アセット登録済

Spring Framework 3.2Spring Security 3.2

Spring Framework 4.0Spring Security 4.0

• 移植済• Incidentチケット提供可能

iBatis 2.3 myBatis 3.2 • 着手後移植は見送り• 変更点と工数の調査結果提供可能• SQL injection、CSRFに対応する脆

弱性対策を実施

* 業務履歴管理システムのFrameworkについて業歴システムはWebFrameworkに「Struts2」を利用している。Struts2は、プロジェクト開始当初は、WebPotと同等ということで、移植対象外としていたが、後にStruts2に対するOGNL(Object Graph Navigation Library)インジェクションを利用した攻撃が問題となったため、リクエスト元のIPアドレスを制限することにより、セキュリティ対策とした

13

Page 15: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

DevOpsの適用

a. インフラ構築の自動化b. アプリ構築の自動化

DevOpsといえども、アプリとインフラで目的・要求が異なる為、分けて説明する。

14

Page 16: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

目的・要求

迅速にサービスを立ち上げられる

スケーリングが容易にできる

自動化よる作業効率と品質の向上

セキュリティアップデート適用の迅速化

社内仮

想基版

成果

インフラ構築・変更、テストの自動化• 各環境のOSの設定、ミドルウェアのインストールと設定(Chef)

• OS、ミドルウェアの設定確認(Serverspec)

a) DevOps – インフラ構築・運用の自動化インフラの自動化プロセス

Local PC

Converge(Chef)

Test(Serverspec)

Staging機

Product機

Install, Settings

Testing

Process flow凡例

DB2Apache, Tomcat

DB2Apache, Tomcat

DB2Apache, Tomcat

DB2Apache, Tomcat

IT機

CI/CDサーバ

Integration /

Delivery(Jenkins)

15

Page 17: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

目的・要求

迅速にサービスの変更修正ができる

アジャイルによるCI/CD開発

自動化よる作業効率の向上

テスト工数の大幅削減/品質向上

社内仮

想基版

b) DevOps – アプリの構築・運用の自動化

Local PC

war

Compile(java)

deploy

Test(selenium)

Staging機

Product機

Data Access

Deploy

Browser Control

Web Access

Process flow凡例

DBWeb

Container

DBWeb

Container

DBWeb

Container

DBWeb

Container

IT機

CI/CDサーバ

Integration /

Delivery(Jenkins)

ブラウザ実行環境

成果

ビルド・デプロイ・テストの自動化• 各環境に特化したwarファイルの生成(Gradle)

• 各環境へのデプロイ(Jenkins)

• Seleniumテストの実行環境整備(Selenium-Grid)

• 開発・本番環境の等価性[Environment Parity](Vagrant)

アプリの自動化プロセス

16

Page 18: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

成果物の社内公開状況

むすび

技術分野 資料公開状況

2-a 認証方式 アセット登録済

2-b マルチテナント方式 アセット登録済

2-c バッチAPI化 アセット登録済

2-d FW移植一覧 EVF2017発表資料公開、アセット登録済

3-a3-b

DevOps インフラ:アセット登録済アプリ :アセット登録済

今後の課題– 外部サービスとの連携、API強化

– テナント毎のカスタマイズ方法

現在のステータス

– 運用中(2017/11~現在)

既存のWebシステムからのSaaS化案件があれば支援できます

17

Page 19: エクサテクノロジーイノベーション部 金丸 正憲 · DB単位課金:Heroku PostgreSQL、AWS Aurora PostgreSQL スキーマ単位課金:Bluemix DashDB、AWS Aurora

Copyright © 2018 EXA CORPORATION Drive “exa way”!

信頼という底力。

aご清聴いただきありがとうございました

18