강의

멘토링

커뮤니티

BEST
Programming

/

Devops & Infra

Jenkinsを利用したCI/CDパイプラインの構築

本講義は、クラウドネイティブアプリケーションを構成する4つの核心要素(MSA、CI/CD、DevOps、Container)の一つであるCI(Continuous Integration、継続的インテグレーション)とCD(Continuous Deployment、継続的デプロイメント)パイプラインについて扱う講義です。本講義を通じて、CI/CDツールであるJenkinsを利用してローカル環境とクラウド環境に自分だけの自動化パイプラインを構築し、デプロイするために必要なプロセスを理解し、実習することができます。

難易度 初級

受講期間 無制限

  • Dowon Lee
Jenkins
Jenkins
CI/CD
CI/CD
Ansible
Ansible
Kubernetes
Kubernetes
SonarQube
SonarQube
Jenkins
Jenkins
CI/CD
CI/CD
Ansible
Ansible
Kubernetes
Kubernetes
SonarQube
SonarQube

学習した受講者のレビュー

学習した受講者のレビュー

4.7

5.0

이학준

60% 受講後に作成

本当のCI / CD講義だけでなく、個人的にはDocker + Kubernetesの最も基本的な知識も一緒に混ざっていてとても有益でした。 そして、現業で従事される方のマインドが見える講義なので、基礎ながらもすごく理解も上手く、助けもたくさん行いました。 講義をお悩みの方は無条件無条件無条件無条件無条件無条件無条件無条件無条件推薦します。

5.0

하보

27% 受講後に作成

こんにちは。本日オフラインでMSA現場講義を聞いた親企業に在職中の会社員です。最初は知りませんでしたが、声と名前を聞いたので、私が聞いた講義や講師様と同じくらい不思議でした。恥ずかしくて現場ではみことばができませんでした。良質の講義ありがとうございます。今後も良い講義をお願いします。

5.0

김재현

100% 受講後に作成

ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!

受講後に得られること

  • Jenkinsを利用してアプリケーションのビルドとパッケージング、デプロイプロセスについて学習できます。

  • CI/CD自動化パイプラインを通じて、様々な環境にアプリケーションをデプロイすることができます。

  • DockerとKubernetes環境にアプリケーションをデプロイする過程と、Ansibleを利用してサーバーの構成情報を制御する方法について学習できます。

トレンドはクラウドネイティブ!☁️
CI/CD自動化パイプラインを構築してみましょう。.

📢 受講前にご確認ください!

  • 学習環境によって講義オーディオが均一でない場合があります。セクション0~2の授業中に断続的なノイズ音が聞こえる可能性がありますので、受講前に講義[プレビュー]授業をご確認ください。

もしかして、皆さんのお悩みではありませんか?

開発を完了した成果物を本番サーバーにどのような方式でデプロイすべきでしょうか?

複数の環境に成果物をデプロイするには、デプロイ環境をどのように構成すればよいですか?

コンテナ仮想化環境でアプリケーションを構成するにはどうすればよいですか??

Kubernetes環境にアプリケーションをデプロイするにはどうすればよいですか??


DevOpsの核心、CI/CD
Jenkinsでより速く強力に!

Jenkins(ジェンキンス)とは?

継続的インテグレーション(CI)・継続的デプロイ(CD)を支援する自動化ツール、Jenkinsを利用して自動化パイプラインを直接構築することができます。

本講義は、CI/CD自動化ツールであるJenkinsを利用して、開発されたアプリケーションをビルドし、デプロイするために必要なプロセスについて理解し、自動化パイプラインを構築する過程です。講義で使用される20個の学習サンプルを通じて、受講生の皆さんは開発が完了したアプリケーションをビルド - テスト - デプロイするために必要な全過程について学習します。また、ローカルPCとクラウド環境に自分だけの自動化デプロイプロセスを直接構築することができます。

2010年代以降、ITシステムはResilient + Anti-Fragile + Cloud Nativeを核心キーワードとして発展してきました。DevOpsというIT文化が生まれ、クラウドネイティブアーキテクチャが導入され、システムはあらゆる環境でも柔軟性を持って対処できなければなりませんでした。アプリケーションを設計する際、マイクロサービスアーキテクチャ方式でドメインを分離して開発し始め、サービスは少なくとも数十個から多くて数百個以上に分割されることもありました。アプリケーションを構成する各サービスは個別に開発、ビルド、デプロイできる環境へと転換されました。DevOps環境では、サービスに対する改善および問題点を迅速に反映することが求められました。開発単位がより小さく構成され、デプロイもより頻繁に行われなければなりませんでした。

今や開発者や運用者が、1つのアプリケーションを構成する数十から数百のサービスを、いちいちビルドしてパッケージングし、デプロイする作業を手作業で処理できない規模になりました。システム自体の複雑性を除いても、アプリケーションを構成する各サービスをビルドしてデプロイする作業が1つの大きな業務になることもあり、作業負荷が深刻にかかる要素になってしまうこともあります。

