SlideShare a Scribd company logo
1 of 112
Download to read offline
Developers
        Summit                                           15-A-7 #devsumiA




                 ワンクリックデプロイ
                        ∼いつまで手でデプロイしてるんですか?∼




http://www.flickr.com/photos/nimasadigh/4921186134/   Ryuzee.com 吉羽龍太郎
13年2月15日金曜日
吉羽 龍太郎
                             Ryutaro YOSHIBA




              アジャイルコーチ
              Ryuzee.com
              Twitter: @ryuzee
13年2月15日金曜日
好評発売中!
               定価:2520円



              http://www.seshop.com/
               product/detail/15395/

              #scrumbcbook
13年2月15日金曜日
はじめに



13年2月15日金曜日
本当に必要なものがわかるか?




13年2月15日金曜日
13年2月15日金曜日
期待のマネジメントに失敗




13年2月15日金曜日
システムの機能の利用割合

                       7%
                13%


                            45%

              16%



                      19%




        Standishの2000年の調査より
13年2月15日金曜日
システムの機能の利用割合

                       7%
                13%               まったく使わない
                                  ほとんど使わない
                            45%
                                  たまに使う
              16%
                                  よく使う
                                  いつも使う
                      19%




        Standishの2000年の調査より
13年2月15日金曜日
あなたの開発はムダだらけ?

     • 作りすぎのムダ
     • 手待ちのムダ
     • 運搬のムダ
     • 加工のムダ
     • 在庫のムダ
     • 動作のムダ
     • 不良をつくるムダ
13年2月15日金曜日
コストの見積りは正しいか?




     • 不確実性コーン
13年2月15日金曜日
ウォーターフォール(V字)

              要件定義                受け入れ試験



                基本設計              総合試験



                 詳細設計           結合試験



                        製造・単体


13年2月15日金曜日
ウォーターフォール(V字)

              要件定義             受け入れ試験


                    すぎ
               か かり
              基本設計             総合試験
          時 間が       は要
                  頃に
             出 来た     そも
          て、       そも
                化。
              変 詳細設計 ない      結合試験
          求 が      てい
               が あっ    かる
           要件       で分
                 ここ
            こ とが       製造・単体


13年2月15日金曜日
よくみかける光景
              要件定義は順調です

              ○○設計は順調です

              開発は遅れていますが挽回可能です

              結合試験で重大な問題が出ています

              受入れ試験でニーズ不一致が判明

              リリースできません。てへっ
13年2月15日金曜日
よくみかける光景
              要件定義は順調です

              ○○設計は順調です

              多くのリスクが後半になって顕在
              開発は遅れていますが挽回可能です
              化する。顕在化した時点では取り
              結合試験で重大な問題が出ています
                  返しがつかない

              受入れ試験でニーズ不一致が判明

              リリースできません。てへっ
13年2月15日金曜日
アジャイルマニフェスト




     • 2001年に、ケント・ベック、マーティン・ファウラー、ケ
         ン・シュウェイバーら、17人によって採択された
         Agileソフトウェア開発の原則を指す。




13年2月15日金曜日
アジャイルマニフェスト


    • プロセスやツールより人と人同士の相互作用を重視する
    • 包括的なドキュメントより動作するソフトウェアを重視する
    • 契約上の交渉よりも顧客との協調を重視する
    • 計画に従うことよりも変化に対応することを重視する



13年2月15日金曜日
アジャイルマニフェスト


    • プロセスやツールより人と人同士の相互作用を重視する
    • 包括的なドキュメントより動作するソフトウェアを重視する
    •顧客満足を最優先し、価値のあるソフトウェアを
      契約上の交渉よりも顧客との協調を重視する

    •早く継続的に提供します。
      計画に従うことよりも変化に対応することを重視する




13年2月15日金曜日
マーケットに製品を
        早期に投入して
         投資を回収し
       利益に結びつける
         必要性がある
13年2月15日金曜日
Developers
     Summit




     • MVPとフィードバックループ
     • ビジネスの成長とプロダクトの成長を同期させる




                         http://www.flickr.com/photos/pagedooley/2120528888/
13年2月15日金曜日
アジャイルな開発
                        してますか?



http://bit.ly/shZMnK
13年2月15日金曜日
Developers
     Summit

                          アジャイルの範囲




                  今日の話は
                  こちら側




     平鍋健児氏の資料を許可を得て引用 http://blogs.itmedia.co.jp/hiranabe/2012/09/rightwing-and-leftwing-of-agile.html
13年2月15日金曜日
毎日何回も本番環境にデプロイ
          できているか?
      顧客に頻繁に価値を届けられて
            いるか?
13年2月15日金曜日
Developers
        Summit

                1000+ deploys / hour




http://bit.ly/XonkX7
13年2月15日金曜日
Developers
       Summit

                                                   よくある光景
    運用でなんとかすんの
    があんたらの仕事だろ
                                                         てめーもっとちゃ
                                                          んとアプリ作れ




                                                       あの∼、ビジネス
                                                        のこと考えてよ

http://www.flickr.com/photos/makitani/3940687822/
13年2月15日金曜日
Developers
     Summit

                  会場調査

      •ユニットテストを書いている方は挙手
      •継続的インテグレーションサーバを使っている方は
      そのまま挙手

      •結合テストを自動化している方はそのまま挙手
      •デプロイを自動化している方はそのまま挙手
      •環境構築を自動化している方はそのまま挙手


13年2月15日金曜日
Developers
     Summit

                  会場調査

      •ユニットテストを書いている方は挙手
      •継続的インテグレーションサーバを使っている方は
      そのまま挙手
           最後まで残っていた方は帰って
      •結合テストを自動化している方はそのまま挙手
               大丈夫です!
      •デプロイを自動化している方はそのまま挙手
      •環境構築を自動化している方はそのまま挙手


13年2月15日金曜日
一日にしてならず




http://bit.ly/vPmiFJ
13年2月15日金曜日
No
                       Silver
                       Bullet
http://bit.ly/vj0b0v
13年2月15日金曜日
http://bit.ly/sygcE9

自分たちのプロセス
は自分たちで進化さ
せるしかない




13年2月15日金曜日
Developers
     Summit

       製品そのものをAgileな状態に保つ

       技術的負債を少なく保つ




                       http://www.flickr.com/photos/stuckincustoms/5094583941/
13年2月15日金曜日
継続的デリバリー



13年2月15日金曜日
Developers
     Summit




13年2月15日金曜日
継続的デリバリーの原則

                 ソフトウェアのリ



       1
                 リースやデプロイの
                 プロセスは繰り返し
                 可能であり信頼性が
                 高い必要がある。

13年2月15日金曜日
継続的デリバリーの原則




       2         全てを自動化する




13年2月15日金曜日
継続的デリバリーの原則


                 難解なことや苦痛な


       3         ことを繰り返し行い
                 自動化の方法を考え
                 る


13年2月15日金曜日
継続的デリバリーの原則




       4
                 全てをソースコード
                 管理システムで管理
                 する



13年2月15日金曜日
継続的デリバリーの原則




       5
                 完了は「リリースさ
                 れたこと」を意味す
                 る



13年2月15日金曜日
継続的デリバリーの原則




       6         品質を作りこむ




