タグ

ブックマーク / techblog.kayac.com (24)

  • スケーラブル tail -f | grep on AWS - KAYAC engineers' blog

    こんにちは。組長こと @fujiwara (id:sfujiwara) です。 早速ですが皆さん、ログは見ていますか? 当然見ていますよね。tail -f で追いかけるとか大好きですよね。という前提で話を進めましょう。 この記事は Tech KAYAC Advent Calendar 2016 の24日目の記事です。 TL;DR 多種多様なホストから発生するログの末尾を tail -f で追いかけたい fluentd + ローカルファイルで行うのはちょっと面倒 Amazon Kinesis + Lambda を使ってスケーラブルな仕組みを考えてみた kinesis-tailf というツールも作った 既存の仕組みと問題点 techblog.kayac.com 弊社の Lobi とソーシャルゲームでは、この記事で紹介されたような Fluentd を活用したログ集約の仕組みを整備しています。この

    スケーラブル tail -f | grep on AWS - KAYAC engineers' blog
  • RedashとRundeckで安全・安心なサービス運用 - KAYAC engineers' blog

    Lobiチームの長田です。 今回はLobiチームで使用しているRedashとRundeckというツールについて紹介します。 Redash http://redash.io/ Redashとは Redashはデータベースにクエリを発行するためのダッシュボードです。 複数種類のデータベースに対応しており、それらに対して クエリ発行 クエリ結果を保存 クエリ結果を可視化 することができます。 その場でクエリ発行する他に、間隔を指定して定期実行することもできます。 ブラウザからクエリを定義して、 グラフとして表示したり。 何に使ってるの? LobiではアクセスログをAmazon Redshiftに取り込み、解析を行っています。 定常的に観察するべき項目については専用の解析処理と結果を保存する仕組みを用意しているのですが、 単発で数字が必要になる場合がたびたび発生します。 このような場合に毎回Red

    RedashとRundeckで安全・安心なサービス運用 - KAYAC engineers' blog
    kenjiskywalker
    kenjiskywalker 2016/11/30
    めちゃくちゃ良い
  • KAYAC engineers' blogのリニューアルですよ、皆さんっ!!!!1 - KAYAC engineers' blog

    いつもKAYAC engineers' blogをご愛読いただき、誠にありがとうございます。 ブログ初登場、社内インフラや管理系を担当しているやましんこと山田でございます。 この度は皆様のご期待に応えるため、ブログをリニューアルいたしました!!!(パチパチパチパチ) 長らくご愛好いただいておりましたブログも時代の移り変わりとともに変化し、新しいカタチとするべく、ドメインを一新し techblog.kayac.comとしてはてなブログで新たな出発をすることにしました! tech.kayac、つくり新しくしないのかな— kenjiskywalker (@kenjiskywalker) 2016年6月22日 こうした貴重なご意見をいただけるのは当にありがたいことであるとともに、今まで以上によいものを提供していくために日々精進してまいりますので、これからもご声援のほどよろしくお願いい

    KAYAC engineers' blogのリニューアルですよ、皆さんっ!!!!1 - KAYAC engineers' blog
    kenjiskywalker
    kenjiskywalker 2016/11/01
    負債返済めでたい!!!!
  • AWS Lambdaを使ってベンチサーバー無しで社内ISUCONを運営したはなし - KAYAC engineers' blog

    新人研修担当の長田です。 今年も新人研修の締めとして社内ISUCONを行いました。 昨年はプログラミング基礎の講師をやったのですが、 今年はその実績を買われて(?)社内ISUCONの出題を担当することになりました。 過去のISUCON準備の様子を傍から見ていた身としては、 準備を始める前から「とにかく大変そうだ・・・」というイメージを持っていました。 問題を作りこむ以上、どうしてもISUCON当日ぎりぎりまでかかってしまうのでしょう。 ぎりぎりになるのはまあ準備する人が頑張ればいいとして、 ぎりぎりになった結果競技自体の進行が危ぶまれるのは避けたい! ということで、いくつか効率化という名の妥協策をとることにしました。 効率化できるところは? 毎回新規に出題するのはしんどい! 社内ISUCONは過去2回実施していますが、 どちらも新規に高速化対象のWebアプリケーションを作成していました。

    AWS Lambdaを使ってベンチサーバー無しで社内ISUCONを運営したはなし - KAYAC engineers' blog
  • 今年4月からメンターになってやったこと - KAYAC engineers' blog

    はじめに ※ この記事は tech kayac advent calendar 1日目の記事になります 技術ネタを期待していたみなさん1日目からこんなネタですいません。 @Konboiです ここでのメンターは 同じプロジェクトに配属された新卒氏のスキル向上と会社/チームに馴染めるようにサポートする ぐらいのイメージです 告知 12/6 (日) にクックパッドさんをお借りして 師弟登壇2015 というイベントが開催されます。 新卒研修でどのような事をやったのか 新卒研修の内容にはどのような意図があったのか 新卒側からどうだったか などなど を話す予定です。 もう一般枠の抽選は終わっておりますが学生枠の方はまだ、枠があるようなので是非参加してみて下さい! 今日の記事では、当日話しきれないであろう 新卒研修以前 新卒研修以降 に会社としてというよりはメンターになった自分がどういう風に約8ヶ月指導

    今年4月からメンターになってやったこと - KAYAC engineers' blog
    kenjiskywalker
    kenjiskywalker 2015/12/02
    コンボイくんにメンターになってほしい!!!
  • 今年の新人研修はgoでした - KAYAC engineers' blog

    新人研修のgo担当だったhandlenameです。 昨夏、Go言語を積極的に推進していきます。という宣言を出しましたが、 この一環として新人研修で扱う言語としてgoが選ばれました。 研修では何をやったのか Webサービスの開発・運用に関わる要素を対象としました。 goの研修に使える時間は合わせて10時間程度と限られていたこともあり、 かなり内容を絞っています。 開発環境の準備 研修に入る前に、受講者それぞれに開発環境の準備をしてもらいました。 brew install go 環境変数の設定 エディタの設定(保存時にgofmt自動実行) 幸いここで躓いた受講者はいなかったようです。 Tour of Go プログラミングは全くの未経験、という受講者はいなかったので、 いきなりTour of Gogoのコードを書いてもらいました。 基文法/制御構文/データ構造/並列処理 の4つのセクションに

    今年の新人研修はgoでした - KAYAC engineers' blog
  • #20 Amazon CloudSearchで検索サジェスト機能を作った話 - KAYAC engineers' blog

    tech.kayac.com Advent Calendar 2014 20日目を担当する@ken39argです。 近況報告 お久しぶりです。 前回ブログを書いたのが、2012年のアドベントカレンダーでしたので、2年ぶりということになります。 前回のブログの出だしが、 「最近子供が産まれた」 でしたが、 4日前の 12/16の朝に2人目の男の子が産まれ、 日嫁と子供が病院から帰ってました。とてもバタバタしております。 長年、特にFlashLiteの動的生成などを得意分野としてガラケーを始めとするケータイ向けブラウザゲームを作ってきましたが、 昨年末から心機一転 LobiチームにJoinして、主にLobi REC SDKのサーバーサイドの開発を担当しています。 今年も様々な人やサービスの助けを借りてオートスケールする動画変換サーバーやニコニコ動画へのアップロード、 プレイ動画を見るためのL

    #20 Amazon CloudSearchで検索サジェスト機能を作った話 - KAYAC engineers' blog
    kenjiskywalker
    kenjiskywalker 2014/12/21
    すごい
  • #17 うわさのdatabase.ymlをどうしているか カヤックCW編 - KAYAC engineers' blog

    こんばんは。クライアントワーク(受託開発)チームのnobu_ohtaです。 この記事は tech.kayac.com Advent Calendar 2014 17日目です。 この記事では、弊社クライアントワーク(受託開発)チームで production 環境で Railsdatabase.yml と secrets.yml をどう運用しているかを紹介したいと思います。 この話題最近ちょくちょく見かけますが、@mirakuiさんがやっているPodcastの Admins Bar #3: Fluentd, Rails, ActiveRecord でも取り上げられています。 なぜ機密情報をハードコードしないほうがいいか Rails 4.1からsecrets.ymlやdatabase.ymlで機密情報は直書きせずに環境変数から読む設定ファイルが生成されるようになりました。 アプリのリポジト

    #17 うわさのdatabase.ymlをどうしているか カヤックCW編 - KAYAC engineers' blog
  • #10 Consulと連携するpull型デプロイツール stretcher - KAYAC engineers' blog

    tech.kayac.com Advent Calendar 2014 10日目担当の @fujiwara です。 最近書いている stretcher というデプロイツールの紹介をしたいと思います。 長いので3行で push型デプロイはホスト台数が増減しやすい環境に適さない 各種問題を解決するpull型デプロイツールを書いた Consul と連携するよ 中央ホスト配布(push)型デプロイの問題点 カヤックの自社サービスでは久しく Archer というツールを利用し、中央ホストから各デプロイ対象ホストrsync でファイルを配布する形のデプロイを行っていました。ここではこれを push 型と呼びます。 push型のデプロイは、ホスト台数が頻繁に増減する環境で以下のような問題があります。 新しくホストが起動してきた場合に、中央ホストからデプロイを行ったあとでないと (古い状態で起動してい

    #10 Consulと連携するpull型デプロイツール stretcher - KAYAC engineers' blog
    kenjiskywalker
    kenjiskywalker 2014/12/10
    ハンパねぇ
  • Golang 製の Android 向けテストアプリ配信ツール「alphawing」を公開しました - KAYAC engineers' blog

    昨年の Advent Calender ぶりの登場です。@m0t0k1ch1 です。 表題の件につきまして、実は 7/31 に公開された こちらの記事 の実績一覧の一番上に載せていただいてもいたのですが、改めてこちらで報告させていただきたいと思います。 alphawing とは https://github.com/kayac/alphawing TestFlight が 2014/3/21 をもって Android のサポートを終了 してしまったので、それを代替するためのツールとして開発したのが、この alphawing です。簡単に表現すると、「Android 用の TestFlight」です。表題の通り、サーバーサイドは Golang で記述されています。 アプリケーションの詳しい起動方法などについては README をご参照ください。 アプリケーションの概要 アプリケーションにひも

    Golang 製の Android 向けテストアプリ配信ツール「alphawing」を公開しました - KAYAC engineers' blog
  • #17 煩悩と苦しみについて - KAYAC Engineers' Blog

    どうも。退職者です。@kenjiskywalkerです。 teck.kayac.com Advent Calender 2013 17日目のエントリです。 前日は、@handlename先輩のプライベート情報を得るべく@SOMTDさんと必死になって質問していたら 何故か@handlename先輩が@damele0n氏のプライベート情報をペラペラとしゃべりだすという流れ玉を受けた @damele0n氏の#16 Leap Motionでおっぱいを揉む でした。 相変わらず揺らしてますね。最高です。 さて、去年は「「おちこんだりもしたけれど、私はげんきです」というエントリで tech.kayac.com Advent Calendar 2012の1日目を担当したのですが、誰の琴線にも触れませんでした。 そもそも退職者という身分でありかつ、ファッションの最先端、 南青山のサマリーで勤務しているとい

    #17 煩悩と苦しみについて - KAYAC Engineers' Blog
    kenjiskywalker
    kenjiskywalker 2013/12/18
    かきました
  • #11 MySQL Master HA を AWS で動作させる場合のフェイルオーバー支援ツール MHA::AWS のご紹介 - KAYAC engineers' blog

    こんにちは、@fujiwara です。 2013年を振り返ると、春の新卒研修での社内ISUCON、秋のISUCON予選と選でずっとISUCONをやっていたような気がしていまして、さてそれ以外になにか……そういえばインフラ回りの仕事もしていましたね。 カヤックのサーバインフラ全体としては、Amazon Web Service(AWS) への移行が進んだ1年でした。いままで自社サーバでやっていたソーシャルゲームや、比較的アクセスが多いとある自社サービス(これは後ほど事例公開されるかも知れません) を、AWS上で構築したり移行したり、という仕事が多かったです。 AWSでサービスを構築する場合、MySQL については RDS を利用する EC2 インスタンス上に MySQL サーバを稼働させる というどちらかの手段を取ることになります。 RDSはフェイルオーバーやバックアップを自動でやってくれま

    #11 MySQL Master HA を AWS で動作させる場合のフェイルオーバー支援ツール MHA::AWS のご紹介 - KAYAC engineers' blog
    kenjiskywalker
    kenjiskywalker 2013/12/12
    楽しそう
  • #9 「openresty の紹介」 tech.kayac.com Advent Calendar 2013 - KAYAC engineers' blog

    こんにちは、@tkuchiki です。 このエントリーは tech.kayac.com Advent Calendar 2013、9 日目のエントリーです。 エントリーでは、弊社で主に利用している Web サーバ (Nginx) の bundle OpenResty について簡単に紹介したいと思います。 OpenResty OpenResty (ngx_openresty) は、lua-nginx-module を始めとする多数の 3rd party module を内包した Nginx です。 作者は、lua-nginx-module のメンテナを務める agentzh さんです。 lua-nginx-module Nginx を Lua / LuaJIT で処理するためのモジュールです。 API は 全て Non-Blocking I/O で書かれています。 使用したモジュール 以下

    #9 「openresty の紹介」 tech.kayac.com Advent Calendar 2013 - KAYAC engineers' blog
  • ISUCON3出題の裏側 - KAYAC engineers' blog

    acidlemonです。今日はもうなんだかいろんなところに記事を書かなきゃならなくててんてこまいとなっております。 さて、最初に告知です。 毎週カヤック技術部では金曜日の夜に技術部勉強会を行っています。今週末はISUCON3の優勝チームのtagomorisさんとkazeburoさんをゲストにお迎えして、出題担当のfujiwaraとともに今回のISUCONを振り返ってもらい、せっかくだから外部の人をバンバンよんで酒のみながらLTとかもしてもらっちゃおう! みたいな感じになっています。 追記(2011/11/11 20:15): kazeburoさんのスケジュールも確認取れましたので追記しました ということで、ISUCON3反省会というイベントを立てましたので参加希望の方はこちらから参加表明をおねがいします。費用はカヤック持ちで参加無料となっておりますので好きなだけビール飲んでいってください!

    ISUCON3出題の裏側 - KAYAC engineers' blog
    kenjiskywalker
    kenjiskywalker 2013/11/11
    じぇじぇ!カヤックではISUCON大好きなエンジニアを募集中だって!!??今すぐ応募しに行かなきゃ!!
  • 2013年の新卒研修と社内ISUCONやりました - (2) ISUCON死闘編 - KAYAC engineers' blog

    技術部新卒研修担当の fujiwara です。 前回の記事「2013年の新卒研修と社内ISUCONやりました - (1) 研修編」に引き続き、新卒研修の最後を飾るイベント、社内ISUCONについて詳しく振り返ります。 社内ISUCONとは レギュレーションはこちらです。 各チーム1台ずつ使用できる仮想マシン上で、お題のアプリケーションを動作させる 外部からベンチマークを行って処理できたリクエスト数をスコアとする アプリケーション、OS、ミドルウェアなど、どのようなチューニングを行ってもよい ベンチマークスクリプトはデータの整合性をチェックするロジックが組み込まれており、アプリケーションとして不整合を起こしていることを検出するとFAIL(スコアなし) 10:00〜17:00 までの作業中には適宜ベンチマークを実行できる 作業終了後の最終計測でのスコアが高いものが優勝 (FAILしたら失格。1

    2013年の新卒研修と社内ISUCONやりました - (2) ISUCON死闘編 - KAYAC engineers' blog
    kenjiskywalker
    kenjiskywalker 2013/04/22
    @handlename ウェーイ
  • 2013年の新卒研修と社内ISUCONやりました - (1) 研修編 - KAYAC engineers' blog

    4月になり、新人が入ってくる季節になりました。技術部新卒研修担当の fujiwara です。 これまで弊社技術部では特に技術部としての研修というものを行っていなかったのですが、今年は何かやりたいねということで人事部に7日間確保してもらい、主に acidlemon と2人で新卒8人に研修をすることになりました。 研修の資料などは GitHub でプライベートリポジトリを作って作業しており、それをまとめたものを GitHub上で kayac/newbie-training として公開しています。 どのような内容にするかは事前に昨年度の新卒を含めたエンジニア陣で(社内勉強会でビールを飲みながら)話し合い、 現場で実務に追われてしまうと身につきにくい基礎的な内容 コードを書ける人は多いけどLinuxサーバの操作は不慣れな人が多いので、そのあたりを底上げする内容 をメインに構成してみました。また、7

    2013年の新卒研修と社内ISUCONやりました - (1) 研修編 - KAYAC engineers' blog
    kenjiskywalker
    kenjiskywalker 2013/04/22
    ウェーイ
  • #21 「CS対応にマジ便利!! 行動ログ閲覧ツール "伊右衛門" の話」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog

    こんにちは、@hisaichi5518 です。 今年のクリスマスこそは、彼女とイチャイチャしながら有意義に過ごしたかったので、こういうのを作ったりしましたが、女の子から告白される気配がありません。クソが。 CS対応 と 行動ログ閲覧ツール「伊右衛門」 CSとは、カスタマーサポートの事で、 CS対応は、ユーザーさんのお問い合わせの調査の事をここでは指します。 例えば、ソーシャルゲームを運営していると「アイテムを使ってないのになくなっている!」なんてお問い合わせはよくあると思います。 そういう時にアイテムを使ったログが残っていなかったり、検索しにくかったら大変な事になります。 なのでカヤックは、fluentdとMongoDBを使ってユーザーさんの行動ログを保存しています。 その行動ログをブラウザで見えるようにしたのが、伊右衛門です。 → https://github.com/hisaichi5

    #21 「CS対応にマジ便利!! 行動ログ閲覧ツール "伊右衛門" の話」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog
    kenjiskywalker
    kenjiskywalker 2012/12/21
    女の子から告白される気配がありません。クソが
  • #20 まさか、Cocos2d-x 使っているのに C++ 書いてるわけないよね? - KAYAC engineers' blog

    Unity ではプラグイン開発専門の @Gemmbu です。 みなさん Cocos2d-x で開発してますよね? 当然のことながら Cocos2d-x で開発する際は Lua/JavaScript で開発していますよね? Q. Lua/JavaScript で開発すると何がうれしいの? A. スマートフォンの開発サイクルを高速化できます スマートフォンの開発サイクルって通常以下のフローを回しますよね コーディング ビルド 実機/シミュレータへ転送 テスト このうち、開発の質でない部分を Lua/JavaScript を使うことでさくっと省くことができます。 Lua/JavaScript を使用した場合のフローは コーディング 実機/シミュレータへ転送(修正したスクリプトのみ) テスト ビルドがなくなった!!。また、実機/シミュレータへ転送もスクリプトファイルのみになりました。 ゲーム等画

    #20 まさか、Cocos2d-x 使っているのに C++ 書いてるわけないよね? - KAYAC engineers' blog
    kenjiskywalker
    kenjiskywalker 2012/12/21
    結局luaのこと書いてた!
  • #19 「iOS6のカスタムUIAcitivityのつくりかた」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog

    突然ですが、tech.kayacの読者の皆様方におかれましては、自社でWebサービスを運営している方、及びそのサービスのクライアントとしてのネイティブiOSアプリをリリースされている方はかなり多いのではないのでしょうか。 そんな独自サービス/アプリを、もっと多くの人に使ってもらえるきっかけとなる(かもしれない) UIActivity という iOS 6 の新機能について書かせていただきます。 あ、申し遅れました、入社3年目にして初めて投稿する、ツツミ(@shu223)と申します。ひたすらiOSアプリをつくり続けております。 UIActivityとは? iOS 6 から入った、こんなやつです。 FacebookやTwitterに投稿したり、テキストをメールで送信したり、写真アプリに画像を保存したりと、とにかくアプリやサービス連携の総合受付みたいなUIです。 実装は超カンタン この UIUI

    #19 「iOS6のカスタムUIAcitivityのつくりかた」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog
  • #18 「サービスの負債を減らしましょう」tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog

    こんにちは、入社4年目にして初投稿する、あきひと(@takihito)です。 このエントリーは tech.kayac.com Advent Calendar 2012 の18日目の記事になります。 今年の12月で5周年を迎えた某サービスの運用開発をしています。自分が関わり始めてからは4年ほどです。 その間にサービスの成長に伴い溜まった負債を減らす方法をいくつか紹介したいと思います。 (テーマは「2012年のマイイノベーション」ですが特に気にせず書かせて頂きます) カプセル化 リリース時にコントローラにベタ書きしてしまったコード、開発速度や納期を優先するとよくあります。 このままでは単体テストも書きにくく、品質や機能拡張の障害にもなります。こんな時にはカプセル化をしましょう。 ベタ書きしたビジネスロジックを上図のようなModelクラスを新たにつくって、移し閉じ込めてしまいまいます。 これでコ

    #18 「サービスの負債を減らしましょう」tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog
    kenjiskywalker
    kenjiskywalker 2012/12/18
    すごい