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 つの記事で理解する

推薦する

ステージの設定方法とマイクロブログマーケティングの実行方法

私の周りの友人たちもどんどんインターネット起業家軍団に加わり、その多くがWeiboマーケティングの機...

ヤフーの変革を踏まえて、在宅勤務のプログラマーの長所と短所について簡単に議論する

在宅勤務に関する情報に私たちが初めて注目したのは、ヤフーの新CEOであるメイヤー氏が、在宅勤務を今後...

SEO のベテランがまとめた SEO の基本 6 つ

SEOという言葉を初めて聞いたのは、2007年2月、先輩が私にこう言った時でした。「一緒にSEOを学...

おすすめ: budgetvm-SSD VPS/5 データセンターが利用可能になりました

budgetvm は、十分なトラフィックを備えた openvz ベースの SSD ハード ドライブ ...

ランキングの裏にあるちょっとした秘密を明かす

科学技術の漸進的な発展に伴い、あらゆる分野の競争、特に企業間の競争はますます激しくなっています。注意...

計画ネットワークプロモーション古い言葉合理的な計画ネットワーク新しい言葉

SEO ウェブマスターにとって、ランキングはウェブサイトへのトラフィックの源です。重要なキーワードの...

Baidu K サイトの共通の特徴は何ですか?

最近、多くのウェブマスターが、Baidu が多数のウェブサイトを K-ed したことを発見しました。...

競合他社のウェブサイトのおかげで無敵になる

私は今年1月からウェブサイト開発に携わっています。主要キーワードのランキングは常に1位で、状況は比較...

bandwagonhost/bandwagonhost vps-生涯50%割引/Gポート/フェニックス

bandwagonhost/Banwagong vps、このホスト猫の背景を紹介するつもりはありませ...

現在の SEO、路地に入ってしまったのでしょうか?

現在の SEO の道は少し迷っているようで、人々はとらえどころがないと感じています。たとえば、検索エ...

Kubernetes の垂直自動スケーリングはどこに向かっているのでしょうか?

現在、Kubernetes の Pod Horizo​​ntal Autoscaler (HPA) ...

デジタル故宮がCIFTISでデビュー、古代文化のデジタル体験を提供

2021年「中国国際サービス貿易交易会」が9月2日、国家会議センターで開幕した。今年のCIIEのテー...

10月の注目アプリは何ですか?支出額によるゲームとアプリのトップ10

10月に最も人気のアプリは何ですか?どの開発会社が資金援助者ですか? App Growing は、ネ...