STERFIELD

WebApplicationの構成と管理

WebApplicationの構成と管理

はじめに

以下ではLaunchCartを例として
WebApplicationが動くまでの準備、周辺の環境構築から更新管理に対する新たな方向性について触れます

ブラウザで見られるために必要なもの

LaunchCartをインストールするということは
そのサーバーにブラウザでアクセスしサイトが表示されるということです。

この中で最低限役割を果たすファクタとして

HTML, JavaScript, CSS, 画像など

ブラウザにコンテンツを表示、見やすくレイアウトする

PHPなどのプログラム言語

ユーザーの情報や操作によって
更なる動的な処理をしたり操作をする

nginxなどウェブサーバー

ブラウザからのアクセスに対してコンテンツを表示するミドルウェア

php-fpmなどCGI

プログラムとウェブサーバーを繋ぐ中間的な役割を果たすモジュール群

ウェブサーバーとアプリケーションの繋がりは以下のようになっています。

その他 連携ソフトウェア

メールを送る、FTPアクセス、データに保持するためのデータベース
サーバーの監視するための窓口、などを付加的に導入。
それぞれがミドルウェアとして存在し、アプリケーションから間接的に呼び出して機能を実現しています。

インストールや更新の概要

何度か投稿にて出てきているデプロイツールとしての「Ansible」を使用しています。
Ansible」はpythonで書かれています。

主に

・ウェブ環境としての最低限の構築
・それらを実現するためのライブラリのインストール
・運用時にあった方が良いツールなどを事前にインストール
・標準とする設定値の配布
・案件毎に異なる設定値などの自動更新
・その他アプリケーションとしての初期設定

などが包含されています。

メリットとして

・YAML記述のため複雑な知識は不要
・基本的にサーバーには最初からpythonが入ってるためデプロイ先での準備が不要
・複数同時にデプロイが簡単に実現

デメリットは

・独特な記法への慣れが必要
・セキュリティ的な課題(権限など)がある
・GUIがない
・Ansible自体からの外部連携(完了通知メール送信等)が簡単でない

などあります。

課題を解決するためのawx

GUIを導入しつつ権限管理、完了したらデプロイ結果の通知などもしてくれるという“AWX”という存在によって色々解消しそうです。
“Ansible Tower”というのもあるのですが、こちらは有料なのと差異は少ないようなので“AWX”の導入に繋げられたらと思っています。

ダッシュボード
https://docs.ansible.com/ansible-tower/3.2.2/html_ja/userguide/main_menu.html

組織、チーム、ユーザーなどの権限
https://docs.ansible.com/ansible-tower/3.2.2/html_ja/userguide/organizations.html

豊富な対応クラウド
https://docs.ansible.com/ansible-tower/3.2.2/html_ja/userguide/credentials.html

デプロイ実行画面
https://docs.ansible.com/ansible-tower/3.2.2/html_ja/userguide/jobs.html

通知機能
https://docs.ansible.com/ansible-tower/3.2.2/html_ja/userguide/notifications.html
残念ながらChatWorkの標準サポートはありません

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい