DevOps 向けの Docker 仮想化技術 (Private Harbor Registry)
この講義は、Cloud Native Architecture を構成する 4 つの構成要素のうち、コンテナ仮想化技術について学習するプロセスです。 マイクロサービス アプリケーションをデプロイおよび運用するための最良の方法であるコンテナ仮想化という技術の基本的な概念を理解し、コンテナ仮想化技術の中で最も広く知られている Docker 技術について取り上げる学習プロセスです。 MSA 型式で開発されたアプリケーションをデプロイおよび運用するために必要な必須の内容について、理論学習だけでなく、関連する実習例を通じて、実際の Docker コンテナがどのように動作するかを理解できます。 このコースでは、既存の他の講義では取り上げられていない Docker Security や Logging などのさまざまな要素についても学習できます。 最終的な実習プロジェクトでは、Docker 技術と連携できるサービス (Harbor + Argocd) を構築し、アプリケーションをデプロイすることで、DevOps を適用する際に必要な重要な運用環境について実習できます。


お知らせ
4 件
こんにちは。Spring開発者向けの「実践LLMサービス開発(Part 1)」講義に、新しい補足講義を追加しました。最近公開されたTypeSafe AIの決定モデルJevをSpring Bootアプリケーションに連携する内容で、約1時間の講義です。
なぜ追加したのか
Section 4では、entity()を使ってLLMの応答をJavaオブジェクトとして受け取る方法と、モデルがJSONをコードフェンスで囲むことでパースに失敗する実務上の落とし穴を扱いました。プロンプトで依頼するにしても、entity()で自動化するにしても、結局のところLLMに形式を"お願い"する方式であるという限界は残ります。
Jevは異なるアプローチを取ります。文章を書くのではなく、あらかじめ定められた選択肢の中から答えを選び、確率とともに返します。つまり、形式が構造的に保証されるということです。同じ入力を2つの方式で処理してみると、「構造化された出力」を設計する際に何を考慮すべきかが、より明確になります。そのため、Section 4の延長線上にある内容としてまとめました。何を学びますか
JevとSystem Oneモデルの概念:テキストではなく「型が定められた決定」を返すことの意味
LLMとJevの違い:記述式回答 vs 選択式回答、それぞれが得意なことと苦手なこと
3つの質問タイプ(choice・score・noul)と
/v1/systemoneリクエストの構造Springから呼び出す:
RestClientでJev APIを呼び出し、Java enumで選択肢を作成してレスポンスを型安全に変換する比較デモ:同じ映画レビューを
entity()とJevでそれぞれ分析し、速度、形式エラー、確信度、一貫性を比較する
併せて更新された資料
セクション4のサンプルコード(ch4):レビュー分析API 2種(
/api/movies/review/llm、/api/movies/review/jev)とJevClientを追加補足講義スライドと教材
比較テストスクリプト:macOS用
review-compare.sh、Windows用review-compare.ps1
あらかじめ知っておいていただきたいこと
JevはSpring AIの機能ではなく、TypeSafe AIが提供する別個の外部サービスです。講義でもSpring AIの
ChatClientではなく、RestClientで直接呼び出します。Jevは現在アーリーアクセス段階のため、APIキーの発行に時間がかかる場合があります。サンプルコードでは基本的にJev機能が無効になっているため(
jev.enabled=false)、キーがなくても従来の演習はそのまま進められます。キーをお持ちでない方は、動画でのデモをご覧いただきながら、概念とコードを中心に学習してください。リリース初期のサービスのため、今後価格やAPIが変更される可能性があります。変更があった場合は、新しいお知らせで改めてご案内いたします。
📌講義はこちら: https://inf.run/VVpnV
追加された講義を受講しながら疑問点や実習中に行き詰まった部分があれば、気軽にコメントでお知らせください。これからも実務ですぐに使える内容を継続的に充実させていきます。
こんにちは、イ・ドウォンです。
"Jenkinsパイプラインは作ってみたけれど、ArgoCDやGitOpsは概念を聞いたことがあるだけだ。"
"dev・staging・production環境ごとのデプロイをどのように設計すべきか途方に暮れている。"
このようなお悩みをお持ちの方に向けて、「JenkinsとArgoCDで学ぶ実践GitOps CI/CD」講座をインフランで公開しました。
この講義はこのような点が異なります
• Jenkinsベースの従来のCI/CDからArgoCDベースのGitOpsまで一緒に扱います。
• Push方式(Jenkins)とPull方式(ArgoCD)を同じクラスター上で直接比較します。誰かがkubectlで手動変更を加えた際、一方はそのまま残り、もう一方は自動的に復旧する様子を目で確認し、ロールバックやデプロイ履歴の確認方法の違いも実際に体感します。
• 2つの方式を組み合わせ、dev・stagingはJenkins Push、productionはArgoCD Pull(手動Sync承認)に分けるハイブリッドデプロイパイプラインを最初から最後まで構築します。
• Canary、Blue-Green、RBAC、承認手順、障害対応、自動ロールバックまで、運用に必要な主要デプロイ技術を実践します。
実習環境
Docker Desktopひとつで進めます。WindowsとmacOSの両方に対応しており、AWSなどのクラウドアカウントや別途費用は必要ありません。
このような方におすすめです
• Jenkinsは使ったことがあるものの、ArgoCD/GitOpsは初めてのバックエンド・インフラエンジニア
• Kubernetesデプロイを手動のkubectl applyから自動化へ移行したい方
• デプロイの承認、ロールバック、監査証跡などの運用要件に悩むDevOps・SRE担当者
総学習時間は約10~11時間で、実習資料とトラブルシューティングガイドも併せて提供されます。
👉 講義を見る:https://inf.run/dEjZE
気になる点があれば、コメントや講座のQ&Aにお気軽にお寄せください!
今回、新たにSpring開発者のための実践LLMサービス開発(Part 1)講座を開講しました。少し遅きに失した感は否めませんが、Java開発者にとってなじみ深いSpring frameworkを利用してLLMアプリケーションを開発するために必要な内容を学べる講座として構成しました。ぜひご注目ください。
なぜこの講義を作ったのか
最近では、RAGやベクトル検索、AIエージェントといったキーワードはどこでも目にしますが、実際に"Spring Bootバックエンドにどのように組み込むのか"を実務レベルで扱った資料は多くありませんでした。
この講義では、私が実際にRAG推薦エンドポイントをデバッグする中で経験した問題――文書をトークン単位でチャンク化したことで意味のまとまりが崩れ、検索品質が低下した経験や、段落単位のチャンク化に戦略を変更して問題を解決した過程――を、そのままカリキュラムに落とし込んでいます。チュートリアルのように正解コードだけを見せるのではなく、「なぜうまくいかないのか → どのように診断するのか → どのように直すのか」を一緒に追っていく形式です。
このような方におすすめです
Spring Bootの経験はあるものの、LLM/AIサービス開発は初めてのバックエンド開発者
RAGやベクトル検索をチュートリアルではなく、実務プロジェクトレベルで適用したい開発者
社内AI機能(チャットボット、ドキュメント検索、レコメンドなど)をSpringベースで自ら実装する必要がある実務担当者
Spring BootでREST APIを作った経験があれば十分です。AI/LLMに関する事前知識は必要ありません。
何を学びますか
1. Spring AIのコア基礎 ChatClientの基本的な使い方、構造化出力(Structured Output)、ストリーミング応答の実装
2. RAGパイプラインの構築 ベクトルストア連携、ドキュメントチャンク分割戦略の比較と実践的なトラブルシューティング、検索品質の改善、プロンプト設計
3. ツール・マルチモーダルの拡張 MCP(Model Context Protocol)を活用した外部ツール連携、画像などのマルチモーダル入力処理、Dify連携
4. サービスの安定化と実践プロジェクト ガードレールの適用、信頼性の高いサービス設計、これまで学んだ内容を統合するミニプロジェクト
付録として、AIコーディングツールとOllamaの活用方法も併せて扱います。
シリーズ案内
今回リリースしたのは、全シリーズのPart 1です。Part 2、3ではさらに発展的なアーキテクチャと実践的なケースを扱う予定で、シリーズがすべてリリースされたら、パッケージ全体の割引も用意する予定です。
📌 講義はこちら: https://inf.run/VVpnV
気になる点やカリキュラムに関する質問は、コメント欄にお気軽にお寄せください。Part 1を通じて、皆さんのSpringサービスにLLMを組み込む第一歩を一緒に踏み出せればと思います。
こんにちは、離島院です。
「Jenkinsを使用したCI/CD Pipelineの構築」講義と「DevOpsのためのDocker仮想化技術(Private Harbor Registry)」講義では、所望のDockerコンテナ実行のためにDinD(Docker in Docker)方式で実践環境を構築し、例を実行しています。
ただし、WindowsとMacOS環境がそれぞれ異なり、MacOSの場合、Intel chip、Apple chipによって設定しなければならないドッカーイメージが異なります。この画像では、SSHサーバーとDockerエンジンがインストールされているように構成し、実習の際、複数のドッカーコンテナが必要な場合に使いやすくするように構成したが、受講生の方々の環境に合わせて製作するには無理があるのも事実です。それでも、できるだけ一般的な環境では無理なく実習できるようにドッカーイメージを更新しようとしています。
最近、MacOS Apple chip で使用する docker-server:m1 イメージを利用して、実習時、下記のエラーなどで実習できないエラーが確認されました。
exec /docker-entrypoint.sh: invalid argument複数のパスで確認して修正もしてみましたが、MacOS Apple chipで使用するarm64アーキテクチャにDockerコンテナにドッカーエンジンをインストールして使用するDinD方式でエラーが発生するようです。 (エラーメッセージやログがないため原因を探すには限界がありますね)
そのイメージでは解決が難しいと判断され、以下のようにUbuntuベースにSSH + Dockerエンジンをインストールしたバージョンを再ビルドして配布しました。
https://hub.docker.com/repository/docker/edowon0623/docker-server/general
上記で発生した問題等は全て解消されたことを確認しました。 Ubuntnでは、Dockerサービスを起動するために、以下のコマンドを先に実行してください。
service start docker今後も、DinDの問題など、実習に関連する問題が確認されたように、更新された実践環境を提供します。
来週は連休ですね。私個人的に多事多難した2024年でしたが、新しい心で新しい一年を始めるようにします。今年は、より良い講義で頻繁に訪れましょう。明けましておめでとうございます。
ありがとうございます。

