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

楽楽精算のリリースプロセス最適化/meetup_20211117

Rakus_Dev
November 29, 2021

 楽楽精算のリリースプロセス最適化/meetup_20211117

Rakus_Dev

November 29, 2021
Tweet

More Decks by Rakus_Dev

Other Decks in Technology

Transcript

  1. ©2021 RAKUS Co., Ltd. 楽楽精算のリリースプロセス について 根井 達規

  2. #RAKUSMeetup アジェンダ ・開発体制 ・リリース担当者の役割 ・リリースサイクル ・担当してみての課題と対策 ・今後の作業効率化・品質向上にむけて

  3. #RAKUSMeetup 自己紹介 根井 達規(ねい たつのり) 経歴 2005年~2013年:エンジニアになる以前(もともと作曲家) 2014年~2020年:ラクス入社前(Sierでシステム開発を経験) 2020年11月:ラクス入社 現在

    楽楽精算の開発と並行してリリース関連業務を担当
  4. ©2021 RAKUS Co., Ltd. 楽楽精算のご紹介 本題に入る前に、担当製品の楽楽精算についてご紹介 させていただきます。

  5. #RAKUSMeetup 楽楽精算のご紹介 経費・交通費・出張費・旅費・交際費など、すべての経費精算フローを、 社内の誰もが「楽」できるようになるクラウド型の経費精算システムです。

  6. ©2021 RAKUS Co., Ltd. 楽楽精算の開発体制とリリー スフロー

  7. #RAKUSMeetup 開発体制 ・各チーム3~4名体制 ・機能開発チーム×3 ・スマホアプリ開発チーム ・オフショアチーム ・ウォーターフォール開発

  8. #RAKUSMeetup リリース担当となったきっかけ 元々はSREチームが楽楽精算のリリース業務を担当 楽楽精算がサービスとして成長するとともにSREの業務負荷が増え、対 応しきれなくなってきたのと、よりインフラやSREとしての業務(自動化推進 など)に専念するために開発チームにて巻き取ることとなりました。

  9. #RAKUSMeetup リリース担当者の役割(担当作業) ・リリーススケジュールの作成,確認 ・機能開発 ・IT/ST ・品質審査 ・リリース

  10. #RAKUSMeetup リリース担当者の役割(進捗管理)

  11. #RAKUSMeetup リリースサイクル

  12. #RAKUSMeetup リリースサイクル ・設計(項目決定) 開発期間開始時に各事業部でタスクを整理して、どのバージョンにどのような変更をいれるか管理す るようにしています。 ・機能開発 設計~単体テストまでの開発全行程 ・テスト期間(結合・システムテスト) 不具合の洗い出しと、その改修を行います。開発機能として優先度の高い内容を除くと、多くは前回リ リースからの実装差分に焦点を充てて確認を行います。この期間で行うのは主にリリース前の手動に

    よるテスト実施してます。この期間でなくとも、自動テストや手動テストを必要に応じて回し、不具合が あれば修正します。
  13. #RAKUSMeetup リリース メジャーバージョンアップ 新機能追加を伴う、アプリケーションリリース。 同時にBugfixなどの対応を行うことがある。 マイナーバージョンアップ Bugfixを中心とした、アプリケーションリリース。 リスクが大きいものは対象としないため、2段階リリースは行わない。 リリース時のサービス停止は発生しない。

  14. ©2021 RAKUS Co., Ltd. 担当してみて発生した課題 障害事例の紹介

  15. #RAKUSMeetup 属人化 問題 ・あるチームの開発機能で、本来実施しておくべき作業手順(特定顧客向けの設定) が漏れており、リリース直前に手戻りが発生。 ・イレギュラーな対応を行うことでの障害リスクも増大させてしまった。 原因 ・作業手順/作業分担ができておらず、明確化していなかった 反省点 ・前任者はリリース担当の経験も長く十分にナレッジがあったため、その方式でもリス

    クを検知し独自に動けていたが引継ぎ後の体制では漏れてしまった。
  16. #RAKUSMeetup 対策 リリースサイクルのガイドラインを設ける ・特定個人への依存した運用とならないよう、リリースサイクルのガイドラインを作 成 オブジェクトや物資の不足 ・開発担当者・リリース担当者・インフラへの作業引き渡しが曖昧とならないよう、 最終チェックの場を設けた 対策結果 リリースフローが形式知化され、必要な情報は資料を見れば分かる状態となった

  17. ©2021 RAKUS Co., Ltd. 今後の展望 今後の作業効率化・品質向上に向けて改善したいこと

  18. #RAKUSMeetup 【現状】 リリース担当者の負担が大きい リリース担当者というリリースに責任を負う人物を立てて、問題なくリリースが行える ように部署間の施策の調整をしたり、スケジュールの調整を行う役目を担ってました。 次のリリースに入るはずの機能がマージできていないときに関係者をつっつくような 役目も持っていたので、とにかく細かい作業や人間の間の調整で忙殺されてしまう。 【理想】 当事者間の調整や確認に非常に手間をとられてるので、「調整・確認」を減らしたい、 なんなら無くしたい!

  19. #RAKUSMeetup 生産性向上に向けた効率化計画

  20. #RAKUSMeetup やってみたいこと CI/CD ・Jenkinsによるビルド、テスト、検証環境へのデプロイは実装できてる ・ジョブが増えすぎたこともあって整理したい ・ソースコード管理にGitlabを利用してるので、GitlabCIを利用してビルド→テスト→デ プロイ→動作確認(性能検証・シナリオテスト)までの一連の流れを一つのパイプライ ンで実施できるようにしたい Selenium 自動化したシナリオテストをもっているが、全機能網羅できてるわけでない。また主要

    機能を確認するだけでも5-6時間以上かかってる。シナリオテストの実行時間を減らし たい
  21. #RAKUSMeetup 楽楽精算のリリースサイクルについてご説明しました。 サービスが拡大し環境も変化するで、システム品質を損なわずにどう開発を続けてい けるか試行錯誤してるところです。 まだまだ困っていることもたくさんありますがより良い方法を考えていきたいと思って います。