このブログがどのようにして見えているのか

次回以降の記事は、具体的な各技術にフォーカスした専門的なものが多くなっていくと思いますが、今回の記事はそこに至る前段階の読み物として捉えてください。
今日は私が仕事で主に扱っている分野について、書いてみようと思います。

家庭や職場から、インターネット上にあるこのブログや、仕事で使うシステムにアクセスするのにどんな経路でつながっているか、またサーバーの上で何が動いているのかを簡単に図にしてみました。
家庭や職場のPCから、そこのルーターを通ってインターネットの回線につながり、サーバーを管理している会社のルーターを通ってサーバーにアクセスして、PCとサーバーの間で、様々な情報をやり取りしています。


よくサーバーって聞くと思いますが、Server = Serve(奉仕)する存在として、自分たちが使いたいシステムを提供してくれる存在です。

そのサーバーの中で何が行われているのか、詳しくない方にはさっぱり想像がつかないかと思いますが、例えばこのブログを見るときに何が起こっているかを書いてみます。

このブログのシステムが置いてあるサーバーでは、Linux(リナックスと読みます)というOSが動いていて、その上でWebサーバーのプログラムが、家庭や職場のWebブラウザからブログのどのページを見たいというリクエストを受け付けます。
リクエストを受けたWebサーバーは、このブログの場合であれば、PHPというプログラミング言語で書かれたWordPressというブログのシステム(アプリケーション)を実行します。
WordPressでは、必要な情報をデータベースから取り出した上で、Webブラウザに表示するページ(HTML)を作り出し、作られたHTMLはWebサーバーからインターネット回線を通して、皆さんがご覧になっているWebブラウザに届けられます。

こういった経路をたどって、このブログが皆さんのPCやスマホのWebブラウザで見えているわけです。

例として、このまだ始まったばかりのブログが見える仕組みを書いてみましたが、例えば皆さんがよく使われているであろうFacebookやTwitterなどのSNSでも、大枠の仕組みはあまり変わりはありません。ものすごく大規模なシステムになっていて、サーバーの台数も想像がつかないくらい使用されているとは思いますが。

ちなみに私が仕事でこの仕組みのどのあたりに関わっているかですが、PCや職場・家庭のルーターの設定もしますし、サーバーを提供してくれる事業者からサーバーをお借りして、OSやWebサーバー、データベースサーバーの設定もします。
OSなどの設定では、セキュリティにも気を使いながら慎重に進めていきます。
そして既存のWordPressなどのシステムをお客様用にカスタマイズして提供することもしていますし、お客様向けにオリジナルのシステムをプログラミング言語を使って設計、開発することもしています。

上の図で言えば、自分が直接触れられないところは、回線とサーバー管理会社のルーターくらいしかないです。
ブログやWebサイトを一つ立ち上げるだけでも、多岐にわたる技術分野があって、そのいろいろな部分で私が関われる仕事がある、ということがおわかりいただけたら幸いです。