EYCでのステージング環境問題ですが、料金シミュレーターで見積もってみたらsmallを一台だけ立ち上げれば6119円だそうなのでEYCにステージング環境を作ってみました。

こんな感じです。

staging環境はRails.envがstagingになります。そんなの大丈夫なのかよとおもいますが、37signalsも色々とenv作ってるようなので予想外のことはそれほど起きないです。

変える必要があるところ

  • database.ymlにstagingを追加する。
  • if Rails.env.production?となってるところをif Rails.env.production? or Rails.env.staging?に変える。
  • s3、CloudFrontにstaging用の設定を追加する(paperclip使ってる場合は要注意)
  • Gemfileでgroup :production doとなってるところをgroup :production, :staging doに変える。

ものに応じてproductionだけでやりたいこと、production or stagingでやりたいことがあるので慎重に選ぶ必要があります。

例えば公式Twitterアカウントで通知する部分や本物の広告配信はproductionだけでやりたいでしょうし、S3を使うかどうかというのはproduction or stagingでやりたい。

リリース作業をCIする

デプロイといっても色んな意味が含まれてて、コンパイル・テスト・パッケージング・リリースをひっくるめてデプロイと言えますが、Railsだと大抵テストのみをさしてデプロイと言う。

実際のRailsアプリはリリースで問題が結構起きるのでこれを含めてCIしたい。

EYCはeyコマンドでリリースするので怖話ではこんな感じ。

弊社の場合はpushされるたびに↓のような通知がくるが、まあいい。

受託開発でEYCを使う場合はステージング環境代金もちゃんと見積りに入れると良いと思います。

jenkins, rspec-railsの場合。

# Gemfile:
group :test do
  gem 'ci_reporter'
end

Rakefileの最終行に下記を追加する。

# Rakefile:
require 'ci/reporter/rake/rspec'

rake specの代わりにrake ci:setup:rspec specを実行するとspec/reports/以下にテスト結果のxmlができるので.gitignoreに追加しとく。

spec/reports/

jenkinsの設定

Build時にrake ci:setup:rspec specでxmlが出力されるようにしておく。怖話ではこんな感じ。

bundle install --binstubs
cp config/database.example.yml config/database.yml
rake db:migrate
rake ci:setup:rspec spec

