デブサミ2019に参加してきた(1)

はじめに

今年もデブサミに参加してきた。但し今回は2日目だけ。参加したセッションは下記の通り。

【15-E-2】CI/CDを使い倒して数段上のソフトウェア開発をしよう!
【15-E-3】Entertainment x Tech~多くのアーティストとファンを繋ぐ技術と組織~
【15-E-4】中国・深センのテクノロジー最新事情
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-B-6】サーバーレスで最高に楽しめるアプリ開発
【15-B-7】無意味なアラートからの脱却 〜 Datadogを使ってモダンなモニタリングを始めよう 〜
【15-E-8】アウトプットのススメ ~技術同人誌・LT登壇・Podcast~

今回、翔泳社「CodeZine」のtwitterカウントがセッションごとにまとめを作ってくれているので、それを合わせて読むと効果的と思われます。また、自分が参加したセッションから印象的だったものについて、まとめを書くことにします。まずはこれから。

【15-E-2】CI/CDを使い倒して数段上のソフトウェア開発をしよう!

togetterまとめはここ
スピーカーはCircleCIの金 洋国さん。CI/CDについて「What」「Why」「Why not」「Beyond」の4点から語るという構成になっていて、「なぜCI/CDに取り組むべきか」という命題に対する理解が深まったと思います。

<前置き>
・CI/CDは戦国時代:Google/Azureなどビッグクラウドの参入、スタートアップの買収など

<CIについて>
What:テストを自動化し、常に同じ手順・環境で、見落としやミスなくテストすることを実現する
Why:テストは書くだけでなく、確実に実施し、テストが壊れていないことが必要。そのため、CIを唯一のテスト環境とし、テストも常に最新化することが望ましい
Why not:テスト文化の布教には時間がかかる。が、テストが無くても、構文チェックなどタスクレベルの自動化からCIは導入できる
 ・ツール選定⇒タスク自動化⇒可視化⇒マージブロック化⇒テスト追加と自動化の順で
 ・「jenkinsおじさん」問題(CIシステムのメンテナが必要)⇒クラウド化(CircleCIとか)
Beyond:CD導入ができるようになる

<CDについて>
What:CDは厳密のは「D」の違いで2種類ある
 ・C-Delivery=常にリリース可能な状態に保つ
 ・C-Deployment=Deliveryに加え、自動でリリースまで行う
Why:リリース後の問題(障害、仕様ミス)への対応として、フィードバックループを早く回すために必要
Why not:CDを始めるうえでは「技術的問題」と「組織的問題」がある
 ・技術的問題=密結合などアーキテクチャがCDに向いていない(エンタープライズなアプリなどに多い)
   ⇒時間をかけて直すしかない(サービスの疎連携化、OSSなどモダン化)
 ・組織的問題=「良い解が見つからなかったので、誰か教えてください!」
   ⇒(個人的意見:CI/CDのメリットをいかに上層部に理解してもらえるか、だと思う)
 ・CircleCIでも、CD導入までは約1年かかった(Docker/k8s導入とマイクロサービス化)
Beyond:プログラミングとリリースに対する、圧倒的な心理的安全を実現できるようになる
 ・迅速なロールバック
 ・本番環境でないとテストできない場合への適切な対処
 ・高度なリリース方法(カナリーリリース、グリーンブルーデプロイなど)

<CI/CDの未来>
・CI⇒C-Delivery⇒C-Deploymentの流れには常に「自動化」があり、今後の進化も「自動化」がキーになる
・例えばCI/CDの導入作業や環境構築など

<所感>
・「組織的問題」に良い答えが見つかってないというのは誰しも共感できたのでは。まずどんな領域でもいいから自分でやり、それを見せる所から始める、ってとこですかね。

デブサミ2019に参加してきた(1)” へのコメントが 3 点あります

  1. ピンバック: デブサミ2019に参加してきた(2) – ぼっちの王国

  2. ピンバック: デブサミ2019に参加してきた(3) – ぼっちの王国

  3. ピンバック: デブサミ2019に参加してきた(4) – ぼっちの王国

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください