ソフトウェア研究開発効率向上の素晴らしさ - 2022 年 12 月

あらゆる企業が効率化について語り、効率の向上、人件費、機械コストの削減、納品品質の向上に取り組んでいますが、本書では、プロジェクト管理、DevOps、ツール、工程・測定・組織体制等の効率化施策

1. プロジェクト管理

一般的なアジャイル開発手法: スクラム、エクストリーム プログラミング、動的システム開発手法、機能駆動型開発。その中で、スクラムは私たちの一般的なアジャイル手法です。

アジャイル開発の導入効果をどのように評価するかについては、適切な測定指標を確立する必要があります。研究開発効果を測る5つの指標:品質指標、納品スループット指標、アウトプット指標、コスト指標、事業価値指標

2.開発運用

1、DevOps

DevOpsは文字通り、DevelopmentとOperationsの組み合わせ、つまり開発・運用・保守の統合であり、品質保証の役割としてのテストの役割もそこに統合されます。統合の最大のメリットは、製品の品質とビジネスの成長のバランスを保ちながら、障壁を打ち破って機能を統合し、最終的に効率の向上に反映できることです。

DevOpsの6つの武器:標準化された運用、早い障害、迅速な対応、高品質・高効率、コスト削減、チームワーク

継続的インテグレーションと継続的デリバリー

2、DevSecOps

ソフトウェア リリースの速度と頻度が増加し続ける中、従来のアプリケーション セキュリティ チームは、各リリースの安全性を確保するためにリリースのペースに追いつくことができませんでした。この問題を解決するには、全体を通して構築を継続する必要があります。ソフトウェア開発ライフサイクル全体のセキュリティ。DevOps チームが安全なアプリケーションを迅速かつ高品質で提供できるようにします。セキュリティテストを開発者にオフロードすることで、コード内のセキュリティ問題をほぼリアルタイムで修正できるようになります。

DevSecOps ツール:

静的アプリケーション セキュリティ テスト (SAST)

動的アプリケーションセキュリティテスト (DAST)

インタラクティブなアプリケーション セキュリティ テスト (IAST)

ソフトウェア構成分析 (SCA)

3、AIOps

AIOps の意味は、アルゴリズムからインテリジェンス、つまり IT 運用のための人工知能にアップグレードされ、「ビッグ データと機械学習を統合して、大量のデータを抽出して分析する能力」を指す、AIOps の比較的権威ある定義が与えられています。疎結合かつスケーラブルな方法 (ボリューム)、多様性 (多様性)、および速度 (速度) の 3 つの次元で成長する IT データを管理し、主流のすべての IT 運用管理 (IT 運用管理、ITOM) 製品のサポートを提供します。AIOps プラットフォームは複数のデータを使用できます。ソース、データの収集方法と分析および表示テクノロジーは、IT 運用および保守プロセスとイベント管理の効率を大幅に向上させることができ、パフォーマンス分析、異常検出、イベント相関分析、IT サービス管理 (ITSM) などのアプリケーション シナリオで使用できます。 )と自動化」

AIOps は、人工知能技術と従来の自動運用保守を組み合わせた自動運用保守に基づいており、マクロな観点から見ると、次の 3 つの側面の知識が必要です。

  • 業界分野の知識: 応用業界 (インターネット、金融、電気通信、物流、エネルギー、電力など) の知識、および生産実践におけるさまざまな実際の問題点の明確な理解。
  • 運用および保守シナリオの現場知識: 自動化された運用および保守シナリオの基本的な知識、および異常検出、障害予測、ボトルネック分析、容量予測などの実践への精通
  • 機械学習: 実際的な問題を適切なアルゴリズムの問​​題に変換します。一般的に使用されるアルゴリズムには、クラスタリング、デシジョン ツリー、畳み込みニューラル ネットワークなどが含まれます。

AIOps を正常に実装するには、次の要素を含める必要があります。

  • データソース: 大規模で多様な IT インフラストラクチャ
  • ビッグ データ プラットフォーム: 履歴データとリアルタイム データの処理用
  • 計算と分析: 既存のデータに基づいて、データ クリーニング、データの乾燥などの計算と分析を通じて新しいデータが生成されます。
  • アルゴリズム: IT 運用シナリオで望ましい結果を生み出すためのアルゴリズムと分析を実装するための具体的な方法
  • 機械学習: 一般に、スー・アファの分析結果に基づいて新しいアルゴリズムを生成できる教師なし学習を指します。

AIOps の実装プロセスの観点から見ると、通常、プロセス全体には、データ収集、データ処理、データ保存、データ分析、AIOps アルゴリズムなどのステップが含まれます。

動作保証における AIOps の適用シナリオには、異常検出、障害検出、障害診断、障害予測、障害自己修復が含まれます。

コスト最適化における AIOps の適用には、リソースの最適化、容量計画、パフォーマンスの最適化が含まれます。

効率向上における AIOps の応用には、インテリジェントな予測、インテリジェントな変更、インテリジェントな質問応答、インテリジェントな意思決定が含まれます。

4、DevPerfOps

DevPerfOps のプロセス全体の解釈

1) ローカル コードの開発およびテスト段階での DevPerfOps の実践

コードのローカル開発とテストの段階では、DevPerfOps 時間には主に次の時間が含まれます。コードパフォーマンスの問題のチェック、コード レベルのアルゴリズムの時間の複雑さ、コード レベルのアルゴリズムの空間の複雑さ、機能レベルの開発テスト、インターフェイス レベルの同時実行テスト、および遅い SQL の検出、など関連の練習

2) コード提出フェーズでの DevPerfOps の実践

コードの提出段階では、DevPerfOps の実践には主に、コードの静的パフォーマンス問題の検査、単体テスト レベルでのパフォーマンス ベースラインの比較、インターフェイス レベルでのパフォーマンス ベースラインの比較が含まれます。

3) 継続的統合フェーズでの DevPerfOps 実践

継続的統合フェーズでは、DevPerfOps の実践には主に、モジュール レベルのパフォーマンス ベンチマーク テスト、モジュール レベルの容量テスト、モジュール レベルの拡張および縮小テスト、モジュール レベルのストレス テスト、システム統合パフォーマンス テスト、およびその他の関連する実践が含まれます

4) 継続的リリース段階での DevPerfOps 実践

継続的リリース フェーズでは、DevPerfOps 時間には主に、システム レベルのパフォーマンス ベンチマーク テスト、パフォーマンス レベルのストレス テスト、システム レベルのキャパシティ プランニング、システム レベルの拡張および縮小テスト、システム レベルの障害移行テスト、システム レベルの安定性テスト、完全なリンク ストレス テストとその他の関連する実践。

3. ツール

1. 基本的なツール

データ作成ツール

トラフィック再生ツール

正確なテストツール

例外テストツール

環境ガバナンスツール

2. 高度なツール

サービスの仮想化

突然変異試験

効率的な API 自動テストのための階層設計

効率的な GUI 自動テストの階層設計

AIを活用した研究開発の効率化

単体テストケースの自動生成

4. 組織体制

ビジネスセンター

品質センター

おすすめ

転載: blog.csdn.net/wwxsoft/article/details/128433994