読者です 読者をやめる 読者になる 読者になる

futoase

よろしくお願いします。

コード書いてバイナリをデプロイする流れの世界が見えてきた。

※この記事、テンション上がりすぎた時に書いてた様子。

何を言っているのか

アプリを書く -> ビルドする -> バイナリ1ファイルできた -> ファイルを転送 -> バイナリ実行 -> デプロイ完了!

の流れでいい気がした。

アプリを書くエンジニア側で動作・環境の保証をすれば良い。
Goを使う場合は環境つうかコンパイルだけどGoに任せてしまえば良い。
考えるのはもうだめだ。
人づてで環境構築のお願いするのもやめよう。

環境はどうするのか

MySQLやRedisなどのミドルウェアのインストールはchefに任せてしまおう。
いつでもインスタンスを再構築できるようにしておこう。
chefに任せれば、CentOSなのかUbuntuなのかを意識しなくて済むようになっていく。
元のcookbookはBerkshelfでインストールすればいい。
特定のマシン向けの設定はBerkshelfを使ってcookbook化しよう。
nginxの細かい設定はsite-cookbooks以下にattributeやrecipeに自分たちの都合で設定を変更しなければならない内容を書いていく。

マシンイメージそのものの構築はどうするのか

マシンイメージを作りたいならpackerを使おう。
AWS EC2かDigital Oceanが対象ならpackerのprovisionerで対応してるし、楽だ。
インスタンスの用意が予算や人的な都合、その他の理由で無理な場合は
VirtualBoxがあればいい。

デプロイはどうするのか

capistranoを利用しよう。v3になったしDSL moduleができたり
何をするのかがはっきりしてきた気がする。Minaとかもあるけど、
他人に説明するときに説明が面倒だし問題のない代物だしcapistranoを利用しよう。

考えないような形でコードを書く、デプロイできる状態にすることで
本当にやりたかった、「伝えたいことを表現する」ことに力を注げる。

Copyright (c) 2013-2017 Keiji Matsuzaki