The Beginning Of The End

そこはかとなく技術的なことを

新しいブログ環境の設計について

求める要件

  1. 高速であること
  2. セキュアであること
  3. markdownで記述できること
  4. クライアントマシンに依存しないこと
  5. 面倒くさくないこと

高速であること

  • 動的なサイトよりも静的なサイトが早いので、サイトの構成は静的なものとする
  • webサーバとなるミドルウェアは、経験上apacehよりもnginxが早いのでnginxを使用する
  • http/1.xよりもhttp/2の方が高速なようなので、http/2に対応させる

セキュアであること

  • ホスティングの運用を行っていてつくづく思うのが、普通に使っているだけなのに、使用しているプログラムの脆弱性を突かれると意図も簡単に改竄されてしまう
  • 静的なコンテンツであれば、その心配もないのでセキュアであると考えている

markdownで記述できること

  • htmlで書くことは今後無いだろうと思うくらいmarkdownにお世話になっている
  • markdownで書けて、静的なコンテンツ(ブログ)を作るとなると静的サイトジェネレータかな
  • pythonが好きなので、pythonベースのものとなると、Pelicanの一択な気がする

クライアントマシンに依存しないこと

  • 今までPelicanを使ってブログ書いていた時期もあるのですが、ビルドがクライアントの環境に依存してしまい、書きたい時にかけないということが何度かあった
  • 今回はその問題を解決したい
  • なので、pythonのビルド環境をdockerを使ってVPS上に用意してみる

面倒くさくないこと

  • 長く続けるためにもすごく重要なことだと考えてます
  • あまり複雑にならないように、また、markdownで書いてサクッと公開できるような仕組みにしたい

公開用のサーバは作れそうなイメージはあるのですが、markdownで記述してから、ビルドするまでと、ビルド後の記事を公開用サーバにどうやって設置するか、というところはいまいちいい案がない

  1. markdownで記事を書く
  2. git commit -> git pushする
  3. commitなのかpull req後のmergeなのかをトリガーとして、ビルドサーバからmarkdownの記事をpullしてビルド
  4. 生成されたファイルを公開用サーバに配布

という感じになるのかな。。。

ビルドサーバのビルド後のアウトプット先と公開用サーバのドキュメントルートを共有でmountとかしておくと楽なのかな。
そこら辺は試行錯誤して進めていこう。

今年も残りわずかなので、急がねば。