「開発と構築の違い分かってる?」
むむ、どうやら開発と構築は異なる意味を持つらしい。
開発はソフトウェアやアプリの開発、構築はインフラ周りのあれこれとのこと。
正直今までかなりあやふやなまま雰囲気で誤魔化してきた。
ということで、今回は初心者向けに「開発」と「構築」の違いを書いてみる。
<開発とは>
主にソフトウェアやアプリケーションの作成や改良を指す。
プログラミング言語やフレームワークは、その開発のプロセスにおいて要件に基づいたソフトウェアやアプリを設計して実装するためのツール。そしてその後にテストやデバッグが入ってくる。
<構築とは>
一方構築は、先に説明したアプリやらソフトウェアを動かす土台の部分を形成する作業になる。
ネットワークやサーバ、DBやストレージを設計、構築するのである。
構築のプロセスにおいては
・要件定義や設計
・インストール
・設定
・テスト
・トラブルシューティング
などがあり、いわばシステムの基盤を整え、システムが適切に動作するための環境を整備(構築)する事である。
正直インフラ構築における各作業フェーズでどういう事をするのかイメージが湧かない。
という事で、これも追加で調べてみる。
<インフラ構築における「要件定義」>
インフラストラクチャに必要な要件や目標を明確に定義する。
これには、ユーザーの要求や予想されるトラフィック量、可用性の要件などが含まれます。
※可用性
システムやサービスがユーザーに対して正常に利用可能である状態であることを指す。
・動作時間
・障害耐性
・レスポンス時間
・スケーラビリティ
etc...
<インフラ構築における「設計」>
インフラストラクチャのアーキテクチャやネットワーク構成を設計する。
これには、サーバーの配置、ネットワークのトポロジー、冗長性の構築などが含まれます。
※トポロジー
複数の装置や機器を結ぶ配線や、接続形態の類型のこと
<インフラ構築における「インストール」>
インフラストラクチャに必要なハードウェアやソフトウェアを配置・設置する。
これには、サーバーの設置、ネットワーク機器の設定、ストレージの接続などが含まれる。
<インフラ構築における「設定」>
インフラストラクチャの機能やパラメータを設定する。
これには、ネットワークのアドレス設定、セキュリティ設定、ストレージのパーティショニングなどが含まれる。
※パラメータ
システムやネットワークの動作や構成を制御するための設定値や変数のこと
<インフラ構築における「テスト」>
インフラストラクチャの機能や性能を検証する。
これには、ネットワークの可用性テスト、負荷テスト、冗長性のテストなどが含まれる。
<インフラ構築における「トラブルシューティング」>
テストや運用中に発生する問題を特定し、解決策を見つける。
これには、ネットワークの障害調査、システムのログ解析、障害発生時の対応などが含まれる。
うーむ、当たり前だけど色々あんだね。
深掘りしようとすればキリがないので、今回はここまで。
気が向いたら「完全版 インフラ構築の全て」
みたいな調子乗った記事でも出してみます。