これが年収数百万のプログラマーがやる漁法だ…。

情報技術の継続的な発展に伴い、従来のワークフローの多くは自動化に向けて急速に変化しています。以前は、開発者はコードの作成後に、コードを実稼働環境にデプロイする一連の操作を手動で実行する必要がありました。

これは簡単そうに見えますが、実際に運用するとさまざまなヒューマンエラーが発生しやすいだけでなく、開発者の多くの時間と労力を費やします。さらに、問題が発生するとロールバック操作が必要になります。つまり、成功するまで上記の手順を再度実行する必要があります。

ベテランテスターとして、この悲しみと苦しみは言葉では言い表せません。これらの問題を解決するために、自動展開テクノロジーが徐々に登場してきました。自動デプロイメントとは、簡単に言うと、コードのバージョン管理、構築、テストから最終リリースに至るまで、これらの複雑で面倒なステップが手動介入なしで自動的に完了します。

午前中で仕事を終えていたのですが、突然私の「釣り」スキルを皆さんにシェアしたいと思いました。この記事では、自動展開の利点と実践方法を紹介します。自動展開の基本原則とツールを理解することで、効率的で信頼性の高いソフトウェア リリース プロセスの実現を支援できます。

 

1. 自動展開が非常に重要な理由

1. タイムリーなフィードバックを提供し、リリース頻度を増やす

自動展開により、展開プロセスが大幅に簡素化され、新機能や修正を迅速にユーザーにプッシュできるだけでなく、ユーザーからタイムリーなフィードバックを得ることができます。迅速なフィードバックを通じて、チームは製品の変更が効果的でユーザーのニーズを満たしているかどうかをすぐに理解し、ユーザーのフィードバックに基づいて調整を行うことができます。

Facebook モバイル アプリケーションは非常に頻繁に更新され、平均して月に 1 回更新されます。各更新には新機能、パフォーマンスの向上、バグ修正などが含まれます。

Facebook では、展開されたソフトウェア アップデートごとに平均 92 行のコードが追加または変更され、各開発者は週に平均 3.5 件のアップデートを運用環境にプッシュしています。 Facebook のエンジニアリング チームの規模を考えると、これは毎日 1,000 件の運用環境へのデプロイメントを意味しますが、これはデプロイメントの自動化だけでは達成できません。
 

市場は頻繁に変化し、同様の製品間の競争は熾烈を極めます。自動導入により、新しいバージョンの迅速なリリースが促進され、製品が市場の変化に迅速に適応し、ユーザーの注目を集めることができます。

フェイスブック

2. 効率を向上させ、人的エラーを削減します

開発者は毎日新機能の開発やバグの修正を行っており、毎日新しいコードを運用環境にデプロイする必要があります。コードのアップロードまたは開始のプロセス中にエラーが発生すると、製品が適切に機能しなくなり、ユーザー エクスペリエンスに影響を与える可能性があります。

自動デプロイメントを使用する場合、コードをバージョン管理システムに送信し、自動デプロイメント ツールが次のステップを完了するのを待つだけで済むため、人的エラーは発生しません。ビルドまたはテストのプロセス中にエラーが発見された場合でも、自動デプロイメントが停止して開発者に通知されるため、開発者は実稼働環境に影響を与える前にエラーを即座に修正できます。

さらに、自動展開をグレースケール リリース戦略と組み合わせることができます。開発者はまず新しいコードをサーバーのサブセットにデプロイして、問題がないかどうかを確認します。問題がない場合は、コードをすべてのサーバーにデプロイします。このようにすることで、新しいコードに問題があったとしても、影響を受けるのは一部のユーザーのみであり、すべてのユーザーには影響しません。

多くの企業は、自動デプロイメントの実装に成功し、大きな成果を上げています。たとえば、Google はCloud Build と Cloud Deploy を使用して自動デプロイメントを実装し、デプロイメント時間を最大 80% 削減し、ダウンタイムなしでデプロイメントとデプロイを自動化していますコードが変更されます。

自動展開により人的エラーがある程度軽減され、展開の速度と信頼性が大幅に向上することは認めざるを得ません。
 

3. 長期的な安定性、繰り返しのデバッグを回避

手動のデプロイメントプロセスは文書化されることが多いため、維持に追加の時間がかかり、バージョンのデプロイメントは更新により一貫性がなかったり、不完全になったりすることがよくあります。人事異動や退職が発生すると、導入プロセスに重大な影響が及びます。また、手作業による導入作業に長時間従事している方は、作業状況や集中力などに作業効率が左右されやすくなります。一方で、

自動化された

自動展開

2. 自動展開を実現する方法

1. 適切な自動展開ツールを選択する方法

デジタルトランスフォーメーションの発展に伴い、企業のオフラインビジネスは徐々にオンラインに移行しており、アプリケーションの数は日々増加し、導入活動はより頻繁になっています。現在、さまざまな自動デプロイメント ツールが市場に出回っていますが、開発プロセスに合ったツールをどのように選択すればよいでしょうか?

  • プロジェクトの要件

私たちはプロジェクトに何が必要かを正確に知る必要があります。開発、テスト、運用環境などの複数環境の展開をサポートする必要がありますか? Windows、Linux、Mac、またはクラウド サービス (AWS、Azure、GCP) などのマルチプラットフォーム展開をサポートする必要がありますか?プロジェクトがどの言語またはフレームワークで開発されているか...これらは展開ツールの選択に影響します。
 

  • 使いやすさ

