Kubernetes に基づく CICD の実践

Kubernetes に基づく CICD の実践

DevOpsとは

過去 10 年間、DevOps はホットな話題となってきました。 10 人の人には 10 個のハムレットが頭の中にあり、10 社の企業には 10 個を超える DevOps の定義があります。おそらく、技術職のキャリアの中で、DevOps の定義を 100 以上聞いたことがあるでしょう。

では、DevOps とは一体何でしょうか?

Wikipedia によると、DevOps とは、ソフトウェア開発者 (Dev) と IT 運用スタッフ (Ops) 間のコミュニケーションとコラボレーションを重視する文化、運動、または実践です。 「ソフトウェア配信」と「アーキテクチャ変更」のプロセスを自動化することで、ソフトウェアの構築、テスト、リリースをより迅速かつ頻繁に、そしてより信頼性の高いものにすることができます。

私の意見では、DevOps は、提供される価値を継続的に改善し、高めるための、ソフトウェア開発ライフサイクル全体にわたる一連のベストプラクティスです。 DevOps を通じて、文化を特定の役割に限定されることなく、開発、保守、運用の間で均等に広めることができます。

DevOps では、一連の手段を使用して高速で安定したエンジニアリング プロセスを実現することを重視し、開発から本番までのサイクル全体を通じてすべてのアイデアがユーザーに継続的に価値をもたらすことができるようにします。これは方法論であり、特定のソフトウェア ツールやソフトウェア ツールの組み合わせを指すものではありません。さまざまなツール ソフトウェアまたはソフトウェアの組み合わせにより、DevOps コンセプト アプローチを実装できます。その本質は、特定のツールのセットではなく、方法論の完全なセットです。これは、ソフトウェア開発で設計された OOP、AOP、IOC (または DI) に似ています。それは理論、プロセス、または方法の抽象化または同義語です。

CICDとは

CICD は DevOps 文化の実装であり、CICD パイプラインを通じて、アプリケーションがコードのチェックイン、テスト、ビルド、デプロイメントから実稼働段階までパイプラインを前進できるようにすることを目的としています。企業が CICD を導入すると、CICD の一部またはすべてを自動化し、配信プロセスを高速化し、通信コストとエラー コストを削減できます。

CI

CI の英語名は Continuous Integration で、中国語では継続的インテグレーションと翻訳されます。

CI では、開発者は頻繁にトランクにコードを送信します。これらの新しく送信されたコードは、最終的にトランクにマージされる前に、自動テスト フローによってコンパイルおよび検証される必要があります。継続的インテグレーション (CI) は、ソース コードの変更を自動的に検出、プル、ビルドし、(ほとんどの場合) 単体テストするプロセスです。継続的インテグレーションの目的は、開発者が新たに送信した変更が適切であり、コード ベースでの今後の使用に適していることを迅速に確認することです。 CI プロセスの実行と理論的な実践により、新しいコードと元のコードを正しく統合できるかどうかを判断できます。

CD

CD は、Continuous Delivery や Continuous Deployment といった複数の英語名に対応することがあり、以下で紹介します。

継続的デリバリー

CI でのビルドと単体テストおよび統合テストの自動化プロセスが完了すると、継続的デリバリーによって検証済みのコードがリポジトリに自動的にリリースされます。効率的な継続的デリバリー プロセスを実現するには、CI が開発パイプラインに組み込まれていることを確認することが重要です。継続的デリバリーの目標は、本番環境にデプロイする準備が整ったコード ベースを用意することです。

継続的デリバリーでは、コード変更のマージから本番環境対応ビルドの配信まで、すべての段階でテストの自動化とコードリリースの自動化が行われます。プロセスの最後に、運用チームはアプリケーションを本番環境に迅速かつ簡単に展開したり、エンドユーザーにリリースしたりできます。

継続的インテグレーション

成熟した CI/CD パイプラインの場合、最終段階は継続的なデプロイメントです。継続的デリバリーの拡張機能 (本番環境対応ビルドをコード リポジトリに自動的に公開する) として、継続的デプロイメントはアプリケーションの本番環境へのリリースを自動化します。

継続的デプロイメントとは、すべての変更が自動的に本番環境にデプロイされることを意味します。継続的デリバリーとは、すべての変更を本番環境にデプロイできることを意味しますが、ビジネス上の理由により、デプロイしないことを選択することもできます。継続的デプロイメントを実装する場合は、まず継続的デリバリーを実装する必要があります。