今日、アプリケーションに対する継続的インテグレーション(CI)と継続的デプロイメント(CD)のための自動化パイプラインを構築することは、クラウドネイティブ環境でアプリケーションを開発するための必須不可欠な選択となりました。Gitからコードを取得し、ビルドを進め、テストケースを実行し、デプロイのためのパッケージを作成し、運用システムにデプロイする全過程が自動化プロセスによって進行されます。このような自動化プロセスは、より頻繁にビルドし、より頻繁にテストし、より頻繁にデプロイできる環境を提供することで、結果的にシステム品質の向上をもたらすことができます。

「Jenkinsを利用したCI/CDパイプラインの構築」講義では

前回の「Spring Bootを利用したRESTful WEB Services開発」と「Spring Cloudで開発するマイクロサービスアプリケーション(MSA)」の2つの講義を通じてWebアプリケーションとクラウドネイティブアプリケーションを開発できるガイドを提供したとすれば、今回の講義ではSpring Framework + Spring Bootで開発されたWebアプリケーションをローカル環境やクラウド環境にデプロイするために必要な自動化パイプラインを構築する過程を体験します。

本講座を通じて受講生の皆さんは、CI/CDに対する理解を基に開発されたアプリケーションを本番環境にデプロイするための自動化パイプラインを構築し、自分だけのデプロイプロセスを構築することができます。

一緒に見ると良い講義 📖


こんな方
おすすめします。

Webアプリケーションを
開発したことが
ある方

自分だけのCI/CD
自動化パイプラインを
構築したい方

本番サーバーに
アプリケーションを
コンテナ仮想化環境に
デプロイしたい方

CI/CD自動化
パイプラインを通じて
クラウド環境に
アプリケーションを
デプロイしたい方

✅ 受講後、このようなことができるようになります。

  • 継続的インテグレーションと継続的デプロイメントについて理解します。
  • ローカル環境で実習できるデプロイパイプラインを構築してみることができます。
  • 自分で直接作成したアプリケーション、または講義で提供されるサンプルWebアプリケーションを利用して、Tomcat WebサーバーとDocker仮想化環境にデプロイできる自動化パイプラインを構築できます。
  • 講義で提供されるサンプルスクリプトをもとに、自分だけのデプロイ環境を構築することができます。

学習内容
確認してみてください。

💡 CI/CD自動化パイプライン構築に必要な基本的な内容を学習し、実習コードを通じて直接デプロイプロセスを構築することができます。受講生の皆さんは、ご自身が使用する環境に合わせてローカル環境でのデプロイクラウド環境でのデプロイの両方を実習することができます。デプロイしたい運用環境にすぐ適用してテストできる25個あまりの実習例題を通じて、自分だけのデプロイ環境を構築することができます。*Windows、macOS(Intel Chip/Apple Silicon Chip)環境対応

Section 1 - DevOpsとCI/CD

  • DevOpsとCI/CDパイプラインについて学習します。

Section 2 - Jenkinsを利用したCI/CDの学習

  • CI/CDパイプライン構築のためのJenkinsをインストール、デプロイする方法を学習します。
  • Tomcat(トムキャット)ウェブサーバーとDocker(ドッカー)仮想化環境にデプロイする方法を学習します。

Section 3 - Jenkins + Infrastructure as Code

  • Infrastructure as Codeについて理解し、Ansible(アンシブル)サーバーを使用する方法について学習します。
  • JenkinsとAnsibleサーバーを連携する方法について学習します。

Section 4 - Jenkins + Ansible + Kubernetes 連携

  • 実習のためのKubernetesをインストールする方法について学習します。
  • JenkinsでAnsibleサーバーとKubernetesを連携してデプロイする方法について学習します。

Section 5 - Advanced Jenkins 使用 ① - Pipeline

  • Jenkins Pipelineの機能について理解します。
  • Jenkins Pipelineスクリプトを利用したプロジェクトをデプロイする方法について学習します。

Section 6: Advanced Jenkins 使用 ② - SonarQube, Multi nodes

  • Jenkinsマルチノードでデプロイする方法について学習します。
  • SonarQube(ソナーキューブ)システムと連携して使用する方法について学習します。

Section 7: 商用クラウド環境へのデプロイ

  • 商用クラウドにデプロイ環境を構成します。
  • AWS EC2サーバーにデプロイ環境で使用されるサービスをインストールし、デプロイする方法について学習します。

Section 8: 実習環境のための必須SW

  • 講義で使用されたSW、ツールのインストール方法について学習します。(Windows、MacOS)
  • クラウドサービスを使用するためのアカウント作成方法と仮想サーバーを生成する方法について学習します。

💾 学習関連の参考事項

  • 本講義はアプリケーションをデプロイするために必要な内容と過程について学習できるように構成されています。(受講に必要な事前知識は紹介ページ下段の[前提知識]及びQ&Aをご確認ください。)
  • 講義はmacOS環境で進行され、Windows環境の受講生のためのコマンドおよびスクリプトも一緒に提供しています。
  • 講義に必要な必須SWのインストールについての紹介をSection 9で説明しています。実習を進める前にSection 9を先に受講されることをお勧めします。
  • 강의에서 사용한 스크립트 및 코드는 아래 Github에서 확인하실 수 있습니다. 
    • https://github.com/joneconsulting/jenkins_pipeline_script
    • https://github.com/joneconsulting/jenkins_cicd_script

Q&A 💬

Q. 講義を受講するために必要な前提科目や知識にはどのようなものがありますか?

講義ではプログラミング的な部分についての説明はほとんど行いません。開発されたアプリケーションをローカル環境やクラウド環境にデプロイするために必要なプロセスと方法について基礎から学習します。加えて、Gitのような構成管理サービスの用途、Webアプリケーションに対する理解、仮想化サービスに対する理解をお持ちであれば、講義内容を理解するのに役立つと思います。

Q. 講義で使用される環境はどのようになっていますか?

本講義では、自分が開発したアプリケーションまたは講義で提供されるWebアプリケーションをデプロイするために、ローカル環境を使用しています。ローカル環境にインストールされたDocker Desktopを利用して、デプロイ自動化に必要なSWやシステム(Tomcat、SSHサーバー、Kubernetesなど)を構成しており、デプロイパイプラインを構築できるように例題を提供しています。さらに、講義後半では、ローカル環境に構築した内容をクラウド環境に構築して実習する部分も扱っています。本講義の実習はmacOS環境で進行していますが、Windowsユーザーのためのコマンドおよびスクリプトも一緒に提供しています。

Q. CI/CDの自動化デプロイに関する内容はどのレベルまで扱っていますか?

本講義は、継続的インテグレーション(CI)と継続的デプロイメント(CD)という概念を初めて接する方から、CI/CDパイプラインを通じてアプリケーションを運用サーバーにデプロイしようとする開発者まで実習できる20余りの実習コードを提供しています。講義で学習した内容をもとに、基本的なWebアプリケーションとマイクロサービスアプリケーションをデプロイするためのCI/CDパイプラインを構築することができます。Kubernetes Clusterを利用したJenkinsの使用や継続的なモニタリング、継続的なスケジューリングのための作業は「CI/CD自動化デプロイ上級コース(仮題)」を通じて準備中です。

今6,000名以上が受講している
MSA開発のノウハウが気になる方は?
平均評価4.8★累積受講レビュー500+

Spring Boot & Spring Cloud マイクロサービスアプリケーション開発ロードマップ (クリック)

こんな方に
おすすめです

学習対象は
誰でしょう?

  • CI/CDを利用してアプリケーションをデプロイしたい人

  • Spring BootアプリケーションをDockerとKubernetesにデプロイするために自動化ビルド環境を構築しようとする人

  • IaCを利用してアプリケーションが運用されるサーバーの構成情報を管理しようとする人

  • CI/CD自動化デプロイツールとしてJenkinsを使用しようとする人

前提知識、
必要でしょうか?

  • アプリケーションのビルドとデプロイに関する理解

  • コンテナ仮想化技術に関する概念

  • Webアプリケーションに対する理解

こんにちは
です。

30,112

受講生

1,667

受講レビュー

1,373

回答

4.8

講座評価

8

講座

저는 IT 엔지니어입니다. 언젠가 직업란에 "회사원?", "개발자?", "강사?" 어떤 단어를 선택해야 할 지 고민이 되었던 때가 있었습니다. 그러다가, IT 엔지니어라는 표현이 제가 잘 어울리는 직업명이라는 생각이 들어 지금까지도 직업란에는 "IT 엔지니어"라고 적고 있습니다.

직업이라는 것은 자신의 일을 나타내는 것이고, 일이라는 것은 재미있고, 도움이 되는 일이면 좋겠다는 생각을 가지고 있습니다. 누구나 다 원하는대로 일을 하며 살수는 없지만, 저는 제가 하는 있는 이 일을 좋아하는 있고, 잘하고 싶어하는 사람입니다. 개발자로써, 강사로써, 컨설턴트로써의 역할을 해 오면서, 매번 새롭게 출시되고 변화하는 IT 신기술을 따라가기에 급급하지만, 그래도, 남들보다 조금이라도 먼저 접하고, 전파하고, 사용하고 싶은 사람 중 한명입니다. 