13年2月15日金曜日
継続的デリバリーの原則




       7
                 すべての人にリリー
                 スプロセスに対して
                 の責任がある



13年2月15日金曜日
継続的デリバリーの原則




       8         継続的に改善する




13年2月15日金曜日
継続的デリバリーの4プラクティス


    • バイナリは一度だけビルドする
    • すべての環境にデプロイするのに完全に同一の
         メカニズムを使う

    • デプロイメントでスモークテストを実施する
    • 何か問題が起こったらラインを止める

13年2月15日金曜日
テスト自動化



13年2月15日金曜日
テスト自動化の必要性


                    小規模リリースのたびに手動でテス
                   トするとコードベースが大きくなるに
                     つれてテストコストが膨らむ




     • アジャイル開発においてはテスト自動化は必須
     • アジャイルかどうかに関係なくソフトウェアのライフサイク
         ルを考慮する必要がある。

13年2月15日金曜日
自動化されたテストの損益分岐点




                ITアーキテクト「機能テストの自動化について考える」 
                                  より引用
              http://www.itarchitect.jp/print/?menu3=24601

13年2月15日金曜日
自動化されたテストの損益分岐点



              テスト自動化にかかるコストよりも
              手動テストのコストがすぐ高くなる




                  ITアーキテクト「機能テストの自動化について考える」 
                                    より引用
                http://www.itarchitect.jp/print/?menu3=24601

13年2月15日金曜日
問題は早めに解決する

                  フェーズ        修正までの時間

                 要求や設計          5分

              コードやユニットテスト       15分

              結合テストやシステムテスト     1時間

                 ベータテスト         2時間

                 リリース後          1日



     • 早く見つけて速く直す
13年2月15日金曜日
デプロイのたびに
       人手でテストするのは無理




13年2月15日金曜日
テストしていない
                                 ものを目を瞑って
                                 デプロイしてはい
                                   けない


                                 設定ファイル1行だ
                           囁 き   し大丈夫だよね?
                        魔 の
                       悪

http://bit.ly/rAOG9h
13年2月15日金曜日
清水の舞台から
        飛び降りない




http://bit.ly/tnB8i0
13年2月15日金曜日
アジャイルテストの4象限




13年2月15日金曜日
Developers


          自動テストに求められる特性
     Summit




    • 繰り返し可能 (Repeatable)
    • 独立性 (Independent)
    • 自己検証 (Self validation)
    • 簡単実行 (Easy)

                               http://www.flickr.com/photos/spackletoe/90811910/
13年2月15日金曜日
Developers


        Webアプリケーションだと...
     Summit




    • テストの実行時間を短く、依存関係を少なく
    • 自信のない箇所をテスト
    • 問題は実装箇所に近いところで見つける
    • モデル、ヘルパー、コンポーネント単位でのテストを書く
    • コントローラーのテストを沢山書かざるを得ないのは、Fat
          Controllerや密結合の証

    • そうなる前にペアプロ、コードレビュー、TDD、リファクタ
          リング


13年2月15日金曜日
完了の定義

    • 完了の定義を作り、何をもって出荷可能かを定
         める

    • 全部を短い間隔で出来れば頻繁にリリース可能
               コード              ユニット    カバレッジ
                      チェックイン
              レビュー               テスト     75%

                      受け入れ      クロス
              結合テスト                     静的解析
                       テスト     ブラウザ

         ドキュメント        性能      セキュリティ   デプロイ



13年2月15日金曜日
フィーチャー単位で完了

      フィーチャー   フィーチャー    フィーチャー    フィーチャー    フィーチャー    フィーチャー    フィーチャー

     コードレビュー   コードレビュー   コードレビュー   コードレビュー   コードレビュー   コードレビュー   コードレビュー

      チェックイン   チェックイン    チェックイン    チェックイン    チェックイン    チェックイン    チェックイン

     ユニットテスト   ユニットテスト   ユニットテスト   ユニットテスト   ユニットテスト   ユニットテスト   ユニットテスト

      カバレッジ     カバレッジ     カバレッジ     カバレッジ     カバレッジ     カバレッジ     カバレッジ

       静的解析     静的解析      静的解析      静的解析      静的解析      静的解析      静的解析

       結合テスト    結合テスト     結合テスト     結合テスト     結合テスト     結合テスト     結合テスト

     受け入れテスト   受け入れテスト   受け入れテスト   受け入れテスト   受け入れテスト   受け入れテスト   受け入れテスト

     クロスブラウザ   クロスブラウザ   クロスブラウザ   クロスブラウザ   クロスブラウザ   クロスブラウザ   クロスブラウザ

      ドキュメント   ドキュメント    ドキュメント    ドキュメント    ドキュメント    ドキュメント    ドキュメント

      セキュリティ   セキュリティ    セキュリティ    セキュリティ    セキュリティ    セキュリティ    セキュリティ

         性能      性能        性能        性能        性能        性能        性能

       デプロイ     デプロイ      デプロイ      デプロイ      デプロイ      デプロイ      デプロイ




13年2月15日金曜日
XPのプラクティスの利用



                             !



                         !


                             !



                 YAGNI



13年2月15日金曜日
13年2月15日金曜日
継続的インテグレーション




13年2月15日金曜日
CIサーバ

    • プロジェクト初期の段階でコードがなくても構築する
    • コードのメトリクス取得や静的解析は初期から継続的に実施
         する方が効果がある

    • 常にグリーン(Jenkinsなら青)の状態を保ち、エラーがある
         状態に慣れない

    • 常にグリーンに保つにはアトミックな単位での作業、マイグ
         レーションとの連携、チームのコミットに対する態度が欠か
         せない




13年2月15日金曜日
CIアンチパターン

    • 頻繁にバージョン管理システムにコミットしない
    • テストコードを書かない
    • テストコードと製品コードを同時にコミットしない
    • 定時ビルドのみでコミットビルドがない・夜間ビルドしかな
         い

    • 帰り際にコミットしてそのままCIの結果を見ずに帰る
    • CIでテストを通すために手作業の準備が必要
    • メインラインのみで大きなブランチをCI対象にしていない
13年2月15日金曜日
CIアンチパターン

     • 様々な種類のテストをまとめて行っている
     • ビルドの失敗に気付かない
     • ビルドに失敗しても放置している
     • ビルドの失敗に気づいても、修正コード以外のコードをコ
         ミットする

     • 何も変更していないのにビルドが落ちたり落ちなかったり
     • 頻繁にビルドが失敗するので、失敗するのが普通だと思う
     • CIからの通知メッセージが大量すぎる
13年2月15日金曜日
CIアンチパターン

     • CIが落ちても何も通知しない
     • CIサーバのリソースが貧弱
     • ビルドが肥大化して結果が出るまでに時間がかかる
     • 本番環境やステージング環境と大幅に環境が異なる
     • コードの静的解析をCIで行わずに人手で行う
     • CIサーバがおかしくなったときに直せる人がいない
     • ずっとCIでのチェック内容が変わらない、プロセスが変わら
         ない


13年2月15日金曜日
バージョン管理



