ソフトウェアプロジェクト管理ツール、JAVA WEBフレームワークテクノロジー(実際の実務経験と組み合わせて、すべての乾物)


序文

私の数年のチーム管理経験を組み合わせて、開発プロセスとプロジェクト管理プロセスで使用されるツールを全員と共有します。それらはすべて乾物です。後で見つけることができるように、最初に収集することをお勧めします。

負荷分散:Nginx + Keepalived

ここに画像の説明を挿入
Nginx + Keepalived アーキテクチャ設計では、NGINXリバースプロキシと負荷分散を使用して、バックエンドアプリケーションの高可用性を実現できます。同時に、NGinxの単一障害点も考慮する必要があります。アーキテクチャの高可用性を実現します。現在の主流のソリューションはkeepalived + nginxであり、nginxフェイルオーバーを実現し、同時に監視と警告を行います。自動フェイルオーバーと同時に、関連するアプリケーション担当者に通知して、関連するアプリケーションを確認し、隠れた危険のトラブルシューティングを行い、問題を完全に解決することができます。

ユニファイドゲートウェイ:getway

Springクラウドゲートウェイは、Spring 5.0、Spring Boot 2.0、およびProject Reactorテクノロジーに基づいて、Springの担当者によって開発されたゲートウェイです。SpringCloud Gatewayは、マイクロサービスアーキテクチャにシンプルで効果的な統合APIルーティング管理方法を提供することを目的としています。SpringCloudゲートウェイは、Spring Cloudとして機能しますエコシステムのゲートウェイは、Netflix Zuulを置き換えることを目的としています。これは、統一されたルーティング方法を提供するだけでなく、セキュリティ、監視/購入ポイント、現在の制限など、ファイラーチェーンに基づくゲートウェイの基本機能も提供します。

統合構成センター:nacos

ここに画像の説明を挿入
Nacosは、DNSベースおよびRPCベースのサービスディスカバリ(springcloudの登録センターとして使用できます)、動的構成サービス(構成センターとして使用できます)、および動的DNSサービスをサポートしています。
Nacosは、マイクロサービスの検出、構成、および管理を支援することに尽力しています。Nacosは、動的なサービス検出、サービス構成管理、サービスおよびトラフィック管理の実現に役立つ一連の使いやすい機能セットを提供します。Nacosは、マイクロサービスプラットフォームの構築、提供、管理をより俊敏で簡単に行うのに役立ちます。Nacosは、「サービス」を中心とした最新のアプリケーションアーキテクチャ(マイクロサービスパラダイム、クラウドネイティブパラダイムなど)を構築するためのサービスインフラストラクチャです。

現在の制限:センチネル

ここに画像の説明を挿入
並行性の高いシナリオでは、並行性のボトルネックのほとんどはデータベースにありますが、データベースの堅牢性を確保するために、現時点では、インターフェースの電流制限を上位層から実行する必要があります。Nginxにも制限されたフロー機能がありますが、フローをプロジェクトレベルに制限することしかできません。Sentinelはインターフェースレベルの電流制限に定義できるため、Sentinel電流制限の粒度はNginxよりも細かくなります。Sentinelは非侵入型でスプリングブートと統合でき、電流制限を必要とするインターフェースへのアクセスの数と頻度をインターフェースで設定できます。

設計ツール:ブルーレイク

ここに画像の説明を挿入
Blue Lakeは、製品ドキュメントと設計図の共有プラットフォームであり、インターネットチームがドキュメントと設計図をより適切に管理できるよう支援します。Blue Lakeは、Axureをオンラインで表示し、デザインアイコンのメモを自動的に生成し、デザイン図面をチームと共有し、ページ間のジャンプ関係を表示できます。Blue Lakeは、SketchとPsによるワンクリック共有とオンラインディスカッションをサポートしています。BlueLakeは、簡単な手順でデザインをクリック可能なデモプロトタイプに変えることができます。また、同僚との共有もサポートしているため、携帯電話を使用することもできます。でデザイン効果を表示します。ブルーレイクは新世代の製品設計作業になりました。

フロントエンドフレームワーク:vue

ここに画像の説明を挿入
VUE:目標は、応答データバインディングと結合ビューコンポーネントを可能な限り単純なAPIを介して実装することです。これは、非常に学習しやすく、他のライブラリや既存のプロジェクトと簡単に統合できます。数年の理解の後、Vueは現在のテクノロジー企業の80%が最初に選択するものでもあり、Vueは基本的にフロントエンドの学習才能に必要なスキルです。


eruda:携帯電話向けのH5デバッグアーティファクト、特にWeChat公式アカウントおよびアプレットに埋め込まれたH5ページ。Erudaは、Chrome DevToolsのミニバージョンと同様に、フロントエンドのモバイルおよびモバイル端末用に設計されたデバッグパネルです(Chromeほど強力ではないことは確かです)。主な機能には、コンソールログのキャプチャ、要素のステータスの確認、パフォーマンスインジケーターの表示、 XHRリクエストのキャプチャ、ローカルストレージとCookie情報の表示、ブラウザ機能の検出など。
もちろん、使用方法も非常に簡単で、HTMLコードに2行のコードを追加するだけです。

