
開発者に必要なログ管理
foo
どのようなログを残すべきかから始まり、ログを収集して活用するまでの全体的なサイクルについて扱います。
初級
Elasticsearch, logback, Logstash
'バックエンドアプリケーションのパフォーマンスをテストする'の後続のレッスンで、あなたが作成したバックエンドアプリケーションのパフォーマンスを向上させるための基礎を築くことができるレッスンです。
受講生 361名
難易度 中級以上
受講期間 無制限


学習した受講者のレビュー
5.0
fain9301
良い講義ありがとうございます。
5.0
shameless8
性能改善に興味があり、講座を受講したのですが、大変参考になりました。
5.0
dfdrdodm95
講義構成がとても良いと感じました。 伝統的な方式は映像内で全て実習で再現させることで不要な時間消費があり集中しなければならない部分が何か分かりにくくなる欠点があるのに この講義はそのような不便を避けるためによく圧縮されています。 内容も私が望んでいたキーワードを十分に説明してくれて満足しています。
APIパフォーマンステスト
サーバーリソースがパフォーマンスに影響を与える理由と改善方法
非同期を活用したパフォーマンスの向上
スノーフレークを活用した重複チェックなしでユニークなキーを作る方法
インデックスとキャッシュを利用したルックアップパフォーマンスの向上
過去のパフォーマンステスト講義で予告したとおり、パフォーマンス改善講義に戻りました。 🤗
単独で開発するのとは異なり、実務でチームとして働き始めたときに経験した最大の変化があります。まさに性能を測定して改善することでした。単独でアプリケーションを作成するときは、ユーザー数が少なくパフォーマンスが大幅に問題ではありませんでしたが、実務では多くのデータを処理し、トラフィックが増加するにつれてパフォーマンステストが必須であることがわかりました。うまく動作する機能であってもパフォーマンスが悪いとシステム全体の障害点になりやすく、これはユーザー体験を大きく損なう可能性があります。
このレッスンでは、これらの問題を解決するためのパフォーマンステストの後、APIのロジックに合わせた改善方法について説明します。短縮URLサービスの例として、バックエンドアプリケーションのパフォーマンスを段階的に向上させる方法を理解しやすく準備しました。
まず、短縮URLアプリケーションの基本コードを見て、サーバーにデプロイするプロセスを進めます。生成APIとクエリAPIのパフォーマンスを測定し、どのようにパフォーマンスが向上するかを事前に調べて、パフォーマンスの改善方法を1つずつ適用します。
生成APIの場合、要求処理スレッドの数を増やし、サーバーサイズを増やし、応答と生成を分離するなどの手法を使用してパフォーマンスを向上させることができます。非同期処理とスノーフレークアルゴリズムが生成APIのパフォーマンスを大幅に向上させる方法を学びます。
Query APIのパフォーマンスを向上させるためには、データベースインデックスの追加、キャッシュの使用、WindowsWingの利用などをカバーしています。これにより、ルックアップのパフォーマンスを大幅に向上させる方法を実践を通じて体験できます。



パフォーマンスに影響を与えるアプリケーションサーバーのリソースにはいくつかあります。 CPU、メモリ、ディスクなどの物理リソースから始まり、スレッドや接続などのソフトウェアリソースもあります。これらはすべて最終的にパフォーマンスに影響します。このレッスンでは、これらのサーバーリソースがパフォーマンスにどのように影響し、どのようにパフォーマンスを向上させるかについて説明します。

APIのユーザーであるクライアントが感じるアプリケーションのパフォーマンスは、最終的に要求への応答が戻るまでの時間であるLatencyによって決まります。その結果、同じことをしても、クライアントがより迅速に応答を受け取ると、APIのパフォーマンスがよく感じられます。クライアントが本物のユーザーではなく別のサーバーである場合、システム全体のパフォーマンスにも影響します。この部分を改善できるようにする非同期を活用したパフォーマンスを改善する方法を学びます。

