自己紹介
株式会社ゼンアーキテクツ代表取締役 CEOチーフアーキテクト
岡 大勝Oka Hiromasa
日本DEC、日本HPにて銀行・生保・損保の資産運用系システムに携わる。日本ラショナルソフトウェアではオブジェクト指向と開発プロセスの普及に努め、2003年、ゼンアーキテクツを設立。現在はエンタープライズ・アジャイルの現場適用支援を中心に活動している。1972年生まれ。
著作:「本当に使える開発プロセス(日経BP社)」「ディシプリンド・アジャイル・デリバリー(翔泳社)」、他
「ITモダナイゼーション」• ITモダナイゼーションは、組織のIT文化をオーバーホールすることだと言える。• IT組織は、技術とスキルの革新、そしてビジネスからのプレッシャーに直面しており、過去に作られたIT資産を、これから求められる未来の姿に近づけていくことが求められる。
https://www.gartner.com/it/products/research/it_modernization/it_modernization08.jsp
外的要因内的要因
保守切れ• ハードウェア• OS• ミドルウェア• フレームワーク• 開発プラットフォーム
非機能要求の変化
機能要求の変化
• 性能• キャパシティ• 可用性
契約の変更・終了• データセンター• 開発ベンダー• 企業買収
• セキュリティ• ユーザビリティ
• 業務処理の変化• 新業務の追加• 業務革新
モダナイゼーションの動機本当は使い続けたいのだけれども、手を入れなければならない。
9. リビルド:Re-Build
1. リラーン:Re-Learn
2. リドキュメント:Re-Document
3. リファクター:Re-Factor
4. リホスト:Re-Host
5. リインタフェース:Re-Interface
6. ラッピング:Wrapping
7. リライト:Re-Write
8. リプレース:Re-Place
準備的モダナイゼーション
中核的モダナイゼーション
再構築的モダナイゼーション
ITモダナイゼーションの9つの手法
改修規模
小
大
サーバハードウェア /OS
ミドルウェア /フレームワーク
サーバアプリケーション
クライアントアプリケーション
クライアントハードウェア /OS
DBMS
データ
リホスト
リホスト (Re-Host)
リホスト
アプリケーションやミドルウェアに手を入れることなく、サーバハードウェアを交換する。OSバージョンが変更されることにより、ミドルウェアに影響を与える場合がある。
• HWの保守切れ(外的)• 非機能要求の増大(内的)• TCO削減(内的)
制約から逃れられないことが多い。検討時から実現可能性検証を。
動 機
サーバハードウェア /OS
ミドルウェア /フレームワーク
サーバアプリケーション
クライアントアプリケーション
クライアントハードウェア /OS
DBMS
データ
リインタフェース (Re-Interface)
サーバアプリケーションに手を入れることなく、ユーザーインタフェースの刷新を行う。クライアント/サーバー型アプリケーションでは現実的だが、レガシーWebシステムはUIの結合度が高いため注意が必要。
リインタフェース
• UIのモダナイズ(内的)• 配布コスト削減(内的)• 旧バージョンが入手不可(外的)
最も検討される。アプリケーションの構造によってはリライトに発展。
動 機
サーバハードウェア /OS
ミドルウェア /フレームワーク
サーバアプリケーション
クライアントアプリケーション
クライアントハードウェア /OS
DBMS
データ
クライアントとサーバの中間にラッピング層を設け、インタフェースおよびプロトコル変換を行うことで、サーバーアプリケーションへのアクセス多様性を実現する。
ラッピング (Wrapping)
ラッピング層
他システム
ラッピング
• リインタフェースの手段• アクセシビリティ向上(内的)• システムの機能を外から利用(内的)
C/Sはスムーズ。レガシーWebは注意が必要。
動 機
サーバハードウェア /OS
ミドルウェア /フレームワーク
Webアプリケーション
DBMS
データ
リコード (Re-Write)
既存の機能を変更することなく、コード(プログラム)の全面書き換えを行う。ミドルウェアやフレームワークの更新を伴うことが多い。
リライトWebブラウザ
• MWの保守切れ(外的)• プラットフォームの刷新(内的)• アプリ修正コストの増大(内的)
同一にこだわりすぎない。ツールに依存しすぎない。「仕様確定済み」が最大のメリット。
動 機
“Modernization”は老朽化したシステムを“延命”すること?
• 長く使っていくための「再生」であり「変革」
“Transformation”
老朽化システム
延命
再生/変革
リビルド?リプレース?
未来に向かうための“境界線”
何を生かし、何を捨てるのか。ライフサイクルの違いに着目• ビジネスモデル/データモデル:30年• システム基盤(HW/OS/MW):10年• ユーザーインタフェース/デバイス/UX:5年未満
「ハードウェアを入れ替えながらも、ソフトウェア資産はそのまま移行して使い続けたい」
HP-UX11i製品紹介より
基盤とUIはライフサイクルが異なる
Enterprise Architecture Framework
Business
Data
Application
Technology
• カスタムアプリケーション• パッケージアプリケーション• サービス/プロセス実装 etc
• 保持データ• データ構造• データ管理 etc…
• 業務プロセス• 業務ルール• 組織構造 etc…
• ハードウェア(サーバ、NW等)• ソフトウェア(言語、ミドル、UI等)• データセンター、回線 etc…
FEAFArchitecturalModel
http://en.wikipedia.org/wiki/Federal_enterprise_architecture
ライフサイクル
長
短
Technology (Infrastructure)
ライフサイクルによる境界線の識別(1)
Application (Services)
Technology (UI/UX)
Data(Database)
Business
Technologyは消耗品
Technology (Infrastructure)
ライフサイクルによる境界線の識別(2)
Application (Services)
Technology (UI/UX)
Data(Database)
Business
ApplicationとDataを、活かす
API-based Web Application Architecture<モダンWebアプリ>
• フロント・バックの疎結合• デザインと基盤の分離• Req : REST API• Res : JSON
• バックエンドを軽く• フロントですべきことは、フロントで。無駄なデータ転送を削減。
• Front-End : 70%のコード• Back-End : 30%のコード
• バックエンドは堅く• 認証やバリデーションは、勝手に作り込まない。
• Authentication• Validation• ORM
• HTML5 Ready• WebSocket• WebStorage
JSON
Front-End<WebBrowser>
Back-End<ServerApp>
Database
SPA (SinglePageApplication)
JavaScriptMVVMFramework
JavaScriptBusinessLogics
HTML5/CSS3/JavaScript
DataProcessing
Authentication Validation
ORM Logging
RESTAPI
Cloud / Container / Virtualization
• Portability• 軽量で柔軟なアプリケーション配備
• サーバは落ちるもの。スケールアウト+迅速な起動。• PaaS : CloudFoundry, Azure AppService• Container : Docker, EC2 Container
• Reliability• 堅牢なデータ保持環境
• データは消えないもの。遠隔地多重保持で当然。• Storage : Amazon S3, EBS, Azure Storage • Database : Azure SQL Database, Aurora
• トレードオフの選択肢• 「自由度」と「軽さ」
• IaaSは自由だが、Technologyのコントロールが必要• PaaSは軽量だが、環境制約に縛られる
Datacenter
Networking
Storage
Server
Virtualization
Container
O/S
Middleware
Runtime
Data
PaaS
(Platfo
rm)
SaaS
(Softw
are)
CaaS
(Container)
IaaS
(Infra
structure)
Application
Technology (Infrastructure)
Infrastructure モダナイゼーション
Application (Services)
Technology (UI/UX)
Data(Database)
Business
Re-Host
WindowsServer2003→Virtualization (MicrosoftAzureVM/Hyper-V)
Re-Write
WindowsServer2003→PaaS (MicrosoftAzureAppService)
Technology (Infrastructure)
UI/UX モダナイゼーション
Application (Services)
Technology (UI/UX)
Data(Database)
Business
WrappingRe-Interface
LegacyWebUI→REST/JSONInterface+APIBasedWebApp
MF,UNIXService→REST/JSONWrapper+APIBasedWebApp
REST/JSONI/F
「再生」から「サービス」そして「エコシステム(生態系)」へ• 「木」から「森」、個別最適から全体最適• エコシステムの「サービス」として再生• Solution/ Segment/ Enterprise Architecture
老朽化システム
再生済(Modernized)システム
エコシステム
個別最適からの脱却を目指して• 既存システムを「サービス群」として捉える• 目に見えるものに囚われない
MainFrame HP-UX OpenStack/VM
Windows ServerLinuxServerAWS
契約 取引 請求 支払
顧客
申込
履歴 ナレッジ
人事 給与 会計商品在庫
カスタマーリレーションPHPApp
人事・給与・会計Package
在庫管理JavaWebApp
請求支払管理C++App
契約管理Package
申込受付JavaWeb App
Application
Data
Technology
保守切れ
業務効率化新制度
対応
利便性悪い
スマホ対応
新陳代謝するエコシステムへ
MainFrame HP-UX OpenStack/VM
Windows ServerLinuxServerAWS
契約 取引 請求 支払
顧客
申込
履歴 ナレッジ
人事 給与 会計商品在庫
Technology(Infra)
カスタマーリレーションPHPApp
人事・給与・会計Package
在庫管理JavaApp
請求支払管理C++App
契約管理Package
申込受付JavaWebApp
Application
Data
Re-Host
RESTAPIWrapping
請求支払WebApp
Web給与明細
RESTAPI
企業間取引電子化
RESTAPI
電子契約書
サービスデスクモダンWebApp
RESTAPI
Re-Interface
Technology(UI/UX)申込受付iPhoneApp
ApplicationとUIを分離
エンタープライズ・エコシステム構築の観点• Lifecycle(ライフサイクル)• 適切なライフサイクルでの新陳代謝 → Enterprise Architecture
• Loose Coupling (疎結合)• 責務/ライフサイクルで交換可能 → サービス化、SOA
• Latest Technology (最新技術の採用)• その時代のテクノロジーを活用 → API based WebApp
“3L”
本セッションのまとめ•モダナイゼーションはTransformation(進化)
• モダナイゼーション手法は9種類• システム単独ではなく、エコシステム全体の進化を見据える
•ライフサイクルに着目• その動機はどのレイヤーに影響するのか• Enterprise Architecture
•UIとインフラは消耗品• REST I/F、モダンWebによる現代版C/SでUIを分離• C/Sはラッピング、レガシーWebはリインタフェースで• アプリのポータビリティ確保、もしくは長期保守可能なインフラを
•アプリケーションとデータを長期間維持する• リラーン、リファクター、リライトで保守コストを削減
•モダナイゼーションとSOAは相性が良い• UI技術の多様化、シンプルなAPI、そしてServiceBusの活用
Recommended