ConoHaのVPSのテンプレートイメージのはなし


自己紹介

サービスデザインチームで「ConoHa」を担当している坂元って言います。
ConoHa」で提供しているイメージを作成・管理したりとか、プロダクト考えたりとかしてます。
今年の4月に転職してきて今は20歳です。(新卒より若い)
元々はアプリケーションエンジニアでプログラムばっか書いてたので設計力も今後必要になってくるだろうと考えてこのチームを選びました。
今は色々任せてもらえてて挑戦できるので楽しいです。
ちなみにこのアドベントカレンダーにはConoHaの中の人である強いエンジニアが何人かいます。

サービスデザインチームって?

プロダクトの企画から設計、検証、公開した後は改善したりと
主にUI/UXを考えて色々するようなチームです。
採用ページにはインタビューが書いてあったりするのでご参考にしてください。
1dayインターンシップもやったりしているので是非。
プロダクト設計・企画職 採用ページ」「1dayインターンシップ

本題

WING」ではなく「VPS」の方の話をしようと思います。
WINGは爆速だしコンパネは使いやすいし良いところがいっぱいあるので使ってみてください。

ConoHaのVPSではテンプレートイメージとしてOSとアプリケーションのテンプレートイメージを提供しています。
提供の裏側では「どういうツールを使っているのか」「どうしてツール作ったのか」等を書いていこうと思います。

元々、僕が入社した当初はAnsibleでの構成管理しかされていませんでした。
イメージは作成した後、本番に反映された後正しく動作するかというのを検証していますが全部手動で行っていました。
属人化だったり、検証の手間だったり、そういったところを改善するために色々なツールを作って改善してきました。
(イメージ自体の作成作業に関しては基本的に2人体制で行なっていて、僕が入るずっと前からやっているプロの方がいて最近は任せっきりなのでなんとかしたい)

イメージ提供の際に使っているもの

  1. Ansible
  2. オブジェクトストレージ
  3. SSHテスト用ツール(Rust製)
  4. ブラウザテスト用ツール(Go製)
  5. 言えないようなツールがいっぱい

Ansible

イメージの中身の構成管理、「Infrastructure as Code
一番大事です。Makefileを使っているのでmakeを叩くだけで誰でも作れます。

オブジェクトストレージ

提供しているイメージのバックアップ用途であったり、ファイルの受け渡しに使っています。
ConoHaのオブジェクトストレージは100GB/450円と安いのに大容量で転送量もかかりません。
swiftコマンドですぐに使えちゃいます。
ブロックストレージとは勝手が違いますがすぐに慣れて使えます!

SSHテスト用ツール(Rust製)

検証にはpingが通るかとか、ディスク容量が正しいかとか、パーティション等・・・毎回コマンド打って確認するのはすごいめんどくさいです。
コマンドが書かれていたエクセルがありましたが開くのもめんどくさいです。
普段から作業している人であれば頭の中に打つべきコマンドはありますが、その人の頭の中にしかないのは大変よろしくないです。

という事で入社して一番最初に作ったツールです。(4/26にコミット)
なんでRustかというと僕がRustを書きたかったからです。
clapを使った普通のCLIツールで、以下のような感じです。

  • SSHでコマンドを実行して結果を確認するだけのツール
  • YAMLで実行するコマンドを管理
  • 鍵認証対応
  • 200行もないから小さいので誰でも読める

ブラウザテスト用ツール(Go製)

ConoHaではOSだけではなく様々なアプリケーションイメージも提供しています。
例えば「Mattermost」であればちゃんと登録からチャットまでの一連のフローができるかとか、バージョンが正しいかとか等の確認するべき項目が結構あります。
そのアプリケーションを知らないと確認するべき項目がわからない点やブラウザ操作の手間を減らすために使っています。

agoutiというライブラリを使っていて、アプリケーション毎に1から書いてます。
なんでGoかというと調べて書いてすぐできたからです。
そのうちこれも設定ファイルに分離したい。

他にも言えないようなツールがいっぱい

PythonだったりGoだったり、業務改善のために作ったツールは他にもあります。
なんでこんなに言語がばらばらかというと、書きたい言語で書くみたいなところはあります。

まとめ

今回はConoHaで提供しているテンプレートイメージで使っているものとかを軽く書きました。

メインでやっているサービスデザインという仕事についてはあまり触れませんでした。
サービスデザインチームでは色々な人と協力してConoHaを良いプロダクトにしようと考えてます!熱い想いがある方は是非!