株式会社ラクスパートナーズ / インフラエンジニア
JenkinsによるCIパイプライン構築
# プロジェクト概要 - 物流業界大手の社内倉庫管理システムにおいて、開発環境へのCIシステムの導入。 # 期間・規模 - 2021/3 ~ 2021/7 - 開発メンバー20名 # 担当 - 開発チームへCIシステム構築専任で参画。CI導入による既存の開発環境の省力化に貢献。 # 使用技術 - Jenkins, Windows7/10, GitBucket, Git, Java, Tomcat, MySQL, バッチファイル # 取り組み - Jenkinsパイプライン構築 <課題> - 開発運用中の倉庫管理アプリケーションについて、最新バージョンの動作確認をテストするために既存のE2Eテストツールが用意されていたが、作業者が手動でテスト開始し、テスト結果もテキスト形式のレポートファイルから確認するという非効率的なものとなっていた。 <解決策> - JenkinsによりCIパイプラインを構築し、GitBucketの任意のブランチへのコミットをトリガーに以下の一連を自動実行できるようにした。 - パイプラインの内容『スレーブノードでのGitチェックアウト→War差し替え展開→スレーブノードへのミドルウェア構築・DB初期化(テスト用の環境構築)→E2Eテスト→GUI上へのレポート出力』 - 上記により最新バージョンや特定ブランチのアプリケーションに対するテスト実行の自動化とテストレポートの視覚化に成功した。 # 工夫した点 - CI構築を自分1人が担当したため、自分が抜けた後に技術的負債にならないよう、できるだけ複雑な処理は避けるよう意識した。例えば、プラグインを使ってGroovyスクリプトによりJenkinsパイプライン全体を実装する選択肢があったが、Groovyの経験があるエンジニアが少なかったことからスクリプト改修には時間を要すると考え、あえてスクリプトではなくGUIでパイプラインを実装した。 # アピールポイント - リモートワークでのコミュニケーション MTGで、リモートでも上長にわかりやすく(ハンズオンの画面を見せる、パワポで図を作成する等)説明するように心がけ、的確なフィードバックをもらいやすい環境作りを意識し、また自分と周囲との間で認識の齟齬をなるべく無くした。