こんにちは!
2/14(木)~2/15(金)にホテル雅叙園東京で開催されたDevelopers Summit 2019に、弊社芝本 (写真左, @silver_birder)・市原(写真右, @ichi_taro3)で行ってきました!
興奮冷めやらないままの現地から、レポートをお送りします。
公式サイト:
公式まとめ・資料:
セッション報告
参加したセッションのどれもが興味深いものでした。ここでは特に刺激を受けたものをご紹介します。
CI/CDを使い倒して数段上のソフトウェア開発をしよう!
概要
CircleCIのJapan Tech Leadである金 洋国氏が、CI/CDについての基本的な話から導入の仕方、そしてCI/CDの未来について紹介して頂きました。
スライドは、こちらです。
CI/CDを使い倒して数段上のソフトウェア開発をしよう! - Speaker Deck
感じたこと
CI/CDについてなんとなく知っていましたが、改めてCI/CDの恩恵を学べたセッションでした。
そもそもCIは何のためにあるのか
人が繰り返して作業すると、必ずオペレーションミスが生まれますよね。人ではなく、コンピュータがすることで、オペレーションミスが減る。また時間短縮にも繋がる。それを継続して行うことをCI(Continuous Integration)と呼びます。
当たり前の話をしていますが、「人が繰り返して作業する」という点に大切さを感じました。恐らく大なり小なり「人が繰り返して作業する」ことは、人が働いている以上、たくさんあるはずで、今一度、働き方を見直そうと思えました。ちなみに、セッションで紹介された例は、次のとおりです。
- テスト実行
- Lint
- カバレッジ計測
- 循環的複雑度のチェック
- ドキュメントの自動生成
CIからCDへ
CDのDとはDeliveryとDeploymentの2つの単語に悩むのですが、金氏に明確な違いを教えてもらえました。
どちらも共通して下記のことが言えます。
- プロダクションをリリースするフローを自動化する
違いを言うと、
Delivery
- 人の介入がある、つまり半自動
Deployment
- 人の介入がない、つまり全自動
と仰っていました。弊社では、Deliveryの状態であると現状認識できました。
ちなみに、デプロイとリリースという単語にも違いがあり、
デプロイ
- コードを本番環境に配置だけ
リリース
- デプロイし、配置したコードがトラフィックをさばくところまで
だそうです。もやもやがスッキリしました。
CI/CDの未来
CI/CDによって、安全に素早くリリースすることができるようになりました。では、次はどのような進化を遂げるのかという話になり、CIやCDは、元々手動で行っていたことを自動化したという点で共通でした。
では、今、手動でしていることは何なのかと考えると、未来が見えてくるのではないかと金氏は仰っていました。そこで挙げられたのが、CI/CDの設定を自動化、モニタリングの自動化、そして、デプロイ環境の構築を自動化。
$ git commit -m "first commit" && git push だけでリリースできる日も来るのかと思うとワクワクします。
全体を通じて思ったこと
弊社ではCIツールにjenkinsを使っています。テストの実行やLintは一部導入していますが、まだまだCIの恩恵を十分に受けていません。今回のセッションを受けて、自社に持ち帰り、より安全により効率よくサービス提供できるよう改善していきたいと思いました。
新技術導入を成功させる組織のつくりかた ~spanner、GKE導入の実体験から得たこと~
概要
コロプラのクリエイティブ本部 第一エンジニアリング部 部長 廣本 洋一氏による、Google Cloud Spanner, Google Kubernetes Engineの導入についての、マネージャ視点からのお話でした。
アプリケーションのフレームワークのサポート切れをきっかけとした、新規フレームワークの導入・DBサーバのSpannerへの移行、更にGKE導入までの経緯と、そこで得られた知見・気付きについて語られました。
感じたこと
熱い想いが伝わってきて、カッコいいなと思いました。
コロプラさんでSpanner/GKEを導入した話については、昨年末のDevelopers Boostのセッション で聞いていたのですが、そちらは現場の若手エンジニアの方からのお話でしたので、同じテーマの話を別視点で聞くことができて非常に興味深いものでした。
内容を全部書きたいのですが、文量の都合もありますので気に入った内容をご紹介します。私が聞いて理解したつもりのものを書いているので、もとのニュアンスと異なる可能性がありますがご容赦ください。
人員をどのように集めるのか
新技術導入には人員が必要になるが、エンジニアは大抵不足しているので、足下の既存事業に対してはどうしてもマイナスになってしまう。それでも、未来になったときの「足下」を悪くしないための投資だと考えて、勇気を持って進める必要がある。
弊社でもそうなのですが、常にやりたいことの方が多いので、どうしても既存システムの拡張と保守運用にリソースを割きがちです。新しい技術を導入するなら、既存事業の仕事とのトレードオフは覚悟する必要があるのだということだと思いました。
短いスケジュール
ビジネスの要請で十分に時間を取れない場合はある。納期に間に合うかどうかはマネージメントによるところが大きく、優先順位をつけて進める、時には諦めるなどの選択も必要になる。
マネージャの職位でなくても気にしなければいけないと感じました。自社の利益を最大化することに価値があるので、そのために取りうる選択肢はGOだけではないということですね。
若い人にチャレンジさせる
ベテランだけのチームを組めば素早く仕事できるかもしれないが、若手を入れることで将来の知見の継承まで見据えた開発ができる。若手もチャレンジによって一気に成長できる。
私、若手。チャレンジします。
全体を通じて思ったこと
フレームワークの刷新から、Spanner導入、GKE導入までを短期間で成し遂げた裏には、こんな考え方で主導してきた方がいたのだと感動しました。
ソーシャルゲームの世界では新規サービスが定期的に作られるという性質上、比較的新しい基盤に移りやすいのではと感じました。
弊社のように、継続して一つのサービスを拡大してきた業態の場合は、徐々に置き換えるというアプローチにならざるを得ないだろうなと思います。そのあたりの課題感は今後弊社内でも議論していくことになると思いますので、私もそこに加わっていけるようになりたいと思います。
全体の所感など
市原
溢れ出すぐらいたくさんの情報を吸収した2日間でした。セッションのメモを整理するだけでもそれなりの時間が必要そうです。
私は今回一参加者に過ぎませんでしたが、感化されて動き出そうと思っています。
#devsumi #devsumiE
— ichi_taro3 (@ichi_taro3) 2019年2月15日
アウトプットのすすめというセッションがめちゃくちゃ熱くて、なんかやりたいという気分になりました。
世界が広がっていく予感がしています。
主催者・登壇者・関係者の皆様。ありがとうございました。お疲れ様でした。
芝本
今回のテーマは「SHARE YOUR FUN」とのことで、多くの方からFUNを分けて頂きました。どのFUNも皆さんの愛を感じ、刺激を受けました。皆さん本当に好きなんだなと思えるセッションばかりでした。
次は、FUNを貰ってばかりではだめなので、与える側に立ちたいなと本気で思えました。近い将来には登壇してみたいと思います。良い学びの場でした、ありがとうございました。