TOPハル研ブログDockerで誰でも社内Webサービスを立ち上げられる環境ができた話

ハル研ブログ

仕事内容Dockerで誰でも社内Webサービスを立ち上げられる環境ができた話

2018年06月13日:atono

こんにちは、プログラマーのatonoです。
今回は、Dockerで誰でも社内Webサービスを立ち上げられる環境ができた話をお伝えします。

Webサービスの話なのにプログラマー?ネットワーク管理者じゃないの?と思った方もいるかもしれません。
そう、そこが今回の話のポイントです。

ハル研では多くのWebサービスを活用しています。
申請・承認・週報などの自社製サービスや、GitLab・Mattermostなどオープンソースのサービスです。
これらがないと仕事が回らないといっても過言ではありません。

この中の一部のサービスは、Dockerを活用し、開発スタッフがメイン業務と並行して運用を行っています。
Dockerを使い始めて3年ほど経ちました。実際に使ってみて、社内がどう変わったかをお伝えしていきます。

Dockerとは?

Dockerをざっくり説明すると、Linuxの仮想マシン + その上で動くサービス (合わせてコンテナと呼びます)を簡単に立ち上げるシステムです。
セットアップの手順を、Dockerfileやdocker-compose.ymlというテキストファイルで書きます。
手順が明文化され、環境に依存しないように作られているので、同じコンテナを簡単に再現できるのが便利です。

例えば、以下の数行のファイルとコマンドだけで実験用のMattermostが立ち上がります。

	
# docker-compose.yml

app:
  image: mattermost/mattermost-preview
  ports:
    - "8065:8065"
	
	
$ docker-compose up
	

オープンソースのサービスを気軽に導入できる

上記のように、新しいサービスをとりあえず試すのがとても簡単です。
Mattermostに限らず、様々なWebサービスでDockerイメージが公開されているので、それを使います。
実際に社内でも、「こんなサービスがあるといいよね」という声から、1時間そこそこで候補が2つ立ち上がり、みんなで使い勝手を試したことがあります。

また、同じサービスを複数立ち上げるのも簡単です。
ハル研には社員全員が使えるGitLabがありますが、ある日、チーム外秘の情報を扱うためサーバを分けたい、という話が出ました。
このときも、Dockerで簡単に立ち上げることができました。

これまでで一番の成功例は、社内にチャットサービスが普及したことです。
近年では多くの会社でチャットを活用していることと思います。
ハル研では最初にシンプルなサービスを選び、私がスカンクワークで立ち上げました。
使う前は便利さが想像できていなかったのですが、いざ導入すると予想以上に流行していきました。
サービスに対する要望も増えて、より多機能なMattermostに移行しました。
こちらも、Webサービスに興味がある開発チームのプログラマーが立ち上げました。
今ではチャットでのコミュニケーションが当たり前になっています。

新規アプリの開発にも便利

さらに、DockerでWebアプリの開発の敷居を下げることができました。
社内セミナーでDockerを紹介したときに、合わせてWebアプリのコンテナの雛形を用意しました。
RubyのSinatraというフレームワークのサンプルコードと、データベースを組み合わせた簡単なものです。(社内にはRubyユーザーが多いのです)
アプリの本体部分を書けば、docker-compose upとコマンドを叩くだけでサーバで動かすことができます。

これを使って、何人かがアプリを作ってくれました。例えば、

★レビュアーおみくじ (コードレビューの担当者を自動で決める)

★出席ぼっと (不在状況を朝一でチャットに投稿)

といったアプリがあります。
こういうちょっとしたアプリも、想像以上に仕事を快適にしてくれます。

まとめ

このように、Dockerのおかげで開発スタッフが気軽にWebサービスを立ち上げる文化ができました。
これまで挙げた例の多くは、Webサービスの開発・運営経験があまりない人が挑戦してうまくいっています。

もちろんハル研にはネットワーク管理の専任者もいて、そちらではサーバ機材の管理・ストレージ・Webサーバ・メールサーバなどの基幹サービスの安定運用を担ってくれています。
それに加えて、開発メンバーが気軽に新サービスを導入できる環境になっています。

開発チームのニーズに合ったサービスや、誰かが見つけた「これ面白そう」というサービスが気軽に導入できるのは、とても可能性を感じます。これからも、社内をどんどん便利に変えていけるといいなと思います。

  • 「Docker」は、Docker, Inc. の登録商標です。
  • 「GitLab」は、GitLab B.V. の登録商標です。
  • 「Mattermost」は、Mattermost, Inc. の登録商標です。
  • 「Linux」は、Linus Torvalds 氏の日本およびその他の国における登録商標または商標です。
タグ:
プログラマー