<script src="//cdn.jsdelivr.net/npm/eruda"></script>
<script>eruda.init();</script>   

ここに画像の説明を挿入

JAVAフレームワーク

ここに画像の説明を挿入

Springboot(誰もが使用することを強くお勧めします): Spring BootはPivotalチームによって提供される新しいフレームワークであり、その設計目的は、新しいSpringアプリケーションの初期設定と開発を簡素化することです。フレームワークは特定の構成方法を使用するため、開発者は定型構成を定義する必要がありません。


ここに画像の説明を挿入

mybatis: MyBatisは、カスタマイズされたSQL、ストアドプロシージャ、および高度なマッピングをサポートする優れた永続化レイヤーフレームワークです。MyBatisは、ほとんどすべてのJDBCコードとパラメーターの手動設定および結果セットの取得を回避します。MyBatisは、設定とネイティブMapにシンプルなXMLまたは注釈を使用し、インターフェースとJava POJO(Plain Old Java Object、通常のJavaオブジェクト)をデータベースのレコードにマップできます。


ここに画像の説明を挿入
mybatisplus: HIbernateなどのオブジェクトのデータベースを操作できるだけでなく、mybatisをサポートしてネイティブSQLを作成することもできます。また、表に従ってdao、サービス、コントローラーレイヤーの追加、削除、メソッドを自動的に生成できるため、開発効率が大幅に向上します。

メッセージキュー:rabbitmq

ここに画像の説明を挿入
Nマルチメッセージミドルウェアと比較して、安定性、使いやすさ、コミュニティ活動などの複数の側面から、rabbitmqが最終的にメッセージミドルウェアとして選択されました。主なアプリケーションシナリオは、非同期処理、ログ処理、アプリケーションデカップリング、およびトラフィックピーククリッピングです。

NOSQLデータベース:redis

ここに画像の説明を挿入
RedisはKey-Valueストレージシステムです。現在ではさまざまなシステムで使用されることが多くなり、ほとんどの場合、その高性能のためにキャッシュとして使用されます。

セキュリティフレームワーク:shiro

ここに画像の説明を挿入

shiro: Apache Shiroは、認証と承認を簡素化するように設計されたJavaセキュリティフレームワークです。Shiroは、JavaSEプロジェクトとJavaEEプロジェクトの両方で使用できます。主に、ID認証、承認、エンタープライズセッション管理、および暗号化を処理するために使用されます。Shiroの特定の機能は次のとおりです。
(1)ID認証/ログイン、ユーザーが対応するIDを持っているかどうかを確認します;
(2)許可、つまり許可の確認、認証されたユーザーが特定の許可を持っているかどうかを確認します。つまり、ユーザーが次のようなことができます。ユーザーに特定の役割があるかどうかの確認。または、ユーザーが特定のリソースに対して特定の権限を持っているかどうかのきめ細かい検証
(3)セッション管理、つまりユーザーがログインした後、それはセッションです。ログアウトする前は、すべての情報がセッション内にあり、セッションは通常の場合がありますJavaSE環境は、Web環境のようなものにすることもできます;
(4)パスワードの暗号化やプレーンテキストストレージではなくデータベースへのストレージなどのデータのセキュリティを保護する暗号化;
(5)Webサポートは、Web環境に簡単に統合できます。
キャッシュ:たとえば、ユーザーがログインした後、ユーザー情報とロール/権限を毎回確認する必要がないため、効率を向上させることができます。
(6)Shiroは、マルチスレッドアプリケーションの同時検証をサポートします。スレッドは自動的に権限を伝達できます;
(7)テストサポートを提供します;
(8)ユーザーが別のユーザー(許可されている場合)にアクセスするふりを許可します;
(9)私を覚えておいてください、これは非常に一般的な機能です、つまり、一度ログインすると、次回ログインする必要がありません。
概要:このフォローアップには、並行する不正なセキュリティの脆弱性が存在する可能性があるため、このシロを使用することを強くお勧めします。これらの脆弱性は、基本的なセキュリティテストによってスキャンされます。フォローアップでは、並列ウルトラウイルスのセキュリティの脆弱性を解決する方法について特別なトピックを書きます。

API管理ツール:YApi

ここに画像の説明を挿入
YAPI: YApiは、開発者、製品、およびテスターに​​、よりエレガントなインターフェース管理サービスを提供することを目的とした、効率的で使いやすく強力なAPI管理プラットフォームです。開発者がAPIを簡単に作成、公開、維持できるよう支援します。YApiは、優れたインタラクティブなエクスペリエンスもユーザーに提供します。開発者は、プラットフォームが提供するインターフェースデータ書き込みツールとシンプルなクリック操作を使用するだけで、インターフェース管理を実装できます。
概要: YapiはWebベースで、非常に便利なインターフェース管理ツールであり、美しく明確なインターフェースです。インターフェイスの呼び出し環境をシミュレートすることもできます。

ドキュメント管理ツール:showdoc

