スキップしてメイン コンテンツに移動

投稿

注目の投稿

【Day 28】ボリューム(Named Volume)によるSQL Serverデータの安全な永続化 〜Docker管理領域によるmdf/ldfファイルの完全保護、docker-compose.ymlでのボリューム定義構文、一時コンテナを用いた安全バックアップ・リストア術、C# EF Core現場でのデータ保持〜

最近の投稿

【Day 25】【Case 5】仕様変更・機能のリリース順序入れ替え(チェリーピック)

▲ 【Day 25】仕様変更・機能のリリース順序入れ替え(チェリーピック) 👨‍🏫 皆さん、こんにちは! 本講座の専任講師です。 前回のDay 24では、本番環境の緊急障害に対応する「Hotfix」の完全手順と、developへのマージバックによる先祖返り防止サイクルを学びました。 本日のDay 25は、現場のエンジニアなら誰しも一度は遭遇する波乱のシチュエーション—— 【仕様変更・機能のリリース順序入れ替え(チェリーピック)】 を徹底解説します! 「次の定期リリースに向けて、機能A(AIレコメンド機能)と機能B(請求書PDF決済機能)を並行して開発していたが、突然クライアントや経営陣から『機能Aは仕様再検討で来月に延期!でも機能Bだけは契約上、明日のリリースにどうしても間に合わせてほしい!』と頼まれた……」 このような「リリース順序の逆転」や「特定機能だけの先行リリース」は、アジャイル開発でも受託開発でも日常茶飯事です。 Subversion (SVN) や Visual SourceSafe (VSS) で開発していた時代、これに対応するのはまさに悪夢でした。トランク(trunk)に時系列でコミットされた変更の中から、関係するファイル差分を手作業で洗い出し、別ブランチへ手動でコピペしてビルドする「手動リビジョンマージ」を行っていました。その結果、未完成な機能Aのコードが誤って混入したり、コピペ漏れによるコンパイルエラーや実行時例外が多発していました。 しかしGitなら、 「git cherry-pick」 という極めて強力な武器があります! Gitのコミットは、独立した変更パッチとして管理されています。そのため、木になっている熟した美味しいさくらんぼをスプーンで摘まみ取るように、 「機能Bに関する特定のコミットだけ」 を狙い撃ちして、安全にリリースブランチや本番ブランチへ移植・複製することができます! ...

【Day 27】コンテナを破棄するとデータが消える!? データの永続化の原理 〜書き込み可能レイヤー(OverlayFS)の消滅、ステートレス設計、Volume vs Bind Mount の使い分け、C#ログ・画像保存設計〜

▲ Day 27: コンテナを破棄するとデータが消える!? データの永続化の原理 🐳 「コンテナを再ビルドしたら、テスト登録したDBレコードや画像が全部消えた…!?」と焦ったことはありませんか? Windows Server、Hyper-V、VMwareなどで長年インフラや社内システムを構築してきたエンジニアにとって、「仮想マシンのCドライブやDドライブに保存したファイルは、OSを再起動してもマシンを作り直さない限りそのまま残る」というのが当たり前の常識でした。 しかしDockerのコンテナは、 「いつでも破棄して作り直せるエフェメラル(使い捨て)なプロセス」 として設計されています。そのため、何も設定せずにコンテナ内でデータベースを動かしたり、ユーザーがアップロードしたファイルを保存したりすると、コンテナを破棄( docker rm や docker compose down )した瞬間に、 すべてのデータが宇宙の彼方へ消滅 してしまいます。 本講義では、なぜコンテナ内のデータが消えるのかという内部アーキテクチャ(OverlayFS / 書き込み可能レイヤー)を解き明かし、データをホストOS側へ安全に逃がして永続化する 「ボリューム(Volume)」と「バインドマウント(Bind Mount)」の原理・使い分け・C#設計パターン を完全マスターします! INDEX 本日の講義カリキュラム 第1章: なぜコンテナを消すとデータが消えるのか? 〜OverlayFSと書き込み可能レイヤーの構造〜 第2章: コンテナの「ステートレス(無状態)原則」とデータの寿命管理 第3章: 永続化の2大手法「ボリューム(Volume...

【Day 24】【Case 4】本番障害! 緊急バグ修正(Hotfix)の完全手順

▲ 【Day 24】本番障害! 緊急バグ修正(Hotfix)の完全手順 👨‍🏫 皆さん、こんにちは! 本講座の専任講師です。 前回のDay 23では、製品リリースの総仕上げとして、mainマージ、注釈付きタグ(Annotated Tag)打刻、そしてdevelopへのマージバックによる安定バージョンの凍結サイクルを学びました。 本日のDay 24は、現場のエンジニアが最も緊張感を強いられる実践ケーススタディ—— 【本番障害! 緊急バグ修正(Hotfix)の完全手順】 を徹底講義します! 金曜日の夕方やサービス公開直後、「本番環境でユーザーの特定操作によってC#アプリが突然クラッシュした!」「至急パッチを当ててほしい!」という緊急アラートが鳴り響いた経験は、ベテランエンジニアなら誰しも一度はあるはずです。 Subversion (SVN) や Visual SourceSafe (VSS) で開発していた現場では、中央のトランク(trunk)にすでに次期バージョンの未完成コードや実験的コードがコミットされているため、本番修正を行うには「過去のリビジョンに戻してコードを手動で修正し、本番用バイナリをビルドしたあと、トランクにも手動で差分をコピペする」という恐ろしい二重管理を強いられていました。その結果、本番に未完成機能が誤って混入したり、トランクへの反映漏れで次のリリース時に直したはずのバグが復活する(先祖返り)大事故が日常茶飯事でした。 しかしGitなら、本番稼働中の安定コミット(mainブランチまたはv1.0.0タグ)から直接 「hotfix/* ブランチ」 をわずか1秒で切り出すことができます! 現在developブランチで進んでいる次期機能の開発中コードには指一本触れず、完全に隔離された安全な環境で最小限の緊急パッチを作成・検証できます。そして即座にmainへマージして新パッチタグ(v1.0.1)を打ち、最後にdevelopへもマージ...

【Day 26】docker compose up / down / build の実務コマンド完全マスター 〜バックグラウンド起動(-d)、差分再ビルド(--build)、ログ監視、コンテナ・ボリューム完全初期化(down -v)の実務頻出ワークフローとC#開発サイクル〜

▲ Day 26: docker compose up / down / build の実務コマンド完全マスター 🐳 「C#コードを直したのにコンテナに反映されない…」「DBを初期状態にやり直したい…」と悩んでいませんか? Windows ServerやIIS、物理サーバーで長年システム構築・運用に携わってきたベテランエンジニアにとって、「サービスの再起動」や「設定反映」「テストデータ初期化」は、GUIツールや手動バッチで行うのが日常茶飯事でした。 しかしDocker Composeを導入すると、 「 docker compose up を叩いても古いイメージのまま起動する」「ターミナルがログ出力で埋まって次の操作ができない」「コンテナを消したのに前回の古いDBデータがゾンビのように残っている」 という独特の挙動に戸惑う方が続出します。 本講義では、実務の現場で毎日何十回と叩くことになる up / down / build / ps / logs の黄金オプションとライフサイクル を徹底解説し、C#/.NET開発における超高速でクリーンな開発サイクルを確立します! INDEX 本日の講義カリキュラム 最速・確実な起動コマンド: docker compose up -d --build の全貌 データの運命を分ける停止コマンド: down vs down -v の決定的な違い 状態監視とトラブルシューティング: docker compose ps と logs -f Gitブランチ運用と連動するC#現場の最短開発ワークフロー 実務頻出 Compo...