読者です 読者をやめる 読者になる 読者になる

高度に発達したシステムの異常は神の怒りと見分けがつかない - IPSJ-ONE2017

名古屋大学で開催されたIPSJ-ONE2017 で登壇しました。 IPSJ-ONEというのは、情報処理学会の各研究会から選ばれた日本の若手トップ研究者17人が集まり、自身の研究を高校生でもわかるように発表するイベントです。 1000人ぐらい入る講堂で、しかもニコニコ生…

2016年のエンジニアリング振り返り

はてなに入社して3年経った。 入社3年成功 https://t.co/GnQ3gEdLs4— ゆううき (@y_uuk1) 2016年12月1日 3年というのは節目と言われる。働き方や考え方の軸が多少変わってきたように思う。 技術観点では、仕事が少しつまらなくなっていた時期があった。 技術…

ウェブオペレーションエンジニアになるまでの思い出

書籍「ウェブオペレーション」の中で、「ウェブオペレーションは技芸であり科学ではない」*1という言葉がある。 実際、その通りだと思う。 しかし、技芸というのはどうやって学べばよいのか。 教科書のようなトップダウンな知識体系を構築しようと試みようと…

情報処理学会でウェブオペレーション技術について招待講演した話

情報処理学会インターネットと運用技術研究会が主催されているIOTS2016という研究会で、「サーバモニタリング向け時系列データベースの探究」というタイトルで招待講演をしてきました。 講演のきっかけ インターネットと運用技術研究会(以下IOT研究会)という…

ISUCON予選突破を支えたオペレーション技術

ISUCONに参加する会社の同僚を応援するために、ISUCONの予選突破する上で必要なオペレーション技術を紹介します。 自分がISUCONに初出場したときに知りたかったことを意識して書いてみました。 一応、過去2回予選突破した経験があるので、それなりには参考に…

Googleが数千台もある10年前のLinuxディストリをライブアップグレードした話

Googleが、太古のディストリビューションであるRed Hat 7.1から、10年新しいDebianベースのディストリビューションへ、ライブアップグレードした話を紹介する。 そのあと、自分の身の回りの環境と比較し、参考にすべきポイントを考察する。 原文は USENIX LI…

自作Linuxコンテナの時代

最近、Docker以外のコンテナ型仮想化技術の流れとして、自作コンテナエンジンの時代が来るのではないかと感じている。 自作コンテナエンジンとは、コンテナ型仮想化技術を構成する個々の要素技術を組み合わせ、自分の用途にあわせて最適化したコンテナエンジ…

ウェブアプリケーション開発に新言語を採用したときにインフラで考えたこと

この文章は、サーバサイドのウェブアプリケーション開発において、社内実績の少ない新しい言語を採用したときにインフラ面で考慮したことを社内向けにまとめたものです。 はてなでは、長らくPerlでウェブアプリケーション開発を続けてきた一方、ここ数年で社…

Linuxサーバにログインしたらいつもやっているオペレーション

主にアプリケーション開発者向けに、Linuxサーバ上の問題を調査するために、ウェブオペレーションエンジニアとして日常的にやっていることを紹介します。 とりあえず調べたことを羅列しているのではなく、本当に自分が現場で使っているものだけに情報を絞っ…

Keepalivedのシンタックスチェッカ「gokc」を作った

Keepalivedのシンタックスチェッカ「gokc」をGo言語で書きました。 github.com 執筆時点でのKeepalived最新版であるバージョン1.2.19まで対応していることと、include文に対応していることがポイントです。 使い方 https://github.com/yuuki/gokc/releases …

2015年の心に残った技術エントリ

1年分の自分のはてなブックマークを見直した。 およそ 2,000 URLのエントリの中から、特に感銘を受けたり、記憶に残ったエントリを紹介したい。 2015年にブクマしたというだけで、必ずしも2016年に公開されたエントリばかりではないことに注意。 エントリ S…

2015年も技術しかしてない

今年も技術しかしてない。 やけにブログを書くことに傾倒していた。 26歳になった。 YAPCで発表した。 ISUCONに負けた。 入社2年過ぎた。 入社2年成功 https://t.co/X0HxWVYAAB— ゆううき (@y_uuk1) December 1, 2015 振り返ってみると、今年は技術でも仕事…

