SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

トップエスイーからのアウトカム ~ ソフトウェア工学の現場から

クラウド上での運用を効率化――環境を提供する仕組みをサービスとして捉える「PaaSaaS」

トップエスイーからのアウトカム ~ ソフトウェア工学の現場から 第12回


PaaSaaSの概要

 図1にPaaSaaSの全体構成図を示します。Jupyter NotebookとAnsibleのDockerコンテナはNIIが提供しているものを利用しており、この上にPaaSaaSを用意しました。

 PaaSaaSレイヤにて、利用者がほしい手順書は自動生成されます。でき上がった手順書にはAnsibleによる設定スクリプトが記述されており、これを実行することで同梱しているansible経由で構築対象のサーバに対して構成変更が施されます。

図1 全体構成図
図1 全体構成図

 まず、利用者は図2にあるPaaSaaS構築手順書に対して、配備先のホストのIPアドレスやほしい環境を入力します。入力後に[作成]ボタンを押下することで、PaaS環境の構築手順書(Notebook)が生成され、配備先のサーバに保存されます。

図2 PaaSaaS構築手順書
図2 PaaSaaS構築手順書

 あとは、構築手順書に従って操作することで対象のホストにほしい環境が用意されます。手順書はPythonあるいはAnsibleによって記述されているコードブロックを実行するだけなので、コピー&ペーストで実行する手順書よりミスを減らすことができます。

 以上の利用手順を図3にまとめました。まず、利用者はPaaSaaS構築手順書に構築対象のサーバやサービス名といった必要な情報を入力し、作業手順書と構築手順書群を生成します。

 次に、作業手順書を実行することで、配備対象サーバ上にサービスが起動します。仕組みとしては、Ansibleにより配備対象サーバ上にリモートログインを行っており、docker-composeが実行されています。そのため、PaaSaaSが動作しているホストからIPリーチャブルなマシン上であればどこでも設定が可能です。

 そしてサービス起動後、構築手順書群を参照しながら各種サービスの初期設定を行うことで構築完了となります。

図3 PaaSaaSの使い方
図3 PaaSaaSの使い方

PaaSaaSの構成

 ここで、PaaSaaSの構成を説明します。配備対象先でのサービスの展開方式についてはDockerによるコンテナを採用しました。これにより環境の構築は短時間に完了し、1台のホストに複数の環境を構築することもできます。また、複数のサービスをまとめて管理できるように、複数のコンテナを使うアプリケーションを定義・実行できるDocker Composeを利用しました。Docker Composeは、定義ファイル(YAML)に従ってコンテナアプリケーションをデプロイしてくれるので、PaaSとして提供するアプリケーションが増えたときに実行する手順書およびメンテナンスを楽にすることが可能となります。今回、PaaSaaSでは構築手順書で入力した内容に従って、Docker Composeファイルを作成し、実行可能な手順書(Notebook)にする処理が作り込んだ部分になります。今回構築したPaaSaaSで構築する環境は単純にアプリケーションを利用可能な状態にすることにとどまっており、社内プロキシやセキュリティは考慮していません。

 今後は、社内プロキシの設定情報の編集や、Nginxのようなリバースプロキシとの連携が必要だと考えています。

PaaSaaSの将来性

 今回はLC4RIの仕組みを利用し、環境構築手順書を自動生成するアプローチを試みました。まだPoC(概念実証)段階ではありますが、LC4RIによって実現される新たな可能性のひとつではないでしょうか。

 今後はPaaSaaSで構築できるサービスの種類を増やすとともに、多くの企業の方に使っていただき、その結果や意見をフィードバックする仕組みがあればいいと考えます。PaaSaaSをオープンな技術として公開することで、エコシステムを形成していきたいです。

トップエスイーについて

 「トップエスイー」は、国立情報学研究所で実施している、社会人エンジニア向けのソフトウェア工学に関する教育プログラムです。トップエスイーでは講義や制作課題を通して、最先端の研究成果や現場で得られた知見が蓄積されてきました。その「アウトカム」、つまり成果やそこに至る過程を紹介し、現場のエンジニアの方々に活用いただける記事を連載しています。2017年度より、「ソフトウェア開発実践演習」がトップエスイーコースの受講生全員が履修する科目として加わりました。従来の修了制作は個人でテーマ設定して進めるのが基本でしたが、それだけでなく、講師が課題設定する場合や、グループで取り組むなど、より多彩な履修形態を用意しています。今回の成果は、クラウドを利用する上での可能性を広げる仕組みや、あるいは使い勝手を高める仕組みをベースにした実務への適用と言えるでしょう。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
トップエスイーからのアウトカム ~ ソフトウェア工学の現場から連載記事一覧

もっと読む

この記事の著者

古川 勇志郎(富士通株式会社)(フルカワ ユウシロウ)

 日本OpenStackユーザ会メンバー兼OpenStackコアデベロッパー、OpenStack Neutron Firewall as a Service(FWaaS)などのコアデベロッパーとして、OpenStack開発コミュニティで活動。富士通株式会社 プラットフォームソフトウェア事業本部 Li...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11050 2018/10/04 11:14

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー