inFablic | Fablic, inc. Developer's Blog.

フリマアプリ フリル (FRIL) を運営する Fablic の公式開発者ブログです。Fablic のデザイナー・エンジニア・ディレクターが情報発信していきます。

DevOps先駆者Mitchell HashimotoとのMeetup

こんにちは、サーバーサイドエンジニアのtommyです。

この記事では、2017-09-25に開催された DevOps先駆者Mitchell HashimotoとのMeetupの様子をレポートします。
このイベント、大変な人気で140人の枠に対して236人の応募があったようです。

f:id:infablic:20170926103653j:plain

Michell Hashimotoとは

ご存知の方も多いかと思いますが、彼はVagrantの作者であり、今年のForbes誌注目若手No1アントレプレナーでもあります。
Vagrant製作時は19歳だったとのこと。
以前に彼に会ったことのある同僚 いわく、

  • 「彼は単に優れたエンジニアというだけでなく、解くべき問題を見つけるのがうますぎる」
  • 「そしてめっちゃ若かった」

とのこと。
Vagrantを見れば、その目の付けどころのシャープさは一目瞭然ですね。

HashiCorp Japanの紹介

まず最初にHashiCorp Japanのメンバー紹介がありました。
最近立ち上げたばかりとのことで、基本的に日本のメンバーは営業(サポート窓口)の方と、総務・事務の方がいらっしゃるようです。

The Tao of HashiCorp

f:id:infablic:20170927000451j:plain 次に、日本のDevOpsグランドマスターである前佛さんのトークがありました。
そこで語られたのは The Tao of HashiCorp についてでした。
一言で表すなら、HashiCorpがプロダクトを作る上での基礎とのこと。

  • workflowありきである
  • 目的に対し、まずどんな近道があるかを調査する

などが述べられていました。
なお、こちらについては公式サイトに全文記載がありますのでそちらもどうぞ

Michell Hashimotoさんのお話

f:id:infablic:20170927000506j:plain

さて、本題のお話が始まりました。

ここからは、実況形式でお送りします。

  • すべてのツールとこれからについて

    • 過去12ヶ月で6つのプロダクトを作っている
    • 22 million downloadsされている
  • Terraformについて

    • provisioningのツールである
    • provisioningをコード化する
    • aws, gcpであろうと、一つのプラットフォームでprovisioningできる
    • モジュール化されたアーキテクチャである。
    • 新しいプラットフォームもプラグインでサポートされていく場所を作った → registory.terraform
    • 実際にはいくつかの企業とパートナーシップを結んで一緒にやっている
    • OSSなので、moduleを作ったら25秒でパブリッシュできるそうです。
  • HashiCorp製品のコンセプト

    • 一つひとつでもしっかり動く
    • イメージはUnixのパイプ
    • 当然、全て合わせて使ってもらえば強力だが、一つ一つを必要に応じて導入しても十分なメリットがある
  • Consul

    • service discovery
    • localのDNS ヘルスチェック
    • 非常にスケールする。うしろにサービスをばらまくときに有用である
    • 学会でも発表しているが、非常にラージスケールでも動作し、25万ノードでも問題なかった
    • 25万ノードを運用するサービスがなんであるかは想像におまかせする
  • Nomad

    • リソーススケジューラ
    • Nomad UI でサービス単位で見れるようになった
    • job detail, cpu, memoryなど
    • Nomadのラージスケールでのユースケースは増加している
    • namespacesをサポートしている
  • Policy as Code

    • enterprise onlyの機能として考えている
    • automationの歴史
    • deployをautomateする
    • 人間がチェックすると桁を一つ間違えて5000個のインスタンスをデプロイして100万溶かすというようなこともある
    • それを防ぐ
    • 土日にしてはいけないこと、逆に土日にしかしないジョブがある
    • 特定の機能の制限
    • 今はworkflow毎にそれぞれのUIで作業している
    • テストが行われてたか、前の作業の状況はどうであったかはマニュアル、アプリに依存している
    • それを自動化することで解決したい
    • code化されたpolicyセットを用意する
    • 様々な企業を観察した結果、policyを作成しているのはプログラマーではない
    • この概念は新しい機能として各プロダクトに組み込む
    • active enforcement
      • policyを破るような変更があった場合、検知する
    • passive enforcement
      • 例えば、そのジョブが実行される時点で任意のタグついてなきゃいけない。(けどついていない)などの場合(受け身)でもpolicyが満たされているかをチェックできる
    • workflowが大事
    • 理由付けもできる
    • jenkinsのようなCIツールに簡単に組み込んで使える
    • 外部のシステムとの連携を可能にする
    • Sentinel というフレームワークとして実装する
    • sdkは無料でダウンロードできる
    • どうやってログインしたかで機能の制限をつけることができる
    • どの環境からどのdocker imageを引っ張ってこれるか?のような制限をつけることもできる

Q & A

コンペティターとの差別化

  • サービス毎に差別化のポイントが違う
  • azure manager, aws consoleなど
  • どのクラウドでも必ず動く
  • micro serviceとクラウド化
  • 速い
  • さばける

Terraformで複数の少しづつ違う環境にデプロイするベストプラクティス

  • module化して使うこと
  • workspaceを切り替えることによってブランチを切り替えるように使える

Terraform モジュールのネストについて

  • 指摘されているように不安定だった
  • 集中的に取り組んで修正しているバグ。new versionでコアなところのバグを修正したものをリリース予定

After Party

HashiCorpと参加者との交流会も催されました。寿司やアジアンテイストのオードブルが用意されていました。 f:id:infablic:20170927004603j:plain

食事の後は、Michell氏と名刺交換して写真撮影!(右がワタクシ、真ん中がMichell氏、左の方はワタクシの元同僚です)

f:id:infablic:20170927004754j:plain

会社の製品を通して最も大切にしていることはなんですか?と質問してみたところ、
「多すぎて答えられないけど、すべてを自動化したいかな!」
といったことを気さくに答えてくれました。(多分)
自動化最高。

以上、Meetupの模様をレポートしました!
Fablicでもスケールするインフラ構築の必要性が急速に高まっているので、積極的に導入していきたいと思います!