Serverspec + Mackerel APIによるインフラテストの実運用化

この記事は Mackerel Advent Calendar 2015 の24日目の記事です。 前回は、id:hitode909 による 三度の飯より監視と通知!Mackerelで自分の心拍数を監視しよう - hitode909の日記 でした。 今回は、Mackerel APIを用いてServerspecによるサーバ構成テストを…

Dockerとchrootを組み合わせたシンプルなコンテナデプロイツール

この記事ははてなエンジニアアドベントカレンダー2015の1日目です。今回は、既存の運用フローに乗せやすいDockerイメージへのchrootによるデプロイの考え方と自作のコンセプトツール droot を紹介します。 github.com

ISUCON 5予選で5位通過した話

ISUCON 5の予選で2日目3位、全体で5位のスコアで通過した。 メンバーは id:ntakanashi さん, id:astj さんと自分の3人で、「はむちゃん」というかわいいチーム名で参加した。 言語は当然Perl。 役割分担は id:astj さんの記事にも書いてあるけど、だいたい以…

YAPC::Asia 2015で技術ブログを書くことについて発表しました

技術ブログを書くことについて語るときに僕の語ること - YAPC::Asia Tokyo 2015 YAPC::Asia Tokyo 2015の前夜祭で上記のタイトルで発表しました。 今回が最後のYAPCということで、どのようなテーマで応募するかについてかなり悩みました。 技術的にめぼしい…

はてなで大規模サービスのインフラを学んだ

中〜大規模サービスのインフラの様子を知りたいアプリケーションエンジニア向けに、もともとアプリケーションコードを書いていた視点から、個人的な体験をベースにはてなで大規模サービスのインフラを学んだ過程や学んだ内容の一部を紹介します。

Webシステムにおけるデータベース接続アーキテクチャ概論

先月投稿した2015年Webサーバアーキテクチャ序論では、Webサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介しました。 今回は、前回同様、主に新卒Webエンジニア向けに、Webアプリケーションサーバとデータベースサーバ間の接続管理モデル…

2015年Webサーバアーキテクチャ序論

主に新卒のWebエンジニア向けに、古典的なWebサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介します。 この辺りの話題がWeb界隈で流行っていたのは数年以上前というイメージですが、Webサービスは相変わらずWebサーバの上で動いているの…

Mackerelを支える時系列データベース技術

サーバモニタリングサービス Mackerel で採用している時系列データベース Graphite を用いたシステムの構築と運用事情を紹介します。Graphiteについては、プロビジョニングやアプリケーションからの使い方、Graphite自体のモニタリングなど様々なトピックが…

Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング

HAProxy や nginx などのソフトウェアロードバランサやリバースプロキシ、memcached などの KVS のような高パケットレートになりやすいネットワークアプリケーションにおいて、単一の CPU コアに負荷が偏り、マルチコアスケールしないことがあります。 今回…

Ansible + Mackerel APIによる1000台規模のサーバオペレーション

Ansible と Mackerel API を組み合わせて、1000台規模のサーバ群に対して同時にパッケージの更新やその他のサーバオペレーションのための方法を紹介します。 タイトルに Mackerel とありますが、それほど Mackerel に依存しない話です。 背景 社内では、サー…

パフォーマンスの観点からみるDockerの仕組みと性能検証

Docker Meetup Tokyo #4 にて「Docker Performance on Web Application」という題で発表しました。 発表内容は、下記の2つの記事をまとめたものに加えて、最新バージョンの Docker 1.4 での ISUCON ベンチマークと、storage-driver として Device Mapper + D…

宇宙飛行士の採用についての本

「ドキュメント 宇宙飛行士選抜試験」を読んだ。 この本は、NHKスペシャルで2009年に放送された番組「宇宙飛行士はこうして生まれた ~密着・最終選抜試験~」が書籍化されたものだ。 JAXAによる宇宙飛行士の選抜試験、特に最終試験における10人の候補者それ…

2014年、技術しかしてない

2014年、振り返ってみてもとにかく技術しかしてない。 Webオペレーションエンジニアになった。 1人でサービスを構築・運用するようになった。 とうとう25歳になった。もう定年だ。 9月に引っ越した。自炊あきらめた。 ISUCON4の本戦で惨敗した。Cache-Contro…

