見出し画像

デプロイの達人 - CICDパイプライン構築物語


登場人物とあらすじ紹介

登場人物

  1. 芦田さや(主人公)

    • 中堅IT企業に勤める平凡なソフトウェアエンジニア

    • 日々の業務に物足りなさを感じていたが、大きな変化を恐れていた

    • CICDプロジェクトを通じて技術的にも人間的にも成長し、自己の可能性を発見する

  2. 山岡健三郎(メンター/プロジェクトリーダー)

    • 新しく赴任してきた経験豊富なプロジェクトリーダー

    • さやの潜在能力を見抜き、彼女に挑戦の機会を与える

    • 厳しくも温かい指導でさやの成長を支えるが、プロジェクト完了後に転職する

  3. 竹田佳代(新人エンジニア)

    • 前職での経験を活かし、時に先輩であるさやにも刺激を与える新人エンジニア

    • さやと共に成長し、新たなプロジェクトへの挑戦を志す

あらすじ

中堅IT企業で平凡な日々を送っていた芦田さやの前に、新たなプロジェクトリーダー・山岡健三郎が現れる。山岡は会社の開発プロセスを根本から変えるCICDパイプライン構築プロジェクトを提案し、さやにその中心的な役割を任せる。

初めは不安と戸惑いを感じていたさやだったが、山岡の指導の下、少しずつプロジェクトに貢献していく。Jenkinsのパイプライン設定やDockerコンテナの最適化など、具体的な技術的課題に取り組みながら、さやは成長していく。

新人の竹田佳代からの刺激や、重大なセキュリティの脆弱性の発見など、様々な困難に直面しながらも、さやは技術的なスキルだけでなく、チームリーダーとしての資質も身につけていく。

プロジェクトが成功裏に終わった後、山岡の突然の転職宣言にさやは動揺する。しかし、この経験を通じて得た自信と決意を胸に、さやは次なる挑戦――AIを活用したCICDパイプラインの構築に挑戦することを宣言する。

「選んだのはあなた自身です」という山岡の言葉が、さやの心に深く刻まれる。技術的な成長と自己実現の狭間で揺れ動きながらも、自ら道を切り開いていくさやの姿を通じて、現代のIT業界で働く人々の葛藤と成長が描かれる。


プロローグ

コードエディタの青白い光が、オフィスの薄暗がりを照らしていた。深夜0時を回る。芦田さやは、モニターに映る自分の倦怠感漂う顔を見つめながら、ため息をついた。

「これでいいのかな...」

彼女の脳裏に、山岡健三郎の言葉が浮かぶ。
「選んだのはあなた自身です」

その言葉の意味を、さやはまだ完全には理解していなかった。

新たな風

プロジェクトが始まったのは、3ヶ月前のことだった。

「我々は、会社の開発プロセスを根本から変える。CICDパイプラインの構築だ」

山岡健三郎。新しく赴任してきたプロジェクトリーダーの、その言葉に会議室は凍りついた。

さやは、自分の心臓の鼓動が聴こえるほどだった。CICDという言葉は知っていた。でも、実際に導入するなんて...。

「芦田さん」
突然、山岡に名指しされ、さやは体が強張るのを感じた。
「このプロジェクトの中心になってくれないか」

その瞬間、さやの頭の中は真っ白になった。自分が?なぜ?

「山岡さん、私にはCICDの経験がありません。他にもっと適任の...」

山岡は、さやの言葉を遮るように微笑んだ。
「経験は後からついてくる。大切なのは、挑戦する意志だ。君には、それがある」

さやは、山岡の目に映る自分を見た。そこには、自分が気づいていなかった可能性が映っていた。

「...分かりました。やってみます」

さやの声は、自分でも驚くほど力強かった。

試練の日々

プロジェクトは、想像を超える難関の連続だった。

「Jenkins、なんで動かないの...」

さやは、画面に映るエラーメッセージを睨みつけていた。Jenkinsのパイプライン設定。一見簡単そうに見えて、実際は複雑な設定の嵐だった。

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'npm install'
                sh 'npm run build'
            }
        }
        stage('Test') {
            steps {
                sh 'npm test'
            }
        }
        // ... 他のステージ
    }
}

「これ、もっと効率化できないのかな...」

さやは、コードを見つめながら呟いた。そのとき、背後から声がした。

「Jenkins、苦戦してる?」

振り返ると、そこには新人の竹田佳代がいた。

「あぁ、佳代ちゃん。うん、ちょっとね」

「先輩、こういうのはどうですか?」

佳代は、さやの横に座り、キーボードを取った。

pipeline {
    agent any
    stages {
        stage('Build and Test') {
            parallel {
                stage('Build') {
                    steps {
                        sh 'npm install'
                        sh 'npm run build'
                    }
                }
                stage('Test') {
                    steps {
                        sh 'npm test'
                    }
                }
            }
        }
        // ... 他のステージ
    }
}

