オレゴン州ポートランドで HashiConf 2015 という、HashiCorp 社主催のカンファレンスが9月28日、29日の2日間にわたって開催されました。参加者は総勢300人。北米からだけでなく、知りうる限り、オランダ、ドイツ、オーストラリアや、インド、もちろん日本からも含めて、多くの国からの参加者が集まりました。
この記事は、1日目︵現地時間9月28日・月曜日︶と2日目それぞれ冒頭の﹁Opening Keynote﹂について、ざっくりと日本語で整理したものです。一応、私も現地で参加させていただくことができましたので、内容を共有させていただきます。
最後におまけとして、ポートランド情報と ESTA 再入国時の手続きが楽な件について。
Nomad の特徴は3つです。1つは他の HashiCorp ツールと同様、簡単に使えるということ。2つめは、開発者にとっても、運用にとっても、簡単にアプリケーションをデプロイし、スケールできるようにするため。3つめは、アプリケーションやジョブを、どこで、どのように実行するかを﹁.nomad﹂という拡張子のファイルで定義します。
Nomad のベースになっているのは、Serf のゴシップ・プロトコルと Consul の合意︵consensus︶プロトコルです。実際、Nomad のアーキテクチャは Consul に非常に似ているものです。単一のリージョンだけでなく、複数のリージョンに拡張することができます。HashiCorp のパートナーである DigitalOcean で試験したところ、NYC3 リージョンで 100 のクライアント、1000 コンテナの管理が可能でした。この環境上のスケールにかかる時間は、0.6 秒で 95%、1秒以内に 99%というもの。
Nomad は Docker コンテナのドライバに対応していますが、あくまで選択肢の1つです。コンテナに特化しているスケジューラとは異なり、Qemu や KVM のほか、通常の Java における jar ファイルを実行したり、バイナリを実行させることもできます。
Nomad に関しても blog 記事の参考訳を作成しましたので、よろしければご覧ください。
︻参考訳︼Nomad | Pocketstudio.jp log3
http://pocketstudio.jp/log3/2015/09/29/nomad-ja/
Vagrant 後継者、Otto のリリース
﹁Nomad﹂が発表されたので、これが今日の目玉かな?と思っていたら、Mitchell 氏から﹁one more thing!﹂︵もう1つ︶との発言が︵ Apple 風かな?︶。それが Otto ︵https://ottoproject.io/︶です。
HashiCorp は、Vagrant から多くのことを学んできました。1つめは、開発環境はどこでも似ているという点。2つめは開発者はデプロイしたいということ。3つめ、マイクロサービスの未来になるだろうという点。アプリケーションの依存性を解決しなくてはならず、毎回インストールするのも大変。確かにマイクロサービスは便利かもしれませんが、デプロイやオーケストレーションをどうすべきかという課題があります。
そこで登場するのが、Otto です。Otto は Vagrant の後継ソフトウェアです。コード化︵codification︶と、化石化︵Fossilization‥訳注、時間を経たことによる陳腐化︶を解決するものです。
Otto は開発途上であり、さらに賢くなっていきます。開発環境も変わります。これまで﹁vagrant up﹂と実行していたものは﹁otto dev﹂になります。実行すると、環境をどのように構築するのか、画面上に人が読みやすい状態で出力します。他にも﹁otto dev ssh﹂コマンドは﹁vagrant ssh﹂に相当するものですし、環境の破棄は﹁otto dev destroy﹂です。
ポイントは、開発環境を極めて簡単にすることです。たとえば、Ruby on Rails をデプロイするには、たくさんの方法があります。Google で検索すると、それこそ山のように出てきます。それをコピー&ペーストして使う手法。5年前なら良かったかもしれません。
今日の環境は、プライベートな環境とパブリックな環境を組みあわせるのが一般的です。他にもネットワークを NAT させるなど、非常に複雑化してきています。HashiCorp は、複雑化する環境を管理するために、Terrafom、Packer、consul、Vault、Nomad をつくってきましたが、個々のツールは独立していました。そこで、Otto の出番です。Otto はインフラ環境を一手に担います。
マイクロサービスは既存のモノリシック︵一枚岩︶の環境を置き換えるものです。今後マイクロサービスにチャレンジすることになるでしょう。そのとき、開発環境は複雑化するでしょうし、デプロイも大変になります。マイクロサービスの管理をとても楽にするのが Otto です。
Otto のまとめは、﹁Otto とは革新的な開発ツールであり、デプロイ用のツールでもあります。そして、マイクロサービスを Appfile という設定ファイルを通して管理する﹂と紹介され、1日目の KeyNote は締めくくられました。
Otto についても Blog の参考訳を作成しましたので、よろしければこちらもどうぞ。
︻参考訳︼otto | Pocketstudio.jp log3
http://pocketstudio.jp/log3/2015/09/30/otto-ja/
また、Otto と Atlas の関係は、Git と GitHub の関係に似ているとの言及もありました。
会場では、この説明に続いて、GitHub を連携しながら Packer ・ Terraform で環境の更新を行い、Slack に通史するデモが行われました。そして、最後にまとめとして、改めて﹁The Tao of HashiCorp﹂が、あらゆるプロジェクトにおける基本との紹介がされていました。
・ノベルティに箸をゲット!HashiCorpだけに、Hashi→箸とのことで、Mitchell氏曰く、日本人の皆に分かってもらえれば、それでいいよ︵笑︶とのことで、いやはや流石。
■ KeyNote 1日目まとめ
HashiCorp の概要 Vagrant のプロジェクトをスタートしてから、Packer、Serf、Consul等々、6つのオープン・ソース・ソフトウェアのプロジェクトを提供してきました。ジャンルは﹁develop﹂﹁operation﹂﹁runtime﹂﹁security﹂と幅広く。それぞれのツールのダウンロードは600万件を超えており、今は特に Vault が伸びている状態。後で Mitchell さんに聞いたところ、他の国に比べ、北米をのぞくと日本からのダウンロードが極めて多いそうです。 また、社員も創業時の2名から、現在は30名まで増えていることも紹介されました。 Consul のアップデート情報 Consul はサービス・ディスカバリを行うツールで、DNS や HTTP のインターフェースを備えています。10月の半ばに新しいメジャーバージョン 0.6 をリリースします。新機能の目玉は﹁Network Tomography﹂であり、あらゆるデータセンタやサービスを視覚化するもの。レイテンシも監視し対象としたオーケストレーションを行えるようにします。また ACL の改善やゼロ・ダウンタイム・アップグレードといった機能のほか、Go言語 1.5 で書かれている事が紹介されました。 Vault のアップデート情報 Vault は、半年前にリリースされたシークレット︵API 鍵や証明書などの秘密情報︶を管理するツールです。発表当日にバージョンアップが行われました。機能としては、全ての監査ログの記録や、SSH のアクセスコントロール、PGP 暗号化、Cubbyyhole ︵隠れ家、の意味︶バックエンドの対応等の新機能が発表されました。 特に SSH のアクセス・コンロールは新しいもので、﹁vault ssh﹂コマンドをサポートしただけでなく、鍵の自動的な生成︵ワンタイム・パスワード︶や、誰がいつどのマシンからログインしたかを把握できるようにもします。 このあたりの詳細は、HashiCorp のブログでも公開されています。また、日本語参考訳も作成しましたので、興味がありましたら、ご覧ください。 ︻参考訳︼ Vault 0.3 | Pocketstudio.jp log3 http://pocketstudio.jp/log3/2015/09/30/vault-0-3-ja/ Nomad のリリース 新しいツール Nomad ︵https://nomadproject.io/︶が発表されました。これは、ジョブ・スケジューラとクラスタの管理を行う新しいツールです。![nomad-announce](http://pocketstudio.jp.s3.amazonaws.com/log3/wp-content/uploads/2015/10/nomad-announce.jpg)
![nomad-architecture](http://pocketstudio.jp.s3.amazonaws.com/log3/wp-content/uploads/2015/10/nomad-architecture.jpg)
![otto-announce](http://pocketstudio.jp.s3.amazonaws.com/log3/wp-content/uploads/2015/10/otto-announce.jpg)
■ KeyNote 2日目まとめ
2日目は新発表はありませんでした。どちらかというと、HashiCorp がどのようにしてツールを作っているのか、その思想背景についての紹介です。1日目ひきつづき、Mitchell さんが直接話されました。 The Tao of Hashicorp︵HashiCorp道︶ HashiCorp があらゆるツールやサービスを作る時、コアとして考えているものが Tha Tao of HashiCorp です。ワークフローについてや、シンプル化についてなどなど、このあたりも以前に参考訳を作成していましたので、よろしければご覧ください。 The Tao of HashiCorp 日本語参考訳 | Pocketstudio.jp log3 http://pocketstudio.jp/log3/2015/03/14/the-tao-of-hashicorp/ HashiCorp のビジョン ここでは、ブログ等に書かれてない、初めて言及されることもありました。まず HashiCorp は 2012 年にスタートし、すべてのスタートとなったのが Vagrant です。そして、必要性に応じて、マシンイメージを管理する Packer や、ダウンタイムを減らすために Serf、Consul を開発してきました。Terraform は DevOps の問題を解決するものですし、シークレットの管理は Vault が行っています。 これらのピースを埋める最後のツールが otto と Nomad です。Nomad はコンテナのスケジューラであり、アプリケーションのイミュータビリティを実現するものです。これは以前は無かったものですが、Docker によってアプリケーションのイミュータビリティが具現化されたからとのことです。 いずれも、技術ありきではなく、ワークフローに焦点をあてて開発がされていました。そして Atlas は、オープンソースとして提供していたツールをツールボックス︵道具箱︶としてまとめ、自動的なセットアップや GitHub との連携などをもたらします。 HashiCorp の DevOps HashiCorp 社自身が、どのように Atlas を使っているかの紹介です。Atlas のアーキテクチャについて。ノートPC上の Vagrant で開発を行い、Atlas 上の Packer で構築し、構築時のログをブラウザで見ることができます。そして、Terraform を使えば、あらゆる環境に対してデプロイします。Nomad ︵コンテナ︶の対応は、次のステップです。![serf-consul-vault](http://pocketstudio.jp.s3.amazonaws.com/log3/wp-content/uploads/2015/10/serf-consul-vault.jpg)
![otto-atlas-github](http://pocketstudio.jp.s3.amazonaws.com/log3/wp-content/uploads/2015/10/otto-atlas-github.jpg)
■ その他
・他にもたくさんの発表がありました。KeyNote の詳細とあわせて、内容に関しては、またあらためてどこかで共有したいなと思っています。 ・HashiConf はホスピタリティが高かったといいますか、快適なイベントでした。コーヒーがずっと飲めましたし、朝食・昼食が提供されたのも有り難いところ。参加者も多くもなく少なくもなく、会場でコミュニケーションするには丁度いい人数かなと思っています。HashiCorp の方には感謝です。 ・ノベルティのシール群は、新しいコミュニケーションの提案とのこと。自分の使っているシールをPCに貼ることで、カンファレンス会場における、新しいコミュニケーションの切っ掛けにしてほしい!とのことでした。![hashicorp-stickers](http://pocketstudio.jp.s3.amazonaws.com/log3/wp-content/uploads/2015/10/hashicorp-stickers.jpg)
![hashi](http://pocketstudio.jp.s3.amazonaws.com/log3/wp-content/uploads/2015/10/hashi.jpg)
■ おまけ‥ポートランドは綺麗な街
アメリカはサンフランシスコしか行ったこと無いのですが、ポートランドは自然が町並みに溶け込んだ静かで綺麗な街でした。市内にライトレール︵市内電車︶が走っていて、地元の方には頻繁に利用されている模様です。あとは、所どころ自転車専用レーンもあるのが気になりました。朝8時台の渋滞︵?︶と思わしき時間帯も、そんなに車も多くなく、空気が澄んでいたのが印象的。あと、夜も市街部は外灯が明るくて、比較的安全な雰囲気でした︵浮浪者が少ない印象︶。 いつか、プライベートでのんびりと訪れてみたいものです。特に、ビールやワインがめちゃくちゃ美味しかったので。正直、行くまでポートランドのことは知らなかったのですが、ビール醸造所が多くて有名みたいなんですね。いろいろ味を覚えたので、機会があればまたと思っています。![portland](http://pocketstudio.jp.s3.amazonaws.com/log3/wp-content/uploads/2015/10/portland.jpg)