ルックアップのパフォーマンスについて話すときに欠けずに登場する存在は、まさにインデックスとキャッシュです。インデックスは主にデータベースレベルで扱われ、キャッシュはアプリケーション内に存在するキャッシュや共有キャッシュなど様々な形で存在します。このレッスンでは、インデックスとキャッシュの詳細については説明しませんが、インデックスとキャッシュの存在がAPIのパフォーマンスにどれだけ大きな影響を与える可能性があるかを示しています。

同じレコードを対象に更新クエリが飛行し続ける状況では、レコードにかかるロックによって急激にパフォーマンスが低下する可能性があります。こんなことを普通にホットスポットと呼びます。 Hot Spot の問題に対するパフォーマンスを改善する方法はいくつかありますが、短縮 URL の redirectCount を増やす作業に適した Windows ウイングで問題を解決してみます。
*)講義で行った内容はバッチ処理に近いですが、ウインドウイングと同じアイデアを持っています。 Kafkaを活用するように変えれば、ウインドウイングに簡単に変えることができるでしょう。

オペレーティングシステムとバージョン(OS):Windows 10、
使用ツール: Intellij Community 2023.2, Google Chrome
サンプルプロジェクトレポジトリ: https://github.com/lleellee0/shorten-url-initial
実行コマンド&ソースコード: https://github.com/lleellee0/shorten-url-initial/issues
クラウドサービスはVultrというサービスを使用していますが、AWSやGCPなど他のクラウドサービスを使用しても構いません。ただし、他のクラウドサービスを使用する場合は、ファイアウォールの設定など、いくつかの違いがあります。しかし、このような問題は、皆さんが直接検索してみて、体にぶつかってみればもっと多く得られると思います。
従来のパフォーマンステストのレッスンで使用していたArtilleryを使用してパフォーマンステストを実施しています。 nGrinderを活用したパフォーマンステストは付録で簡単に示しています。
受講中に質問がある場合は、質問を残してください。更新する必要がある場合は、更新します。
学習対象は
誰でしょう?
以前の講義者'バックエンドアプリケーションのパフォーマンスをテストする'を受講した人
APIのパフォーマンスを向上させるためによく利用される方法について学びたい人
前提知識、
必要でしょうか?
バックエンドアプリケーションの開発経験
パフォーマンステストに興味がある、または試した経験
キャリア認証
6,451
受講生
362
受講レビュー
117
回答
4.9
講座評価
9
講座
こんにちは。
メンタリングを通じて、ジュニア開発者が難しく感じる概念をいかに分かりやすく伝えられるかについて日々悩んでいる、フー(Foo)と申します。
よろしくお願いいたします。
経歴
2019. 08 ~ 現在:カカオ Javaバックエンドエンジニア
2021. 08 ~ 現在 : programmers バックエンドデブコース メンター
2021. 12 ~ 現在 : F-Lab Javaバックエンドメンター
本
これが就職のためのバックエンド開発だ with Java(リンク)
その他の経歴や他プラットフォームでの講義は、以下のGitHubリンクからご確認いただけます。
GitHub - https://github.com/lleellee0
全体
17件 ∙ (2時間 39分)
1. 講義紹介
04:02
2. 以前の講義内容の簡単なまとめ
03:06
3. 練習環境
06:49
9. 要求処理スレッドの数を増やす
04:40
10. サーバーサイズを増やす
04:59
11. 応答と生成を分離する
18:35
全体
10件
4.8
10件の受講レビュー
受講レビュー 14
∙
平均評価 5.0
5
講義構成がとても良いと感じました。 伝統的な方式は映像内で全て実習で再現させることで不要な時間消費があり集中しなければならない部分が何か分かりにくくなる欠点があるのに この講義はそのような不便を避けるためによく圧縮されています。 内容も私が望んでいたキーワードを十分に説明してくれて満足しています。
dfdrdodm95さん、ありがとうございます。 (_ _) あなたが言ったように、できるだけコンパクトに講義の内容を伝えようとしています〜 これからもdfdrdodm95さんの期待に応える講義を作りましょう。
受講レビュー 1
∙
平均評価 5.0
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!