Skip to content

Commit

Permalink
AS本 サーバー編を追加
Browse files Browse the repository at this point in the history
  • Loading branch information
crashRT committed Dec 28, 2024
1 parent 2a0905e commit eb9a65a
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 5 deletions.
5 changes: 0 additions & 5 deletions docs/infra/server.md

This file was deleted.

14 changes: 14 additions & 0 deletions docs/infra/server/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"position": 4,
"label": "サーバー編",
"collapsible": true,
"collapsed": true,
"className": "red",
"link": {
"type": "generated-index",
"title": "サーバー編"
},
"customProps": {
"description": "サーバー技術についての解説"
}
}
15 changes: 15 additions & 0 deletions docs/infra/server/hardware.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
sidebar_position: 2
---

# コンピュータを構成するパーツ

サーバーなどのコンピュータは複数のパーツで構成されており、主なものとしてCPU, メモリ, ストレージ, GPUがあります。他にもNICやRAIDカードなど色々なパーツもあるのですが、ここでは主要なもののみ説明します。

CPUはコンピュータの脳とも呼ばれる部分で、演算処理を行います。

メモリはCPUが処理するべき命令や、データを一時的に保管しておくのに使われます。CPUとともにコンピュータの中心的な役割を果たしており、主記憶とも呼ばれます。電源を落とすと保持しているデータは消えます。

ストレージは電源を落としても保持しているデータが消えない記憶装置です。HDDやSSDなどがあります。

GPUはCPUと同じく演算処理を行うパーツなのですが、ベクトルや行列の計算に特化しています。そのため、ベクトルや行列をよく使う3DCGや機械学習でよく使われています。
7 changes: 7 additions & 0 deletions docs/infra/server/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
sidebar_position: 1
---

# サーバー編

ここからは、サーバーを構成する技術について解説していきます。
9 changes: 9 additions & 0 deletions docs/infra/server/os.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
sidebar-position: 3
---

# OSとは

1台のコンピュータの上で、複数のアプリケーション(正確にはプロセスと呼ばれるもの)が協調して動けるよう、管理、調停してくれる特別なプログラムのことをOSと呼びます。有名なものとしては、WindowsやmacOS, Android, Linuxなどがあります。


11 changes: 11 additions & 0 deletions docs/infra/server/virt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
sideba-position: 4
---

# 仮想化技術(VMとコンテナ)

一つのサーバーの上で複数のサービスを動作させる場合、そのサービス同士が互いに影響を与えないようにしたくなることがよくあります。そのようなときに、それぞれのサービス同士を隔離させ、かつコンピュータの資源を効率的に使う方法として、仮想化技術と呼ばれるものがあります。主要な仮想化技術としてはVM(仮想マシン)とコンテナがあります。

VMは1台のコンピュータの上でコンピュータの動作を仮想化する技術です。この技術により、1台のコンピュータの中にあたかも複数の仮想的なコンピュータ(VM)があるかのように扱うことができます。同じコンピュータの中ですがVM同士の環境は隔離されており、互いに影響を与えることはありません。中でVMを動かす(一般的には物理的な)コンピュータのことをホスト、上で動くVMのことをゲスト、VMを管理するソフトウェアのことをハイパーバイザと呼びます。ゲストではホストとは別のOSが動いており、ハイパーバイザはその上で動くゲストのOSに対し、直接物理マシン操作しているかのように見せます。

コンテナはLinuxなどのOSの機能をうまく使って各アプリケーションを隔離する技術です。ホストとゲストで別のOSが動くVMとは異なり、ホストとゲストでOSは共有します。そのため、VMに比べると比較的軽量で高速です。コンテナを動かすためのソフトウェアとしてはDockerが有名です。そして、複数のコンピュータの上で動く多くのコンテナをうまく管理する(オーケストレーション)ツールとして、Kubernetesが有名です。

0 comments on commit eb9a65a

Please sign in to comment.