fbpx

[和訳]Docker for Macがより良い睡眠をもたらしてくれました。#docker

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

本稿は HOW DOCKER FOR MAC HELPS ME SLEEP BETTER AT NIGHT (2016/6/22) の和訳記事です。

私はマット・アイモネッティと申します。Spliceの協同設立者でCTOをやっております。 Splice社では、音楽プロデューサー向けのクラウドを構築しています。このプラットフォームは エンジニアが当然のことと考えている要素で成り立っています。 我々は音楽のバージョン管理や分散型の協同作業フローおよびサブスクリプションベースのサンプル、ループ、MIDIのマーケットプレースをを考え出しました。 それらすべて、ミュージシャンに好まれ、既に知っている音楽作成ツールを変更せずに使用できます。

私は開発者であり、創業者でもありますが、最後に悩んだ事は運用についてです。

splice

外見上非常に大きく見えるアプリケーションに対して約15人で対応し、毎日数テラバイトにものぼる音楽をプッシュしています。あなたがBitBucketやGitHubを使うようにトップの音楽プロデューサーや音楽愛好家はSpliceを使っています。

我々はどんなコンテンツも失ったりダウンさせる訳にはいきません。 さらに、我々には専門の運用エンジニアがいません。

多くの会社がそうであるように、我々は開発をMac上で行い、Linux上でデプロイしています。我々のアーキテクチャはAPIが中心で、バックエンドは少しC言語を使いながら主にGoで書かれています。 我々はMySQL、Memcached、RedisやElasticSearchのような様々なデータストアを使っています。

Dockerを使用する前は、開発部門、CI、運用部門が場合によってはデータストアに異なるバージョンを使うという問題を抱えていました。 すべてをコンテナ化することにより、今ではCIで本番テスト環境と商用環境で確実に同じバージョンを使って開発を行っています。 もしそれがローカルで動くのであればデプロイのパイプラインには何の驚きもありません。 ElasticSearchやRedisのバージョンをアップデートすることはDockerの構成ファイルのバージョンを変更するくらいに簡単です。

しかし正直に言うと、もしDocker for Macのメニューバーアイコンが魅力的でなかったらDocker for Macのことは忘れていたでしょう。また、我々のサービス、テストスイートや特定のコマンドを走らせるためいくつかのシェルエイリアスを作成しました:api-up, api-test, api-exec, api-down など。 プロセスはシームレスです。我々はローカルのファイルをローカルのエディタで編集し手いますが、何の問題もなく動作しています。 開発部門は他のサービスやデータストアをセットアップしたり保守することなくプログラムを書いています。 複雑な開発環境をセットアップし、保守していくことが不要になりました。 要は効率、短時間のフィードバックープ、何が問題なのかと言うことに集中したい開発部門内の摩擦を減らす事がすべてであり、これにより素晴らしい製品が生み出されます。

我々の素晴らしい製品について他に当然と考えられる事は、開発部門から運用部門のフローです。 我々は400のwebサービスを平均して1日に12回程度デプロイしています。  我々は、コミットしたものがそのままCI(Dockerが動作しているJenkins)に反映され、もしビルドがパスした場合そのイメージがステージング環境にデプロイされる継続的デリバリを利用しています。 そこから、Jenkinsのweb UIを経由してイメージを取得し、商用環境にデプロイしています。

もう一度言いますが、我々はうまく利用できるものに注力できるのです:開発部門と運用部門の環境が食い違っているため、デバッグをしないでプログラムを書くということは不気味な問題です。

CTOおよび設立者として、Dockerの最も大きな利点は新しいチームメンバーをいつでも用意できることです。これまでは5ページにわたる長いREADMEを依存性のある環境をセットアップする度に用意していました。また、このREADMEはすぐに古くなってしまいます。 今では5分で新しいチームメンバーが環境のセットアップを行い、コーディングを開始可能です。

Splice社とDocker社はその価値観を共有し、製造プロセスの合理化と改善が重要である事を信じています。より質の高い時間を費やすことができれば、それぞれのミュージシャン、エンジニアや我々の人生に直接効果が出るでしょう。

 

Dockerに関してさらに学ぶには

・Docker初心者は、10分のオンラインチュートリアルをご覧ください。
・画像、自動構築などを無料のDocker Hubアカウントでシェアしてみましょう。
・Docker 1.12リリースノートを読んでみましょう。
Docker Weeklyを購読してみましょう。
・次に予定されているDockerオンラインMeetupに登録してみましょう。
・次に予定されているDocker Meetupに参加してみましょう。
DockerCon 2016に登録してみましょう。
DockerCon EU 2015のビデオを見てみましょう。
Dockerコミュニティへの貢献を始めましょう。

新規CTA