【Case 1】プログラミングレス手法と標準部品の活用で 超高速開発と高品質を実現する開発・実行基盤の誕生

(インタビュー実施時期:2016年2月)

OSS活用ポイント
  1. 多くの人が活用し汎用化・高機能化・高品質化されているOSSで高生産性を実現
  2. 不具合や脆弱性を継続的に改修し情報公開することでトラブルへの早急対応が可能
  3. 無料で商用レベルの機能が利用でき、機能の変更・追加や他機能との連携も実現
開発メンバー
SCSK株式会社
ソリューション事業部門 AMO第二事業本部 先進開発部長
根本 世紀
SCSK株式会社
ソリューション事業部門 AMO第二事業本部 先進開発部 企画開発課 シニアITアーキテクト
堀井 大砂
SCSK株式会社
ソリューション事業部門 AMO第二事業本部 先進開発部 第二推進課
吉廣 理
SCSK株式会社
ソリューション事業部門 AMO第二事業本部 先進開発部 第二推進課
寄木 研至

FastAPPの概要
情報基盤の構築に革新的な手法で生産性を高め安く開発することを目指したFastAPP

この数年、日本のアプリケーション開発市場では“価格破壊”が始まっている。火付け役となったのはSalesforce.comのSaaSやPaaS。その価値が次第に認識されていくことによって、それまでスクラッチ開発されていた業務アプリケーションの開発コストが桁違いに低下し、その流れはエンタープライズの領域にも広がりを見せている。そんな中、今度は業務アプリケーション開発の常識を破壊しようとする基盤に注目が集まっている。ソースコードを書かないプログラミングレス開発でコストを格段に下げたいという理想に基づきSCSKがOSSを駆使して2012年にサービスを開始した「FastAPP」だ。

FastAPPは、業務アプリケーションを超高速開発し、開発後も容易な運用と柔軟な改善を可能にするためのSCSKオリジナルの開発・実行基盤ソリューションである。プログラミングレスの手法と標準部品活用の組み合わせで、業務アプリケーションのスピード開発を実現し、高生産性と高品質を両立する。また、開発が容易なため業務アプリケーションをトレンドの変化に合わせて簡単に改善や修正ができ、長期にわたる安定したサービス提供と運用・保守を柔軟に実現する。

ソリューション事業部門のシニアITアーキテクトで、FastAPP構築プロジェクトのオーナーを務めた堀井大砂は、FastAPP誕生のきっかけとなったのはまさに冒頭のアプリケーション開発市場の価格破壊だったと打ち明ける。「スクラッチで開発したサービスがSaaSと対抗するにはコスト面で不利なことは明確で、複雑なものは無理としても簡単な開発はスクラッチではなく革新的な手法を使って生産性を高め、可能な限り安く開発することを目指したのがFastAPPだったのです」

スクラッチかプログラミングレスか案件に合わせて自由に選択可能なF3

SCSKでは、スクラッチ開発、ツール利用開発、プログラミングレス開発の3種類の開発基盤「Fusion Framework Family」(以下、F3)を用意して、案件に合わせて自由に選択することを提案している。
その1つ目は制御基盤「FF CORE」。汎用的なプログラム部品群とJavaEEをベースとしたスクラッチ開発用の開発フレームワークだ。Strutsが2013年にサポート終了を迎えたのを機に、その代替としてJavaEEを活用し、継続的に安定した開発基盤を提供するための土台として構築した。

2つ目は機能基盤の「FF BASE」。FF COREの上にエンタープライズ対応のシステムを作るには、認証やセキュリティ、データの整合性などを確保することが必要になるため、SCSKのSIのノウハウを活用して、設計書からソースコードを自動生成する機能ツール群と実行基盤を用意した。

StrutsからJavaEEや最新のOSSへ移行することで、長期安定利用を実現

そして3つ目が今回の主役、業務基盤の「FastAPP」だ。FF BASEまではスクラッチ開発に対応したものだが、さらに生産性を高めるためフレームワークや再利用可能なパーツ群を組み合わせるプログラミングレスな開発基盤を作り、スピーディかつ低コストで業務アプリケーションを構築することを可能にしている。「これら、FF CORE、FF BASE、FastAPPの全てにおいてOSSが開発に活用されています」(堀井)

