タグ

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

  • 2017年度 新卒技術部研修 〜講義編〜 - KAYAC engineers' blog

    はじめに 新卒技術部研修にするにあたって昨年の研修を振り返り フロントエンジニア、フロントエンジニア(Unity)、サーバーエンジニア、と様々な職能の新卒メンバー全員が受ける研修でGo言語を使うのは配属後に使わない人がいるのでもったいない 各講義毎にそれぞれ異なったお題を出すと、講義で学んだことがどのように関係してくるのか関係性を把握するのが大変そうだった という反省がでました。 そこで今年は カヤックではサーバー構築にChefを使用しているため、配属先がRuby以外の言語で開発していてもRubyを使う機会があり無駄にはならないということからRubyを使用する 与えられたお題のWebApplicationを段階を踏んで作っていく体系的に学べるカリキュラムにする ということになりました。 実際の研修ですが、以下の流れで研修をすすめていきました。 アプリを作る上で必要なgit,Rubyの基礎的

    2017年度 新卒技術部研修 〜講義編〜 - KAYAC engineers' blog
  • Elixir for Rubyists - KAYAC engineers' blog

    なぜElixirか? 2005年にはDHHさんによってRailsが作られ、ウェブコミュニティーの中でブームになりました。それによりRails (とRuby) はウェブPHPJavaなどのウェブプログラミング言語と比べられるような存在になりました。RailsはCoC(Convention over Configuration)という理念にそっているので開発時間が減って、生産性がとても高いです。一方、Railsにもデメリットがあります。Railsのコードベースが重いし、番環境のメモリがすごいかかります。この問題を解決するため、監視プロセスがよく使われています。もしプロセスが多くのメモリを使うとそのプロセスを殺して再起動します。それは危険じゃないでしょうか?あと、Rubyは不変性を守らないから、並行処理の設定が難しいです。 Elixirとは Elixir(エリクサー)はErlangのVM上で

    Elixir for Rubyists - KAYAC engineers' blog
  • React Componentのスタイルガイドを自動生成してパーツの再利用をしやすくする - KAYAC engineers' blog

    こんにちは。カヤックのReactおじさんこと島津です。 最近はVue.jsにも浮気し始めましたが、Reactについての記事を書きます。 Reactのコンポーネントが増えてきて管理が大変 Reactを使うとコンポーネントの部品化が捗りますが、 開発規模が大きくなってくるとその数も増えてきて管理が大変になってきます。 スタイルガイドを導入 スタイルガイドとは、UIパーツの用例と実表示例をまとめたドキュメントのことです。 これがあるとパーツの再利用性が高まります。 例:Codepenのスタイルガイド 人力で手書きしていっても良いのですが、更新が追いつかなかったりするので自動生成する仕組み化ができるツールを使いましょう。 代表的なものとしては、CSSのコメントからドキュメントを自動生成してくれるkss-node などがあります。 今回はCSSだけではなく、Reactのコンポーネント単位でドキュメン

    React Componentのスタイルガイドを自動生成してパーツの再利用をしやすくする - KAYAC engineers' blog
  • DynamoDB + Lambda + SSM でテストサーバーをポコポコつくる仕組み - KAYAC engineers' blog

    はじめまして。カヤック技術部の杉山です。 主にクライアントワークでサービスを開発しています。 今回は、クライアントワークで運用している、テストサイトの仕組みに関して書きます。 「テストサイト」の概要 クライアントワークでは、日々たくさんの案件を開発しています。 それぞれの案件では、多くの場合、Webサイトもしくは、WebAPIを公開するためのサーバーが必要になります。 実際の公開時には、案件ごとに専用のクラウドコンピューティングサービスを契約し、セットアップすることになりますが、 利用して良いサービスの確認が必要であったり、サービスの契約まで時間がかかったりするため、すぐには決まらない場合があります。そのため、開発時や検証時には、カヤック側でテストサイトを用意し、確認やプレビューを行っています。 さらに以下のような要望にも対応する必要があります。 出来るだけ時間をかけず開発環境を用意したい

    DynamoDB + Lambda + SSM でテストサーバーをポコポコつくる仕組み - KAYAC engineers' blog
    takaesu
    takaesu 2017/04/12
    クライアントごとにテスト用サーバーを作る
  • KAYAC engineers' blog

    SREチームの藤原です。 今回は Amazon CloudFront Functions をテストするためのOSSとして、cfft というものを書いたので紹介します。 github.com 3行でまとめ CloudFront Functionsのテストは手元ではできなくて面倒です CloudFront Functionsをテストする cfft というOSSを書きました KeyValueStoreの操作を含め、便利な使い方がいろいろありますのでどうぞご利用下さい CloudFront Functionsをテストするのが面倒という問題 CloudFront Functions (以下CFF) は、AWSが提供するCDNであるAmazon CloudFrontのエッジノード上でリクエストやレスポンスの操作が行える、JavaScriptの実行環境です。典型的なユースケースとしては、キャッシュキーの

    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
    takaesu
    takaesu 2016/10/29
    ユニークIDを発行
  • Lobiのログ集約・解析のはなし - KAYAC engineers' blog

    Lobiチームの長田です。 あらゆるWebサービスがそうであるように、Lobiでも日々大量のログが出力されています。 今回はこのログをどのように集約・解析しているかを紹介します。 TL;DR アクセスログ・アプリログなど、毎秒10000行以上のログが生成されている Fluentdを使用しログを集約 consul serviceを利用した集約サーバーの冗長化 ログ中のイベント検知・集約にはNorikraを使用 アクセスログの各種解析にはAmazon Redshiftを利用 ログの集約 ログ収集エージェント Lobiではログの集約にFluentdを利用しています。 Fluentd | Open Source Data Collector | Unified Logging Layer ログファイルの集約にはfluent-agent-hydraを、Perlアプリケーション内からのログ送信にはFl

    Lobiのログ集約・解析のはなし - KAYAC engineers' blog
  • ファイル更新もchef実行もstretcherで!Lobiをデプロイするときにやっていること - KAYAC engineers' blog

    Lobiチームの長田です。 今回は現在運用中のLobiというサービスのデプロイについて紹介します。 Lobi Chat & Game Community Lobiについての紹介は以前のエントリを参照ください。 サーバーサイドエンジニア視点でLobiというサービスを紹介します | tech.kayac.com - KAYAC engineers' blog TL;DR デプロイ=各種ファイル更新とサービスへの反映、chefの実行 毎日十数回のデプロイを行っている デプロイ対象は数十台単位 十余名のサーバーサイドエンジニア全員にデプロイ権限がある Auto Scalingを考慮したデプロイ手段を採用している ファイル更新もchef実行もstretcherでOK まだまだ改善の余地あり おおまかな手順 番環境にデプロイするぞ!という段になると、こんな操作が行われます。 GitHub上でコードレ

    ファイル更新もchef実行もstretcherで!Lobiをデプロイするときにやっていること - KAYAC engineers' blog
    takaesu
    takaesu 2016/02/22
    pull型デプロイ
  • 今年4月からメンターになってやったこと - KAYAC engineers' blog

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

    今年4月からメンターになってやったこと - 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
  • #13 フロントエンド制作に華を! 面白いWebAPI 7選 - KAYAC engineers' blog

    こんにちは。 カヤックに新卒で入社し、フロントエンドエンジニアとして スロット制作を中心とした活動を続けている田島です。 どうぞお手柔らかによろしくお願いします。 さてさて、Webのフロントエンドエンジニアの場合、 何か作りたいアイデアを思いついてから世に公開するまでのスピードが コピーライターに次いで早いです。 また、リッチなコンテンツや大量のコンテンツを扱って何かしようというときには WebAPIをうまく活用すれば、自前でデータベースを作らずとも ササッと作って公開することもできます。 今回は、そうしたフロントエンド制作を豊かにするWebAPIの中から特に 面白いと思うものを7つ選び、実例を交えて紹介していきたいと思います。 1. MediaWiki API http://ja.wikipedia.org/w/api.php Wikipediaの情報を取得できるAPIです。 このAPI

    #13 フロントエンド制作に華を! 面白いWebAPI 7選 - KAYAC engineers' blog
  • #5 「今年お世話になったgem その2」 tech.kayac.com Advent Calendar 2013 - KAYAC engineers' blog

    こんにちは、@hilotter です。 このエントリーはtech.kayac.com Advent Calendar 2013の5日目のエントリーです。 昨日の「#4 今年お世話になったgemその1」にもありましたが、弊社クライアントワーク事業部ではバックエンドにRailsを用いる案件が多くあります。 日のエントリーでは昨日に続きまして、今年1年間クライアントワークプロジェクトでお世話になったgem残り5選の紹介とそれらの簡単なtipsをご紹介したいと思います! 今回ご紹介するgem settingslogic : 定数を一元管理できます omniauth : 外部サービス認証を手軽に組み込めます resque : ジョブキュー処理を手軽に実現できます tire : 全文検索エンジンelasticsearchにrubyからアクセスできるようになります active_admin : サクッ

    #5 「今年お世話になったgem その2」 tech.kayac.com Advent Calendar 2013 - KAYAC engineers' blog
  • #4 今年お世話になったgemその1 KAYAC Advent Calendar 2013 - KAYAC engineers' blog

    こんにちは、@Konboi です! このエントリーはtech.kayac.com Advent Calendar 2013の4日目のエントリーです。 今日のエントリーでは今年1年間、クライアントワークのプロジェクトでお世話になったgem10選の紹介とそれらの簡単なtipsを、 自分と明日担当の@hilotterの2人で2回に分けて紹介したいと思います! ( カヤックはPerlの会社として知られていますが、クライアントワーク事業部ではRailsを使用したプロジェクトも数多くあります!) それでは、早速いってみましょう! carrierwave まず1つ目に紹介するのは、ファイルアップローダの決定版 carrierwaveです。 carrierwaveは下記のように設定をしておけば画像のアップロード時に s,m,l のサイズをまとめて生成してくれます! 呼び出す側では、 .url.(:s),

    #4 今年お世話になったgemその1 KAYAC Advent Calendar 2013 - KAYAC engineers' blog
  • SEO対策 | エンジニアでも知っておくべき7つのチェックリスト | tech.kayac.com - KAYAC engineers' blog

    この記事は tech.kayac.com Advent Calendar 2013 23日目の記事です。 こんにちは!最近rubyを書かせていただいております@yumiyonです。 技術の話が続きましたので、今日は変わってSEO(Search Engine Optimization)の話をしたいと思います。 創ったサービスは、なるべくそのサービスに関連するクラスタの方々に知って使ってほしい . . . ! と思うのは世の常です。 というわけで、わたしが普段Webサービスを創るときにチェックしている「最低限」気にするべきSEOのチェックリストをご紹介いたします。(2013年12月現在時点での内部施策) 目次 検索エンジン向けのXMLサイトマップを作成する パンくずリストを作成する 狙いたいキーワードに沿った適切なページタイトルを設定する 1ページ1テーマを徹底する サイトの表示速度は最大限に

    SEO対策 | エンジニアでも知っておくべき7つのチェックリスト | tech.kayac.com - KAYAC engineers' blog
  • #5「GitDDLまじイノベーティブ」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog

    好きな IPA は志賀高原ビールの @soh335 です。 早くビール飲みたいのですが書かないと怒られるので今日は、隣の発明家が作った GitDDL というモジュールについて説明しますね。 (隣の発明家に任せると「GitDDLまじイノベーティブ(完)」としか説明してくれないので) なにするものなの 名前を見て通り、Gitdatabase の schema 管理をするものです。それ以前は、DBIx::Class::Schema::Versioned とかを使っていたようです。 仕組み まず、Git で管理されている schema ファイルを指し示すコミットのハッシュを database 上で管理します。 schema に変更があった場合、このコミットのハッシュが databse 上のものとで差異が生まれます。よって database 上の schema は期待する schema ではな

    #5「GitDDLまじイノベーティブ」 tech.kayac.com Advent Calendar 2012 - 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
  • 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
  • #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
    takaesu
    takaesu 2012/12/11
    HTTPのWebAPIを叩くためのNode+Curl (確かに、不具合報告はただエラーがある、なんかおかしいだけじゃなく不具合を発生させるリクエストを教えないとなー)
  • #10 2012年に作ったものを振り返りつつProcletマジ便利 - KAYAC engineers' blog

    2012年も残すところあと20日ほどとなりましたが皆様いかがお過ごしでしょうか。@fujiwara です。 このエントリは tech.kayac.com Advent Calendar 2012 10日目の記事です。 テーマが「私の中のマイイノベーション 2012」ということで、まずこの1年に作ったものを自分の blog エントリから振り返ってみますと… Perl から Fluentd にログ出力 - Fluent::Logger リリース 今年一番話題になったミドルウェアといえば fluentd でしょうか。その fluentd に Perl からログを出力するためのモジュールです Parallel::Benchmark というモジュールを書きました 並列にプロセスを起動して負荷を掛けるベンチマークを簡単に作るためのフレームワークです。弊社の主にソーシャルゲーム案件で、リリース前の負荷テ

    #10 2012年に作ったものを振り返りつつProcletマジ便利 - KAYAC engineers' blog
    takaesu
    takaesu 2012/12/11
    Webサーバ運用に使えるツール
  • エンジニアとして継続したい3つのこと - KAYAC engineers' blog

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

    エンジニアとして継続したい3つのこと - KAYAC engineers' blog
  • 1