タグ

ブックマーク / blog.yuuk.io (21)

  • サーバ「管理」ツールとしてのMackerelの起源 - ゆううきブログ

    この記事は、SaaSのサーバ監視サービスMackerelを起源を遡り、そこから現在の姿に至った経緯をはてな社内のエンジニアに共有するためのものです。 なお、ここに書かれていることは、Mackerel開発チームの公式見解ではありません。 概要 Mackerelは、もともとは2007年ごろに開発されたはてなの社内のサーバ管理ツールであり、動的なインフラストラクチャに対応するために、現在でいうところのInfrastructure As Codeを目指したものです。 そこから2013年にSaaSのサービスとして開発され、コードベースとアーキテクチャは全く新しくなり、監視機能を備え、サーバ「監視」サービスと呼ばれるようになりました。 しかし、はてな社内では、プログラマブルなAPIを備えたサーバ「管理」サービスとして、Mackerelを中心にしたインフラストラクチャを構築しています。 Mackerel

    サーバ「管理」ツールとしてのMackerelの起源 - ゆううきブログ
    koemu
    koemu 2017/11/09
    「1つ1つの要素を管理するというより、関係そのものを管理する必要がでてくると考えます。」前職で解決できんかった問題だった。みんな悩んでたんだな…
  • 高度に発達したシステムの異常は神の怒りと見分けがつかない - IPSJ-ONE2017 - ゆううきブログ

    名古屋大学で開催されたIPSJ-ONE2017 で登壇しました。 IPSJ-ONEというのは、情報処理学会の各研究会から選ばれた日の若手トップ研究者17人が集まり、自身の研究を高校生でもわかるように発表するイベントです。 1000人ぐらい入る講堂で、しかもニコニコ生放送で配信されるというとても大掛かりなイベントです。 ちなみに、昨年は、同じ研究会からの推薦で、 id:matsumoto_r (matsumotory) さんが登壇されています。 IPSJ-ONE 2016で登壇してきた - 確実に時代は変わってきている #ipsjone - 人間とウェブの未来 発表 「高度に発達したシステムの異常は神の怒りと見分けがつかない」という、一見何の話かわからないやばそうな話なんですが、大真面目に話してきました。 スライドを以下に公開しています。ただ、スライドだと何の話をしているかおそらくわからな

    高度に発達したシステムの異常は神の怒りと見分けがつかない - IPSJ-ONE2017 - ゆううきブログ
    koemu
    koemu 2017/03/22
    「「実験」です。要は、コンピュータシステムの未知について、科学のアプローチを実施しよう」
  • ウェブアプリケーション開発に新言語を採用したときにインフラで考えたこと - ゆううきブログ

    この文章は、サーバサイドのウェブアプリケーション開発において、社内実績の少ない新しい言語を採用したときにインフラ面で考慮したことを社内向けにまとめたものです。 はてなでは、長らくPerlでウェブアプリケーション開発を続けてきた一方、ここ数年で社内でScalaまたはGoの採用事例も増えてきました。 今後開発が始まるプロダクトにおいても、PerlScalaGoもしくは他の言語を採用するかどうかを開発開始時に選ぶことになるでしょう。 新言語を採用するときに、考慮すべきことの一つとして、「インフラ」への影響があります。 新言語に関する雑談をしていると、ウェブアプリケーションエンジニアに「インフラ」への影響について聞かれます。 もしくは、ウェブオペレーションエンジニアから考慮するポイントを伝えることもあります。 ScalaGo以外に、Node.jsやサーバサイドSwiftはどうかというのも雑談

    ウェブアプリケーション開発に新言語を採用したときにインフラで考えたこと - ゆううきブログ
  • Keepalivedのシンタックスチェッカ「gokc」を作った - ゆううきブログ

    Keepalivedのシンタックスチェッカ「gokc」をGo言語で書きました。 github.com 執筆時点でのKeepalived最新版であるバージョン1.2.19まで対応していることと、include文に対応していることがポイントです。 使い方 https://github.com/yuuki/gokc/releases からバイナリをダウンロードします。OSXでHomebrewを使っていれば、 $ brew tap yuuki/gokc $ brew install gokc でインストールできます。 gokcコマンドを提供しており、-f オプションで設定ファイルのパスを指定するだけです。 gokc -f /path/to/keepalived.conf gokc: the configuration file /etc/keepalived/keepalived.conf syn

    Keepalivedのシンタックスチェッカ「gokc」を作った - ゆううきブログ
    koemu
    koemu 2016/02/02
    ちゃんとしたシンタックスチェックがしづらかったから素晴らしい
  • 2015年の心に残った技術エントリ - ゆううきブログ

    1年分の自分のはてなブックマークを見直した。 およそ 2,000 URLのエントリの中から、特に感銘を受けたり、記憶に残ったエントリを紹介したい。 2015年にブクマしたというだけで、必ずしも2016年に公開されたエントリばかりではないことに注意。 エントリ Scalable Deployments Advanced Techinic for OS upgradeing in 3 minutes MySQLSSDとかの話 モバイルアプリのスレッドプールサイズの最適化 性能測定道 情報科学における18のメタテクニック Webオペレーションエンジニアアウトプットと開発力 はてなに入った技術者の皆さんへ シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ペパボのインターネット基盤技術研究・開発の活動 インフラチーム改め Site Reliability Engi

    2015年の心に残った技術エントリ - ゆううきブログ
    koemu
    koemu 2016/01/05
    紹介してもらって嬉しいです!
  • Serverspec + Mackerel APIによるインフラテストの実運用化 - ゆううきブログ

    この記事は Mackerel Advent Calendar 2015 の24日目の記事です。 前回は、id:hitode909 による 三度の飯より監視と通知!Mackerelで自分の心拍数を監視しよう - hitode909の日記 でした。 今回は、Mackerel APIを用いてServerspecによるサーバ構成テストを実運用化した話を紹介します。 Serverspec単体では手の届かないかゆいところをMackerelでサポートするところがポイントです。 Mackerelはもちろんですが、他のサーバ管理ツールにも通用する汎用的な話になるように心がけています。 Serverspec導入の背景 Serverspec Serverspec × Mackerel ロール単位でspecを書く ディレクトリレイアウト Thorfile サーバ上でServerspecをローカル実行する あとがき

    Serverspec + Mackerel APIによるインフラテストの実運用化 - ゆううきブログ
  • YAPC::Asia 2015で技術ブログを書くことについて発表しました - ゆううきブログ

    YAPC::Asia Tokyo 2015の前夜祭で上記のタイトルで発表しました。 今回が最後のYAPCということで、どのようなテーマで応募するかについてかなり悩みました。 技術的にめぼしい内容はほとんどブログに書いてしまったので、ブログを書くことそのものについて発表してみようと思いました。 内容についても、トークの話の元となる個々の要素についてはほとんど固まっていたものの、どのように構成して取捨選択するかということに時間を使いました。 基的に難しい話はないので、スライドには極力文字を載せずに口頭の話を聴いていただくという形をとりました。 したがって、スライドだけみても情報量がほとんどなく何の話か全然わからないので、公開はしないでおこうと思います。 トーク内容 トークの内容は前半部分と後半部分に分かれています。 前半は基的に来ていただいた方々に楽しんでいただくように構成して、トークの主

    YAPC::Asia 2015で技術ブログを書くことについて発表しました - ゆううきブログ
    koemu
    koemu 2015/08/24
    「その人なりの考え方や思想のようなものはもっと息が長いと考えています」
  • はてなで大規模サービスのインフラを学んだ - ゆううきブログ

    中〜大規模サービスのインフラの様子を知りたいアプリケーションエンジニア向けに、もともとアプリケーションコードを書いていた視点から、個人的な体験をベースにはてなで大規模サービスのインフラを学んだ過程や学んだ内容の一部を紹介します。 Webアプリケーションのブラックボックス Webアプリケーションフレームワークの向こう側 なぜ複数のサーバが必要なのか 突然のWebサービス3層構成 リバースプロキシ アプリケーション データベース その他のコンポーネント キャッシュは麻薬 飛び道具としてのKVS/NoSQL 非同期処理 バッチ処理 Mackerelの場合 参考 まとめ Webアプリケーションのブラックボックス 今年もはてなインターンの時期が近づいてきた。 毎年ではないけど、はてなインターンでは「インフラ講義」というのをやっている。 今年はインフラ講義の講師としてアサインされたのでちょうど何を話そ

    はてなで大規模サービスのインフラを学んだ - ゆううきブログ
    koemu
    koemu 2015/07/30
    こう言うモデリングするスキルをどの機会に高めたんだろうっていつも感服しつつ読んでいる
  • Webシステムにおけるデータベース接続アーキテクチャ概論 - ゆううきブログ

    先月投稿した2015年Webサーバアーキテクチャ序論では、Webサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介しました。 今回は、前回同様、主に新卒Webエンジニア向けに、Webアプリケーションサーバとデータベースサーバ間の接続管理モデルと運用事情について紹介します。 データベース接続の永続化やコネクションプーリングとは何なのか、なぜ必要なのかといったことが主な話題です。 背景 データベース接続の永続化とはなにか データベース接続のオーバヘッド データベース接続の永続化手法 コネクションプーリングとはなにか コネクションプーリング: ドライバ型 コネクションプーリング: プロキシ型 コネクションプーリング全体について PostgreSQLMySQL 参考資料 まとめ 背景 2015年Webサーバアーキテクチャ序論では、Webサーバアーキテクチャの話とWebアプリケーショ

    Webシステムにおけるデータベース接続アーキテクチャ概論 - ゆううきブログ
  • 2015年Webサーバアーキテクチャ序論 - ゆううきブログ

    2023年03月31日追記:この記事を基に、@sadnessOjisanさんより、コードレベルにより踏み込んだ、かつ、グリーンスレッドベースの新しいWebサーバアーキテクチャも含めて整理された記事 Webサーバーアーキテクチャ進化論2023 | blog.ojisan.io が公開されました。 主に新卒のWebエンジニア向けに、古典的なWebサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介します。 この辺りの話題がWeb界隈で流行っていたのは数年以上前というイメージですが、Webサービスは相変わらずWebサーバの上で動いているので、流行り廃り関係なく学ぶべき内容だと思っています。 また、HTTP/2がいよいよRFC化し、既にh2oやtrusterdなどのHTTP/2のサーバ実装があり、今後Webサーバアーキテクチャを再訪することが増えるような気がしています。 ところが、We

    2015年Webサーバアーキテクチャ序論 - ゆううきブログ
    koemu
    koemu 2015/05/28
    はてなには大学院できちんと学んできている人が集まっているってのを記事からひしひしと感じる
  • Mackerelを支える時系列データベース技術 - ゆううきブログ

    【追記 2018/01/06】現在Mackerelは、時系列データベースという概念をクラウドの技で再構築する - ゆううきブログの時系列データベース実装へ移行しています。 サーバモニタリングサービス Mackerel で採用している時系列データベース Graphite を用いたシステムの構築と運用事情を紹介します。Graphiteについては、プロビジョニングやアプリケーションからの使い方、Graphite自体のモニタリングなど様々なトピックがありますが、特に大規模ならではのトピックとして、Graphiteの内部アーキテクチャ、パフォーマンスチューニングおよびクラスタ構成についての知見を書きます。 背景 Graphiteシステム概観 データ構造とアーキテクチャ whisperのデータ構造 carbon-cacheのアーキテクチャ パフォーマンス特性 パフォーマンスチューニング ミドルウェアレ

    Mackerelを支える時系列データベース技術 - ゆううきブログ
  • Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ

    記事の公開後の2016年7月にはてなにおけるチューニング事例を紹介した。 はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck HAProxy や nginx などのソフトウェアロードバランサやリバースプロキシ、memcached などの KVS のような高パケットレートになりやすいネットワークアプリケーションにおいて、単一の CPU コアに負荷が偏り、マルチコアスケールしないことがあります。 今回は、このようなネットワークアプリケーションにおいて CPU 負荷がマルチコアスケールしない理由と、マルチコアスケールさせるための Linux カーネルのネットワークスタックのチューニング手法として RFS (Receive Flow Steering) を

    Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ
    koemu
    koemu 2015/03/31
    大学のレポートの手本を読んでいるような、美しいまとめだった。
  • インフラエンジニア向けシステム系論文 - ゆううきブログ

    この記事ははてなエンジニアアドベントカレンダー2014の23日目とシステム系論文紹介 Advent Calendar 2014の23日目を兼ねています。 今回は、インフラエンジニア向けにシステム系論文を読むということについて書きます。 ここでいうインフラエンジニアは、Webサービスを作る会社のサーバ・ネットワーク基盤を構築・運用するエンジニアを指しており、はてなではWebオペレーションエンジニアと呼んでいます。 人が足りなくて普通に困っているので採用にご興味のある方はぜひこちらまで。 SRE (Site Reliability Engineer) 職 - 株式会社はてな はてなでは、id:tarao さんを中心に有志で論文輪読会を定期的に開催しており、システム系論文にかぎらず、言語処理系、機械学習についての論文などが読まれています。 だいたい1人でインフラまわりの論文を読んでいて、インフラ

    インフラエンジニア向けシステム系論文 - ゆううきブログ
    koemu
    koemu 2014/12/24
    USENIX以外の検索先、参考になった。 ITインフラ系の仕事を本格的に始める前、この類は論文にしづらいという先入観があったのを反省している。
  • Perlはもう古い、これからはDocker - ゆううきブログ

    記事の内容はWEB+DB Vol.88 Perl Hackers Hub 第34回 に「DockerによるPerlのWebアプリケーション開発」という記事にまとめなおしていますのでそちらをご覧ください。 「Perl Hackers Hub」では、「DockerによるPerlのWebアプリケーション開発」と題して@y_uuk1さんにご執筆いただきました!Dockerの基的な考え方からPerlのWebアプリ向けのDockerfileの書き方まで、実践的な内容です! #wdpress— WEB+DB PRESS編集部 (@wdpress) 2015, 8月 22 この記事は Perl Advent Calendar 2014 の19日目の記事です。 Plack/Carton で構築したモダンな Perl の Web アプリケーションの開発環境を Docker 化するための試行錯誤を紹介します

    Perlはもう古い、これからはDocker - ゆううきブログ
    koemu
    koemu 2014/12/19
    最新の知見だ
  • Go言語によるCLIツール開発とUNIX哲学について - ゆううきブログ

    この記事ははてなエンジニアアドベントカレンダー2014の8日目です。 今回は、Go言語でサーバ管理ツール Mackerel のコマンドラインツールmkr を作るときに調べたこと、考えたこと、やったことについて紹介します。(mkr は現時点では開発版での提供になります。) コマンドラインツールについて コマンドラインツールを作るにあたって、@deeeet さんの YAPC Asia 2014 での発表資料が非常に参考になります。 書籍 UNIXという考え方ーその思想と哲学 の内容をベースに、コマンドラインツールはどうあるべきかということが丁寧に説明されています。 上記資料から引用させていただくと、コマンドラインツールにおいて重要なポイントは以下の7つであるとされています。 1つのことに集中している 直感的に使える 他のツールと連携できる 利用を助けてくれる 適切なデフォルト値を持ち設定もでき

    Go言語によるCLIツール開発とUNIX哲学について - ゆううきブログ
  • Go言語の便利情報 - ゆううきブログ

    ここ1年ぐらい収集した便利 Go 言語情報を並べただけです。 http://b.hatena.ne.jp/y_uuki/golang/ https://github.com/stars?language=go オフィシャル 言語機能解説を中心にピックアップ。 Effective Go - The Go Programming Language Go's Declaration Syntax - The Go Blog Share Memory By Communicating - The Go Blog Defer, Panic, and Recover - The Go Blog Go Concurrency Patterns: Timing out, moving on - The Go Blog Go Slices: usage and internals - The Go Blog

    Go言語の便利情報 - ゆううきブログ
    koemu
    koemu 2014/11/15
    知らないのがあるので確認しよう
  • Dockerは速いのか?Dockerのパフォーマンスについて重要なことは何か? - ゆううきブログ

    だいぶ前からDockerLinuxコンテナ)のパフォーマンスについて、速いことは速いだろうけどどの程度速いのか、もし遅いことがあるなら何がパフォーマンスにとって重要なのか(AUFSが遅いとかそういうの)が気になっていたので、今回は で紹介されていた Docker のパフォーマンス検証に関する IBM の Research Report を読んだ。Report の内容をベースに、Docker のパフォーマンスの勘所などをまとめてみた。 Report のタイトルは An Updated Performance Comparison of Virtual Machines and Linux Containers 。 GitHub にベンチマークコードと実験データが置いてあってちゃんとしてる。 前提 まず、VMとコンテナの歴史を振り返るのに知らぬはエンジニアの恥。今さら聞けない【コンテナ/仮想

    Dockerは速いのか?Dockerのパフォーマンスについて重要なことは何か? - ゆううきブログ
    koemu
    koemu 2014/11/10
    輪講たのしそう!
  • Docker 使ってたらサーバがゴミ捨て場みたいになってた話 #immutableinfra - ゆううきブログ

    Immutable Infrastructure Conference #1 : ATND でLTしてきた。 内容はきれいにゴミを捨てましょうという話以上のものは特にない。 背景の説明が少し雑だったので補足すると、Jenkins のジョブスクリプトで、git push する度に docker run していたら ゴミがどんどんたまっていったという感じ。 1 push あたり、アプリコンテナ、DBコンテナとか合わせて3コンテナぐらい起動してるから開発が活発だと、どんどんゴミがたまる。 さらに補足すると、Device mapper がらみのゴミは、aufs 使うとかなり解決できそうな感じはしてる。 (Device mapper だとブロックデバイスレベルでイメージ差分を表現するので、デバイス毎(差分)毎に mount が走るみたいな実装になってるけど、aufs だとファイルシステム単位で複数の

    Docker 使ってたらサーバがゴミ捨て場みたいになってた話 #immutableinfra - ゆううきブログ
  • モニカジ京都に参加して、SensuとGraphiteの話をしました #monitoringcasual - ゆううきブログ

    Monitoring Casual Talk in Kyoto on Zusaar 先週のことだけど、モニカジ京都に参加した。 というか、主催者のid:shoichimasuharaさんとかいう人に雑に主催者に入れられた。 といってもなにもしてなくて、ただインターネットで暇そうな人間を勧誘しただけだった。 @moznion http://t.co/ssAvvYgjD1— ゆううき (@y_uuk1) 2013, 11月 2 当日のだいたいの雰囲気は モニカジin京都を開催しました #monitoringcasual - 桝原翔市的博客 に書いている通り。 shoichiさんが無限に営業活動して、人が集まってきてた。 フルスタックっぽいなと思った。 おつかれさまでした。 次回もよろしくおねがいいたします。 自分の発表 当日僕は、SensuとGraphiteの話をしつつ、ひたすら異常な努力をし

    モニカジ京都に参加して、SensuとGraphiteの話をしました #monitoringcasual - ゆううきブログ
    koemu
    koemu 2013/12/10
    「RRDtoolがネックになって最悪」
  • Chefがつらい人のためのAnsibleのはなし - ゆううきブログ

    Chef使おうとしてるけどChefいろいろつらい. 具体的には以下がつらい. 独自概念多い chefのクライアントを対象ホストに入れなければならない knifeとか覚えないといけない外部ツールがある 最初からディレクトリ構成がわいわい (rails newしたときのあのきもち) 公式ドキュメントの量が多いかつわかりにくい 以前にmiyagawaさんのpodcast を聞いてたらnaoyaさんがAnsibleっていうシンプルなプロヴィショニングツールがあるっていう話をされていたので,使ってみた. AnsibleWorks | Radically simple IT orchestration Ansible 触ってて感じるイメージは,ChefがRailsでAnsibleがSinatraな感じ. ディレクトリ構成がない (一応大規模運用を考えたディレクトリ構成のベストプラクティス Best P

    Chefがつらい人のためのAnsibleのはなし - ゆううきブログ