## ◆IaaSサービス開発について
### 〇目的、背景
1. セルフサービス型のクラウドインフラサービスの提供
* 弊社が提供しているマネージド型インフラサービスの対となる存在の開発し、お客様のニーズに合わせて利用するサービスを選択できるようにする
### 〇規模感、チーム構成
1. チーム構成:アプリ開発 4人(自分を含める)
1. 役割:アプリチームリーダー、アプリ開発者
* 担当する工程:要件定義 ~ 運用保守
#### ・担当した業務の補足
* サービス開発におけるアプリチームのマネジメント
* 下記を利用したアプリ開発
* CloudStackをAPIで利用し、ユーザビリティの高いWebアプリの開発
* Zabbixを利用し、上記で提供しているクラウドインフラの監視・アラート通知の自動化の提供
* VMware API を利用し、Webアプリからバックアップの取得・リストアの実施を提供
* Rspec を利用したテストの自動化
### 〇使用技術や開発環境等
1. 言語:Ruby on Rails
1. 開発環境:Linux
1. その他ミドルウェア
* CloudStack
* CloudPlatform
* MySQL
* Zabbix
* Fortigate
* VMware
### 〇取り組んだ課題
1. AWSやMicrosoft Azure, Google Clod Platform など有名サービスと競合し顧客獲得に向け差別化が必要
=> 提供対象をB to Bに絞り、
ユーザビリティやサポートを重視し「おもてなしクラウド」をコンセプトに開発を行う
「フルマネージドではなくていいが、インフラ全部を自力で管理は難しい」
「多少なら管理はできるためフルマネージドほど高額支払いは避けたい」
中間層をターゲットに絞る
1. 開発者の工数の関係上、有名サービスと開発スピードで張り合えない
=> 営業へのヒアリングを増やし、よりユーザが求めているものを効率的に提供することを第一とした
1. B to Bのため、月次でユーザへ請求処理などが必要となり営業部署と連携するなど中間コストがかかる
=> ユーザ向けとサービス運営向けの両方を構築。営業や保守も同一のシステムを使い、お客さまへの請求処理などを簡易化できるよう機能開発の実施
### 〇取り組んだ工夫
* 他サービスと差別化を図り、直観的にインフラ構築ができるようなユーザビリティの高い画面設計および機能設計のもと開発
* お客さまのビジネスで構築したインフラ環境を利用できるよう監視機能を充実させる
* Zabbix と CloudStackをAPIで連携し、当社のWebサービスでインフラ環境構築から監視まで一元操作を提供
* VM単位でバックアップの取得が行えるようVMware APIを利用しVM単位のクローン機能の提供。
### 〇取り組みの成果
1. 年売上5億の突破
* ユーザアンケートではWeb画面の操作性が高評価をいただいた
1. サイトを全国3か所展開
### 〇当プロジェクトを経て学んだこと
1. Railsを利用したアプリ開発のノウハウ
* MVCを意識した独立性の高いアプリ開発の重要性と設計の仕方
* テスト駆動開発の考え方と開発方式
1. 複数のミドルウェアを利用した開発のノウハウ
* CloudStack, Zabbix, VMware等のミドルウェアのAPIを利用したサービス開発により「APIを利用した開発の全般的な手順」
1. サービス開発のノウハウ
* 不特定多数に向けた機能開発
* 他のサービスとの差別化を図る開発のアイデアの出し方
1. チームマネジメント
* チームのリーダーを介してマネジメントする上での情報の連携の仕方
* 自分の考えを伝えることと相手の考えをしっかり聞くことの重要性