13年2月15日金曜日
ソースコードのバージョン管理

    • いわずもがな。全ての起点はここにある
    • コードの共同所有の原則への理解
    • このソースコードは本番環境または開発環境な
         どで同じように動作しなければならない

    • テストを書く習慣、コミット前に他のテストも
         含めて通してからコミットする習慣



13年2月15日金曜日
設定情報のバージョン管理


    • 環境によって異なる設定値(接続先データベース情報
         など)が書かれた設定ファイルもバージョン管理する

    • 開発環境用、ステージング環境用、本番環境用などに
         分けて定義し、容易に切り替え可能にする

    • 本番環境に配置する際に、アプリケーションの各所を
         書き換えなければ動作しないとかアマチュア以下




13年2月15日金曜日
マージって何?


                                                     Excel台帳じゃ
                                                        だめ?

                                                    コンフリクトするとつ
                                                    らいから動かなくても
                                                     コミットしますね!




http://www.flickr.com/photos/seanmolin/7028040701/
13年2月15日金曜日
バージョン管理は
    開発者のしつけ




               http://bit.ly/utD8aA
13年2月15日金曜日
どの断面でも再現可能か?


http://www.flickr.com/photos/55310085@N06/8436234163/
13年2月15日金曜日
リリースした際に、前のバージョンに即座に戻
       せるか?これはコードだけでなくデータベース
       等も含む

                          http://bit.ly/tgbmyr
13年2月15日金曜日
マイグレーション



13年2月15日金曜日
データベーススキーマの管理



                             このバージョンはス
              これ試すのにどのSQL適
                             キーマ違うの???
                用すればいいの?




       データベースのスキーマの状態とリリースの状態を関連
       付けることによって再現可能にする

13年2月15日金曜日
既存のアプローチの問題




        • SQLスクリプトファイルは管理が煩雑
        • SQLスクリプトは自動実行に向かない
        • ロールバックやデータ移行の考慮もしづらい
        • 複数のSQLスクリプトの実行順序が分からない
http://bit.ly/vbtqZc
13年2月15日金曜日
問題の例
     • SQLの実行順序で状態が変わる
  1.sql                    1.sql→2.sql

   alter table users add
      column lastlogin
   datetime after name;


  2.sql                    2.sql→1.sql

   alter table users add
      column disabled
   boolean default false
        after name;


13年2月15日金曜日
マイグレーション




13年2月15日金曜日
マイグレーション
      $ ls -1
      1301223401_addchangelogs.php
                                                前後関係は、ファイル先頭の
      1313445291_addinformation.php
      1317489252_addpriorities.php              数字の大小で判断される。
      1318776293_addprojects.php
                                                    (規約)
      1318889397_addremainingtimes.php
      1320243212_addresolutions.php
      1321049290_addsprints.php
      1321509396_addschemamigrations.php
      1322392147_fix_project_invalid_default_value.php
      1322446269_add_action_name_to_log.php
      1322993218_addstories.php
      1323001299_addstorycomments.php
      1323449303_addusers.php
      1324059101_addtasks.php
      1325101301_addteammembers.php
      1326548301_addteams.php
      1327491204_addwiki.php


13年2月15日金曜日
マイグレーション実行(例)
       # 最新のバージョンへ更新
       $ php doctrine_cli.php migrate
       # 指定したバージョンへ更新
       $ php doctrine_cli.php migrate 29



         マイグレーションファイルをソースコードとしてバージョ
         ン管理し、CIのビルド定義の中にマイグレーションコマ
         ンドを組み込むことで、自動的にDBの状態を連動させる




13年2月15日金曜日
13年2月15日金曜日
環境構築自動化



13年2月15日金曜日
環境構築の自動化が必要なわけ

    • そもそも時間がかかる
    • 数が増えれば単純作業の繰り返し
    • 人手による単純作業はミスを誘発
    • ミスした場合でも検知する仕掛けが本番障害しかない
    • 手順書がメンテナンスされないことがある
    • 手順書の手順の妥当性の評価が難しい
    • 手順の逆転により状態が変わりうる

13年2月15日金曜日
設定やインストールの自動化




        • いつでもクリーンな動作
                 環境を作れるようにする




http://bit.ly/vMHRjL
13年2月15日金曜日
設定やインストールの自動化


                        この自動化によっ
                        て後はアプリケー
                        ションをデプロイ
                        すればすぐ動作す
                        る状態にする


http://bit.ly/v30Zl7
13年2月15日金曜日
設定やインストールの自動化

                        http://bit.ly/ttwsmT




               本番環境と開発環境の
              各種バージョンをあわせる
13年2月15日金曜日
設定やインストールの自動化



        • ミドルウェアのバージョンをあげたり、
                パッチを適用する場合も、
                この自動化機構を使って行う




http://bit.ly/tkSfaO
13年2月15日金曜日
Chef / Chef Solo




13年2月15日金曜日
Chefの概要
     • Ruby製のシステム管理ツール
     • 出来ること
      • OSのパッケージのインストールや管理
      • OSの設定やミドルウェアの設定
      • サービスの起動・停止
      • クーロンの設定
      • 特徴
     • Rubyでジョブや設定を記述する
     • Chef自体はクライアント/サーバモデル
     • Chef-soloを使えばローカル単体で動作
     • Recipeが多数公開されている
13年2月15日金曜日
バージョンを指定
              してパッケージを
              インストールする
              ことも可能




13年2月15日金曜日
多数のRecipeがOSS
               で公開されている




13年2月15日金曜日
13年2月15日金曜日
仮想化と自動化(Vagrant)




13年2月15日金曜日
VagrantでSandbox

       Sandbox機能を使うことで、ミドルウェアのバージョンアッ
       プの検証・構成の変更の検証・デプロイの試験などを気軽に行
       えるようになる(何度でも変更をRollbackできる)



     $ sudo git clone https://github.com/jedi4ever/sahara.git
     $ cd sahara
     $ sudo rake build
     $ cd pkg
     $ sudo gem install ./sahara-0.0.13.gem



13年2月15日金曜日
クラウドの利用




     • Stampパターンで自由にインスタンスを複製可能
13年2月15日金曜日
環境構築自動化の敷居の低下

    • 仮想マシンを使うことで、何度でも簡単に自動化の試験をお
         こなうことが可能

    • 環境構築でTDDを行う例も登場
    • 不要になったインスタンスは削除すれば良く、調達コストは
         極めて低い

    • 一方で有償ソフトウェアのライセンス管理をどうするかは課
         題の1つ




                        http://www.flickr.com/photos/stuckincustoms/393494014/
13年2月15日金曜日
デプロイ自動化



13年2月15日金曜日
Developers
     Summit

                         当たり前の話
                          ( ゚皿゚)キーッ!!




     Day1         Day2     Day3     Day4   DayN




13年2月15日金曜日
Developers
     Summit

                           当たり前の話



                  (^_^;)


                           ( ゚皿゚)キーッ!!




13年2月15日金曜日
ゼロデプロイ



             プロジェクト最初に、
             (デプロイするものがなくても)
             デプロイを自動化する




http://bit.ly/vd1Nin
13年2月15日金曜日
プロジェクトのあいだ、
                       ずっとデプロイスクリプトを
                       使うことで、
                       プロセスがテストされ続ける



                       開発環境・本番環境問わず、
                       同じ方法でデプロイする