導入ツールは、特に初心者にとって、理解しやすく、使いやすいものである必要があります。ツールの学習と構成に多大なコストが必要な場合、それは最良の選択ではない可能性があります。また、ツールのドキュメントとコミュニティのサポートも考慮すべき要素です。
 

  • スケーラビリティ

プロジェクトが成長または変更する可能性がある場合は、プロジェクトのニーズに合わせて拡張できるツールが必要です。これには、新しい展開ターゲット (新しいオペレーティング システムやクラウド サービスなど) のサポートだけでなく、より複雑な展開戦略 (ブルー/グリーン展開やカナリア展開など) のサポートも含まれます。
 

  • 統合された

導入ツールは、開発および運用プロセスに簡単に統合できる必要があります。これには、ソース コード管理システム (GitFox など)、継続的統合/継続的デプロイメント (CI/CD) ツール (Jenkins、GitHub Actions、GitLab CI/CD など)、監視およびログ システムとの統合が含まれる場合があります。
 

  • 料金

導入ツールのコストも重要な要素です。これには、ツールの購入と保守にかかる直接的なコストだけでなく、ツールの学習や使用にかかる間接的なコストも含まれます。一部のツールは無料ですが、大幅な構成とメンテナンスが必要ですが、他のツールは有料ですが、より多くの機能とサポートを提供します。
 

一般的な自動デプロイメント ツールには、Jenkins、Ansible、Docker、Kubernetes などが含まれます。各ツールには長所と短所があり、チームは上記の要素と特定のニーズに基づいて適切なツールを選択する必要があります。

自動展開

2. 自動展開プロセスの実装方法

自動デプロイメントは、DevOps プラクティスのサポートと CI/CD パイプラインの管理の重要な部分です。ZenTao DevOps プラットフォーム例として、自動展開プロセスを実装する方法:

  • バージョン管理:開発プロセス中、開発者はソース コード管理のために作成したコードをバージョン管理ツール (GitLab や GitFox ソフトウェアなど) に送信し、コードの変更をリアルタイムで追跡します。
  • 継続的インテグレーション:コードが送信されると、静的コード分析用の SonarQube、単体テスト用の ZTF 自動テスト管理フレームワークなど、Zentao の継続的インテグレーション ツールがビルド プロセスを自動的にトリガーします。ビルド中に問題が発生した場合は、開発者にすぐに通知されます。テストが完了したら、マージ リクエストを開始します。
  • 継続的テスト:開発チームは継続的統合ツール (GitFox パイプライン、GitLab CI) を使用して、ZTF を駆動して特定の種類の自動テストを実行できます。テスト プロセス中に、スクリプトは、によって生成されたデータ ファイルまたは API インターフェイスにアクセスして、構造化されたテスト データを取得します。ゼンデータ。
  • 継続的デプロイメント:ビルドが成功すると、ZenTao と統合された継続的デプロイメント ツールが、テスト環境や運用環境などの指定された環境に新しいコードの変更を自動的にデプロイします。
  • フィードバックと改善:デプロイメントが完了すると、Zentao プラットフォームは詳細なデプロイメント ログとアプリケーション パフォーマンス監視データを提供し、チームがアプリケーションの実行ステータスを理解し、必要に応じて調整や修復を行うのに役立ちます。

実際の展開プロセスは、特定のプロジェクトのニーズやチームの習慣に基づいて調整される可能性があることに注意してください。

ZenTao DevOps プラットフォーム

3. ワンクリックの自動展開で釣りを続行

自動展開には多くの利点がありますが、複雑な環境構成やセキュリティ問題などの課題を無視することはできません。したがって、自動展開ツールは、特定のプロジェクト要件と環境に基づいて選択および構成する必要があります。

自動展開ツールは万能薬ではありませんが、自動展開は確かにソフトウェア開発とテストの重要な部分です。私が自動展開の恩恵を受けていることを理解するのは難しくありません。

言うまでもなく、また新しいタスクが登場しました。次回は、その他の時間と労力を節約する「釣り」テクニックを紹介します。

「Celebrated More Than Years 2」の海賊版リソースが npm にアップロードされたため、npmmirror は unpkg サービスを停止せざるを得なくなり、 最初の創設者の 数百人が参加して、一斉に米国に向かいました。 フロントエンド視覚化ライブラリと Baidu の有名なオープンソース プロジェクト ECharts - Fish 詐欺師をサポートするために「海へ行く」が、TeamViewer を使用して 398 万を送金しました。リモート デスクトップ ベンダーは何をすべきでしょうか? 周宏宜: Google に残された時間はあまり多くありません。すべての製品をオープンソースにすることが推奨されています。 ある有名なオープンソース企業の元従業員が、部下から異議を申し立てられた後、激怒しました。妊娠中の女性従業員を解雇しました。Google は Android 仮想マシンで ChromeOS を実行する方法を示しました。 ここで time.sleep(6) はどのような役割を果たしますか? マイクロソフト、中国のAIチームが「米国のために荷造りしている」という噂に反応 人民日報オンラインはオフィスソフトのマトリョーシカのような課金についてコメント:「セット」を積極的に解決することによってのみ、私たちは未来を手に入れることができる
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/candou/blog/11181106