タグ

ブックマーク / tech.feedforce.jp (10)

  • RubyでBigQuery始めました | feedforce Engineers' blog

    初めまして!今年1月からジョインしたyukiyanです。 feedforceではアプリケーションエンジニアを担当しています。 最近、弊社のあるプロジェクトにて Google BigQuery を導入しました。 その際、学びがいくつかあったので知見として投下します。 ※ Railsプロジェクトなので、一部のサンプルコードにRailsの表現も含まれています。 BigQueryとは BigQueryとは、Google Cloud Platform(以下、GCP)が提供するクラウドサービスです。 超でかいデータをSQL風のクエリで数秒で解析できます。 5億件のデータを3秒程度でフルスキャンできます。 もっと知りたいという方は、hadoop - Googleの虎の子「BigQuery」をFluentdユーザーが使わない理由がなくなった理由 #gcpja - Qiitaを参照してください。 gem

    RubyでBigQuery始めました | feedforce Engineers' blog
  • JenkinsでサーバのCIを始めました | feedforce Engineers' blog

    お久しぶりです。アジャイル推進おじさん改め、サーバCIおじさんの増田です。 プライベートではベヨネッタ2をやっています。3rdクライマックスはクリアできそうです。最高難易度はたぶん無理です。 2015.3.13 追記 社内で共有するレシピのリポジトリをsite-cookbooksからff-cookbooksに変更しました。 フィードフォースのサーバリポジトリ 弊社は今年の4月くらいから serverspecを導入しましたが、CIはしていませんでした。構成管理にはChef-soloを使っており、GitHubのリポジトリはこのようになっております(数字は参照順です)。 server-social-plus site-cookbooks cookbooks ff-cookbooks (git submodule) server-datafeed-plus site-cookbooks cookb

    JenkinsでサーバのCIを始めました | feedforce Engineers' blog
  • Delayed_job についてちょっと詳しく | feedforce Engineers' blog

    自分が知る Ruby 製ジョブキューの中で最も手軽なジョブキューだと思う Delayed_job について、ほんの少しだけ詳しく調べた内容を社内勉強会で発表しました。 その発表の際に使ったスライドを公開します。 発表資料 Delayed_job についてちょっと詳しく 質疑応答 enqueue時のシリアライズで ActiveRecord どうなる? YAML の to_yaml/load を使います。 ワーカーはどうやってジョブをタイムアウトさせる? Timeout.timeout を使います。 失敗した時に再実行させたくない場合は? Delayed::Worker.max_attempts を 1 とすれば、そのワーカーで実行される再実行しなくなります。 ペイロードオブジェクトが max_attempts に応答出来れば、その値を最大試行回数とします。 ワーカーの名前はどう決まる? 基

    Delayed_job についてちょっと詳しく | feedforce Engineers' blog
  • Amazon Web Service (AWS) でサービスをデプロイしてみた | feedforce Engineers' blog

    3 年ほど前、 「えもにゅ」というサービスを Amazon EC2 でリリースしました。残念ながら「えもにゅ」はサービスを終了しましたが、今回、別プロダクトで再び AWS を使う機会がありました。「えもにゅ」当時と比べて、AWS も大きな進化を遂げました。 「えもにゅ」当時にはなかった東京リージョンがある。 EC2 / S3 以外にも VPC, ELB や RDS といったサービスが展開されている。 久々の FFTT では、 AWS をどのように利用しているかについて、公開できる範囲でご紹介したいと思います。 AWS 選定までの流れ 要求諸元 今回サービスを立ち上げるに当たって、インフラ面では以下の要求がありました。 Rails 3.2 アプリケーションを動作させたい。 IaaS またはデータセンタの場合は、一般的なロードバランサ → Web appサーバ → MySQL という構成にした

    Amazon Web Service (AWS) でサービスをデプロイしてみた | feedforce Engineers' blog
  • RSpecの話を少し | feedforce Engineers' blog

    弊社内のRubyを使ったプロジェクトでは、自動テストツールのひとつとしてRSpec(バージョン2と1両方)を使っています。 先日社内勉強会でRSpecのトピックを取り上げたので、いくつか紹介したいと思います。 Tipsなど (以下のコードはバージョン1でも動作します) as_null_object 通常、Mockオブジェクトに対してstub定義していないメソッドを呼ぶとMockExpectationErrorが発生します。ですがテストによっては、ある特定のメソッド呼び出し以外を無視したいケースもあるでしょう。(例えばログ出力内容の検証など) その場合はMockオブジェクトに対してas_null_objectメソッドを呼んでおくことで、特定のメソッド呼び出し以外を無視することができます。 def start(logger) logger.debug('debug message.') # a

    RSpecの話を少し | feedforce Engineers' blog
  • Macアプリのパッケージ作成方法 | feedforce Engineers' blog

    MacOSXのアプリケーションはコピーしてインストールが済んでしまうものも多いですが、動作するシステム条件があったり、複数の製品を一度にインストールしたい場合などはインストーラからのインストールが便利です。 今回はインストーラからインストールするために必要となるパッケージの作成方法について説明します。 アプリケーションの配布 Appleはアプリケーションの配布方法として以下の2つを推奨しています。 マニュアルインストール 対象のファイルをドラッグ&ドロップなどでインストール先のフォルダにコピーする方法です。コピーするだけなのでとても簡単です。 インストーラを使ったインストール インストーラアプリケーションを起動してインストールする方法です。 このインストール方法を利用するとOSやCPUなどのシステム条件を指定したり、インストール先のフォルダの指定、複数のファイルを配置することなど、細かなオ

    Macアプリのパッケージ作成方法 | feedforce Engineers' blog
    d4-1977
    d4-1977 2010/04/03
    おお!
  • ホワイトボードを使ったタスク管理 | feedforce Engineers' blog

    はじめに 弊社では、技術チームのタスク管理に、ホワイトボードを利用しています。毎朝、ホワイトボードの前にチームメンバーを集めて、スタンドアップミーティングを行っています。 今回のコラムでは、このホワイトボードとタスク管理についてお話しします。 はじめに 前知識 目的および効果 見える化 意識合わせ 振り返り ホワイトボードの使い方 (1) Q内の月別予定 (2) KPT (3) 直近のタスクプール (4) 先延ばしタスクプール (5) 定期タスクプール (6) メンバーのタスク管理表 (6a) 実行中タスク (6b) 各曜日別の実行済みタスク (7) メンバー用の汎用タスクプール タスクをホワイトボードで管理するメリット 朝ミーティングの効率 一目瞭然 振り返りの効率 公開性 まとめ 最後に はじめに 弊社では、技術チームのタスク管理に、ホワイトボードを利用しています。毎朝、ホワイトボード

    ホワイトボードを使ったタスク管理 | feedforce Engineers' blog
  • FFTT : Capistrano

    ※ この資料について 2006年4月の勉強会資料をCapistranoのバージョンアップ(現時点では1.3.1になってました)による仕様変更などに合わせてちょっと修正したものです。 質疑応答の部分は当時のままなので最初の質問が初々しいです。 Capistranoって何なのさ デプロイツール デプロイ=配備 参考 : Capistrano: Automating Application Deployment 一言で言うと複数のサーバ上で同時に並行してコマンドを実行できるツール。 複数のサーバで動いているサービスのデプロイを楽に行うことができる。 Rails起源なのでRailsに特化した部分もあるが、ほかのアプリケーションでも使える。 昔はSwitchTowerと呼ばれていた。はてなでも使われてる。 何がいいのか 複数サーバへの作業が効率化、自動化できる 定義済みの標準タスクに沿った運用をする

    FFTT : Capistrano
  • FFTT : RailsのMigration

    なんですかこれは データベース構造をバージョン管理する仕組み SQLではなくRubyのコードでデータベース構造を記述することによって抽象化 番環境への変更の適用漏れがなくなる ほかの開発環境や検証環境への変更の適用がバッチリ 必要があれば以前のバージョンに戻せる 複数のデータベースエンジンへの対応が簡単にできる MySQL, PostgreSQL, SQLite, SQL Server, Sybase, Oracle (メジャーなものはDB2以外ぜんぶだって) どうつかいますか $ svn up $ rake migrate セットで使う。 これで手元の開発環境のソースコードとデータベースの構造が最新のものになる。 仕組み schema_infoというテーブルとMigration定義ファイルの名前でバージョン管理 Migration関連の操作 rake db:schema:dump (r

    FFTT : RailsのMigration
  • 負荷分散講習会 Apache編 | feedforce Engineers' blog

    ゴール 負荷分散のいくつかの方法に関して理解する mod_proxy_balancerによる負荷分散クラスタが構築できる 基礎知識編 基的な資料 主にクラスタによる負荷分散の資料。 - Apache モジュール mod_proxy_balancer - mod_proxy_balancerで中?大規模サーバー運用するときの勘所 - cyano あと社外秘資料。 負荷分散? 複数台のサーバにアクセスを分散して、個々のサーバにかかる負荷を減らし、全体的に処理できるアクセスを増やすこと。 以下のようなアプローチがある。 DNSラウンドロビン DNSでひとつのホスト名に複数のIPアドレスを割り当てる方法 シンプル しかしダウンしているホストにもアクセスが振り分けされてしまう 冗長化と併用でなんとかなるかな? 機能ごとにホストを分割 ウェブサーバとDBサーバの分割(基過ぎるが一応これも負荷分散)

    負荷分散講習会 Apache編 | feedforce Engineers' blog
  • 1