インフラエンジニア向けシステム系論文

この記事ははてなエンジニアアドベントカレンダー2014の23日目とシステム系論文紹介 Advent Calendar 2014の23日目を兼ねています。 今回は、インフラエンジニア向けにシステム系論文を読むということについて書きます。 ここでいうインフラエンジニアは、We…

Perlはもう古い、これからはDocker

本記事の内容はWEB+DB Vol.88 Perl Hackers Hub 第34回 に「DockerによるPerlのWebアプリケーション開発」という記事にまとめなおしていますのでそちらをご覧ください。 「Perl Hackers Hub」では、「DockerによるPerlのWebアプリケーション開発」と題して@y…

Go言語によるCLIツール開発とUNIX哲学について

この記事ははてなエンジニアアドベントカレンダー2014の8日目です。 今回は、Go言語でサーバ管理ツール Mackerel のコマンドラインツールmkr を作るときに調べたこと、考えたこと、やったことについて紹介します。(mkr は現時点では開発版での提供になりま…

GoとMySQLを用いたジョブキューシステムを作るときに考えたこと

この記事ははてなエンジニアアドベントカレンダー2014の4日目です。 前回は Mackerelで採用している技術一覧とその紹介 - Hatena Developer Blog でした。 今回は、社内の開発合宿でGo言語でジョブキューシステムを実装したときに考えたことのうち、主にサー…

東京はもう古い、これからは京都

https://twitter.com/hotchemi/status/493599957438308352 最近、京都市内に引っ越して生活クオリティがあがってる。家はオフィスのある烏丸御池からちょっと離れたところの、閑散としたところにある。 自炊活動を全て捨てていて、調理器具はおろか電子レン…

ISUCONでNginxとMySQLをDocker化したときのパフォーマンス

現実的なWebサービス環境において、Docker化によるパフォーマンス低下がどの程度のものか調査するために、 ISUCON4 の予選問題のうち、Nginx と MySQL 部分を Docker 化してベンチマークをとってみた。 典型的なWebサービスシステムの3層構造(Proxy, App, D…

Go言語の便利情報

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 S…

Dockerは速いのか?Dockerのパフォーマンスについて重要なことは何か?

だいぶ前からDocker(Linuxコンテナ)のパフォーマンスについて、速いことは速いだろうけどどの程度速いのか、もし遅いことがあるなら何がパフォーマンスにとって重要なのか(AUFSが遅いとかそういうの)が気になっていたので、今回は Comparing Virtual Mac…

tmux + ssh + Mackerel API を組み合わせたとにかくモダンなサーバオペレーション

冗長化させたホストやスケールアウトさせたホストなどの同じサーバ構成をもつホストグループや、あるサービスに所属するホスト全てに同時にsshして同時に操作したいことがある。 複数のホストに同時ログインするツールとして cssh があるけど、毎回複数のホ…

25歳になった

今日で25歳になった。 ここ数年Facbeookとかいうやつのせいで誕生日の印象が悪くなってるのはさておき、この1年はずっとサバッとか言ってた。 修了に失敗して社会人になったはずが、あまり生活に変化はない。 技術には集中できるようになった。 今の仕事はわ…

Facebookの数千台規模のmemcached運用について

memcached はよく知られたシンプルなインメモリキャッシュシステムである。 論文では、memcached を基本単位として、世界最大のソーシャル・ネットワークを支える分散KVSをどのように構築し、スケールさせたかについて書かれている。 Facebook のキャッシュ…

ヘビーなGraphite運用について

"Monitoring Casual Talks #6"に参加して、「ヘビーなGraphite運用」についてしゃべってきた。 Graphite ここ数ヶ月ずっと運用してて、そこそこのリクエスト数さばけるようになるまでと冗長化の話をだいたいしてた。 Graphiteのパフォーマンス・チューニング…

Mackerel を使ったサーバメトリクス可視化の背景っぽいやつ #可視化

可視化ツール現状確認会 on Zusaar 可視化ツール現状確認会で Mackerel-Based Server Metrics Visualization とかいう話をしました。 僕はアルバイト入社したときからサーバ管理ツールにずっと関わってて、周辺ツールとかもウォッチしてて、そういう流れで M…

DockerとS3を用いた、yum / apt リポジトリ作成・運用の継続的インテグレーション

Docker を用いた rpm / deb パッケージ作成の継続的インテグレーション - ゆううきブログ の続き。 前回は、rpm / deb パッケージを作るために、CentOS、Debianなど各種ディストリビューションを揃える手間をかけずに、Docker コンテナ上でパッケージングし…

Linuxのブロックデバイスレベルで実現するrsyncより高速な差分バックアップについて

社内で論文輪読会みたいなことやってて、そこで紹介した論文の内容についてです。 最近、Graphite に保存しているデータのバックアップ(データ同期)に rsync 使ってて、かなり遅いので困ってた。 LISA っていう 大規模システム、sysadmin 系のカンファレン…

Kindleコミックのいいやつ

技術にやる気が無くなったら、Kindle でコミックを買い漁るみたいなことしてる。 そういうのを8ヶ月くらいやってるといいやつを結構発見できる。 順番は読んだ順。 イムリ 1巻 (BEAM COMIX)作者: 三宅乱丈出版社/メーカー: エンターブレイン発売日: 2007/07/…

技術情報の収集とPresso

情報収集、前は RSS とか見たりしてたこともあったけど、今でははてなブックマークしか使ってない。 特に最近は Presso 見てることが多い。 Presso、変な使い方していてデフォルトで設定されてる生活とかITとかスポーツみたいなカテゴリを全部消してる。 代…

Docker を用いた rpm / deb パッケージ作成の継続的インテグレーション

サーバ管理ツールのエージェント みたいなソフトウェアをインストールしやすくするために、rpm / deb パッケージを作りたい。 しかし、rpm / deb パッケージ化するためには、それぞれ CentOS(RedHat)、Debian(Ubuntu) 環境でパッケージ化することになる。 社…

プレゼンと情報価値

プレゼンテーション - hitode909の日記 この記事http://t.co/l6WUeSZJdD はIT業界だけに限定された価値しかないと思った。面白いプレゼンはできるけど、わざわざ聞きたいと思うようなプレゼンではない。— jusei@六代目 (@J_ishd) April 12, 2014 時折、イッ…

なにもわからないところから始めるJVMモニタリング #jvmcasual

JVM

JVM Operation Casual Talks で発表してきた。 なんでJVMでしゃべってたのか本当によくわからない。 JVM Operation Casual Talks : ATND とにかく雑な発表したという記憶しかない。 NewRelic のトップページにでかでかとおっさんでてきて印象悪いとかそうい…

Docker 使ってたらサーバがゴミ捨て場みたいになってた話 #immutableinfra

Immutable Infrastructure Conference #1 : ATND でLTしてきた。 内容はきれいにゴミを捨てましょうという話以上のものは特にない。 背景の説明が少し雑だったので補足すると、Jenkins のジョブスクリプトで、git push する度に docker run していたら ゴミ…

EC2でSR-IOVを使うときのNICドライバパラメータ検証

SR-IOV enabledな c3/i2 インスタンス使うときのNICドライバのパラメータをどうしたらいいかわからなかったので軽く検証してみた。 NICのドライバパラメータ(InterruptThrottleRate)をチューニングすることで、例えばHAProxyを使ってるような高pps環境でCP…

UNIXという考え方―その設計思想と哲学 を読んだ

人間とウェブの未来 - Linuxエンジニアを目指して入社一年目にやって役にたったと思う事 で紹介されていた書籍のうちのひとつ。 原版は90年代前半くらいに出版されていて、今から20年前くらいに書かれた本だった。 小さいソフトウェアを組み合わせて大きなソ…

#Gokyoto

Go

Go勉強会 そうだ京都、行こう on Zusaar Gokyoto 行ってきた。 Go、チュートリアルやったり、Docker のコード読んだりくらいしかしてなかったので、集中して Go 勉強できるちょうどいい機会だった。 A Tour of Go で Go に入門した - ゆううきブログ Go @Jxc…

A Tour of Go で Go に入門した

Go

Go言語、ウォッチだけしててあまりまじめにやってなかったので昨日からチュートリアルみたいなのやってた。 A Tour of Go Go の基本的な文法の軽い解説がありつつ、ブラウザでコード実行しつつ学べるみたいな感じ。 途中でいくつか練習問題みたいなのがあっ…