かむながら跡地の作り方 - 設計編
この記事は
このサイトの作り方のメモである。
以下の点について触れている。
- 要件定義
- システム方式
- インフラ設計
以降は、時間を見つけて
- 既存クラスタのアップデート
- ミドルウェアの設定
- CI/CDの構築
- テスト
なども書いてみたい。
要求整理
このサイトについてで触れている内容が要求である。
概要: このシステムは
もともと運用していたコミュニティ跡地で情報発信を行うブログシステムを構築。
情報発信と同時に、最低限関わりを持つためのポータルを用意する
このシステムの技術的特徴
予算はかけられないが、昨今のセキュリティ侵害のニュースから鑑みる最低限の対策。
保守にかけられる時間も限られている。記事をつくる時間も限られているので、以下の実現を必須とした。
- ブログサービスは使わない (wordpress.comやnote,zennなど)
- オンプレ型のブログは使わない (wordpress,mtなど)
- 記事はすべてGITで管理する
- 書式はMarkdownとする
vim
で編集できるようにする- デプロイ環境は
kubernetes
で冗長構成とする - GitLabのCI/CDを使ってリリースをする
- 脆弱性スキャンをリリース毎にかける
要件定義
機能要件
ブログ機能
- 記事の内容が様々なので、まとめやすくするために、
tag
やcategory
といった整理手法を持つこと。
コミュニティ機能
- 気軽に話しかけられる環境を持つ
- 個別チャットや全体チャットなどが作成できる
- 活発でない時もそばに感じられる工夫をしたい
非機能要件
Static Site Generatorを利用する
Markdown
からSSG
でブログサイトを生成する
システム運用コストを下げる
労務的にも原価的にも
システム方式
コミュニティ機能のシステム方式
現在アバップ社の運営しているAvapmostに新規チームを作成し、そこを”かむながら”とする
ブログシステム
実現したいリリースフロー
ポイント
- サイト生成をGitコミット時にすれば執筆環境を限定しない
- kubernetessにリリースすると保守が楽
- Gitlabパイプラインを作成するとリリースフローをすべて自動化できる
ミドルウェア
用途 | ミドルウェア | 詳細 |
---|---|---|
スタティックファイルジェネレータ | HEXO | |
WEBサーバ | NGINX | |
ソース管理 | GitLab | |
CI/CD | fluxcd | k8sの基礎的な反映 |
CI/CD | Gitlab Runner | デプロイ・リリースフロー |
証明書発行 | Let’s Encrypt | K8S Cluster Issuer + OCI webhook利用 |
インフラ設計
基本構成
監視構成
リポジトリ構成
このブログのすべての記事は、CC BY-NC-SA 4.0 ライセンスの下で提供されており、特に明記されていない限り、すべての権利を留保します。転載時には出典を明記してください: 松本創と"かむながら"の跡地。
コメント