ここに画像の説明を挿入
shodoc:プログラマーは、他の人が技術文書を書けることを望んでいますが、文書を書きたくありません。文書を書くには、書式設定と組版を処理するのに多くの時間を必要とするため、新しいword文書が配置される場所など、技術的ではないさまざまな詳細について考えます。Word文書はチーム内のさまざまな人たちに散らばっていますが、文書を必要とする人は基本的に叫ぶことに頼り、QQまたはメールボックスに行き、相手が投げた文書を受け取ります。この通信方法は確かに可能ですが、効率的ではありません。
ShowDocは、ITチームに非常に適したオンラインドキュメント共有ツールであり、チーム間のコミュニケーションの効率を上げることができます。
ここに画像の説明を挿入

プロジェクトプロセス管理ツール:jira

ここに画像の説明を挿入
jira: JIRAはAtlassianが開発したプロジェクトおよびトランザクション追跡ツールで、欠陥追跡、顧客サービス、需要収集、プロセス承認、タスク追跡、プロジェクト追跡、アジャイル管理で広く使用されています。JIRAには、柔軟な構成、包括的な機能、シンプルな展開、豊富な拡張機能があります。

自動展開ツール:jekenis

ここに画像の説明を挿入
Jenkinsは、独立したオープンソースソフトウェアプロジェクトです。継続的な反復作業を監視するために開発されたJavaベースの継続的統合ツールです。継続的ソフトウェア統合を可能にするオープンで使いやすいソフトウェアプラットフォームを提供することを目的としています。前身は拡張可能な継続的インテグレーションエンジンであるHudsonです。ソフトウェアの構築、テスト、展開などのさまざまなタスクを自動化するために使用できます。Jenkinsは、ネイティブシステムパッケージのDockerを介してインストールでき、Javaランタイム環境がインストールされている任意のマシンで独立して実行することもできます。
主に使用されます:
CruiseControlやDamageControlなどのソフトウェアプロジェクトを継続的かつ自動的にビルド/テストします。
いくつかのスケジュールされたタスクを監視します。

テストツール


インターフェーステストツール、郵便配達員:
ここに画像の説明を挿入

郵便配達員ネットワークデバッグツール、ウェブページデバッグツールは、単純なcss、html、スクリプトなどの単純な基本情報をデバッグできるだけでなく、ほぼすべてのタイプのHTTPリクエストを送信できます。Postmanは、ネットワークHTTPリクエストを送信するChromeプラグイン製品の代表的な製品の1つと言えます。


パフォーマンステストツール、jmeter:
ここに画像の説明を挿入
Apache JMeterは、純粋なJavaでロード機能テストとパフォーマンステストを作成するためのオープンソースツールソフトウェアです。Loadrunnerと比較して、JMeterは小さく、軽く、無料であり、徐々に主流のパフォーマンステストツールになり、すべてのテスターが習得しなければならないツールの1つです。


セキュリティテストツールであるBurpSuite:
Burp Suiteは、さまざまな侵入テストコンポーネントを統合した統合侵入テストツールであり、自動または手動で侵入テストとWebアプリケーションへの攻撃を完了することができます。現在、ネットワークセキュリティのための多くのプロフェッショナルおよびパブリック侵入テストツールがBurpSuiteです。


パケットキャプチャツール、フィドラー:
ここに画像の説明を挿入

Fiddler(中国語名:Violin)は、HTTPデバッグプロキシです。これは、システムのHttpネットワークデータフローをプロキシサーバーの形式で監視します。Fiddlerは、すべてのHTTP通信のチェック、ブレークポイントの設定、およびすべてのFiddleの「インとアウト」を行うことができます。 "データ。

fiddler主要用途:
 1. http/https监测与分析
 2. 动态修改请求或回复
 3. 断点调试
 4. 自动回复
 5. 自定义脚本扩展

監視システム:Grafana + zabbix

Grafana + zabbix:私たちの会社は多くの監視ツールを使用しており、zabbixが最高の監視ツールであると最後に考えています。メモリ、CPU、ディスク占有率、I / O読み取りおよび書き込み率などのハードウェア情報を監視できるだけではありません。独自のビジネスシステムを監視することもできます。最後に、監視および早期警告情報をDingdingロボットに統合して、オンラインサーバーのさまざまな異常をリアルタイムで把握します。
zabbixの使用において、そのようなシナリオに遭遇したのかどうか疑問に思います。他の人にグラフデータを表示したい場合、zabbixのグラフタイプは十分にリッチではなく、同時に1つのデータしか表示できないため、不便であることがわかります(ただし、集約グラフィックを作成することはできますが、あまり便利ではないため)、大きな画面に表示したい場合は適切ではないと思います。これは、zabbixが主に運用および保守担当者向けのバックエンド監視システムであるためと考えられます。この欠点を補うために、zabbixデータ出力をネイティブで正式にサポートするオープンソースのサードパーティダッシュボードシステムGrafanaを見つけました。zabbixのサポートに加えて、他の多数のシステムデータもサポートしています詳細については、公式のGrafanaプラグインライブラリを参照してください。
以下は、Grafana + zabbixの統合の結果です。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/penggerhe/article/details/108225974