「parallelを使えば、ビルドとテストを同時に実行できます。時間短縮になりますよ」

さやは、目を見開いた。「すごい...佳代ちゃん、こんなの知ってたの?」

佳代は少し照れくさそうに笑った。「実は、前の会社でちょっとだけ触れる機会があって...」

さやは、自分の中に湧き上がる感情に気づいた。それは焦りだった。新人の佳代にさえ、自分より詳しい部分がある。このままじゃいけない。もっと学ばなきゃ。

その夜、さやは遅くまでオフィスに残り、Jenkinsの公式ドキュメントを読み漁った。

成長の痛み

プロジェクトが進むにつれ、新たな課題が次々と現れた。Dockerコンテナの最適化、Kubernetesクラスターの構築、そしてセキュリティ設定。

「このDockerイメージ、もっとサイズ削減できないか?」

山岡の言葉に、さやは必死で取り組んだ。

FROM node:14 as builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM node:14-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY package*.json ./
RUN npm install --only=production
CMD ["npm", "start"]

マルチステージビルドを採用し、最終的なイメージサイズを大幅に削減することに成功した。

「よくやった、芦田さん」
山岡の言葉に、さやは小さな達成感を覚えた。しかし、それも束の間。

「セキュリティ設定、これで大丈夫か?」
「納期に間に合わないぞ、このままじゃ」

チームメンバーの不安の声が、さやの耳に突き刺さる。プレッシャーは日に日に増していった。

ある日、重大なセキュリティの脆弱性が発見された。さやの設計ミスだった。

「なぜこんなミスを...」
「こんな時期に、信じられない」

チームメンバーの冷たい視線。さやは、全てを投げ出したくなった。

そんな時、山岡が近づいてきた。
「芦田さん、失敗は成功の母だ。大切なのは、どう立ち直るかだ」

さやは、山岡の目を見た。そこには、厳しさの中にも温かさがあった。

「山岡さん...ごめんなさい。私、もっと頑張ります」

「頑張るんじゃない。考えるんだ。なぜこのミスが起きたのか。どうすれば防げたのか」

その言葉に、さやは我に返った。そうだ、ただ謝罪して終わりじゃない。問題の本質を理解し、解決策を見出す。それこそが、真の成長だ。

さやは深呼吸をし、チームメンバーに向き直った。

「みんな、申し訳ない。でも、これを機に我々のセキュリティ対策を見直そう。一緒に、より強固なシステムを作り上げよう」

その言葉に、チームの雰囲気が少しずつ和らいでいった。

予期せぬ結末

そして、ついに迎えたリリースの日。

さやは息を殺して、デプロイの進捗バーを見つめていた。心臓の鼓動が、耳元で大きく響く。

「成功」

その文字が画面に表示された瞬間、オフィスに歓声が響き渡った。

達成感に酔いしれる中、ふと山岡の表情が曇るのに気がついた。

「山岡さん、どうかしましたか?」

山岡は少し間を置いて答えた。

「実は...私、このプロジェクト終了と同時に、転職することになったんだ」

その言葉に、さやは言葉を失った。

「なぜ...?」

「このプロジェクトの成功で、私の役目は果たせたと思うんだ。そして、君たちにはもう私が必要ない」

さやは、胸が締め付けられる思いだった。山岡がいなくなる。その事実が、彼女の心に重くのしかかった。

「でも、芦田さん。君はこれからだ。このプロジェクトで学んだことを、次はどう活かすつもりだ?」

さやは、深く考え込んだ。確かに、このプロジェクトで多くのことを学んだ。技術的なスキルだけでなく、チームワークの大切さ、失敗から学ぶ勇気、そして自分自身を信じる力。

「...新しい挑戦をしてみたいです」

さやの答えに、山岡は満足げに頷いた。

「そうか。君なら、どんな困難も乗り越えられる。覚えておいてくれ、芦田さん。選んだのは、いつだってあなた自身だ」

その夜、打ち上げの席で、さやは静かにグラスを掲げた。不安と期待が入り混じる中、彼女の心に一つの確信が芽生えていた。

これからの道のりは、きっと険しいだろう。でも、もう恐れることはない。なぜなら、自分で選んだ道だから。

さやは、決意に満ちた表情で立ち上がった。

「みんな、聞いてください。私、次のプロジェクトでは、AIを活用したCICDパイプラインの構築に挑戦したいと思います」

チームメンバーの驚いた表情。そして、次第に広がる期待の空気。

さやは続けた。「難しい挑戦になると思います。でも、このチームなら、きっとできる。私は、そう信じています」

歓声が上がる。佳代が、興奮した様子でさやに駆け寄ってきた。

「先輩、私も一緒に挑戦していいですか?」

さやは、微笑んで頷いた。「もちろん。みんなで一緒に、新しい未来を作り上げよう」

窓の外では、夜明けの空が少しずつ明るくなり始めていた。さやの新たな挑戦、そして成長の物語は、まだ始まったばかりだった。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?