タグ

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

  • DynamoDBで分散ロックを実現するsetddblockと現代版アクセスカウンター - KAYAC engineers' blog

    こんにちは。今年からアナリティクスエンジニアを名乗ろうとしてる池田です。 こちらは、KAYAC Advent Calendar 2021 1日目の記事です。 この記事では、setddblockという分散ロックを実現するためのツールと、その動作試験のために現代版アクセスカウンターを作成した話をします。 setddblock 皆様がcronなどで定期実行のスクリプトを実行する場合、同時実行されては困るものはどうしていたでしょうか? daemontoolsのsetlock というツールを使って同時実行を防いでいたことがある方も多いと思います。 http://cr.yp.to/daemontools/setlock.html このsetlock はローカルのファイルシステム上にロックファイルを作成し、ロックファイルの作成が成功したら指定されたコマンドを実行するというツールです。 例えば1分ごとに起

    DynamoDBで分散ロックを実現するsetddblockと現代版アクセスカウンター - KAYAC engineers' blog
    motchang
    motchang 2021/12/06
  • 複数のデータベースをまとめてSELECTできるツール「mdq」を公開しました - KAYAC engineers' blog

    こんにちは。 2016新卒でLobiのサーバーサイドエンジニアをやっているmorikuniです。 今回は、mdqというGo製のツールを作ったので、その紹介をします。 mdqは複数のデータベースに並列にクエリを投げて、結果をJSONで出力してくれるというものです。 github.com mdqに近いコンセプトのツールとして、弊社の荒賀(@ken39arg)が作ったshard_promptがあります(#6「Shardingマジ怖い」tech.kayac.com Advent Calendar 2012)。 こちらはSQLを解析し、複数データベースにまたがる集約関数を一部サポートしていますが、MySQL専用かつ直列にクエリを投げるというものでした。 mdqでは複数データベースにまたがる集約関数はサポートしませんが、PostgreSQLなどMySQL以外のデータベースへのクエリや、並列処理による速

    複数のデータベースをまとめてSELECTできるツール「mdq」を公開しました - KAYAC engineers' blog
    motchang
    motchang 2017/02/13
    ヒェッすごい
  • スケーラブル 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
  • 突撃!隣のキーボード - KAYAC engineers' blog

    Lobiチームの長田です。 このエントリはTech KAYAC Advent Calendar 2016の8日目です。 昨日は「【DockerMySQLのフェイルオーバーをdocker-composeで構築」でした。 techblog.kayac.com 今回はゆる~く眺められる内容となっております。 皆さんキーボード使ってますよね。 他の人がどんなキーボードを使っているのか気になりますよね。 今回は何人かの社員にキーボードについてアンケートしてみました。 使っているキーボードは? そのキーボードを選んだ理由は? そのキーボードを選んでよかったことは? そのキーボードを選んで失敗したことは? ひとことコメント アンケートの回答を、実際にキーボードを使っている環境の写真と合わせてまとめてみました。 では見ていきましょう! osawa-junの場合 使っているキーボードは? Happy Ha

    突撃!隣のキーボード - KAYAC engineers' blog
  • 分散環境でユニークなidを発番するGo製プロダクト「katsubushi」のご紹介 - KAYAC engineers' blog

    Lobiチームの長田です。 今回はkatsubushiというアプリケーションを紹介します。 https://github.com/kayac/go-katsubushi katsubushiはid発番を行うアプリケーションです。 水平分割されたデータベースに対してユニークなidを発番するために作られました。 なお、記事中の「データベース」はMySQLを指します。 katsubushiの特徴 Snowflakeと同様のアルゴリズムでid発番 SnowflakeはTwitter社がかつて公開していたid発番アプリケーションです。 https://github.com/twitter/snowflake/tree/master 既にメンテナンスされておらず、masterブランチにはその旨が書かれたREADMEしか残されていません。 タグが切られているので、ソースコード等はそちらで確認できます。

    分散環境でユニークなidを発番するGo製プロダクト「katsubushi」のご紹介 - KAYAC engineers' blog
  • AWS Lambdaを使ってベンチサーバー無しで社内ISUCONを運営したはなし - KAYAC engineers' blog

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

    AWS Lambdaを使ってベンチサーバー無しで社内ISUCONを運営したはなし - KAYAC engineers' blog
  • 2015年新卒研修を行いました - 研修編 - - KAYAC engineers' blog

    新人研修で Chef, Serverspec, TCP, HTTP, MySQL, ISUCON を担当した @tkuchiki です。 研修は 4/9 - 4/16 の 6日間 で実施し、 2013年技術部新卒研修 の内容を一部変更して行いました。 Go の研修については、今年の新人研修はgoでした を、 ISUCON については 新卒研修の最終日に社内ISUCONを開催しました 〜運営死闘てか死亡編〜 を御覧ください。 研修の目的 研修の目的は以下のとおりです。 Linux サーバ構築スキルの習得 Serverspec の必要性を学ぶ Chef の cookbook を作成できるようになる TCP・HTTP の理解を深める MySQL の基礎を理解する 実践(ISUCON)を通して課題発見・解決能力を養う 研修の内容 Chef, Serverspec 2013年に行った新人研修同様、予

    2015年新卒研修を行いました - 研修編 - - 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
  • 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
    motchang
    motchang 2013/04/23
  • 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
    motchang
    motchang 2013/04/22
  • #24 「Unityでコルーチンも単体テストしよう」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog

    みなさんこんばんは。今年の2月に入社してWeb業界というものがよくわからないままiPhoneアプリ開発やらnode.jsでサーバ開発やらPerlでサーバ開発やらC#でUnity開発やらをやっていたら年が暮れかかっていた@acidlemonです。 もともと私はC++が専門で、SIerの業界にいたのでしかたなくJavaもやっていたという感じだったのですが、Web業界に転職してみたらC++でプログラムを書く人がほぼいなかったということで、今年だけで新規に4言語も手をつけていて環境の激変っぷりに自分でも驚いています。 さて、24日間にわたってお送りしてまいりましたtech.kayac.com Advent Calendar 2012も今日が最終日。2日目にしていきなりJavaScriptでおっぱいが動き始めた時はどうなることかと思いました。しかし、振り返ってみるとDDLをGitで管理したり、Pro

    #24 「Unityでコルーチンも単体テストしよう」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog
  • #9 nodeのコンソールは便利なjsonビューア - KAYAC engineers' blog

    クリスマスシーズンということでAdvent Calenderのシーズンですね。 唐突ですが、この時期カップルよりも「リア充爆発しろ」ってネガティブワードの方が、たとえそれが記号的に使われてたとしても、嫌やなーって思ってしまう@9reです。 お前のリアルは彼女つくることしかないんか。つまらんなぁって思いますし、やっぱり、 俺こないだこんなパッチ送ってん!とか、この技術凄いやろ!みたいな充実もあると思うねん(`・ω・´)! さて、変な前置きになりましたが、このエントリは tech.kayac.com Advent Calendar 2012 9日目の記事です(12/9 35時公開)。 テーマは「私の中のマイイノベーション 2012」 nodeのコンソールは便利なjsonビューア nodejsも普及したし、元々軽量なフォーマットっていうことでJSONのAPI結構多いですよね。 自分は普段Andr

    #9 nodeのコンソールは便利なjsonビューア - KAYAC engineers' blog
  • #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
    motchang
    motchang 2012/12/22
  • #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
  • エンジニアとして継続したい3つのこと - KAYAC engineers' blog

    777ブログウェイ「つくるための三種の神器」というテーマで、 日はカヤック京都支社の技術部アルバイトで働いている高江洲(たかえす)がご紹介します。 エンジニアとして働く上で、大切だなぁと思う以下3つのことについて自分が利用している(利用し始めた、今後も継続したい)ことを3つ取り上げてみたいと思います。 1. 情報収集 2. タスク管理 3. テスト駆動開発 1.情報収集 情報収集手段といえば、はてブの人気エントリーやヤフーのトップニュース、RSSリーダーなど様々な手段がありますが、最近はもっぱらGunosy(グノシー)を使っています。 TwitterやFaceBookでログインすると、興味のある分野についてのおすすめ記事のまとめを1日1回メールで受け取る事ができます。大手のニュースサイトから個人のブログまでの幅広く、僕は朝の通勤中にひと通り目を通す感じで使っています。 使い始めて2ヶ月く

    エンジニアとして継続したい3つのこと - KAYAC engineers' blog
    motchang
    motchang 2012/07/08
  • Rubyで開発するときに入れておきたい三種のRubyGems - KAYAC engineers' blog

    「つくるための三種の神器」というテーマで続けている「777ブログウェイ」! 9日目となる日は「Rubyで開発するときに入れておきたい三種のRubyGems」と題して、定番の RubyGems を3つご紹介します。 1. bundler「bundler」は、アプリケーションが依存するgemを管理するツールです。今やgem管理のデファクトスタンダードです。 「gem install hoge」のようにコマンドで gem をインストールしていくと、あれよあれよとグローバルな領域にどんどん色んなgemが…それも複数バージョン混在していきます。そして、いずれは、このアプリケーションで必要なgemはどれだっけ…バージョンはいくつだっけ…といった具合に、どんどん依存関係が分からなくなってきます。ここで活躍するのが「bundler」です。 使い方はいたって簡単。1) bundler のインストールgem

    Rubyで開発するときに入れておきたい三種のRubyGems - KAYAC engineers' blog
  • EmacsにPHPの補完を実装するマイナーモード、php-completion.elをリリースしました。 - KAYAC engineers' blog

    anything.elのインターフェイスを使い、EmacsにPHPの補完を実装するマイナーモード php-completion.el をリリースしました。 インストール・設定・補完のスクリーンキャストは以下です。 php-completion.el DEMO from imakado on Vimeo. 出来る事 visual studioやEclipseライクなポップアップ補完 anything.elのインターフェイスを使った補完 GNU Globalの作ったTAGSファイルから補完候補を自動収得 etags,ctagsで生成したTAGSファイルから補完候補を収得 php.netでのドキュメントの検索 インストール方法 php-completion.elのインストール方法を書きます。 スクリーンキャストと併せてご覧ください。 以下のElispが動作に必要です。anything.el,au

    EmacsにPHPの補完を実装するマイナーモード、php-completion.elをリリースしました。 - KAYAC engineers' blog
  • カヤック流ソーシャルアプリの作り方 インフラ編 - KAYAC engineers' blog

    入社4年目にもなってtech.kayac初登場のせいです。 ブログ書けプレッシャーにとうとう屈する時がきました。 これで夢にkyo_agoが出てうなされなくてすみます。(彼はtech.kayacの尻たたき担当でした) 先々月「ぼくらの甲子園!熱闘編」というゲームをモバゲー内にてリリースしました。 これは去年リリースした「ぼくらの甲子園!」の続編です。 モバゲーユーザの方、是非遊んでみてください。 今回はこの「ぼくらの甲子園!熱闘編」がどういうインフラ構成になってるか紹介したいと思います。 注) 題名に「カヤック流」とはつけましたが、カヤックでは多様性を善としている風潮があり、 ゲームによってインフラの構成が違うどころか、利用しているプログラミング言語すら違います。 なので全てのゲームがこのような構成になってるわけではありません。 前提 今回のインフラ構成を決めるに至って考慮した点は「ラクに

    カヤック流ソーシャルアプリの作り方 インフラ編 - KAYAC engineers' blog
    motchang
    motchang 2011/10/16
  • node.jsはじめました - KAYAC engineers' blog

    はじめまして! 技術部2年目のsugyanと申します。 初めてtech.kayac.comに投稿します! 先日自分のブログで書いた記事が思いのほか好評だったので、これについてもう少し詳しく書いてみようと思います。 node.js+socket.ioを使ったライブコーディングwebアプリを作ってる - すぎゃーんメモ node.jsについて 最近話題の、サーバーサイドJavaScript「node.js」。みなさん触ってみてますか? 「Google V8 JavaScript Engineによるイベント駆動の…」と、どんなものかは知っているものの実際には触っていない、という人がまだ多いような気がします。 僕も昨年の12月くらいにようやく触ってみた という程度なのですが、意外にお手軽で簡単に使えるし面白いので、 「JavaScriptはまだニガテで ><」というヒトでも安心して始められるのでは

  • 1