최근 관심을 가지고 있는 분야는 온라인 교육 컨설팅입니다. 그리고 관심있는 기술은 Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes 등입니다. 이러한 기술은 실제로 강의도 하고 있고 업무에 적용해서 사용도 하고 있습니다. 하지만, 워낙 방대한 주제이다 보니, 아직까지도 계속 공부하고 있습니다.

머리속에 가지고 있는 것은 진정한 지식이 아니라고 합니다. 저는 제가 가진 지식과 경험을 다양한 방벙을 통해 공유하려 합니다. 그리고, 새로운 분야, 새로운 기술에 계속 도전하고 있는 IT 엔지니어가 될 것입니다.  

 

 

  • ) 엔제이원컴퍼니 대표 

  • ) 동국대학교 국제정보대학원 정보보호학과 대우교수

  • ) JP Morgan Chase AMJ Tech consultant (일본)

  • ) 삼성 SDS CMS 사업본부 책임 엔지니어

 

 

カリキュラム

全体

85件 ∙ (15時間 29分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

227件

4.7

227件の受講レビュー

  • najh05283457님의 프로필 이미지
    najh05283457

    受講レビュー 2

    平均評価 5.0

    5

    100% 受講後に作成

    Jenkinsが何であるか、どのように書くかを確かに学ぶことができました。おまけでドッカー、k8sまでも。最近は、MavenビルドよりもGradleビルドをもっと使う傾向にあるだけに、Gradleビルドが例だったらもっと良かったと思います!

    • hyunybutterchip님의 프로필 이미지
      hyunybutterchip

      受講レビュー 4

      平均評価 4.8

      4

      78% 受講後に作成

      ドッカーとCI/CDを学習するのに本当に良い講義だと思います。 おすすめですが残念な部分が多かったです。 1. 間違って言われるのがよくある。 8080ポートを8088に変えて話す 2. 環境設定セクションも別にあり講義もあるということについての説明がなくて混同を与える。 3. 講義と環境設定 講義があまりに別にあるので、行き来するというのが不便だ。 あらかじめ設定しておけばいいのではないかと思うかもしれませんが、設定してみたらコンテナを使わないとメモリを無駄にして速度だけ落ちるので非効率的でした。 4. コースの半分程度が環境設定がすぐにならず、進度が遅れる トラブルシューティングももちろん良いと思いますが、基本講義のせいで早く学習し、本人が実習しながらトラブルシューティングするのが効率的ではないかと思います。 5.コミュニティに答えをほとんどしないでください。 練習する上で多くの人がエラーを経験していますが、単純な質問にだけ答えをつけてくれるようですね。 川の価格は決して安い方ではありません。 コースは本当に良いですが、全体的に現行化が必要だと思います。

      • kenneth
        知識共有者

        こんにちは、離島院です。フィードバックいただいた内容はレッスンの更新時にぜひ!反映させていただきます。講義の性質上、コンテナの実行 VM の実行には多くのリソースが必要な場合や、複数の Host PC が必要な場合が多い。したがって、可能であれば、受講生の方が実習環境に対する負担や困難を軽減しようとするDind方式や、別途のVM設定関連講義を準備しました。レッスンで使用されているすべてのスクリプトとサンプルコードは、Windows10、Windows 11、MacOS Inter chip(2018)、MacOS M1 chip(2022)バージョンでテストされていますが、いくつかの受講生は実行に困難があることを知っています。今後、このようなインフラ関連講義には、もう少し多様な環境でのテストを提供したり、インフラ講義以外のプログラミング講義に専念(?)しなければならないという考えをしたりもしました。 ^^;コミュニティーアップという質問にもすぐに確認できず、回答できなかったことも申し訳ありません。昨年からAIの回答が追加されており、すぐに通知を確認できなかった点やプロジェクトに押されて回答をすぐにできなかったことも事実です。それでも、受講してくださる方には個人的な状況がありますので、すぐに応対に差し上げるよう努力いたします。ありがとうございました。

    • jaehyoni님의 프로필 이미지
      jaehyoni

      受講レビュー 1

      平均評価 5.0

      5

      100% 受講後に作成

      ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!ガドウォン!

      • pandabears님의 프로필 이미지
        pandabears

        受講レビュー 51

        平均評価 5.0

        5

        25% 受講後に作成

        長く待ちました。 今回の講義も気軽に見てWebFlux講義まで呼吸します!

        • kenneth
          知識共有者

          こんにちは、WebFlux講義の準備中です。今年中にオープンできるよう、お早めに仕上げさせていただきます。

      • qkrehdrb08136616님의 프로필 이미지
        qkrehdrb08136616

        受講レビュー 3

        平均評価 5.0

        5

        9% 受講後に作成

        gradle の例はありませんか?

        期間限定セール

        ¥8,206

        24%

        ¥10,825

        Dowon Leeの他の講座

        知識共有者の他の講座を見てみましょう!

        似ている講座

        同じ分野の他の講座を見てみましょう!