Upgrade to Pro — share decks privately, control downloads, hide ads and more …

デプロイについて言いたい1つのこと

yu0819ki
April 12, 2017

 デプロイについて言いたい1つのこと

・参考リンク
刀狩り for Jenkins https://speakerdeck.com/yu0819ki/dao-shou-ri-for-jenkins

yu0819ki

April 12, 2017
Tweet

More Decks by yu0819ki

Other Decks in Technology

Transcript

  1. じこしょうかい Name:   ⽊木村 幸弘 a.k.a  yu0819ki Birthday:   1985.08.19

    Age:   31 Birthplace: 北海道 Job: 技術戦略室フロントエンド担当 Hobby: ⾳音ゲー、読書、作曲 Motto: パンが無ければ作ればいいじゃない Topics 近々CircleCI  と CodeDeployの詳細連携とか、API  Gatewayのこととか話します。
  2. デプロイとは Ø ソフトウェアの分野で、開発したソフトウェアを利⽤用できるように 実際の運⽤用環境に展開すること Webアプリケーションにとっては、リモートサーバ上にアプリケー ションを配置し、所定のポート(80,  443,  8080,  9000  など)経由でアク

    セスできるようにすることかな。 【主な⼿手順】 1. Gitからソースを落としてくる 2. 何らかのビルドをする 3. リモートサーバに転送する 4. リモートサーバ上の所定の位置に配置する 5. 外部からアクセスできるように起動したりする (1,2はCIサーバ上で⾏行うことが多いかなと思う)
  3. 実例 • よくないと思う例 • mv  /tmp/app/*  /var/www/app • 元のソースが消失している •

    mv  /var/www/app  /var/www/app.bk mv  /tmp/app/*  /var/www/app • ⼀一瞬 /var/www/app  が消失しているため、ファイル数が多いとサービスダウンする • cp  ‒–rp  /var/www/app  /var/www/app.bk mv  ‒–r  /tmp/app  /var/www/app • 世代管理が出来ない • ALTER  TABLE  `̀hoge`̀  CHANGE  COLUMN  `̀app`̀  `̀apps`̀  [DEFINITION]; • ソースの切り戻しが会ったときに、DBも戻さなきゃいけない
  4. 実例 • ⾃自分がよくやる例 • mv  ‒–r  /tmp/app  /var/www/releases/app-‑[commit  id] ln

     ‒–snf  /var/www/releases/app-‑[commit  id]  /var/www/app • シンボリックリンクを張り直すだけでもとに戻るし、即時反映される • ALTER  TABLE  `̀hoge`̀  ADD  COLUMN  `̀apps`̀  [DEFINITION]; UPDATE  `̀hoge`̀  SET  `̀app`̀  =  `̀apps`̀; • 作業時にロックかける必要はあるだろうけど、既存ソースでも新規ソースでも動く