概要
既存パッケージのハイブリッドクラウド化を支援。豆蔵にとって古くからの顧客であり、初期のシステムは 2000 年代初頭に構築。プロプライエタリなライブラリやパッケージをモダンな OSS に入れ替えた。初期に構築されたアプリケーションアーキテクチャは今なお妥当であり、変更することなく要素技術を交換するだけでソフトウェアモダナイゼーションが可能であった。
顧客の目的・課題
パッケージシステムのASP化によるコスト削減とビジネス機会の獲得
- ユーザ環境に提供しているパッケージシステムをベンダー基盤(ハイブリッドクラウド)上にASPとして構築しサービス提供形態を変更する
- 従来導入が困難であった首都圏以外のユーザへのシステム提供を可能とし、ビジネス機会の獲得に繋げる
- 集約化でライセンスコストなど、ランニングコストを下げる
アーキテクチャ見直しによるシステムアップグレードと維持・開発コストを抑える
- クラウド基盤移行に伴い、ライセンス上の費用などの問題が発生するソフトウェアをOSSに変更
支援内容
アーキテクチャ見直し支援
- 一部ミドルウェアの OSS 化に伴う PoC
- アーキテクチャ見直し
- 通信プロトコル見直し(CORBA → ProtocolBuffers over jms)
- 運用監視構成の見直し支援 (Zabbix 導入)
タスクの優先順位と方式検討
- クラウド最適化
- プロセス改善 (ant → Maven 化)
変更対応
- 開発・テスト環境整備
- 設計・開発・テスト・リリース
課題
パブリッククラウドのライセンス課題
- 商用ミドルウェアのライセンスコスト問題
ソフトウェアの老朽化
- Java6 などのセキュリティ上問題があるミドルウェアの利用
- CORBA プロトコル通信による古い通信技術のため、他システム連携の拡張性が弱い
- Ant ビルドツールにソフトウェア管理でモジュール分割されていないため再利用性が薄い
ソリューション
商用ミドルウェアのライセンスコスト問題
- CORBA 通信の廃止と、MQ と JMX(Jolokia) への置き換え
- ミドルウェアの OSS 化対応
- DB を PostgreSQL に置き換え
サブシステムの置き換え
- C/C++ で修正可能な技術者が限られ、コード品質に問題がある
- ミドルウェアが商用のため改造ができないため、機能修正に限界がある
- テスト環境が弱いため保守が困難である
- そのため Java で全面的に作り替える
DB移行
- JUnit5 による DAO 単体/結合テスト整備
- Oracle 環境で作成し、PostresSQL 環境でも動作することを確認
- パフォーマンスチューニング
ソフトウェアの老朽化
- サブシステムを C/C++ から Java に置き換え
- Java のバージョンアップ(6→8)
- 運用監視の Web 化と Zabbix 対応
- Spring Framework のバージョンアップ
- JUnit による単体テスト方式の改善
- Ant ビルドを Maven に置き換え
- CI, Maven, Subversion, Mantis を使った構成管理の構築
- CI のビルドパイプラインの作成
- Jenkins Pipeline による Maven ビルド時間の短縮
- Jenkins Pipeline による Maven ビルド時間の短縮
効果
- ビジネス機会の向上
- コスト削減
- ランニング削減
- 品質向上
今後の展望
- オンプレのユーザ環境の全面移行
適用技術
構成管理基盤
- Subversion
- Jenkins
- maven
- Nexus Repository
ミドルウェア
- ActiveMQ
- Oracle
- PostgreSQL
開発言語/ライブラリ
- Java
- SpringFramework
- ProtocolBuffers
- ApacheCamel
- Angular
テストツール
- JUnit
- JMeter
運用監視
- Zabbix
適用サービス