Fukuoka.go#14+Umeda.go
「Getting started Central Dogma with Golang」というタイトルでLTしてきました。

大阪のGo言語コミュニティUmeda.goとGoogle Hangoutsで繋いで大阪・福岡からそれぞれ発表を行い、質問もお互いにしあうというスタイルでした。
こういうの初めてでしたが、すごく良いと思いました。


僕の発表資料はこちらです。


色んな方が興味を持っていただき、たくさん質問をしていただきました。ありがとうございます。
以下に補足の説明を書こうと思います。



Central Dogmaとは?

LINE社がOSSとして開発している、アプリケーションやサービスの設定を保存するためのリポジトリです。


開発者によるプレゼン資料

At TWJUG Meetup in Taipei on June, 2018:

At LINE DEVELOPER DAY 2017:

Central Dogma LINE's Git-backed highly-available service configuration repository from LINE Corporation

Central Dogmaの特徴

  • 自分のアプリケーションからCentral Dogmaで管理している設定をWatchしておいて、変更があった時に変更内容をリアルタイムに受け取る事ができる
    ※つまり、動的に変更したい設定をCentral Dogmaで管理しておけば、アプリケーションのビルド/デプロイ/再起動なしでアプリケーションに設定を反映する事が出来る
  • Web UIが付属していて、Central Dogmaで管理している設定を直接変更する事も可能
    ※実際の運用では、Central DogmaのWeb UIで編集するよりも専用の管理画面を作った方がいいと思います。Central Dogmaのクライアントライブラリ(Java or Golang)を使えば、Central Dogmaで管理している設定を変更するアプリが作れます
  • 現在提供されているクライアントライブラリはJavaとGolang
  • Central Dogmaで管理している設定は、Gitでバージョン管理される
  • 外部のGitリポジトリ(github.com, GHE, etc)からデータをミラーリングする事が出来る
    ※つまり、「Central Dogmaで管理する設定を変更する際に、githubのPull Requestでレビューする」という運用フローにする事も出来る

以下のようなイメージです(上記のスライドより)


Central Dogmaのユースケース

例えば、以下のようなユースケースが考えられます。

  • MicroservicesでのService discovery
  • Rate limit
  • A/Bテスト
  • 新機能のRollout
  • エンジニア以外(ビジネス側など)の人でもサービスの設定を変更できるようにしたい
  • など


デモ

今回のLTではサンプルアプリを使ってデモをしました。


デモの内容

  • アプリは単純なEcho APIです
  • APIのレスポンスに使うテキストをCentral Dogmaで管理しています
  • Central DogmaのWeb UIで設定を変更したら、APIのレスポンスが変わるというデモを行いました

サンプルアプリのソースコード

アプリからCentral Dogmaで管理している設定をWatchするのはめっちゃ簡単に実装できます。



以上です。

Central Dogma便利なので、ぜひ試してみてください。