CI / CDのナビゲートは、インフラストラクチャエンジニアと開発者の両方に役立ちます。DevSecOpsのリードであるKonstantinBryukhanovは、この方法論がいかに価値があるか、そして学生がオンラインCI / CDコースでそのプロセスをカスタマイズする方法を学ぶ方法を説明しました。
こんにちは!まず、CI / CDを使用する意味について説明します。私は5つの理由を選び出すことができます:
1.コードの再利用とプロジェクトの迅速な展開による時間の節約
コードの配信と展開のためのある種のパイプラインについて説明したので、いつでもそれを再利用できます。たとえば、5つのDjangoプロジェクトがあり、そのうちの1つで、すべてがどのように展開され、機能するかをすでに説明しました。これらの開発は、少しの再構成で残りのDjangoプロジェクトを自動化することで、取得およびコピーできます。
2.展開から期待される結果を得る
期待される結果は、インフラストラクチャまたはプロセスをコードの形式で記述した場合、自動展開プロセスを実行するたびに、それらは同じになることを意味します。あなたは常にあなたが最終的に何を得るかを知っています。
CI / CDを使用すると、今日1つの方法で展開し、明日誰かが自分で何かを修正した場合に、状況を防ぐことができますが、すべてが機能するわけではなく、その理由を理解する必要があります。プロセスがあなたが規制する正確な結果につながることをビジネスに保証する機会があります。
3.環境からのプロジェクトの独立性
コードをサーバーにデプロイしたときの頻繁な状況を思い出してください。何も起動しませんが、開発者はすべてが彼のために機能すると言います。そして、あなたは時間をかけて、彼が実際にある種の中毒を変えたことを知る必要があります。たとえば、彼はそれについて黙っていました。リバースエンジニアリングして状況を把握する必要があります。
CI / CDでは、サービスが機能するために必要なすべてのものがすでに付属しています。つまり、コード、データベース、依存関係をコンテナーに入れて、サーバーに渡します。すべてが1つの本質になります。このコンテナを転送する場所はどこでも、使用できるすべてのものがあります。環境のセットアップに時間を無駄にする必要はありません。
4.不変のインフラストラクチャと簡単な移行
不変性とは、インフラストラクチャが常に同じ状態にあることを意味します。必要なすべてのプロセスを起動したサーバーをデプロイしました。このサーバーでの変更はサーバーに反映されません。このサーバーを再起動してサーバー展開プロセスを再実行すると、元の位置に戻ります。サーバーインフラストラクチャに変更を加えたり書き込んだりする方法はありません。彼を傷つけることは決して不可能です。
また、移行が簡単なため、すべてを一度説明するだけで済みます。また、たとえば、あるデータセンターから別のデータセンターに展開する必要がある場合は、展開するエンドポイントを変更するだけで、簡単に移動でき、追加の変更なしで同じコードを展開できます。
5.「コードとしてのインフラストラクチャ」アプローチの可能性
これは、コードに使用されるすべてのプログラミングパターンとアプローチがインフラストラクチャに適用できることを意味します。
最も重要なことは、サーバーではなくコードで行われる本格的なバージョン管理の存在です。これにより、必要に応じて、インフラストラクチャの以前のバージョンにロールバックできます。また、インフラストラクチャをテストする、つまりサーバーのテスト展開を行うための同様に重要な機会は、残りのサーバーに影響を与えないように構成します。
要約:CI / CDとは何ですか?
このコンセプトにより、スケーラビリティ、障害耐性、ドキュメントなどの非機能要件を失うことなく、市場投入までの時間を短縮できます。それは2つのもので構成されています:
- CI(Continuous Integration)を使用すると、コードの変更を作業バージョンのコードにすばやく統合できます。新しいコードが最後の安定したコードに入っていることを確認してください。
- CD(Continuous Delivery / Deployment)を使用すると、機能をコードの作業バージョンに統合できるだけでなく、コードの新しい作業バージョンをできるだけ早く市場に出すことができます。プロジェクトのタスクに応じて、これは自動的に行われるか、洗練されたスクリプトを使用してコードを送信します。
ここから、CI / CDが構築されているGitlabCI、Doker、Ansible、terraformなどのテクノロジーを研究するだけでは不十分であることは明らかです。そのため、コースでは特に練習に気を配りました。設計作業はトレーニングの最後の部分であり、選択したオープンソースプロジェクトにCI / CDプロセスを実装する必要があります。生徒の行動の順序は次のとおりです。
- CI/CD Workflow, Gitlab CI. : , , .. .
- , , . , . , Django. Java ..
- CI/CD, , CI. , , . , .
- : terraform-, Ansible-, , Doker-, , .
- pipeline, .
- pipeline , , .
最終的な作業の目標は、ビジネスに受け入れられる完全に既成のソリューションを最終的に取得することです。これは、ポートフォリオに追加して、インタビューで示すことができます。実際、会社に来て、3つの異なるプロジェクトのためにゼロからユニバーサルソリューションを開発したと言う場合、これはポジションを獲得するための深刻な議論です。
授業は8月27日から始まりますが、開始後2週間以内であれば参加できます。このコースは、開発と運用の経験を持つ専門家向けに設計されています。トレーニングを行うには、入学試験に合格する必要があります。プロジェクトとキャリアの成長のためにこの有用なテクノロジーを習得することを決定したすべての人を待っています。OTUSでお会いしましょう!