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


学習した受講者のレビュー
5.0
김정현
CI/CDの全体的な流れを把握し、理解するのに良い講義でした。ありがとうございます😊😊
5.0
소라연
先生の講義はいつも正しいです。
5.0
cc c
講義自体はとても簡単で、詳しく説明していただけますが、講義資料はありません。結局は各授業ごとに別々に整理しなければならず、講義ソースは提供されますが実際の講義とセッションが違って混乱します。 レッスンソース: https://github.com/joneconsulting/devops-docker/tree/main
Docker コンテナ技術
Docker イメージの作成
Docker レジストリの構成
Docker Compose を使用したマルチコンテナの管理
Docker セキュリティ
Docker ログ ファイルの分析
Docker 以外のコンテナ技術
マルチプラットフォーム向けの Docker ビルド
CI/CD での Docker 環境の構築
プライベート ハーバー レジストリ
Jenkins CI/CD パイプラインの連携
Kubernetes 配布 (Argocd)
Microservice Architectureで開発されたアプリケーションは、コンテナ仮想化技術を使用して展開および運用する必要があります。 Linux の傘下の機関である CNCF (Cloud Native Computing Foundation, https://www.cncf.io/ ) では、Cloud Native Application Architecture を構築および実行するために使用するさまざまなソフトウェアおよびインフラストラクチャコンポーネントとして、マイクロサービス、コンテナ仮想化、CI /CD、DevOpsなどを定義しています。その中でクラウドネイティブアプリケーションとして開発された成果物を実行して運営するためにコンテナ仮想化という技術を紹介していますが、まさにこのコンテナ仮想化技術分野で最も一般的に知られていて使用されているサービスがDockerサービスです。
このレッスンでは、Docker仮想化技術を理解するために必要な重要な概念から、マルチコンテナを構成および管理するために必要なDocker Compose技術、コンテナ仮想化を使用する際に考慮すべきセキュリティ部分、およびCI / CDパイプラインとの連携部分だけでなく、Docker Orchestrationの部分について学習し、関連するサンプルコードを練習するように構成しました。
様々な実践例やToyプロジェクトを通じて、Docker仮想化技術に重要な機能に加え、シンプルな3-tier構造のアプリケーションをどのようにコンテナ化して管理し運営すればよいかについても紹介しており、Docker Desktopに含まれるOrchestrationツールを利用して、基本的なリソースを管理するだけでなく、サービスのスケーリング作業のローリング更新方法についても学習しています。
講義の後半では、Dockerの基本的なRuntimeとRegistryのほか、PodmanやHarborなどの代替技術を通じてDockerを使用する方法についても取り上げており、最終プロジェクトではJenkinsとKubernetesとArgocdを通じて配布運営する過程についても紹介しています。
今回の講義を通じて、コンテナ仮想化の全体的な内容と、ITインフラストラクチャを構築するために仮想化技術をどのように活用できるかについて学んでください。
💡DevOpsのコンテナ仮想化の専門家に向けた第一歩を踏み出してください。
コンテナ仮想化技術を理解し、アプリケーションを複数のコンテナに分割してデプロイする方法を学びます。
概念的な説明のために様々なイメージを活用して理解しやすく内容を伝えています。


本講義では、理論と実習を一緒に並行できるように構成しました。理論的な講義にとどまらず、各節で説明した概念については必ず実習過程を通じて直接テストしてみることができるように構成し、プログラミングやインフラに関する高い知識がなくても簡単に例を実習してみるように構成しました。

すべての練習の例は、各セクションで説明されている内容に基づいて練習するように構成されています。管理するプロセスについて学ぶことができます。
基本的なWebアプリケーションは、Frontendサービスの場合はReact.js、Backendサービスの場合はSpring Boot、DatabaseはMariadbを使用して構成されています。しかし、プログラミングの理解に基づいて実践例を実行するのではなく、Docker仮想化技術に必要な内容で例を実習できるように説明しています。
📌Docker仮想化技術の基本的な概念から、運用に必要なコア技術まで、さまざまな要素について理論的な説明と実践を一緒に実行できます。
📌簡単なWebアプリケーションを使用して各コンテナごとに設定する必要がある環境を理解し、マルチコンテナを構成して運用するために必要なDocker ComposeやDocker Orchestration技術についても学習できます。
📌各セクションでは、理論に説明と実践例をまとめて提供することで、受講生の方々は直接自分のDocker環境で様々な例を実行してみることができます。
📌基本的なDockerの機能に加えて、Docker技術に代わる技術についても紹介しており、CI/CD配布自動化のためにDockerがどの部分で使用できるかも紹介しています。
📌本講義は、コンテナ仮想化技術に初めて触れたり、基本的なDocker環境について理解している方のために、マルチコンテナを運用する方法と、Docker仮想化技術を使用するために必要なセキュリティな要素、マルチプラットフォームビルド、ログメッセージの処理 そして、Cloud Native Architecture での Docker の役割や場所などについても一緒に学習できます。
💡 From Beginner to Master
このレッスンでは、コンテナ仮想化の基本的な内容を理解しながら、Webアプリケーションを仮想化形式でデプロイして運用するために必要な必要な技術まで学習できるように構成されています。
簡単なDockerイメージ生成とコンテナの生成から、マルチコンテナを管理するためのDocker Composeの使用、マルチHostでコンテナを管理するためのDocker Orchestration、CI/CDとの連携について学習しています。
さらに、Docker Imageのセキュリティ要素、マルチプラットフォームでのDockerイメージの構築、Dockerコンテナのロギングメッセージ管理、クラウド環境でのコンテナ使用のためのマネージドコンテナ技術についても紹介しています。
本講義では、学習したすべてのコースの仕上げCapstone Projectとして、Webアプリケーションとオープンソースで構成されている様々なサービスとの連携を通じて、実務で作業している環境について間接的に経験し実践してみることができるように構成しました。

DevOpsエンジニアでレベルアップしたいです。
DevOps環境でアプリケーションのデプロイと運用に関心を持つ開発者/学生

コンテナ仮想化技術に興味があります。
Microservice Architectureで開発されたアプリケーションをどのように運営するのか疑問に思いました

CI/CDのパイプラインでCDのプロセスが気になります。
アプリケーションをデプロイするための継続的な統合と継続的なデプロイのためにDockerを使用することについて疑問に思います。
💡コンテナ仮想化技術だけでなく、Microserviceアプリケーションのデプロイと運用にも興味がある方!
アプリケーションの開発プロセス後に継続的な展開でどのような手順を運用環境に展開するのか疑問に思いました
コンテナ仮想化技術に関心を持って、DevOpsエンジニアで聖定したい方
マルチコンテナ運用およびコンテナリソース管理のためのDocker Orchestrationツールに興味がある人
KubernetesなどのプロフェッショナルなOrchestrationツールを使用していなくても、コンテナのRolling UpdateおよびRollback機能を活用してサービスを運営したい方
コンテナ仮想化技術を理解し、アプリケーションを展開するためにマルチコンテナを管理する方法を学びます。
Docker Composeテクノロジを使用して複数のコンテナを一度に実行して管理する方法を学びます。
Docker Swarmテクノロジを使用して、基本的なDocker Orchestrationツールの使い方を学び、コンテナのRolling Updateだけでなく、Rollback機能についても知ることができます。
Docker Imageのセキュリティ脆弱性チェックにより、より安全なDocker Imageを使用できるようになります。
Docker以外のコンテナ仮想化技術を理解して使用できるようになります。
CI/CDオートメーション配布パイプラインでDockerを使用して継続的な配布システムを構築できます。
Webアプリケーションをクラウドサービスが提供する仮想化サービス環境で運用する方法を学びます。
コンテナ仮想化をより効率的に実行するためのOrchestrationツールにDockerコンテナイメージを展開するためにどのテクノロジが使用されているかを理解することができます。
💡この講義を受講すると得られる変化について書いてください。
このレッスンでは、コンテナ仮想化技術について理解することができます。
開発者と開発に興味がある人は、自分のアプリケーションを仮想化環境で実行して運用できるかどうかを理解できます。
さまざまなマルチコンテナを運営するための技術と処理方法について学習できます。
CI/CD 環境で Docker 仮想化技術をどのように応用すればよいかを実践してみることができます。

Docker仮想化の基本概念とコア技術
本講義では、Docker仮想化使用のための基本的なイメージ生成、コンテナ使用、ボリュームとネットワークの使い方だけでなく、マルチコンテナ管理のためのDocker ComposeとDocker Swarmについても実習しており、DockerセキュリティやLogging処理方法などについても紹介しています。 。

CI/CD環境でのDocker仮想化の使用
Docker Virtualizationを使用する最大の目的は、物理的なシステム環境が持つ制約的な問題を解決し、さまざまなアプリケーションやミドルウェアを簡単に操作および管理することです。これらのサービスを自動化して展開するための方法として、CI / CD環境と連携してDockerコンテナ仮想化技術の使用方法を学ぶことができます。
さまざまな練習の例
本講義の理論的な説明の後には、各セクションで説明されている内容をもとに練習することができる例を一緒に提供しています。提供される実践コードを自分の環境で直接実行することで、Dockerコンテナの動作過程についてより簡単に学習できます。講義では、Dockerの基本サービスに加えて、Private Registry HarborやPodmanなどのDocker代替技術についても実践してみることができます。

Capstone project (最終実習プロジェクト)
すべての理論的なレッスンと実践的な学習が完了したら、最後のセクションでCapstoneプロジェクトを実行する準備が整いました。 Capstone projectでは、WebアプリケーションをCI/CD環境で自動化展開できるように連携するとともに、オープンソースで提供されるDocker Registryとの連携、そしてOrchestrationツールを利用してリソースを管理してみる全体の過程について学習できるように構成されています。
現)エンジェイワンカンパニー代表
現)東国大学国際情報大学院情報保護学科大宇教授
前) JP Mogan Chase AMJ Tech consultant (日本)
前)サムスンSDS CMS事業本部責任エンジニア
講義はMacOSで説明します。 Windows 10、Windows 11環境と呼ばれるDocker Desktopがインストールされている場合は、ほとんどの練習の例に従うことができます。
講義では、様々なDockerコンテナイメージを起動しながら実習を進めています。最低8GB以上のメモリ(16GB以上推奨)と100GB以上の空き容量を用意し、練習をお勧めします。
レッスンでは、練習に使用されるいくつかのスクリプトとコードについて、Visual Studio Codeを使用して確認して修正しています。
さまざまなマルチホストを構成してDocker Swarm環境を実践するために、Dind(Docker in Docker)形式のイメージを提供しています。
Dind イメージは教育プロバイダーによって MacOS Intel chip、MacOS Apple chip、Windows 10、Windows 11、Ubuntu バージョンで提供しています。ただし、受講生がご使用の環境によっては、Dindイメージの実行にエラーが発生することがあります。
このレッスンで使用される実践的な環境のためにDindイメージを使用するのではなく、VM環境を構成して実行できるように、別途提供されているInflearnレッスンを無料で参照できます。
レッスンで使用されている実習サンプルコードはGithubを介して共有されます。
https://github.com/joneconsulting/devops-docker
各セクションでブランチを区切って例を作成しました。
講義の教案はpdfsブランチに含まれています。
ITサービスの基本的な知識
Client、Server、Cloudなどの用語の理解
WebサービスとWebアプリケーションの基本的な理解(意味と操作プロセス)
Windows環境ユーザー) CMDコマンド(dir、curl、ping、ipconfigなど)
MacOS 環境ユーザー) Terminal コマンド (ls、curl、ping、ifconfig など)
共通)Linux環境のドキュメント編集ツールであるVIMを授業時間に使用するため、基本的な使い方を習得すれば講義を受講するのにより効率的であるようです。
💡このレッスンで使用される実践例を実行するには、次のプログラムがインストールされている必要があります。
練習環境
オペレーティングシステムとバージョン(OS):Windows 10、Windows 11対応、MacOS Intel Chip、MacOS Apple Chip対応
使用ツール:各オペレーティングシステムに適したDocker Desktopのインストール(レッスンでのインストールプロセスについて練習)
エディター: Visual Studio Code
PC仕様:CPU Intel i5+、メモリ8GB+(16GB以上を推奨)、ディスク100GB+がプログラム駆動用の最小仕様です。
学習資料
提供する学習資料は、実習例とPDF教案はGithubを通じて提供される予定です。
完全な11セクションで構成されています。
選手の知識と注意事項
学習難易度:初心者向けのITサービスに関する基本的な知識とコマンドプロンプトまたは端末での基本的なコマンドの使用
講義に関する質問について質問掲示板を活用してください。
レッスンコンテンツと実践例のアップデートは、今後のアップデートに関する記事で共有します。
この講義で使用されている実践例と講義の内容については、講義プロバイダに著作権があります。講義で使用された内容と実習例をインターネットを通じて共有することは自由ですが、可能であれば事前に共有後に公開してください。
学習対象は
誰でしょう?
コンテナ仮想化技術に興味のある方
Cloud Native テクノロジーに興味のある方
MSA アプリケーションの配布と運用を担当する人
CI/CD 환경にコンテナ仮想化技術を適用したい人
前提知識、
必要でしょうか?
IT サービスの理解
クラウド サービスの理解
Windows 環境ユーザー) CMD コマンド (dir、curl、ping、ipconfig など)
MacOS 環境ユーザー) ターミナル コマンド (ls、curl、ping、ifconfig など)
インフラン認証
30,786
受講生
1,748
受講レビュー
1,381
回答
4.8
講座評価
8
講座
私はITエンジニアです。いつか職業欄に「会社員?」「開発者?」「講師?」どの言葉を選ぶべきか悩んだ時期がありました。そんな中、ITエンジニアという表現が自分にしっくりくる職業名だと思い、今でも職業欄には「ITエンジニア」と書いています。
職業とは自分の仕事を表すものであり、仕事とは楽しくて、誰かの役に立つものであってほしいと考えています。誰もが望み通りに仕事をしながら生きていけるわけではありませんが、私は今自分がしているこの仕事が好きで、もっと上手くなりたいと思っている人間です。開発者として、講師として、コンサルタントとしての役割を果たしながら、次々と新しく登場し変化するIT新技術を追いかけるのに精一杯ではありますが、それでも他の誰よりも少しでも早く触れ、広め、活用したいと願う一人です。
最近関心を持っている分野はオンライン教育コンサルティングです。そして、興味のある技術は Cloud Native Architecture、Blockchain、Machine Learning、Kafka、Kubernetes などです。これらの技術は実際に講義も行っていますし、実務に適用して使用もしています。しかし、あまりにも膨大なテーマであるため、今でも継続して勉強しています。
頭の中にあるだけでは、真の知識とは言えません。私は自分が持つ知識と経験を、さまざまな方法を通じて共有しようと考えています。そして、新しい分野や新しい技術に挑戦し続けるITエンジニアであり続けます。
現) エンジェイワンカンパニー代表
現) 東国大学校 国際情報大学院 情報保護学科 客員教授
前) JP Morgan Chase AMJ Tech consultant (日本)
前) サムスンSDS CMS事業本部 責任エンジニア
全体
113件 ∙ (20時間 31分)
1. 講座紹介
03:07
2. ソフトウェアアーキテクチャ
19:37
3. コンテナ仮想化技術とDocker
13:15
4. 講義紹介
00:58
5. Dockerとコンテナ仮想化技術
14:45
9. Docker Image 構造
06:22
全体
30件
4.9
30件の受講レビュー
受講レビュー 12
∙
平均評価 4.9
受講レビュー 3
∙
平均評価 4.7
受講レビュー 12
∙
平均評価 5.0
受講レビュー 84
∙
平均評価 5.0
受講レビュー 17
∙
平均評価 4.8
5
最終的に開発者が知っておくべきスペクトルの多くを知ることができる講義です。コードを書いてビルドして実行してみることを越えて、次のすべてのプロセスを扱うようです。 最近Linuxを勉強し、管理のためにGitlabを直接インストールしてみて、 CI/CDを構築する過程で自然にドッカーを使用するのに遭遇する問題を解決するために経験したことがこの講義で既に見逃さないことを願うと十分な説明になっていましたね。 ドッカー川の多くでも実行してみて終わったり、CI/CD講義多くでも設置と実行してみて終わる場合も多く、しばしばフェイトハブビルド/配布実行でどうしても流行する内容で本と講義があふれるこのごろ... ... 1ヶ月間、多くの試みや学習、試行錯誤や悩みを経験しており、組織ではなく1人の開発者でも.. 'システム'これがあるべきだという気持ちで、自動化に多くの時間をかけて作る過程にあります。 最近のドメイン設定から、Gitlab、Gitlab Runner、プロメテウス、グラファナなどをインストールして設定する過程で講義中に言及されたSSL通信のための証明書のインストールとパス指定、証明書の確認と発行、更新が随所にしなければなりませんでした。 。 ところがこれがドメイン証明書は3ヶ月、SSL証明書は最大1年というのですが、すぐに使用するには問題がないほどですが、その後は期限切れになって問題が発生したり、実際の運営中であれば中断事故が発生したり、鍵を紛失して新たに設定する必要がある場合があるようです。 証明書についてさらに学習して学ばなければならないのは私の分けであり、可能であれば自動更新のためのシェルプログラムをクローンとして登録してみようかと思います~~万~ ^^ ㅎㅎ 銀行公認証明書よりも不安ですね.. 一人で何を勉強しなければならないのか分からない状態でここまで来なければ、数ヶ月はかかったはずですが、素晴らしい講義のおかげで数日で終わることができると自信がありました。 残りの週末は実際のサーバーに適用してみる実習をしたいと思います。 開発者ならぜひ知っておくべき開発 それ以来の話…みなさんここが名江のです。~~~~ ありがとうございます。 ^^
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!