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

投稿

注目の投稿

【Day 23】【Case 3】本番リリースとタグ打ち(安定バージョンの凍結)

最近の投稿

【Day 25】複数環境設定の切り替え(docker-compose.override.yml) 〜ローカル開発とCI・本番の構成を安全に多重合成するベストプラクティスとC#環境分離設計〜

▲ Day 25: 複数環境設定の切り替え(docker-compose.override.yml) 🔀 受講生の皆さん、お疲れ様です! Docker/コンテナ実践講座の専任講師です。 前回【Day 24】では、 .env と .gitignore を駆使してパスワードや機密情報を安全に隔離し、Gitリポジトリをチーム共有するセキュリティ手法を学びました。 これで安全なマルチコンテナ環境が整いましたが、次のステップとして 「環境ごとの構成の違い」 という現場特有の壁に直面します! 「開発環境ではホストPCからSQL ServerやRedisに直接GUIツールで繋ぎたいからポートを公開したい」「でも本番やCI環境では余計なポートは絶対に塞ぎたい」「ソースコードのホットリロードはローカルだけに適用したい」… 環境ごとにYAMLファイルを丸ごとコピーして別名保存していませんか? 本日【Day 25】は、Docker Compose最強の拡張機能である 「 docker-compose.override.yml による構成の自動多重合成」 と、 「C#(ASPNETCORE_ENVIRONMENT)と連動した環境切り替え設計」 を完全攻略します! ① 導入・本日の達成目標 Docker ComposeでWeb APIとDBを定義した docker-compose.yml を運用していると、必ず以下のようなジレンマが生まれます。 ⚠️ 現場で陥りがちなアンチパターン(構成ファイルの丸ごとコピー増殖): 開発用の設定と本番用の設定を分けたいあまり、 docker-compose.dev.yml と docker-compose.prod.yml をそれぞれフルセットで作成してしまう。 その結果、共通のDBサービス定義や環...

【Day 22】【Case 2】テスト・結合フェーズ(ステージング環境でのバグ出しと収束)

▲ 【Day 22】テスト・結合フェーズにおけるリリースブランチ運用とバグ収束 👨‍🏫 皆さん、こんにちは! 本講座の専任講師です。 前回のDay 21では、複数人のC#エンジニアがスプリント並行開発を進める際の「トピックブランチ完全隔離」と「毎朝のリベース習慣」を学びました。 本日のDay 22は、第5部 ケーススタディの第2弾として、開発プロジェクトの中で最もプレッシャーがかかる 【テスト・結合フェーズ(ステージング環境でのバグ出しと収束)】 を徹底解説します! Subversion (SVN) や Visual SourceSafe (VSS) で開発してきたベテランエンジニアの方なら、「リリース前テストが始まったので、今日から trunk へのコミットは全面禁止です!」というアナウンスに頭を抱えた経験があるのではないでしょうか。 テスト中のバグ修正と次期バージョンの新機能開発が同じ場所で行われていたため、開発チーム全体が「手待ち(足止め)」状態に陥っていたのです。 しかしGitなら、 リリースブランチ( release/v1.0.0 ) を活用することで、QA・結合テストでのバグ修正だけを綺麗に収束させつつ、次期機能開発チームは develop で1秒も止まることなく爆速開発を継続できます。 本日は、リリースブランチの切り方、ステージング環境へのデプロイ、C#での厳格なバグ修正コミットルール、そしてリリース完了時に絶対に欠かせない「双方向マージバック(先祖返り防止)」の実践テクニックを完全伝授します! ① 導入・本日の達成目標 システム開発が終盤に差し掛かると、QA(品質保証)チームやテスターによる結合テスト・受託受け入れテストがステージング環境で行われます。 このフェーズで最も恐ろしいのは、 「テスト中の安定版コードに、未完成の次期新...

【Day 24】docker-compose.yml のGit共有と .env のGit除外ルール 〜パスワード・接続文字列の漏洩を防ぐ安全なチーム開発とC#環境変数注入設計〜