http://bit.ly/u27Oiz
13年2月15日金曜日
デプロイが失敗した場合に
                       ロールバックできるように
                       する




http://bit.ly/vFzaU9
13年2月15日金曜日
デプロイが途中で失敗
       した場合、その先を手
       動でやらない




                    http://bit.ly/w34bFM
13年2月15日金曜日
Capistrano




       Railsアプリのデプロイに利用されることが多いが、もちろん
       それ以外にも利用可能。SSHで接続し、サーバに対して色々
       な操作を行うことが出来る。

13年2月15日金曜日
Capコマンド
      cap deploy                 # Deploys your project.

      cap deploy:check           # Test deployment dependencies.

      cap deploy:cleanup         # Clean up old releases.

      cap deploy:pending         # Displays the commits since your last deploy.

      cap deploy:pending:diff    # Displays the `diff' since your last deploy.

      cap deploy:rollback        # Rolls back to a previous version and restarts.

      cap deploy:rollback:code   # Rolls back to the previously deployed version.

      cap deploy:setup           # Prepares one or more servers for deployment.

      cap deploy:symlink         # Updates the symlink to the most recently deployed ...

      cap deploy:update          # Copies your project and updates the symlink.

      cap deploy:update_code     # Copies your project to the remote servers.

      cap deploy:upload          # Copy files to the currently deployed version.

      cap deploy:web:disable     # Present a maintenance page to visitors.

      cap deploy:web:enable      # Makes the application web-accessible again.

      cap develop                # Set the target stage to `develop'.

      cap invoke                 # Invoke a single command on the remote servers.

      cap multistage:prepare     # Stub out the staging config files.



13年2月15日金曜日
13年2月15日金曜日
Webistrano




13年2月15日金曜日
Fabric




13年2月15日金曜日
よくあるデプロイ方法
      メンテ中ページに                           アプリケーションの
                 LBから切り離す     新規環境構築
        差し替える                               デプロイ



      データベースの    アプリケーションの   アプリケーションの
      マイグレーション      デプロイ        デプロイ



     アプリケーションの
                  スモークテスト     スモークテスト
        デプロイ




       スモークテスト    LB対象に戻す     LB切り替え




     メンテ中ページから               データベースの不可逆な変更を避けるよ
         戻す
                             うにアプリケーションを作りこんだ方が
                                   良い場合が多い


13年2月15日金曜日
ビルドパイプライン




              各種テストや静的解析、ステージング環境
                リリース、本番環境リリースなどを
                   一元的に管理できる。




13年2月15日金曜日
Action



13年2月15日金曜日
通常時のリリース

        • テストが完了してから
                リリースまで1日以内?

        • テストが完了してから
                リリースまで3日以内?

        • テストが完了してから
                リリースまで1週間以内?

        • それ以上かかる?
http://bit.ly/wo4eyD
13年2月15日金曜日
障害発生時のリリース


    • テストが完了してからリリースまで1日以内?
    • テストが完了してからリリースまで3日以内?
    • テストが完了してからリリースまで1週間以内?
    • それ以上かかる?

                           http://bit.ly/zeFv2G
13年2月15日金曜日
障害時に1日でリリースできるのであれば、
    今のリリースプロセスには組織的なムダがある。


              ワンクリックでデプロイできたとしても
              リリースの意思決定に時間がかかったら
                     無意味!




                                   http://bit.ly/rZyM3H
13年2月15日金曜日
Developers
     Summit

              組織のアジリティを高める




     • 変化しないとゆるやかに死ぬ
     • 自分たちで変えていく。できることは沢山あるはず!
                           http://www.flickr.com/photos/eole/4350200158/
13年2月15日金曜日
まとめ

    • ビジネスのために継続的に成果を届ける
    • そのためにはAgileなやり方が必要
    • テストの自動化は必須
    • 常に出荷可能な状態に保つ
    • デプロイや環境構築も自動化
    • 改善をずっと続ける
13年2月15日金曜日

More Related Content

What's hot

『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法Kazuto Kusama
 
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」Recruit Technologies
 
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。toshihiro ichitani
 
振り返り(アジャイルレトロスペクティブズ)
振り返り(アジャイルレトロスペクティブズ)振り返り(アジャイルレトロスペクティブズ)
振り返り(アジャイルレトロスペクティブズ)Keisuke Tameyasu
 
ベロシティを上手く使って 技術的負債を計画的に解消する
ベロシティを上手く使って 技術的負債を計画的に解消するベロシティを上手く使って 技術的負債を計画的に解消する
ベロシティを上手く使って 技術的負債を計画的に解消するKoichiro Matsuoka
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道nishio
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveTokoroten Nakayama
 
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回Yoshiki Hayama
 
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)NTT DATA Technology & Innovation
 
エラー・バジェットによるリスク管理 Managing risk with error budgets
エラー・バジェットによるリスク管理 Managing risk with error budgetsエラー・バジェットによるリスク管理 Managing risk with error budgets
エラー・バジェットによるリスク管理 Managing risk with error budgetsGoogle Cloud Platform - Japan
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方Shohei Koyama
 
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)Tokoroten Nakayama
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
 
ITコミュニティと情報発信に共通する成長と貢献の要素
ITコミュニティと情報発信に共通する成長と貢献の要素ITコミュニティと情報発信に共通する成長と貢献の要素
ITコミュニティと情報発信に共通する成長と貢献の要素NISHIHARA Shota
 
楽天における大規模データベースの運用
楽天における大規模データベースの運用楽天における大規模データベースの運用
楽天における大規模データベースの運用Rakuten Group, Inc.
 
ユーザーストーリーの分割
ユーザーストーリーの分割ユーザーストーリーの分割
ユーザーストーリーの分割Arata Fujimura
 
イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡NTT Communications Technology Development
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 

What's hot (20)

『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
 
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
 
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
 
振り返り(アジャイルレトロスペクティブズ)
振り返り(アジャイルレトロスペクティブズ)振り返り(アジャイルレトロスペクティブズ)
振り返り(アジャイルレトロスペクティブズ)
 
ベロシティを上手く使って 技術的負債を計画的に解消する
ベロシティを上手く使って 技術的負債を計画的に解消するベロシティを上手く使って 技術的負債を計画的に解消する
ベロシティを上手く使って 技術的負債を計画的に解消する
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
 
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
 
エラー・バジェットによるリスク管理 Managing risk with error budgets
エラー・バジェットによるリスク管理 Managing risk with error budgetsエラー・バジェットによるリスク管理 Managing risk with error budgets
エラー・バジェットによるリスク管理 Managing risk with error budgets
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
ITコミュニティと情報発信に共通する成長と貢献の要素
ITコミュニティと情報発信に共通する成長と貢献の要素ITコミュニティと情報発信に共通する成長と貢献の要素
ITコミュニティと情報発信に共通する成長と貢献の要素
 
楽天における大規模データベースの運用
楽天における大規模データベースの運用楽天における大規模データベースの運用
楽天における大規模データベースの運用
 
ユーザーストーリーの分割
ユーザーストーリーの分割ユーザーストーリーの分割
ユーザーストーリーの分割
 
イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 

Viewers also liked

NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたNginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたtoshi_pp
 
ビルドサーバで使うDocker
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDockerMasashi Shinbara
 
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTipsJavaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTipsMasanori Satoh
 
Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析政雄 金森
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化dcubeio
 
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)Masahiro Nishimi
 

Viewers also liked (6)

NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたNginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
 
ビルドサーバで使うDocker
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDocker
 
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTipsJavaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTips
 
Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
 
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
 

Similar to ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA

継続的インテグレーション を軽く紹介
継続的インテグレーション を軽く紹介継続的インテグレーション を軽く紹介
継続的インテグレーション を軽く紹介Tomoki Suzuki
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Naoki Umehara
 
Open dataとハッカソンで変わる世界
Open dataとハッカソンで変わる世界Open dataとハッカソンで変わる世界
Open dataとハッカソンで変わる世界Hal Seki
 
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進めDai FUJIHARA
 
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進めRakuten Group, Inc.
 
MY JOB WEND TO VIETNUM? DevSumi ver.
MY JOB WEND TO VIETNUM? DevSumi ver.MY JOB WEND TO VIETNUM? DevSumi ver.
MY JOB WEND TO VIETNUM? DevSumi ver.Ryo Amano
 
smartphone test (know how & tools)
smartphone test (know how & tools)smartphone test (know how & tools)
smartphone test (know how & tools)Yukio Andoh
 
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイントわんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
わんくま名古屋#25(20121201) TDD道場#13 ~ MetroアプリをテストファーストするときのポイントYasuhiko Yamamoto
 
レスポンシブWebデザイン ワークフロー
レスポンシブWebデザイン ワークフローレスポンシブWebデザイン ワークフロー
レスポンシブWebデザイン ワークフローHiroyuki Ogawa
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略Hiroshi Maekawa
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略GuildWorks
 
[devsumi2013]【15-D-7】実演!現場の悩みをTOCfEで考え抜く!
[devsumi2013]【15-D-7】実演!現場の悩みをTOCfEで考え抜く![devsumi2013]【15-D-7】実演!現場の悩みをTOCfEで考え抜く!
[devsumi2013]【15-D-7】実演!現場の悩みをTOCfEで考え抜く!tocfebootcamp
 
Dev Love Lt 20090622(佐々木)
Dev Love Lt 20090622(佐々木)Dev Love Lt 20090622(佐々木)
Dev Love Lt 20090622(佐々木)DevLOVE
 
ソーシャルコーディング革命後の開発委託の世界〜QA@ITの事例
ソーシャルコーディング革命後の開発委託の世界〜QA@ITの事例ソーシャルコーディング革命後の開発委託の世界〜QA@ITの事例
ソーシャルコーディング革命後の開発委託の世界〜QA@ITの事例Ken Nishimura
 
The return of Mobile5 #mobile5
The return of Mobile5 #mobile5The return of Mobile5 #mobile5
The return of Mobile5 #mobile5Yusuke Hirano
 
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理You&I
 
【15-e-7】Kinectから始まったスタートアップ #devsumi
【15-e-7】Kinectから始まったスタートアップ #devsumi【15-e-7】Kinectから始まったスタートアップ #devsumi
【15-e-7】Kinectから始まったスタートアップ #devsumiKaoru NAKAMURA
 
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)Kenichi Kambara
 
開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用
開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用
開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用Takuro Sasaki
 
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」Hiroyuki Ohnaka
 

Similar to ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA (20)

継続的インテグレーション を軽く紹介
継続的インテグレーション を軽く紹介継続的インテグレーション を軽く紹介
継続的インテグレーション を軽く紹介
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
 
Open dataとハッカソンで変わる世界
Open dataとハッカソンで変わる世界Open dataとハッカソンで変わる世界
Open dataとハッカソンで変わる世界
 
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
 
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
 
MY JOB WEND TO VIETNUM? DevSumi ver.
MY JOB WEND TO VIETNUM? DevSumi ver.MY JOB WEND TO VIETNUM? DevSumi ver.
MY JOB WEND TO VIETNUM? DevSumi ver.
 
smartphone test (know how & tools)
smartphone test (know how & tools)smartphone test (know how & tools)
smartphone test (know how & tools)
 
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイントわんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
 
レスポンシブWebデザイン ワークフロー
レスポンシブWebデザイン ワークフローレスポンシブWebデザイン ワークフロー
レスポンシブWebデザイン ワークフロー
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略
 
[devsumi2013]【15-D-7】実演!現場の悩みをTOCfEで考え抜く!
[devsumi2013]【15-D-7】実演!現場の悩みをTOCfEで考え抜く![devsumi2013]【15-D-7】実演!現場の悩みをTOCfEで考え抜く!
[devsumi2013]【15-D-7】実演!現場の悩みをTOCfEで考え抜く!
 
Dev Love Lt 20090622(佐々木)
Dev Love Lt 20090622(佐々木)Dev Love Lt 20090622(佐々木)
Dev Love Lt 20090622(佐々木)
 
ソーシャルコーディング革命後の開発委託の世界〜QA@ITの事例
ソーシャルコーディング革命後の開発委託の世界〜QA@ITの事例ソーシャルコーディング革命後の開発委託の世界〜QA@ITの事例
ソーシャルコーディング革命後の開発委託の世界〜QA@ITの事例
 
The return of Mobile5 #mobile5
The return of Mobile5 #mobile5The return of Mobile5 #mobile5
The return of Mobile5 #mobile5
 
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
 
【15-e-7】Kinectから始まったスタートアップ #devsumi
【15-e-7】Kinectから始まったスタートアップ #devsumi【15-e-7】Kinectから始まったスタートアップ #devsumi
【15-e-7】Kinectから始まったスタートアップ #devsumi
 
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
 
開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用
開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用
開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用
 
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
 

Recently uploaded

持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦Sadao Tokuyama
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 

Recently uploaded (12)

