サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
blog.takus.me
長らく Twitter も Blog もご無沙汰になっていた @takus です。”若手インフラ四天王” なのかはさておき1、5 月から Kaizen Platform にジョインしてプロダクトマネージャーとして働き始めました。 ジョブチェンジや入社の経緯 息子が生まれたりして色々と生活が変化していくのがキッカケとなり、これまでやってきたことや今後やっていきたいことを改めて考え直したりする中で、もっとプロダクトにコミットする比重を大きくしようと決めたのが大きな理由です。 Site Reliability Engineering / Data Engineering といった領域で活動してた人間が Product Manager というロールに転職するのは少し唐突な印象を受けるかもしれませんが、Forkwell Press のインタビュー記事 でも「プロダクトを作ること」みたいな言及があった
この記事は Web API Advent Calendar 2015 - Qiita の 9 日目の記事です。Runscope という Web API 監視サービスについて紹介したいと思います。 背景 マイクロサービス化によって、システム全体が API を通して処理をするようになっていく中で、各 API が正しく動いているかどうかを監視したいという要求が出てくるかと思います。 よくある監視として、/health といったエンドポイントでアプリケーションを死活監視するといったことをしますが、 実際にはもう少し複雑な条件な監視をしたいケースはよくあります。例えば、あるニュースアプリの記事リストを取得する API があったときに、下記のような監視が手軽に行えると、どうなるでしょう? HTTP ステータスは 200 である レスポンスタイムは 200ms 以内である レスポンスの記事リストは、記事
この記事は AWS Advent Calendar 2015 - Qiita の 3 日目の記事です。昨日は “AWS CodeDeploy と CircleCI で Docker コンテナを自動デプロイ” という記事を書きましたが、それに引き続き AWS CodeDeploy ネタです。 Fabric や Capistrano などのデプロイツールを利用していると、AutoScaling によって起動してくるインスタンスへのアプリケーションのデプロイをどうするかというのは悩みの種ですが、 AWS CodeDeploy を利用すると、最後にデプロイに成功したリビジョンを起動時にデプロイしてくれるので非常に助かります。その一方で、 AutoScaling と連携して使うときに気をつけておくべきいいポイントがいくつかあるので、それについて書きます。 1. User Data でのプロビジョニン
この記事は CircleCI Advent Calendar 2015 - Qiita の 2 日目の記事です。ちなみに 1 日目は @stormcat24 さんによる”CircleCIでサクッとビルドチェーンを実現する”お話でした。 というわけで、2 日目は、SmartNews’s Journey into Microservices という LT をしてきました のスライドで少しだけ触れている、Docker コンテナを AWS CodeDeploy + CircleCI でデプロイする話について、簡単に説明しようと思います。 背景 僕が所属しているスマートニュースという会社では、Java でアプリケーションが書かれていることが多いため、JAR/WAR を持ってきて実行するようなことを CodeDeploy を使った Pull 型デプロイでやっています。一方で、一部のアプリケーションは依
Amazon のオススメ本に出てきた「 サッカー データ革命 ロングボールは時代遅れか 」を読んでみました。 この本は、野球界における「 マネーボール 」のように、 サッカーを様々なデータを元に見つめ直すような内容になっていて、 例えば、チームが負けているときに交代によって最大の効果を得るためには、 1 人目の交代を後半 13 分、2 人目を後半 28 分、3 人目を後半 34 分までに行うべきとか、 極端に能力の高い選手を獲得するのと弱点となる選手の穴を埋める補強はどちらがいいのかとか、 統計を元にしたサッカーに関する興味深い考察が多かったのですが、その中に 1 つ引っかかる話があったのでそれについて書いてみます。 良いディフェンダーはタックルをしない 本書の中で、 四半世紀に渡ってマンチェスター・ユナイテッドを率いた名将ファーガソンが、 オランダ代表のディフェンダー、ヤープ・スタムを放
Datadog というシステム監視 SaaS のネタです。 先週の木曜に「Datadog でカスタムメトリクス送るの面倒じゃない?どうやってるの?」とある人に質問されたので、 自分が知ってる Dogstatsd を使う方法をシェアします。 これはあるサービスの Nginx のアクセスログとエラーログを、 Fluentd 経由で Datadog にカスタムメトリクスとして送って可視化した例になっていて、 それぞれ、 左上: ステータスコード別の集計グラフ 右上: 今日・昨日・一週間前のレスポンスタイムグラフ 左下: Fluentd の タグ毎の流量 右下: Fluentd の ホスト毎の流量 といったグラフになっています。このポストではこんなグラフを作る方法を説明します。 Dogstatsd とは? 唐突に Dogstatsd というものが出てきますが、カスタムメトリクスを送る場合はコイツを
先週の火曜日の話になりますが Livesense TechNight というイベントで “SmartNews’s Journey into Microservices” という LT をしてきました。 SmartNews のバックエンドは、ニュース記事のクローラー、その記事の意味を解釈するサービス、サムネイル画像の品質判定をするサービス、記事の閲覧履歴を元に準リアルタイムにランキングを調整するサービス、アプリから記事情報を取得するための API Gateway などの多種多様なサービスで構成される Microservices 的なアプローチを取っていますが、資料の前半でそのあたりに至った背景を説明しつつ、後半は Microservices 化のための施策の一つである AWS CodeDeploy によるデプロイ自動化について説明しました。 その他に小ネタとして、Slack へのデプロイ通知
Amazon DynamoDB Streams のレコードを Fluentd で扱いたい要件があり、ググっても見当たらなかったのでプラグインを実装してみました。 takus/fluent-plugin-dynamodb-streams 使い方 README に書いてある通りですが、こんな設定でお使いいただけます。他の Fluentd のプラグインと組み合わせることで、AWS Official Blog にある、Logstash + Elasticsearch のような用途にもお使いいただけるのではないかと思います。 <source> type dynamodb_streams stream_arn YOUR_DDB_STREAMS_ARN pos_file /var/lib/fluent/dynamodb_streams_table_name fetch_interval 1 fetch_
こんにちは。スマートニュースの @takus です。 2⁄24 に Datadog ユーザの集まり #dd_sushi というイベントを開催しましたので、この場を借りて簡単にレポートさせていただきます。 このイベントは Presto Meetup で、 Treasure Data の @repeatedly さんと話をしているときに 「スマートニュースの新オフィスに遊びに行きたい!」という話が出て、 Treasure Data も最近 Datadog を使い始めたというところから、 せっかくなので Datadog について話をするイベントにしてみようという経緯で、開催に至りました。 Datadog を代表して @jhotta さんに 2015 年のロードマップについて話をしていただいたり、 Datadog を利用している様々な会社から導入経緯、利用方法、便利ツールなどの発表をしていただき、
AWS が主催する re:Invent 2014 に参加するためにラスベガスに来ております。@suzu_v 先生がメモ書きをしていたので、自分も簡単ながらメモを残しておこうと思います。 Keynote Amazon Aurora は 話を聞く限りはかなりイケイケな様子で早く試したいってのと、やっぱり既存のものをクラウドに持ってくだけじゃ不十分ってことで、クラウドだからできることは何かを真剣に考えていくことでこういうものが生まれてくるのでしょう。 AWS CodeDeploy, AWS CodeCommit, AWS CodePipeline あたりは、ちょうどこの辺を整備しようかと思っていたので最高のタイミングで登場してくれて、若干手間がかかるところやってくれるのは非常にありがたいと思います。 AWS Config は、簡単に説明すると AWS のリソース変更履歴を残してくれるもので、ウワ
様々な大物な方々の人事ニュースが飛び交う中で恐縮ですが、スマートニュース株式会社にジョインしたことをこの場を借りて報告させていただきます。 会社は、同じタイミングで入社することになった @komiya_atsushi さんの入社エントリや 941::blog の行ってきたシリーズで詳しく紹介されていますが、働くメンバー、オフィス環境、福利厚生のどれも素晴らしく、よいプロダクトを作ることに集中できる素晴らしい環境が整っている一方で、すもうとにゅーす の CM が 8⁄1 から始まったり、北米版のリリースが控えていたり、会社としても非常に面白いフェーズで、今のタイミングでジョインして色々なことに携わっていくことに大きな魅力を感じたことが入社理由の 1 つです。 まだスマートニュースのアプリをダウンロードしていない方がいましたらぜひこの機会にダウンロードしていただけたら嬉しいです。アプリへの要望
一部の方には既に報告させていただいてますが 7⁄22 に入籍しました。 ちなみに 7⁄22 は 天赦日 (てんしゃび) といって、日本の暦の上で最上の吉日とされているそうです (参考)。嫁さんとは高校時代から 8 年以上の付き合いで、すでに何年も一緒に住んでる上に、挙式もこれからのため、あまり実感が湧いてきてない状態ではありますが、よい家庭を築けるように二人でがんばっていきたいと思います。 さらに、こちらも社内の方や社外の一部の方にしか話をしていませんでしたが、7/31 をもって DeNA を退職します。かなり悩んで、色んな人に相談にのってもらったりしましたが、新たな場所で新たなチャレンジをしたいという思いが強かったため、退職を決めました。 2 年前に新卒として入社して、希望通りにインフラの部署に配属してもらい、mobage や comm といった数百万〜数千万ユーザ規模のサービスの運用を
去年の「Los Angeles に行ってきた」と 「New York に行ってきた」に引き続き、 今年はバルセロナにいってきましたが、かなりいい場所だったのでカンタンにまとめです。 バルセロナがオススメな理由 カンプノウやサグラダ・ファミリアなど見所が満載 魚介を中心として料理がメチャクチャ美味しい 比較的どこでも英語が通じて治安も悪くない 見所満載のバルセロナ Camp Nou バルセロナに行く一番の目的といえば、サクラダファミリアかカンプノウの 2 つは外せないでしょう。 ということで、ちょうどリーガエスパニョーラのヘタフェ戦がやっていたので見に行きました。 チケットはクラシコのようなビッグマッチでない限り、FC バルセロナのオフィシャルサイト の Tickets から辿っていけば好きな席を買えます。 今回は 2F の最前列の席を取ったために 2 枚で 240 ユーロとかなりお高い感じ
@hirose31 さん経由で @con_mame さんからお話をいただき、 JAWSDAYS 2014 の「これで最強AWSに」というセッションで話をしてきました。 内容としては、オンプレも AWS も運用してる立場から両者を比較してみてどうなのといった感じのお話です。 2014/03/15 JAWS DAYS 2014 - 『これで最強のAWSに』セッション #jawsdays #最強のAWS にツイートまとめがあるので、資料と一緒にご覧いただければと思います。 こんな話も出ていましたが、 AWS は必ずしも銀の弾丸ってわけではなく、どこの会社も悩ましい部分を抱えながら運用しているわけで、 @sgwr_dts さんの Roadworker のようにユーザ側でイケてる仕組みにするようなアプローチもありますが、このような機会を利用して AWS の中の人に直接フィードバックできたという意味で
前半の部分をまとめようと思ったら、大切なことは全て @j3tm0t0 さんの gist に書いてあったので、SSH でログインできなくなった時はまず上記の gist に書いてあることを確認するといいと思います。 で、今回の話は、snapshot を取得して 新たに volume を作成して、他のインスタンスにアタッチ&マウントしてエラーが出ていないかを確認しようとした時に下記のエラーでマウントできなかった件に関するお話です。 'vol-xxxxxxx' with Marketplace codes may not be attached as as secondary device. ググったら “Is it possible to rescue an EBS volume which has marketplace codes?” や “Marketplace codes may not
“Docker 使うなら Ubuntu だろ jk” とか言われそうですが CentOS 6.5 で使いたかったので試してみました。Docker の公式サイトには “Our recommended installation path is for Ubuntu linux, because we develop Docker on Ubuntu and our installation package will do most of the work for you.” と書いてあったり、Drone は Ubuntu 用のパッケージしかなかったりするので、深淵な理由がなければ Ubuntu 使うのがいいんじゃないかと思います。 Docker のインストール CentOS 6.5 なら簡単にインストールできるので特にハマりどころはありませんでした。 rpm -Uvh http://downl
ある日、ドイツの出版社から Flickr で共有した御柱の写真を買いたいというオファーがあり、色々調べながら無事に取引できたので、取引の流れをまとめておきます。 Flickr でのオファー …. Through my research in Flickr I came across your profile and found an image we would like to use for our publication. …. Flickr メールにきたオファーはこんな感じの内容でした。雑誌名なども書いてあったのでググったら、どうやらちゃんとした会社のようだったので承諾。(ウソ書かれてても判断できないですが) ….. And you don´t have to give it for free. I can offer you 180Euro. How do you think? で
Immutable Infrastructure Hackathon :D で Docker を触ってみただけという、ゆるふわなメモです。 @muddydixon さんや @yosuke_furukawa さんが drone を触ってたのに比べてだいぶ素人丸出しな感じですが、Docker 童貞からは脱却できたので、次は “Docker + Jenkins + serverspecでpuppetのmanifestをCIする” あたりに取り組んでみたいと思いました。 公式チュートリアル まず、公式サイトのチュートリアルで一通り使い方を学びました。 Docker on DigitalOcean DigitalOcean は 1GB メモリのサーバが 1 時間 $0.015 で使える格安の VPS サーバで、手元で VM 動かしたくなかったので使ってみました。Docker は “MacからVagr
前々から fluentd のプラグインを書いてみようと思っていたので、ec2 の metadata をレコードに追加するようなプラグインを書いてみました。 takus/fluent-plugin-ec2-metadata プラグインの書き方は @tagomoris 先生の “fluentdのためのプラグインをイチから書く手順(bundler版)” が大変参考になったので、プラグインを書いてみたい人は見るとよさそうです。 あとは、@sonots 先生の fluent-plugin-record-reformer をかなり参考にさせていただいたのと、Ruby 初心者なので“パーフェクトRuby”にもお世話になりました。 なにをするプラグインか? ### Input foo.bar {"message":"hello ec2!"} ### Output web.foo.bar { "role_t
一日に数回 MySQL が詰まるような現象があったので原因を調べたところ、そのサーバだけ innodb_stats_on_metadata=1 になっていたのが原因だったという話デス。 innodb_stats_on_metadata は、テーブルのメタデータにアクセスしたときに InnoDB の統計情報を更新するかどうかのフラグで、今回問題が起こっていたサーバのようにデータ量が多いサーバなどでは無効にしておく必要があります。例えば、公式ドキュメント の innodb_stats_on_metadata の部分にはこのように書いてあります。 この変数が有効 (この変数が作成される前からのデフォルト) な場合、SHOW TABLE STATUS や SHOW INDEX などのメタデータステートメントの実行時や、INFORMATION_SCHEMA テーブル TABLES または STATI
オートスケーリングみたいなことをしようとする場合、サービスインする前に監視が全て OK になっているかチェック しておきたいみたいな需要がありますが、みんな大好き Nagios でこれをやろうとするとちょっと面倒だったりします。 Nagios::StatusLog のようなものを使って status.dat をパースする方法がお手軽ですが、監視するホストが数千台みたいな環境だと status.dat が結構な大きさになってしまい、必要なたびにパースしてると Nagios が動いてるホストが結構なメモリを喰って swap に入ってしまったり、他のホストに転送してパースするにしてもそれなりに帯域喰ってしまうので、Nagios のホスト上で status.dat をパースして一定期間キャッシュし、HTTP でよしなに JSON を返してくれればいいなとか思っていたら、nagira でそれが実現で
6⁄18 ~ 6⁄20 に Santa Clara で開催された Velocity 2013 に参加して来ました。Velocity は Web Performance や Web Operation などが主なテーマで、Google、Facebook、Twitter、Amazon、Yahoo! などをはじめとした様々な企業から 1,000 人以上が参加する大規模なカンファレンスです。いまやよく耳にする DevOps というキーワードも 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr という Velocity 2009 のトークで有名になった言葉ですね。 参加するにあたって、@xaicron さんの 勝手に YAPC::NA 2013 に行ってきた!! と同じく、会社が渡航費、宿泊費、参加費等の全ての費用を負担してくれました!!新
金曜日にヒカリエで開催された Provisioning Frameworks Casual Talks vol.1 に参加 & 少しだけお手伝いしてきたのでまとめ。@zabbiozabbio さんと一緒に 27F のエレベーターホールで待ち受けていたのが自分です。 serverspec の話 chef + puppet の話というよりも chef 使うにしても、puppet 使うにしても、(Touryo 使うにしても)、serverspec 使って構成管理ツールとは別にサーバの構成をテストすべきだよねという話が印象に残っていて、どの構成管理ツール使うか検討している間に、まずは serverspec でテストするようにしておくのがよさそうかなと思いました。 で、attribute(config) の管理方法の話 serverspec 自体は出たときからよさそうだなとは思っていたものの、att
エンジニアならサーバにログインしてコマンド打てば済む話ですが、世の中には非エンジニアでも tail -f log | grep keyword みたいにログを見れるようにしたいという案件がたまにあるみたいです。自分で書いてもよかったのですが、supergrep というツールがあったので使ってみました。 Is It A Bird? Is It A Plane? No, It’s Supergrep! esty/supergrep インストール supergrep は node.js で書かれているので、node のインストールから。node の作法はよく知らないので適当です。 git clone https://github.com/creationix/nvm.git ~/nvm . ~/nvm/nvm.sh nvm install v0.10.5 nvm alias default v0
By Theis Kofoed Hjorth Macbook で外部ディスプレイを利用してる人なら「このウィンドウはここに配置しておきたい!」みたいなのがあるかと思います。自分の場合は、MacbookAir のディスプレイにブラウザと Twitter、メインディスプレイに作業用のターミナル、サブディスプレイにサービスのダッシュボードやエラーログを tail するターミナルなんかを並べていて、各ウィンドウごとにポジションを決めて使っています。 しかし、Mac では会議などのために外部ディスプレイを外してしまうとせっかく好みの位置に並べたウィンドウが元の位置に戻ってしまいます。で、また会議から戻ってくると、自分好みの位置にチマチマ並べ直すわけですが、毎回こんな作業やるなんて面倒ですよね。 そこで自分は forget-me-not というソフトを使っています。このアプリは外部ディスプレイを接続し
Takumi Sakamoto's weblog on building scalable and robust web systems. MacOSX向けのパッケージマネージャーといえばMacPortsが有名ですが、Macに元々入っているプログラムもご丁寧に再コンパイルしてくれたりで、ビルドに時間がかかったりして、なかなか使い勝手が悪いです。ということで、Macに元々入っているプログラムをそのまま活かせると巷で(?)評判のいいHomebrewに移行してみることにしました。 FinkでもMacPortsでもないパッケージ環境「Homebrew」 MacPortsからHomebrewに移行しつつある Homebrewのインストール # 削除する前にMacPortsでインストール済みのパッケージ名を出力 sudo port installed > myports.txt # MacPortsを
このページを最初にブックマークしてみませんか?
『takus's blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く