Post-build Actions > Publish JUnit test result reportを追加し、spec/reports/*.xmlを入力。JUnitがこういうxml出すみたい。

下記のようなグラフが出るようになる。怖話ではこんな感じ。

画像を直リンできるので目につきやすいところに貼るのがいいかも。

dm-validations-i18nがノルウェーのボークモールに対応しました。

add locale for Norwegian bokmaal (nb-NO) by drtortoise · Pull Request #7 · komagata/dm-validations-i18n

何言ってるかわからんかもしれんが俺もです。

Engine Yard Cloudのstagingをどうするか悩んでます。

  1. Engine Yard Cloudにstagingを作る。
  2. さくらVPSとかにstagingを作る。
  3. Engine Yard LocalをさくらVPSに入れる。

1はstagingへのdeployを含めてCIしたいので立ち上げっぱなしではお金が厳しい。

2はEYCへはeyコマンドでdeployし、さくらVPSでへのcapistranoでのdeployになり、環境もかなり違うのでstagingにならない。同じ理由でherokuも微妙。

3はまだやったこと無いが、さくらVPSにVirtualBoxを入れてEYLは実用的なのかわかってない。またeyコマンドでEYLへデプロイが可能かどうかも気になる。

EYCにかぎらず、stagingの話ってあんまりしない。もっとstagingの話がしたい!

追記:Engine Yard Cloudにステージング環境を作る

tumblr好きのナイスニートの@rono23が自分のtumblrに流れてきたと教えてくれた。

昔の自分に何でブログ(Webで日記)なんて書くのか聞いたら、「面白いから」と即答に違いないけど今だった...

そんなkomagataさんにもぜひTumblrを使ってほしい。

ここに書いても全くもって得なしなので

2007年の俺が2000〜2003年の俺について書いてるエントリー。

2007年の俺よ、2013年はもっと悪化してるよ・・・。

第0回に続いて行われました。

今月はメンバーは怖話の@machida, @komagata、来月オープン予定の某サービスの@jishiha, @monoooki、共同ファウンダーを探し中の@yujiymのメンバーで行われました。

他のメンバーはまだ公開できないので怖話の成長率の数字。

PV: 9.15%

収益: -11.79%

一ヶ月30%の成長率には程遠い。収益なんかマイナスだよ!

今回は成長率が手計算だったので来月までには自動化します。週7%成長ほんと厳しいな。我々はクズでございます・・・。


Syntax highlightだけだけど。

" ~/.vimrc:
Bundle 'slim-template/vim-slim'
:BundleInstall

トイレから戻ったら情弱プログラマーの@KoyaHomma

「rbenvの設定が上手くいかない」

とのこと。

見てみるとMacのTerminalが起動しない(起動中にshellが落ちてる?)

本人に話を聞いてみると、.bashrcを設定するという意味がよくわかっていない模様。

どのファイルを触ったのか聞いてみてもよく覚えていない。

最終的に起動時のエラーを追って行き、全ての設定ファイルを削除しても起動しないことから/bin/bash自体が壊れていることが判明。

@komagata「/bin/bashってファイルいじった?」

@KoyaHomma「いじったかもしれないです・・・」

$ sudo vi /bin/bashした上で、書き込み権限が無いという警告を無視して!wを敢行したらしい。

結局、俺のMacから/bin/bashをAirDropでコピーしてきて事無きを得た。

ほっと一息ついて時計を見ると、楽しみにしていたC組のペンドラタイムは終了していた。

今季のインターンもなかなか活きが良いじゃねえか・・・。

「覇王翔吼拳」を使わざるを得ないとは (ハオウショウコウケンヲツカワザルヲエナイとは) [単語記事] - ニコニコ大百科

公式のAMIが公開されてるのでそれを使う。

Cloud/AmazonEC2Image/Wheezy - Debian Wiki

東京リージョン(ap-northeast-1)の64bitはami-dbe16edaってやつだそうです。

SSH username

In line with the security of most Linux distributions on Amazon Web Services, remote root SSH is disabled (as is password authentication). You will need to connect to instances from this AMI as the user admin using your SSH key, and then sudo -i to gain root access.

ユーザーがrootじゃなくてadminなのに注意とのこと。

EC2は高いのであんまり使ってないんですが、検証用やフルタイムで起動しないやつは楽ですね。

登場人物

@komagata:ガチ鬱プログラマー。サバイバル力(普)

@ko8:情弱プログラマー。サバイバル力(よわい)

Y氏 :下衆プログラマー。サバイバル力(普)

@mazeltov7:爽やかプログラマー。サバイバル力(つよい)

@Rochas_:入ったばっかりデザイナー。サバイバル力(?)

フォカッチャ事件とは

@komagata「@ko8お昼なに食いたい?」

@ko8「アシェルタイタリアン行きたいですねー。パンが美味しいんですよね。」

メインのパスタにパン(フォカッチャ)がついてるタイプのランチだったんですが、ひと通り食事が済んだ時、事件が起きました。

Y氏「あれ、@ko8、パン食べた?」

@ko8「あ、いや・・・」

@mazeltov7「あれ、これ一人一個だったんですか?僕二個食べちゃいました。すいません(笑)」

@ko8「いや、いいっすいいっす!」

@komagata「うわっ!!うわぁ・・・」

ALL「・・・?」

@komagata「サバンナだ、サバンナ!こんな分かりやすいサバンナある?」

@ko8「え?何がっすか?」

@komagata「だからさ、三羽生まれた鳥の雛の中で、典型的な最初の冬を超えられない雛が@ko8なわけ。で、末っ子の分の餌を食べて元気にバッサ〜って巣立っていくのが長男の@mazeltov7。次男がY氏。」

@komagata「親鳥も三羽に均等に餌を与えて全員死ぬより確実に二羽生き残る方を選ぶわけじゃん。それで、二羽が飛び立った後の巣にガイコツが一羽残ってんの。それが@ko8。」

@komagata「一人一枚なのにフォカッチャ二枚食べれる@mazeltov7と自分が"パンが美味しい"って言ってて来たにもかかわらず一枚も食べられない@ko8。」

Y氏「あ、そういえば確かに言ってた!(笑)」

@komagata「しかも見てみ、フォカッチャ二枚食べてるのにめちゃくちゃ爽やかじゃない?全然嫌な感じしないでしょ?」

@Rochas_「ホントだ〜」

@ko8「確かに・・・」

@mazeltov7「うわー、これ1年ぐらい言われそうだなあ〜」

@komagata「それに対して、フォカッチャ食べられてることにすら気づかず、他人から指摘されて初めて気づく@ko8・・・。」

@komagata「世の中ゴネ得とかあるからさ、もうちょっと力強く生きて行こうよ!」

@ko8「勉強になります・・・」

参照:FJORDさんでインターンはじめました | Dress Cording