Mackerelの技術の全て。これまでの道のりと更なる発展に向けて
TIME rest time current/total
TopicsPlaceHolder

Mackerelの技術の全て。これまでの道のりと更なる発展に向けて

JTF 2016

Jul 24th, 2016

Profile

songmu

経歴

インフラを意識してコードを書くということ

私とPerl

私とISUCON

私とGo

最近Goで作ったもの

ニッチなツールを作るのが趣味

Mackerel Logo

 

可視化

アラート

最大1ロール2554台!

100週連続リリース

100週連続リリース

100週連続リリースの裏側

なぜサーバー監視・監視SaaSなのか

ツールのクラウド化の流れ

ビジネスの本質に集中するため

社内監視サーバー → Mackerel

技術の進化への追随

モニタリングの重要性の向上

すべてのサービスで健全性と一般的な監視関連のメトリックを同じように出力することをおすすめします。(中略) どれを選んでも、標準化するようにしてください。

Mackerelの開発について

開発体制

アーキテクチャ

技術スタック

Mackerel開発における言語多様性

MackerelとScala

Why Scala?

Scalaの使いドコロ

MackerelとGo

事例1: mackerel-agent

Why Go?

事例2: mkr

事例3: URL外形監視ワーカー

外形監視ワーカーのアーキテクチャ

OSS副産物

Perlのモジュールの思想を受け継いだものが結構できた

Go本体への貢献

特定のカーネルオプションが向こうになっている環境でGoが即死する問題を修正。

Golangを書いてみて

Goの使いドコロ

MackerelにおけるPerl

自動化機構の罠

ツールをテストする

ちゃんとテストを書けるのは安心

if (!$ENV{HARNESS_ACTIVE}) {
    main();
} else {
    # When called via `prove`, tests will run.
    run_tests();
}

Perlの使いドコロ

プロジェクトの渋い脇役としても活きる

MackerelにおけるRuby

事例1: fluent-plugin-mackerel

その他Ruby事例

Rubyの使いドコロ

Mackerelにおけるpython

Graphite

Graphiteの構成

線形回帰

→ 将来予測機能の足がかりに

https://github.com/graphite-project/graphite-web/pull/1447

読み込みパフォーマンスの向上

書き込み効率の向上

言語選定について

特性に応じた選択をする。エコシステムに乗っかる。

エンジニア向けSaaSを開発するということ

ドッグフーディング

感謝される

否応なしに新しい技術を学ぶ必要がある

キャリアとビジネス

とにかく楽しい

最高のエンジニア向けサービスを自分自身で成長させられるという実感を持ちながら働けるという最高の状態

人は足りない

Mackerelシステムのこれから

Webオペレーションの中核サービスとして

アルゴリズムにおける支援

サービスの急成長

時系列データベースの強化

次世代の時系列データベースに刷新したい

【急募】We are Hiring

hatena