継続的デリバリーは、ソフトウェアに対するすべての変更をできるだけ早く本番環境に展開する必要があることを意味するものではありません。つまり、コードの変更はいつでも展開できるということです。継続的デリバリーは機能を指し、継続的デプロイメントは方法を指します。継続的デプロイメントは継続的デリバリーの最高段階です。

CICDとDevOpsの関係

CICD はソフトウェア エンジニアリングの実践方法であり、DevOps は文化です。 CICD は DevOps 文化システムの一部に過ぎませんが、現在の国内の実践から見ると、CICD は最も重要な部分です。

企業はどのように CICD を実装できるでしょうか?

企業にとって、CICD は欠かせない要素であり、クラウド ネイティブの発展に伴い、CICD ツール セットも盛んになっています。

しかし、Jenkins は古くからある CICD ツールとして今でも重要な役割を果たしており、ほとんどの企業は CICD を導入する際に Jenkins の使用を優先するでしょう。

この目的のために、私は Jenkins 実装に基づいた CICD コースを開発しました。このコースでは、完全な CICD を 0 から 1 まで構築できます。コース全体では以下をカバーします。

  • Kubernetesの導入と使用
  • Helm チャートの開発と使用
  • Jenkins パイプラインの開発と共有ライブラリの使用
  • Argocd 継続的デプロイメント
  • Argo がグレースケール版をリリース
  • ......

<<:  【クラウドネイティブ】Kubernetes CRD 詳細解説(カスタムリソース定義)

>>:  Kubernetes の制限とリクエストを 1 つの記事で理解する

推薦する

ウェブサイトが降格された場合、復活させるために次の5つのことを行ってください

ご存知のとおり、ウェブサイトの降格は多くのウェブマスターが経験したことがあるものです。降格の深刻な兆...

PyCharm仮想環境の作成!

[51CTO.com クイック翻訳] この記事では、PyCharm 仮想環境の作成をステップごとに紹...

JVMパフォーマンスチューニングを合理的に計画する方法

JVM のパフォーマンス チューニングには多くの側面でのトレードオフが伴い、小さな変更が全体に影響す...

ユーザーのクリックを促すロングテールキーワードの長さはどのくらいですか?

SEO 業界では、ロングテール キーワードがサイトへのトラフィックをもたらし、ウェブサイトのコンバー...

georgedatacenter: コスト効率の高いオランダの VPS、$7/KVM/8G メモリ/2 コア/50g SSD/2T トラフィック

georgedatacenter は、主に米国ダラスとオランダのアムステルダムのデータセンターで V...

quadhost - 年間 15 ポンド、256MB KVM 仮想 VPS、カスタム ISO

quadhost は英国に登録されたホスティング会社です。関連事業には、ドメイン名、SSL 証明書、...

シンガポールで仕事を見つけるための重要なスキルとして、IoT、5G、クラウドコンピューティングが挙げられている

シンガポールでは、モノのインターネット(IoT)、5G、クラウドコンピューティング、人工知能が、今後...

インターネットは人々を豊かにした:「ディアオシ」が豊かになった後に何が起こったか

グローバリゼーションとインターネットは世界を近づけただけでなく、中国人が貧困から富裕層になるまでのプ...

知識決済業界のグローバルな展望

知識決済ビジネスは一定の市場があるものの、知名度を上げるのは容易ではありません。一方では、自社の知識...

アリママはタオバオのプロモーションチャンネルを制限し始めた

Lu Songsong 氏のブログより: 数日前にメールを受け取りましたが、Alimama が Ta...

justhostはどうですか?イタリアのVPSの簡単なレビュー

justhostはどうですか? JustHost Italy VPS はいかがでしょうか? Just...

SEOVIPとWangqiのSEOトレーニングと外部リンクからのケース分析を組み合わせた

ロビンのSEOvipトレーニングで、20日間でターゲットキーワードの単一ページランキング1位を獲得し...

「The Voice of China」におけるインターネット マーケティング

私は「The Voice of China」が放送開始以来ずっとフォローしています。この番組はこれま...

マルチクラウドネットワークはよりフラットになる

マルチクラウドはエンドツーエンドでフラット化されます。次の 10 年に向けて、クラウド プラットフォ...

堅牢なFT+の新ベアメタルがリリースされました! ZStack のアップグレード版が新たなインフラ構築を加速します!

6月2日、「新ベアメタル新インフラ下における堅牢なFT+新IaaS」をテーマにした2020 ZSta...