アーキテクチャ

クライアント・サーバシステム

クライアント・サーバシステム

一般的なアプリケーションは大まかには「クライアント・サーバシステム」という構成になっている
ユーザが使う端末・ブラウザなどをまとめて「クライアント」と呼ぶ
 
すべてのデータは「サーバ」に保存する。
クライアントから「リクエスト」するとサーバは「レスポンス」を返す。
「インターネット」を通じて通信を行う。
 

例1: 投稿作成

  1. ユーザが「投稿作成」ボタンをタップする
  1. クライアントから「投稿作成リクエスト」をサーバに送信
    1. テキスト等もこのリクエストの中に含まれている
  1. サーバから「作成された投稿レスポンス」を返す
  1. クライアントで完了バナーを表示する
 

例2: 新着投稿一覧取得

  1. ユーザが新着タブに遷移する
  1. クライアントから「新着投稿取得リクエスト」をサーバに送信
  1. サーバから「新着投稿レスポンス」を返す
  1. クライアントでデータからセルを組み立て、リストを表示する
 

バックエンド・フロントエンド

サーバ側のことを「バックエンド」、クライアント側のことを「フロントエンド」と呼ぶ。
狭義には「フロントエンド」というとWEBの画面ことを言うが、モバイルも含むこともある。
 
サーバサイドでは「どんなデータを受け取ったら、どんな処理をして、どんなデータを返すのか」をプログラミングによって記述する。
クライアントサイドでは「どんな操作をされたら、どんな処理をするのか」をプログラミングによって記述する。
 

物理サーバ

サーバもコンピュータです。
映画などで見たことあるかもですが、これのそれぞれがコンピュータです(画面が不要なのでつながってないだけ)
形状から「ブレード」と呼ぶ。
普通のコンピュータと同じように故障することもあります。
 

クラウドサーバ

物理サーバを自社でメンテするのは大変なので、LIPSでは「クラウドサーバ」を使っています。
上の写真のような「データセンタ(DC)」では、雷とか、地震とか停電とかの対策もしてくれます。データセンタにあるサーバにインターネット経由でアクセスします。
 
クラウドサーバを提供している事業者は、さくらインターネット、Amazon、Googleなどが存在しており、LIPSではAWS EC2を利用しています。
 

AWSとは

AWSはクラウドサーバも含め、様々なツールを提供しています。「クラウドサーバ」もその一つで、ほかにも以下のような様々なサービスを利用しています
  • S3: 動画・画像などのファイルの管理
  • CloudFront: 効率的な動画・画像などの配信
  • Lambda: 動画の自動圧縮など、補助的な処理
 

LIPSのアーキテクチャ

(後で書く)
 

LIPSが落ちる、とは?

ある特定のリクエストを行うと
 

エンジニアの分類

「エンジニア」といっても中で役割がある。兼務していることも多く、必ずしも階層構造ではない。
 
 
  • 電気系エンジニア
    • 半導体エンジニア
    • ……
  • IT系エンジニア
    • インフラエンジニア
      • ネットワークエンジニア
      • データベースエンジニア
      • ……
    • アプリケーション(開発)エンジニア
      • iOSエンジニア
      • Androidエンジニア
      • バックエンドエンジニア
      • フロントエンドエンジニア
    • テストエンジニア
    • データ分析エンジニア
    • ……
  • ……