FastAPPの詳細については FastAPP情報提供サイトを参照ください。

OSS活用ポイント①
商用のプロプライエタリツールよりも最先端な技術を活用しているOSS

FastAPPは、主に以下の3つの理由でOSSを活用している。

1. 開発・保守の生産性向上

何か必要な機能を開発する場合、多くの人が活用し、汎用化・高機能化・高品質化されているOSSを優先して利用することで高生産性を実現する。 OSSを活用するにあたり、大きく2つの点に留意したと語るのは、OSS周りの技術リーダーを務めた、ソリューション事業部門の寄木研至だ。「1つは『車輪の再発明』を避けること。多くの汎用的な機能は既に誰かがOSSで開発している可能性が高く、それをまた一から開発していたのでは生産性や工数に大きな無駄が生じます。もう1つは開発者の共通の認識のOSSを使うこと。例えば、Apache Commons(再利用可能なJavaコンポーネントをまとめたApache傘下のトッププロジェクト)に存在するOSSは部外や社外の人にも広く知られた技術であり、共通認識があれば開発生産性も高まります」

近年のOSSは商用のプロプライエタリなツールよりも最先端な技術を活用していることが多く、先進性の観点でも採用する価値は十分にあるという。しかし寄木は、メリットばかりではないと釘を刺す。「OSSプロジェクトは先進性が高い半面、期待に反して活動が下火になったり消滅したりすることも少なくないので、常に情報を収集して活動の低いプロジェクトのOSSは避けるといった警戒心も必要です。また、フレームワークやライブラリが既知の脆弱性を持っていないか『OWASP Dependency Check』などを随時チェックしたり、JPCERT/CCからの脆弱性情報を継続的に収集したりして、安全な状態でOSSを活用することも忘れてはなりません」

SCSKはエンタープライズ向けのビジネスを中心に開発を行うことを命題としており、FastAPPのコンセプトも長期的なサポートが保証されることを重視する。そのため、エンタープライズアプリケーションに特化したデファクトスタンダードや、開発の方法論もDOA(データ中心アプローチ)に対応するという視点でOSSを選択するようにしているという。

OSS活用ポイント②
CIやCDが常態化した開発環境でOSSがデファクトになっている理由

2. 継続的な品質向上

ソフトウェア開発・保守における品質向上には継続的インテグレーション(CI)や継続的デリバリー(CD)が有効なプラクティスであり、CI/CDの実現に必要なツールはデファクトスタンダードであるOSSを活用している。

「FastAPPを含むF3は日々機能を追加したり環境を拡張したりしていますが、品質を担保するためにビルドテストやリリースを自動化することで品質向上を図っています」と語るのは、FastAPP開発チームのリーダーを務めた、ソリューション事業部門の吉廣理だ。具体的には、継続的インテグレーション(CI)ツールの「Jenkins」や、Javaプログラムの単体テストを行う「JUnit」、ブラウザのUIテストを自動化するAPI「Selenium WebDriver」などのOSSを活用して、ソースコードの品質チェック~ビルド~テスト~デプロイの一連の自動化や、自動テスト、カバレッジ(網羅率)測定、リリースモジュールの自動生成などを行っている。

FastAPP基盤開発環境ではRedmine、Subversion、Jenkinsを中心にこれらのOSSツールを連携させて使用している

「これらCI/CDの 品質への効果は、ビルドエラーや基盤の不具合を早期に発見できるようになることでスピーディなリリースを実現するほか、ビルドからデプロイまでの機械的な作業を自動化することにより人的ミスを回避し、開発品質を格段に向上させることができる点にあります。それにより、開発者は本来の基盤開発に注力することになるので作業効率がアップし、何より日々不具合を早期に発見できるという安心感がメンタル面にも良い効果をもたらすと期待されるのです」(吉廣)

今やCI/CDを実現するツールはOSSがデファクトスタンダードになっている。OSSを採用する理由には、商用製品やサービスの高額なライセンス料が不要になるということも大きいが、コミュニティやWeb、勉強会などからの情報発信が豊富に行われるので、事例などから他の企業や同業他社がどのような構成を組んでいるかシチュエーションを具体化できる点にあると吉廣はいう。

