Kubernetes を使ってサービスを加速させる取り組み in YAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa
Kubernetes を使ってサービスを加速させる取り組み という題名で発表してきた。
初めて Perl 界隈のイベントに参加してみて、すごいエンジニアの熱量に圧倒された。
今度は Code ゴリゴリ(Perl ではない)の発表で攻めたい(๑•̀ㅂ•́)و✧
発表の最初にアンケートをとったみたんだけど、
デプロイの頻度について、
大体1ヶ月−1週間に1回のペースでデプロイしているところに人が集中していたのが意外だった。
2つの質問については、そもそも把握してないのが多いことを知ってびっくりした。
考えてみると会社の規模だったり事業によるからそりゃあそうかと質問してから思った。
クラスタリング導入をしたいと思った経緯を中心に話をしたけど、
もっと Kubernetes 自身の話だったり、自作してる tool の実装はどうなの?と言った質問も頂き、改めて公開していきたい。
まだまだ Kubernetes 初心者なのでどんどん試していくぞ!
今日は違った視点ですごく刺激を受けたので、
これを気にもっとやったるで(๑•̀ㅂ•́)و✧
やぱちー最高!!!!!!!!!!!
最後の登壇を終えて
先日の産業術大学院大学のJuly Tech Fest 2015に参加された方、発表された方ありがとうございました。
至らない点もあったかと思いますが、皆様のお陰様で無事終えることが出来ました!
今年はじめて実行員をやらせて頂きましたが、昨年より来場者も増えて良かったです!
実は、私も登壇してきました。
当日は満員で増席するぐらい人が来てビックリしました^^;
参加レポートも書いて頂いており、大変恐縮です><
発表内容はすごく前に社内でGitかSubversionかで議論になっていたので、
その辺の取り組みを最後にまとめておこうと思い、今回の登壇内容にしました。
今の会社としては、これが最後の社外発表です。(そもそも社名も名前も出してませんが。。)
7月末まででまる5年務めましたが、たくさんの刺激と成長を今の会社を通して学ぶことが出来きました。
特にWhyをしっかり考えて行う会社のため、そこの経験できたのは私にとってはすごく良かったと思います。
この考え方を大事にしていき、技術をどんどん身につけて、
価値をもっと拡大できるエンジニアになっていけたらなって思います。
明日からは、SIerのエンジニアではなく、Webサービスのエンジニアとして挑戦して行きます。
参加しているコミュニティはそのまま継続する予定ですので、
実際移ってどうだったか等のお話は別の機会にでも共有させて頂ければと思います。
例のものです><
上のwish listから先ほど贈り物ではなく、「お中元」として頂きました※ので、これを機にwish listを使ってエンジニアのお中元返しをしたいと思います。お中元とか全然やったことないし、これを気にエンジニアに毎年やってもいいかも。
※どうやらwish listで送る際に熨斗を選べるオプションがあるっぽいです。
How to speed up rspec
Guardとspringを使ってrspecのスピードアップ
rails tutorialの第3章にある「sporkを使ったテストの高速化」について、Rails 4.2だと、どうするといいか考えてみた。
Rails 4.2のDefault の Gemfileにはspringが入っている。
そこで今回sporkではなくspringを利用した際の設定メモを書く。
The Rails 4.2 Default Files - RichOnRails.com
今の状態
$ bundle exec rspec
.........
Finished in 0.37447 seconds (files took 4.38 seconds to load)
9 examples, 0 failures
まだ3章しか進んで無いのに既に load が4.38s だと。。?
set Gemfile
Gemfileに以下を追加
group :development, :test do
gem 'spring'
+ gem 'spring-commands-rspec'
end
install
$ bundle install
これで、rspecを叩く際にspringが利用できるのと、backgroundでrailsが起動している。
$ bundle exec spring rspec
.........
Finished in 0.51876 seconds (files took 0.87214 seconds to load)
9 examples, 0 failures
$ ps -ef | grep spring | grep -ve grep
501 32265 32264 0 5:53PM ?? 0:13.46 spring app | rails-tutorial | started 38 mins ago | test mode
501 32264 1 0 5:53PM ttys001 0:00.88 spring server | rails-tutorial | started 38 mins ago
loadが0.8sと早くなった。
modify Guardfile
Guardと組みあせて行う。まずは以下Gemfileに追加する。
group :development, :test do
+ gem 'guard-rspec'
end
install
$ bundle instlal
guard init
$ bundle exec guard init
Guardfileが作られる
springで実行されるようにGuardfileを編集する
$ vim Guardfile
- guard :rspec, cmd: "bundle exec rspec" do
+ guard :rspec, cmd: "bundle exec spring rspec" do
$ bundle exec guard
17:52:51 - INFO - Guard::RSpec is running
17:52:51 - INFO - Guard is now watching at '/Users/cs006061/Project/rails-tutorial'
17:53:08 - INFO - Running: spec/requests/static_pages_spec.rb
.........
Finished in 0.45334 seconds (files took 0.65175 seconds to load)
9 examples, 0 failures
heroku-dockerのリリース
Heroku | Introducing 'heroku docker:release': Build & Deploy Heroku Apps with Docker
Herokuが先ほどBlogをポストした。
local環境でcedarを使えるようになった。
手元でdockerfileを編集して、
heroku docker:release
をしてあげるとそのままリリースすることが出来る。
これでlocal環境とherokuのproduction 上にある環境がほぼ一緒になる。
現在nodeとrubyのみとのことらしい。
Railsを使う場合、addonを作って向き先を指定すればlocalでも使えるけど、docker-composeを使ってあげると完全にlocal環境で試せると思う。
下のは,nodeでやってみたログ。
HerokuのToolbeltにdockerのpluginをインストールする。
heroku plugins:install heroku-docker
サンプルのソースをcloneする。
$ git clone https://github.com/heroku/node-js-getting-started.git
専用のDockerfileを作成する。
$ cd node-js-getting-started
$ heroku docker:init
$ heroku docker:start
building image...
! Error: Command failed: docker build --force-rm --file="/Users/cs006061/Project/sample-heroku-docker/node-js-getting-started/Dockerfile" --tag="heroku-docker-99842b5334c9c707a64b48febdc0eacf" "/Users/cs006061/Project/sample-heroku-docker/node-js-getting-started"
flag provided but not defined: --file
--fileのコマンドを利用するため、最新のboot2dockerとdockerにversion up させる。
$ brew update
$ brew upgrade boot2docker
$ boot2docker update
$ heroku create
...
$ heroku docker:release
…
$ heroku open