I/O |
データの入力や出力を指す。Input(読込) / Output(書込) のこと |
データを入力するために使用されるキーボードやマウス、カメラやマイクなどを入力デバイスとして、出力デバイスとしては、モニタやプリンタ、スピーカーなどを指す |
IOPS |
Input/Output Operations Per Second 1秒間あたりに読み書き可能な入出力操作の回数を表す |
I/Oは読み書きの処理量そのものを表すのに対し、IOPSは単位時間あたりの処理回数を表す。同じデータ量を読み書きする場合、IOPSの高いシステムの方が高速な処理ができると言える |
スループット(throughput) |
処理量や伝送速度。ある時間の間にタスクやデータ量など処理された量を表す性能指標 |
Webサーバーのスループットは1秒あたりにどの程度のリクエストを処理できるかを示し、ディスクの場合は1秒あたりにどの程度のデータを読み書きできるかを示す |
レイテンシー |
待ち時間や反応速度。データを送信した時点から相手に届くまでにかかる時間のこと |
ウェブサイトにアクセスしてからページが表示されるまでの時間、オンラインゲームの場合はプレイヤーの操作からサーバーに反映されるまでの時間など |
オフロード |
システムの機能を部分的に取り出して外部システムに渡すという負荷分散の手法のこと |
または、携帯電話やスマートフォンでデータ通信を行う際に通信キャリアが提供する通信回線ではない(Wi-Fiなどの)通信手段を使用すること |
ワークロード |
ある特定の目的やタスクを達成するために必要な負荷や活動のこと |
ワークロードは、コンピューターシステムやネットワーク、人間の業務などで使用され、ワークロードは時間的に変化することがあり、過負荷や不足がある場合は、パフォーマンスに影響を与えることがある |
フェイルオーバー |
不具合時自動切替仕様。稼働中のシステムで問題が生じてシステムやサーバーが停止してしまった際に、自動的に待機システムに切り替える仕組み |
HA機能ともいわれ、システムの可用性を高めるための冗長化の一つ |
オーバーロード |
過負荷 |
|
オーバーヘッド |
コンピューターの処理を実行するのに付随する(余計な)作業を指すもの |
たいていは処理に時間がかかるようになるなど、システムの負荷(時間や処理)になるものを指す |
セッション |
サーバーに保存するユーザー状態(ログイン情報、ユーザー設定、ショッピングカートの中身など)のデータ |
サーバー側で管理されるため、クッキーに比べて直接的な改ざんリスクは低い |
クッキー |
ブラウザに保存するユーザー状態(ログイン情報、ユーザー設定、ショッピングカートの中身など)のデータ |
クライアント側に保存されるため、盗聴やクロスサイトスクリプティング(XSS)などの攻撃リスクがある |
ダウンタイム |
システムやサービスが利用不能になる時間のこと |
システムのアップグレードやメンテナンス、障害や事故などによって発生 |
リフレッシュレート |
ディスプレイの画面が1秒間に何回更新されるかを表す数値で単位はHz(ヘルツ) |
60Hzの場合、1秒間に画面が60回更新され、高いリフレッシュレートのディスプレイ(144Hzや240Hz)ではより高いフレームレートで動画やゲームを再生することができる |
可用性 |
システムやサービスが正常に稼働し、利用可能である確率や継続時間を指す |
可用性は、通常、パフォーマンスや信頼性、セキュリティなどの観点から評価される |
フロントエンドフリート(Frontend Fleet) |
Webサイトやアプリケーションのインターフェイスやユーザーインタラクションに関する機能を提供するコンピュータやサーバーのグループのこと |
Webブラウザやモバイルアプリなどのクライアントからのリクエストを処理し、HTML、CSS、JavaScriptなどのコンテンツを返すことで、ユーザーにウェブサイトやアプリケーションを提供する |
フォールトトレラント |
システムやアプリケーションが障害やエラーに対して再起動や回復などの自律的な処理を行うことができるように構築されていること |
障害発生時にシステムが停止しないようになり、高い可用性や安定性が実現 |
サーキットブレイカー |
一定回数通信に失敗した場合に遮断する仕組み |
AWS ECSのデプロイなどでもサーキットブレイカーの仕組みあり |
レジストリ |
設定データ、構成情報、リソース定義を保存 |
情報や設定データの管理と参照を目的としたデータベースを指し、システムやソフトウェアが動作するために必要な情報(例えば、構成情報やリソースの定義など)を保存する |
リポジトリ |
ソースコード、バイナリ、ドキュメントなどを保存する |
バージョン管理システムと共に使用されることが多い |
サービスディスカバリ |
速度低下を管理する仕組み。サービスレジストリというアクセス先をまとめている存在がある。サービス(サーバー側)が起動したらIPアドレスをサービスレジストリに登録し、クライアントはサービスレジストリに対してリクエストして情報をもらいアクセスする |
DNSに似ている |
APIゲートウェイ |
システム全体の入り口を一元化して共通処理を返す仕組み |
外部に対して一元化してAPIを提供する。AWSには同名のサービスもあり |
CQRS |
Command & Query Responsibility Segregation |
DBの読み取りと書き込みの実装をわける |
認証 |
Authentication |
人物(誰であるか)の特定 |
認可 |
Authorization |
認証(Authentication)された人物がどこにアクセスできてどこにアクセスできないかの許可のこと(アクセス制御) |
OAuth |
認可のしくみの1つ。他のサービスに自分のデータへのアクセス権を一時的に与える仕組み |
アクセストークンを使用して認可された内容を実施可能 |
OpenID Connect |
OAuth(認可) + 本人情報取得 |
認可された内容にプラスしてIDトークンという認証情報(本人情報)もJWT(Json Web Token)で取得できる |
アクセストークン |
範囲(スコープ)を限定した認可 |
|
分散トレース |
マイクロサービスなどにおけるスタックトレースのようなものでサービスが呼ばれた順序や状態を可視化する仕組み |
AWSではX-Rayというマネージドサービス,Zipkin,Jaegerというライブラリもあり |
OpenTelemetry |
分散トレーシングにおいてTraceIDやSpanID,ParentSpanIDを保存するというルール |
Trace=リクエスト全体、Span=各サービスの処理,ParentSpanID=呼び出し元SpanID |
フルメッシュ |
どのノードも他のすべてのノードと一対一(ポイントツーポイント)で繋がれているような形態のネットワーク |
ストレージシステムや広域ネットワークのルータ間の接続などで事例が見られる |
ディレクティブ |
指示文,補足情報 |
大抵は、プログラムの最初の行に記述する |
非機能要件 |
性能面やセキュリティ面等において実現するべき要件であり、顧客が潜在的に持っている「隠れた要件」のこと |
一斉にアクセスしても落ちない、読込待ち時間が少ないなどのこと |
リードレプリカ |
参照様データベース |
更新用データベースと参照用データベース(リードレプリカ)を使い分けることにより負荷分散を実現 |
ブループリント |
システムやアプリケーションの設計図のこと |
どのようなリソースが必要なのか、どのように構成されているのか、どのような設定が必要なのかなどが記載されている |
ドリブン |
駆動型 |
|
フェデレーション |
ID連携、認証連携 |
一度認証を通れば、その認証情報を使って、許可されているすべてのサービスを使えるようにする仕組み |
マイグレーション |
あるシステムや環境から別のシステムや環境にデータやアプリケーションを移行または転送すること |
(railsやlaravelなど)データベーススキーマ(テーブルやカラムの構造)を変更するための手法や仕組みを指す |
セッションストア |
セッション情報を外部に保存すること |
AWSでDynamoDBやElasticCacheなどが使われる |
CSR |
クライアントサイドレンダリング |
JavaScriptを使用し、直接ブラウザでページをレンダリングすること |
SSR |
サーバーサイドレンダリング |
サーバー側で処理(データフェッチ等を)し、HTMLを構築してクライアント側に返す方式 |
ISR |
Incremental Static Regeneration |
一定期間ごとにサーバーサイドレンダリングを行うことで、高速なページ描画を実現 |
セッションスティックネス |
同じユーザーが同じサーバーに接続し続けるように管理されることにより、ユーザーのセッションデータやログイン状態などの情報を同じサーバーで保持できる |
リクエストを処理する際、複数のサーバーが協力して処理を分散することがあるが、特定のユーザーが同じサーバーに続けてリクエストを送ることが重要な場合があるため、それを実施する技術 |
KPT法 |
Keep(成果が出ていて継続すること)/Problem=「悪かったこと、直したいこと」/Try「どうやって解決・改善するのか」 |
|
レトロスペクティブ |
振り返り |
|
ポストモーテム(postmortem) |
事後検証 |
サービス運用時のシステム障害やデータの損失など、インシデントについてまとめた文書 |
トポロジ |
ネットワークやシステムなどの構造や形状の特性を表す言葉 |
対象の要素や部品がどのように配置され、相互に関連しているかを示す。例えば、コンピューターネットワークのトポロジには、スター型(中央のハブに他のデバイスが接続される)、リング型(デバイスが輪のように接続される)、バス型(1本の共有ケーブルにデバイスが接続される)などがある |
オプトイン |
事前に許可を求めること |
ユーザーが情報を受け取る際や自らに関する情報を利用される際などに、許諾(パーミッション)の意思を示す行為 |
デリバリー |
実運用環境へ移すこと |
利用者へ手配すること |
サイロ化 |
アプリケーションやシステムの連携が取れていない状態 |
|
バッファ |
データをやり取りするときに一時的にデータを溜めておく記憶場所 |
|
トイル |
手作業、繰り返される、自動化が可能、長期的な価値がない、サービスの成長に比例して増加する、といった特徴を持つ作業 |
|
ステートレス |
「状態を持たない」システムや通信 |
例 ECサイトの「商品一覧取得API」は、ユーザーのログイン状態などに関係なく、どのリクエストも独立して商品データを返す |
ステートフル |
「状態を持つ」システムや通信 |
例 オンラインショッピングのカート(セッション管理) |
REST API |
Representational State Transfer / 分散型システムにおける設計原則群 |
RESTful APIはRESTの原則を厳格に遵守して設計されたAPIを指す |
オンデマンド |
On Demand 「要求に応じて」という意味 |
「必要なときに、必要なものを、必要なだけ」提供すること |
プロビジョニング |
システムやサービスを利用可能な状態にするための準備や設定のこと |
「プロビジョニングする」ということはシステムを利用可能な状態にすること |
シャード |
分割されたデータの単位またはサーバーそのものを指す |
英語では破片、かけらという意味 |
シャーディング |
データベースやサーバーのデータを水平分割(Horizontal Partitioning)して複数のノードに分散させる手法 |
|
アップストリーム |
データを送る側。ネットワークの上流。Gitでは「プッシュ」 |
上流 → 起点(送信) |
ダウンストリーム |
データを受け取る側。ネットワークの下流。Gitでは「プル」 |
下流 → 終点(受信) |
ヒープ領域 |
実行中のプログラムが「自由に使える作業メモリ空間」 |
|
|
|
|