What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 

ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA

  • 1. Developers Summit 15-A-7 #devsumiA ワンクリックデプロイ ∼いつまで手でデプロイしてるんですか?∼ http://www.flickr.com/photos/nimasadigh/4921186134/ Ryuzee.com 吉羽龍太郎 13年2月15日金曜日
  • 2. 吉羽 龍太郎 Ryutaro YOSHIBA アジャイルコーチ Ryuzee.com Twitter: @ryuzee 13年2月15日金曜日
  • 3. 好評発売中! 定価:2520円 http://www.seshop.com/ product/detail/15395/ #scrumbcbook 13年2月15日金曜日
  • 8. システムの機能の利用割合 7% 13% 45% 16% 19% Standishの2000年の調査より 13年2月15日金曜日
  • 9. システムの機能の利用割合 7% 13% まったく使わない ほとんど使わない 45% たまに使う 16% よく使う いつも使う 19% Standishの2000年の調査より 13年2月15日金曜日
  • 10. あなたの開発はムダだらけ? • 作りすぎのムダ • 手待ちのムダ • 運搬のムダ • 加工のムダ • 在庫のムダ • 動作のムダ • 不良をつくるムダ 13年2月15日金曜日
  • 11. コストの見積りは正しいか? • 不確実性コーン 13年2月15日金曜日
  • 12. ウォーターフォール(V字) 要件定義 受け入れ試験 基本設計 総合試験 詳細設計 結合試験 製造・単体 13年2月15日金曜日
  • 13. ウォーターフォール(V字) 要件定義 受け入れ試験 すぎ か かり 基本設計 総合試験 時 間が は要 頃に 出 来た そも て、 そも 化。 変 詳細設計 ない 結合試験 求 が てい が あっ かる 要件 で分 ここ こ とが 製造・単体 13年2月15日金曜日
  • 14. よくみかける光景 要件定義は順調です ○○設計は順調です 開発は遅れていますが挽回可能です 結合試験で重大な問題が出ています 受入れ試験でニーズ不一致が判明 リリースできません。てへっ 13年2月15日金曜日
  • 15. よくみかける光景 要件定義は順調です ○○設計は順調です 多くのリスクが後半になって顕在 開発は遅れていますが挽回可能です 化する。顕在化した時点では取り 結合試験で重大な問題が出ています 返しがつかない 受入れ試験でニーズ不一致が判明 リリースできません。てへっ 13年2月15日金曜日
  • 16. アジャイルマニフェスト • 2001年に、ケント・ベック、マーティン・ファウラー、ケ ン・シュウェイバーら、17人によって採択された Agileソフトウェア開発の原則を指す。 13年2月15日金曜日
  • 17. アジャイルマニフェスト • プロセスやツールより人と人同士の相互作用を重視する • 包括的なドキュメントより動作するソフトウェアを重視する • 契約上の交渉よりも顧客との協調を重視する • 計画に従うことよりも変化に対応することを重視する 13年2月15日金曜日
  • 18. アジャイルマニフェスト • プロセスやツールより人と人同士の相互作用を重視する • 包括的なドキュメントより動作するソフトウェアを重視する •顧客満足を最優先し、価値のあるソフトウェアを 契約上の交渉よりも顧客との協調を重視する •早く継続的に提供します。 計画に従うことよりも変化に対応することを重視する 13年2月15日金曜日
  • 19. マーケットに製品を 早期に投入して 投資を回収し 利益に結びつける 必要性がある 13年2月15日金曜日
  • 20. Developers Summit • MVPとフィードバックループ • ビジネスの成長とプロダクトの成長を同期させる http://www.flickr.com/photos/pagedooley/2120528888/ 13年2月15日金曜日
  • 21. アジャイルな開発 してますか? http://bit.ly/shZMnK 13年2月15日金曜日
  • 22. Developers Summit アジャイルの範囲 今日の話は こちら側 平鍋健児氏の資料を許可を得て引用 http://blogs.itmedia.co.jp/hiranabe/2012/09/rightwing-and-leftwing-of-agile.html 13年2月15日金曜日
  • 23. 毎日何回も本番環境にデプロイ できているか? 顧客に頻繁に価値を届けられて いるか? 13年2月15日金曜日
  • 24. Developers Summit 1000+ deploys / hour http://bit.ly/XonkX7 13年2月15日金曜日
  • 25. Developers Summit よくある光景 運用でなんとかすんの があんたらの仕事だろ てめーもっとちゃ んとアプリ作れ あの∼、ビジネス のこと考えてよ http://www.flickr.com/photos/makitani/3940687822/ 13年2月15日金曜日
  • 26. Developers Summit 会場調査 •ユニットテストを書いている方は挙手 •継続的インテグレーションサーバを使っている方は そのまま挙手 •結合テストを自動化している方はそのまま挙手 •デプロイを自動化している方はそのまま挙手 •環境構築を自動化している方はそのまま挙手 13年2月15日金曜日
  • 27. Developers Summit 会場調査 •ユニットテストを書いている方は挙手 •継続的インテグレーションサーバを使っている方は そのまま挙手 最後まで残っていた方は帰って •結合テストを自動化している方はそのまま挙手 大丈夫です! •デプロイを自動化している方はそのまま挙手 •環境構築を自動化している方はそのまま挙手 13年2月15日金曜日
  • 29. No Silver Bullet http://bit.ly/vj0b0v 13年2月15日金曜日
  • 31. Developers Summit 製品そのものをAgileな状態に保つ 技術的負債を少なく保つ http://www.flickr.com/photos/stuckincustoms/5094583941/ 13年2月15日金曜日
  • 33. Developers Summit 13年2月15日金曜日
  • 34. 継続的デリバリーの原則 ソフトウェアのリ 1 リースやデプロイの プロセスは繰り返し 可能であり信頼性が 高い必要がある。 13年2月15日金曜日
  • 35. 継続的デリバリーの原則 2 全てを自動化する 13年2月15日金曜日
  • 36. 継続的デリバリーの原則 難解なことや苦痛な 3 ことを繰り返し行い 自動化の方法を考え る 13年2月15日金曜日
  • 37. 継続的デリバリーの原則 4 全てをソースコード 管理システムで管理 する 13年2月15日金曜日
  • 38. 継続的デリバリーの原則 5 完了は「リリースさ れたこと」を意味す る 13年2月15日金曜日
  • 39. 継続的デリバリーの原則 6 品質を作りこむ 13年2月15日金曜日
  • 40. 継続的デリバリーの原則 7 すべての人にリリー スプロセスに対して の責任がある 13年2月15日金曜日
  • 41. 継続的デリバリーの原則 8 継続的に改善する 13年2月15日金曜日
  • 42. 継続的デリバリーの4プラクティス • バイナリは一度だけビルドする • すべての環境にデプロイするのに完全に同一の メカニズムを使う • デプロイメントでスモークテストを実施する • 何か問題が起こったらラインを止める 13年2月15日金曜日
  • 44. テスト自動化の必要性 小規模リリースのたびに手動でテス トするとコードベースが大きくなるに つれてテストコストが膨らむ • アジャイル開発においてはテスト自動化は必須 • アジャイルかどうかに関係なくソフトウェアのライフサイク ルを考慮する必要がある。 13年2月15日金曜日
  • 45. 自動化されたテストの損益分岐点 ITアーキテクト「機能テストの自動化について考える」  より引用 http://www.itarchitect.jp/print/?menu3=24601 13年2月15日金曜日
  • 46. 自動化されたテストの損益分岐点 テスト自動化にかかるコストよりも 手動テストのコストがすぐ高くなる ITアーキテクト「機能テストの自動化について考える」  より引用 http://www.itarchitect.jp/print/?menu3=24601 13年2月15日金曜日
  • 47. 問題は早めに解決する フェーズ 修正までの時間 要求や設計 5分 コードやユニットテスト 15分 結合テストやシステムテスト 1時間 ベータテスト 2時間 リリース後 1日 • 早く見つけて速く直す 13年2月15日金曜日
  • 48. デプロイのたびに 人手でテストするのは無理 13年2月15日金曜日
  • 49. テストしていない ものを目を瞑って デプロイしてはい けない 設定ファイル1行だ 囁 き し大丈夫だよね? 魔 の 悪 http://bit.ly/rAOG9h 13年2月15日金曜日
  • 50. 清水の舞台から 飛び降りない http://bit.ly/tnB8i0 13年2月15日金曜日
  • 52. Developers 自動テストに求められる特性 Summit • 繰り返し可能 (Repeatable) • 独立性 (Independent) • 自己検証 (Self validation) • 簡単実行 (Easy) http://www.flickr.com/photos/spackletoe/90811910/ 13年2月15日金曜日
  • 53. Developers Webアプリケーションだと... Summit • テストの実行時間を短く、依存関係を少なく • 自信のない箇所をテスト • 問題は実装箇所に近いところで見つける • モデル、ヘルパー、コンポーネント単位でのテストを書く • コントローラーのテストを沢山書かざるを得ないのは、Fat Controllerや密結合の証 • そうなる前にペアプロ、コードレビュー、TDD、リファクタ リング 13年2月15日金曜日
  • 54. 完了の定義 • 完了の定義を作り、何をもって出荷可能かを定 める • 全部を短い間隔で出来れば頻繁にリリース可能 コード ユニット カバレッジ チェックイン レビュー テスト 75% 受け入れ クロス 結合テスト 静的解析 テスト ブラウザ ドキュメント 性能 セキュリティ デプロイ 13年2月15日金曜日
  • 55. フィーチャー単位で完了 フィーチャー フィーチャー フィーチャー フィーチャー フィーチャー フィーチャー フィーチャー コードレビュー コードレビュー コードレビュー コードレビュー コードレビュー コードレビュー コードレビュー チェックイン チェックイン チェックイン チェックイン チェックイン チェックイン チェックイン ユニットテスト ユニットテスト ユニットテスト ユニットテスト ユニットテスト ユニットテスト ユニットテスト カバレッジ カバレッジ カバレッジ カバレッジ カバレッジ カバレッジ カバレッジ 静的解析 静的解析 静的解析 静的解析 静的解析 静的解析 静的解析 結合テスト 結合テスト 結合テスト 結合テスト 結合テスト 結合テスト 結合テスト 受け入れテスト 受け入れテスト 受け入れテスト 受け入れテスト 受け入れテスト 受け入れテスト 受け入れテスト クロスブラウザ クロスブラウザ クロスブラウザ クロスブラウザ クロスブラウザ クロスブラウザ クロスブラウザ ドキュメント ドキュメント ドキュメント ドキュメント ドキュメント ドキュメント ドキュメント セキュリティ セキュリティ セキュリティ セキュリティ セキュリティ セキュリティ セキュリティ 性能 性能 性能 性能 性能 性能 性能 デプロイ デプロイ デプロイ デプロイ デプロイ デプロイ デプロイ 13年2月15日金曜日
  • 56. XPのプラクティスの利用 ! ! ! YAGNI 13年2月15日金曜日
  • 59. CIサーバ • プロジェクト初期の段階でコードがなくても構築する • コードのメトリクス取得や静的解析は初期から継続的に実施 する方が効果がある • 常にグリーン(Jenkinsなら青)の状態を保ち、エラーがある 状態に慣れない • 常にグリーンに保つにはアトミックな単位での作業、マイグ レーションとの連携、チームのコミットに対する態度が欠か せない 13年2月15日金曜日
  • 60. CIアンチパターン • 頻繁にバージョン管理システムにコミットしない • テストコードを書かない • テストコードと製品コードを同時にコミットしない • 定時ビルドのみでコミットビルドがない・夜間ビルドしかな い • 帰り際にコミットしてそのままCIの結果を見ずに帰る • CIでテストを通すために手作業の準備が必要 • メインラインのみで大きなブランチをCI対象にしていない 13年2月15日金曜日
  • 61. CIアンチパターン • 様々な種類のテストをまとめて行っている • ビルドの失敗に気付かない • ビルドに失敗しても放置している • ビルドの失敗に気づいても、修正コード以外のコードをコ ミットする • 何も変更していないのにビルドが落ちたり落ちなかったり • 頻繁にビルドが失敗するので、失敗するのが普通だと思う • CIからの通知メッセージが大量すぎる 13年2月15日金曜日
  • 62. CIアンチパターン • CIが落ちても何も通知しない • CIサーバのリソースが貧弱 • ビルドが肥大化して結果が出るまでに時間がかかる • 本番環境やステージング環境と大幅に環境が異なる • コードの静的解析をCIで行わずに人手で行う • CIサーバがおかしくなったときに直せる人がいない • ずっとCIでのチェック内容が変わらない、プロセスが変わら ない 13年2月15日金曜日
  • 64. ソースコードのバージョン管理 • いわずもがな。全ての起点はここにある • コードの共同所有の原則への理解 • このソースコードは本番環境または開発環境な どで同じように動作しなければならない • テストを書く習慣、コミット前に他のテストも 含めて通してからコミットする習慣 13年2月15日金曜日
  • 65. 設定情報のバージョン管理 • 環境によって異なる設定値(接続先データベース情報 など)が書かれた設定ファイルもバージョン管理する • 開発環境用、ステージング環境用、本番環境用などに 分けて定義し、容易に切り替え可能にする • 本番環境に配置する際に、アプリケーションの各所を 書き換えなければ動作しないとかアマチュア以下 13年2月15日金曜日
  • 66. マージって何? Excel台帳じゃ だめ? コンフリクトするとつ らいから動かなくても コミットしますね! http://www.flickr.com/photos/seanmolin/7028040701/ 13年2月15日金曜日
  • 67. バージョン管理は 開発者のしつけ http://bit.ly/utD8aA 13年2月15日金曜日
  • 69. リリースした際に、前のバージョンに即座に戻 せるか?これはコードだけでなくデータベース 等も含む http://bit.ly/tgbmyr 13年2月15日金曜日
  • 71. データベーススキーマの管理 このバージョンはス これ試すのにどのSQL適 キーマ違うの??? 用すればいいの? データベースのスキーマの状態とリリースの状態を関連 付けることによって再現可能にする 13年2月15日金曜日
  • 72. 既存のアプローチの問題 • SQLスクリプトファイルは管理が煩雑 • SQLスクリプトは自動実行に向かない • ロールバックやデータ移行の考慮もしづらい • 複数のSQLスクリプトの実行順序が分からない http://bit.ly/vbtqZc 13年2月15日金曜日
  • 73. 問題の例 • SQLの実行順序で状態が変わる 1.sql 1.sql→2.sql alter table users add column lastlogin datetime after name; 2.sql 2.sql→1.sql alter table users add column disabled boolean default false after name; 13年2月15日金曜日
  • 75. マイグレーション $ ls -1 1301223401_addchangelogs.php 前後関係は、ファイル先頭の 1313445291_addinformation.php 1317489252_addpriorities.php 数字の大小で判断される。 1318776293_addprojects.php (規約) 1318889397_addremainingtimes.php 1320243212_addresolutions.php 1321049290_addsprints.php 1321509396_addschemamigrations.php 1322392147_fix_project_invalid_default_value.php 1322446269_add_action_name_to_log.php 1322993218_addstories.php 1323001299_addstorycomments.php 1323449303_addusers.php 1324059101_addtasks.php 1325101301_addteammembers.php 1326548301_addteams.php 1327491204_addwiki.php 13年2月15日金曜日
  • 76. マイグレーション実行(例) # 最新のバージョンへ更新 $ php doctrine_cli.php migrate # 指定したバージョンへ更新 $ php doctrine_cli.php migrate 29 マイグレーションファイルをソースコードとしてバージョ ン管理し、CIのビルド定義の中にマイグレーションコマ ンドを組み込むことで、自動的にDBの状態を連動させる 13年2月15日金曜日
  • 79. 環境構築の自動化が必要なわけ • そもそも時間がかかる • 数が増えれば単純作業の繰り返し • 人手による単純作業はミスを誘発 • ミスした場合でも検知する仕掛けが本番障害しかない • 手順書がメンテナンスされないことがある • 手順書の手順の妥当性の評価が難しい • 手順の逆転により状態が変わりうる 13年2月15日金曜日
  • 80. 設定やインストールの自動化 • いつでもクリーンな動作 環境を作れるようにする http://bit.ly/vMHRjL 13年2月15日金曜日
  • 81. 設定やインストールの自動化 この自動化によっ て後はアプリケー ションをデプロイ すればすぐ動作す る状態にする http://bit.ly/v30Zl7 13年2月15日金曜日
  • 82. 設定やインストールの自動化 http://bit.ly/ttwsmT 本番環境と開発環境の 各種バージョンをあわせる 13年2月15日金曜日
  • 83. 設定やインストールの自動化 • ミドルウェアのバージョンをあげたり、 パッチを適用する場合も、 この自動化機構を使って行う http://bit.ly/tkSfaO 13年2月15日金曜日
  • 84. Chef / Chef Solo 13年2月15日金曜日
  • 85. Chefの概要 • Ruby製のシステム管理ツール • 出来ること • OSのパッケージのインストールや管理 • OSの設定やミドルウェアの設定 • サービスの起動・停止 • クーロンの設定 • 特徴 • Rubyでジョブや設定を記述する • Chef自体はクライアント/サーバモデル • Chef-soloを使えばローカル単体で動作 • Recipeが多数公開されている 13年2月15日金曜日
  • 86. バージョンを指定 してパッケージを インストールする ことも可能 13年2月15日金曜日
  • 87. 多数のRecipeがOSS で公開されている 13年2月15日金曜日
  • 90. VagrantでSandbox Sandbox機能を使うことで、ミドルウェアのバージョンアッ プの検証・構成の変更の検証・デプロイの試験などを気軽に行 えるようになる(何度でも変更をRollbackできる) $ sudo git clone https://github.com/jedi4ever/sahara.git $ cd sahara $ sudo rake build $ cd pkg $ sudo gem install ./sahara-0.0.13.gem 13年2月15日金曜日
  • 91. クラウドの利用 • Stampパターンで自由にインスタンスを複製可能 13年2月15日金曜日
  • 92. 環境構築自動化の敷居の低下 • 仮想マシンを使うことで、何度でも簡単に自動化の試験をお こなうことが可能 • 環境構築でTDDを行う例も登場 • 不要になったインスタンスは削除すれば良く、調達コストは 極めて低い • 一方で有償ソフトウェアのライセンス管理をどうするかは課 題の1つ http://www.flickr.com/photos/stuckincustoms/393494014/ 13年2月15日金曜日
  • 94. Developers Summit 当たり前の話 ( ゚皿゚)キーッ!! Day1 Day2 Day3 Day4 DayN 13年2月15日金曜日
  • 95. Developers Summit 当たり前の話 (^_^;) ( ゚皿゚)キーッ!! 13年2月15日金曜日
  • 96. ゼロデプロイ プロジェクト最初に、 (デプロイするものがなくても) デプロイを自動化する http://bit.ly/vd1Nin 13年2月15日金曜日
  • 97. プロジェクトのあいだ、 ずっとデプロイスクリプトを 使うことで、 プロセスがテストされ続ける 開発環境・本番環境問わず、 同じ方法でデプロイする http://bit.ly/u27Oiz 13年2月15日金曜日
  • 98. デプロイが失敗した場合に ロールバックできるように する http://bit.ly/vFzaU9 13年2月15日金曜日
  • 99. デプロイが途中で失敗 した場合、その先を手 動でやらない http://bit.ly/w34bFM 13年2月15日金曜日
  • 100. Capistrano Railsアプリのデプロイに利用されることが多いが、もちろん それ以外にも利用可能。SSHで接続し、サーバに対して色々 な操作を行うことが出来る。 13年2月15日金曜日
  • 101. Capコマンド cap deploy # Deploys your project. cap deploy:check # Test deployment dependencies. cap deploy:cleanup # Clean up old releases. cap deploy:pending # Displays the commits since your last deploy. cap deploy:pending:diff # Displays the `diff' since your last deploy. cap deploy:rollback # Rolls back to a previous version and restarts. cap deploy:rollback:code # Rolls back to the previously deployed version. cap deploy:setup # Prepares one or more servers for deployment. cap deploy:symlink # Updates the symlink to the most recently deployed ... cap deploy:update # Copies your project and updates the symlink. cap deploy:update_code # Copies your project to the remote servers. cap deploy:upload # Copy files to the currently deployed version. cap deploy:web:disable # Present a maintenance page to visitors. cap deploy:web:enable # Makes the application web-accessible again. cap develop # Set the target stage to `develop'. cap invoke # Invoke a single command on the remote servers. cap multistage:prepare # Stub out the staging config files. 13年2月15日金曜日
  • 105. よくあるデプロイ方法 メンテ中ページに アプリケーションの LBから切り離す 新規環境構築 差し替える デプロイ データベースの アプリケーションの アプリケーションの マイグレーション デプロイ デプロイ アプリケーションの スモークテスト スモークテスト デプロイ スモークテスト LB対象に戻す LB切り替え メンテ中ページから データベースの不可逆な変更を避けるよ 戻す うにアプリケーションを作りこんだ方が 良い場合が多い 13年2月15日金曜日
  • 106. ビルドパイプライン 各種テストや静的解析、ステージング環境 リリース、本番環境リリースなどを 一元的に管理できる。 13年2月15日金曜日
  • 108. 通常時のリリース • テストが完了してから リリースまで1日以内? • テストが完了してから リリースまで3日以内? • テストが完了してから リリースまで1週間以内? • それ以上かかる? http://bit.ly/wo4eyD 13年2月15日金曜日
  • 109. 障害発生時のリリース • テストが完了してからリリースまで1日以内? • テストが完了してからリリースまで3日以内? • テストが完了してからリリースまで1週間以内? • それ以上かかる? http://bit.ly/zeFv2G 13年2月15日金曜日
  • 110. 障害時に1日でリリースできるのであれば、 今のリリースプロセスには組織的なムダがある。 ワンクリックでデプロイできたとしても リリースの意思決定に時間がかかったら 無意味! http://bit.ly/rZyM3H 13年2月15日金曜日
  • 111. Developers Summit 組織のアジリティを高める • 変化しないとゆるやかに死ぬ • 自分たちで変えていく。できることは沢山あるはず! http://www.flickr.com/photos/eole/4350200158/ 13年2月15日金曜日
  • 112. まとめ • ビジネスのために継続的に成果を届ける • そのためにはAgileなやり方が必要 • テストの自動化は必須 • 常に出荷可能な状態に保つ • デプロイや環境構築も自動化 • 改善をずっと続ける 13年2月15日金曜日