▲ Day 24: docker-compose.yml のGit共有と .env のGit除外ルール 🔐 受講生の皆さん、お疲れ様です! Docker/コンテナ実践講座の専任講師です。 前回【Day 23】では、Web API + SQL Server + Redis という本格的なモダン3層コンテナ構成をDocker Composeで立ち上げました。 チーム開発でこの便利な環境を共有しようとした時、 絶対に避けて通れない最重要テーマが「機密情報(シークレット)のセキュリティ管理」 です! YAMLファイルに書かれたデータベースのパスワードや接続文字列を、そのままGitにコミットしてしまっていませんか? 本日【Day 24】は、設計図( docker-compose.yml )を安全にチーム共有しながら、パスワードを完全にGitから隔離する 「 .env と .gitignore によるセキュリティ運用」 と、 「C#(IConfiguration)への環境変数注入設計」 を徹底解説します! ① 導入・本日の達成目標 「docker-compose.yml が便利だから、Gitリポジトリにプッシュしてチームメンバーにも共有しよう!」 そう思った瞬間、ふと手が止まった経験はありませんか? ⚠️ 現場で頻発する危険なシチュエーション: MSSQL_SA_PASSWORD: "MyStrongPassword123!" と書かれたComposeファイルを、そのままGitリポジトリへコミット&プッシュ。 その瞬間、GitHubや社内GitLabの全閲覧者に対してデータベースの管理者パスワードが丸見えになり、コミット履歴(git log)にも永久に刻み込まれてしまう…! オン...

【Day 21】【Case 1】新規開発フェーズ(複数人でのスプリント並行開発)

▲ 【Day 21】スプリント開発を支えるGit並行開発フロー 👨‍🏫 皆さん、こんにちは! 本講座の専任講師です。 前回までの第4部では、ブランチ戦略、命名規約、コミットメッセージ、そしてプッシュ前チェックリストといった「現場の実践ルール」を徹底的に叩き込んできました。 そして本日のDay 21より、いよいよ本講座のクライマックスである 【第5部: 開発フェーズ別・現場ケーススタディ】 が開幕します! 記念すべきCase 1のテーマは、現場で最も日常的かつダイナミックな 「新規開発フェーズ(複数人でのスプリント並行開発)」 です! 「来週のリリースに向けて、3人のC#エンジニアが同時に認証機能・決済機能・管理画面を開発する」——そんなリアルな現場を舞台にシミュレーションを行います。 Subversion (SVN) や Visual SourceSafe (VSS) で開発してきたベテランの方なら、「複数人で同じプロジェクトを触ると、誰かがコミットした瞬間コンパイルエラーになり、一日中ビルド修復で終わってしまった…」というトラウマを一度は経験したことがあるはずです。 しかし、Gitを正しく使いこなせば、誰一人として他人の作業に邪魔されることなく、最高速度で並行開発を進めることができます。 本日は、トピックブランチによる完全隔離、C#マルチレイヤー構成での競合回避術、そしてプロが毎朝欠かさず行う「リベース習慣」とPR作成までの完全フローを完全解説します! ① 導入・本日の達成目標 アジャイルやスクラム開発における「スプリント(1〜2週間の開発サイクル)」では、チーム全員が複数の異なるタスクを並行して実装します。 このとき、バージョン管理システムが「中央集権の一本道」であるか、「分散型の自律ブランチ」であるかによって、開発...

【Day 23】Redisキャッシュを追加した3層コンテナアーキテクチャ 〜Web API + SQL Server + Redis の分散キャッシュ・セッション管理をComposeで構築〜

▲ Day 23: Redisキャッシュを追加した3層コンテナアーキテクチャ 🐳 受講生の皆さん、お疲れ様です! Docker/コンテナ実践講座の専任講師です。 前回【Day 22】では、C# ASP.NET Core Web API と Microsoft SQL Server という実務の王道2大サービスを、Docker Composeで美しく連携させる環境を構築しました。 そして本日【Day 23】は、ここに超高速インメモリKVS(Key-Value Store)である 「Redis」 を追加し、現代のエンタープライズWeb開発における標準形である 「モダン3層コンテナアーキテクチャ」 へ進化させます! ミドルウェアが増えるたびにサーバー調達とセットアップ手順書に追われていた過去と決別し、YAMLの数行追加だけでハイパフォーマンスな分散キャッシュ環境を手に入れる快感をぜひ体験してください! ① 導入・本日の達成目標 「Web APIのレスポンスが遅い…原因を調べたら、同じマスタデータを何度もSQL Serverにクエリ発行していた」 「キャッシュを導入したいが、オンプレミス環境でRedisサーバーを別に1台立てて設定するのは承認も構築も大変すぎる…」 「C#の IMemoryCache でローカルメモリにキャッシュしたら、コンテナをスケールアウト(複数台稼働)させた瞬間にデータ不整合が発生した…」 Webシステムの規模が拡大するにつれ、データベース(RDBMS)へのアクセス集中は必ずシステムのボトルネックになります。 その特効薬となるのが 「Redisによる分散キャッシュ」 ですが、従来はRedisサーバーの構築・管理コストの高さから導入を躊躇する現場も少なくありませんでした。 しかし、Docker Composeを使えば、 わ...