OSS活用ポイント③
OSSとクラウドを併用することでスピードとコストの相乗効果が期待

3. 低コストな開発・本番環境の整備

OSSでは無料で商用レベルのツール・機能を利用でき、公開されたAPIや情報を利用することで既存ツールの機能変更・追加、および他ツールとの連携も容易になることがメリットだ。SCSKではFastAPPのようなアプリケーションを開発する環境をOSSで構成するとともに、開発したアプリケーションを動かす環境(サーバーやミドルウェアなど)にもOSSを活用している。

堀井は、「OSSは簡単に開発環境を用意することができる上に、アプリケーションの重要度に応じて安価に開発することも可能にします。ただし、中にはOSSへの理解が社内で一般化されていないお客様や品質保証を求めるお客様もいらっしゃるため、サーバーOSやデータベース、アプリケーションサーバーなど主要コンポーネントには商用製品とOSS製品の両方を用意して、自由に選択できるように配慮しています。そうすることで、お客様も社内でコストと保証のバランスを説明しやすくなると考えています」と説明する。

また、堀井はOSSとクラウドとの親和性の高さも強調する。それらを併用することで、調達スピードが早くなり、調達コストも安くなるというダブルの相乗効果が期待できるという。その例として、環境を2つ用意してデプロイメントを失敗した時にロールバックしやすくするBlueGreenDeploymentという手法も、OSSとクラウドならライセンスやインフラの調達が不要なので比較的安価で可能になる。また、一度作成した環境には設定変更などを行わずデプロイメントのたびに新しい環境を構築し、不要になった後に廃棄するImutable Infrastractureという手法も同様に低コストで実施できるので、従来のデプロイで問題になっていた環境差分や変更・修正の蓄積による不具合発生も回避することができ、開発環境や検証環境を必要な時に必要なだけ立てることも可能だ。さらに、これを進化させ、より簡単かつ柔軟な環境構築を可能にする「docker」へ対応させる上でもOSSを使用していることが必要となる。

今後の展開
ALMとDevOpsを実現するためOSSを活用していくことがSlerの責務

FastAPPを含むIaaS、PaaS、SaaSのサービス基盤を統括する、ソリューション事業部門 AMO第二事業本部 先進開発部長の根本世紀は、今後の展開について次のように語る。

「SCSKとしてはサービス基盤の環境を立ち上げやすくするという目標をある程度達成できたと考えています。その一方で、世の中の流れはプラットフォームをオープンソース化するOpen PaaSなどの取り組みが進んでいるため、IaaSやネットワーク、物理に近いプラットフォームをどのようにコントロールするかが次の課題だと考えています」
また、コンポーネント化されたアプリケーション群を構築するために、コンテナ内のアプリケーションのデプロイメントを自動化するDockerにも着目しているという。

その一方で、根本は別の視点によるOSS活用の可能性についても触れる。例えば、新規のアプリケーションを作る際の注意点だ。新規開発アプリケーションの90~95%は既存踏襲(既存機能の継承)をしているといわれているが、過去の情報資源が正しい形で管理されていないと、既存踏襲を行うことによって多くのプロジェクトはトラブルを起こす可能性が高まるという。

「FastAPPで設計情報を論理的に正しく管理することによって、それを永続的に再利用できるようにすることも可能です。アプリケーションの再構築を行わなくても情報資源を使い続けるALM(アプリケーションライフサイクル管理)と、その運用スピードを上げるためのDevOps(開発担当者と運用担当者が連携して協力する開発手法)を実現していくため、OSSをさらに活用していくことがSIerの責務だと考えています」(根本)

OSSを使って何をしたいのか。その問いにSCSKは、IT業界が従来から抱える労働集約的な作業スタイルから脱却し、知識集約型のビジネスを立ち上げることだと明確な答えを持っている。またその手段としてFastAPPが有効だと確信している。今後もSCSKは日本のIT業界に向くOSSを真贋する目利き力となり、OSSによるITの革新に全知力を傾けていくつもりだ。

製品・サービスに関する問い合わせ先: 問い合わせ専用フォーム

Right Menu Icon