プログラマのためのDocker教科書 まとめ(1章)

公開日:2018-12-24
最終更新:2018-12-26

この記事は、プログラマのためのDocker教科書を読んでひたすらまとめていく記事です!

なにか参考になればと思っております。
(何卒優しい目で見てやってください。)
(逐一、コメント的なの突っ込んでいくスタイルなので、そこもよろしくおねがいします。)

第1章 押さえておきたいシステムとインフラの基礎知識

目次
  • 1.1 システム基盤の基礎知識
  • 1.2 ハードウェアとネットワークの基礎知識
  • 1.3 OS(Linux)の基礎知識
  • 1.4 ミドルウェアの基礎知識
  • 1.5 インフラ構成管理の基礎知識

1.1 システム基盤の基礎知識
前提として、インフラエンジニアのタスク(デプロイやテストなど)を、アプリケーションエンジニアがやるようになったことによって、アプリケーションエンジニアもインフラの基礎知識が必要になってきている。

確かに。今勉強しているのも、そういった理由。

システム要件

  1. 機能要件:システムの機能として求められる要件
  2. 非機能要件:機能要件以外すべての要件

あーね。わかりやすい。というか、そもそもシステム基盤とは?

システム基盤
ハードウェア、ネットワーク、OS、ミドルウェアで構成される。

シンプル。わかりやすい。

「システムの利用形態は、大きく分けると次の3つです。」
3つもあるのか?いや、3つしかないのか

  1. オンプレミス:自社でデーターセンターを保有し、システム構築から運用までを行う形態
  2. パブリッククラウド:ネット上で不特定多数に提供されるクラウドサービス(IaaS/PaaS/SaaSなど)
  3. プライベートクラウド:特定の企業グループにのみに提供されるクラウドサービス

IaaS
=> Infrastructure as a Service
情報システムの稼動に必要な仮想サーバをはじめとした機材やネットワークなどのインフラを、インターネット上のサービスとして提供する形態のこと

PaaS
=> Platform as a Service
アプリケーションソフトが稼動するためのハードウェアやOSなどのプラットフォーム一式を、インターネット上のサービスとして提供する形態のこと

SaaS
=> Software as a Service
これまでパッケージ製品として提供されていたソフトウェアを、インターネット経由でサービスとして提供・利用する形態のこと
引用:https://www.cloud-ace.jp/report/detail01/

頭文字とりすぎ。最初と最後だけ大文字だし。謎

1.2 ハードウェアとネットワークの基礎知識

来たな!ネットワーク!

CPU:プログラムの計算や処理を行う電子回路部品
メモリ:CPUが直接アクセスできる記憶装置
ストレージ:DBに書き込まれたデータ等の永続データを保持する場所

ここらへんは、なんとなく知ってる

ネットワークアドレス

  1. MACアドレス:
    ネットワークインターフェースカードや無線LANのチップなどのネットワーク部品に物理的に割り当てられた48ビットのアドレス
  2. IPアドレス:
    インターネットやイントラネットなdのネットワークが接続されたコンピュータやネットワーク機器に割り当てられた識別番号

IPアドレスはよく聞いていたが、MACアドレスというものもあるのか

ネットワークインターフェースカード
=> LANケーブル(インターネットをするときにパソコンにつなぐ線)を挿す穴がくっついている、パソコンに合体させる部品のこと
引用:https://wa3.i-3-i.info/word12498.html

イントラネット
=> 社内とか学内とかに範囲が限定された、インターネットっぽいネットワークのこと
引用:https://wa3.i-3-i.info/word15074.html

これは、初めて聞いた。勉強になった。

OSI基本参照モデルと通信プロトコル
OSI基本参照モデル?はじめてきいた。

OSI基本参照モデル:ISOによって策定されたコンピュータの通信機能を階層構造に分割したモデル、全部で7層ある(1~4層=下位層、5~7層=上位層)

なるほど、通信機能は層構造になっているのか。あとで調べんとな

通信プロトコル:お互いにどんな取り決めで通信を行うのかという規約のこと(HTTPとかIPとか)

ファイアウォール
出ました!FIREWALL(ファイアウォール)!!
出ましたとか言ってるけど、そもそもファイアウォールって?

「ファイアウォールは、内部ネットワークとその外部との通信を制御して内部のネットワークの安全を維持するための技術です。」

パケットフィルタ型:
通過するパケットをポート番号やIPアドレスでフィルタリングする

アプリケーションゲートウェイ型:
アプリケーションプロトコルレベル(OSI基本参照モデルの第7層)で外部との通信を代替し、制御する

ルーター/レイヤー3スイッチ
ルーター:2つ以上の異なるネットワーク感を中継するための通信機器
レイヤー3スイッチ:ルーターとほぼ同じ機能を持ち、ルーティングをハードウェアで処理し、高速で動作する

1.3 OS(Linux)の基礎知識

Linuxカーネル:OSのコア部分

  • デバイス管理(ハードウェアをデバイスドライバーで制御)
  • プロセス管理(実行されたプロセスにPIDを割り当て管理。プロセス実行のためのCPUを効率よく割り当てる)
  • メモリ管理(メモリ上に展開された利用頻度の低いデータをスワップに追い出したり、メモリに戻したりする)

Linuxディストリビューション:Linuxを配布するためにパッケージ化されたもの

1.4 ミドルウェアの基礎知識
Webサーバ/Webアプリケーションサーバ
Apache、Internet Information Services、Nginx

DBサーバ
MySQL、PostgreSQL、Oracle Database

NoSQL
Redis、MongoDB、Apache Cassandra

ちょっとこの辺はいろいろ調べんとな(改めてこの辺については書きます)

1.5 インフラ構成管理の基礎知識
キーワードは、
継続的インテグレーション(アプリケーションのコードを追加・修正するごとに実行し、確実に動作する手法)

継続的デリバリー(アジャイル開発によって、継続的にユーザーにアプリを提供し続けること)

ふう、1章からなかなかヘビー。

次は2章!

記事が少しでもいいなと思ったらクラップを送ってみよう!
18
+1
@hamaの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする