mrtska.net

Brandnew my Website


Posted at:

どうも、mrtskaです。

ブログ記事を書くのはもはや数年ぶりな気がします。

以前はWordPressでしたが、使っててあまり面白くなかったので自前で構築することにしました。

※技術的な話になります

旧システムはこんな感じでした。 旧システム構成.png

VPSからnginxと通りWordPressへ・・・までは普通ですがWordPress以外にも動かしたいものがあったのでリバースプロキシとして使っていました。

今更Tomcatとか・・・と思われる方もいらっしゃるかと思いますが(私も思います)3年前の私はJavaでサーバサイドを書きたかったようです。

download.mrtska.netはMinecraftのMOD配布やダウンロード数の計測などをする非常に小さいアプリケーションでした。(今は動いてません)

Apache HTTP Serverが挟まっているのはTomcatがnginxから直接データを受け取れないからですね。
非常に厄介でした。

それから月日が経ち、このシステムにも飽きてきたので去年ぐらいから新システムをWordPressを使わずに作りはじめました。

新システム

新システムの構成はこんな感じです。

新システム構成.png

急に近代化した感じがします。

VPSのOSはUbuntu 18.04 LTSまで上げました。(前は16.04 LTSでした)

とはいえ、メインのアプリケーションはDockerで動いているのでUbuntuはあんまり関係ないですね。

旧システムとは違い、自動デプロイシステムを作りました。

デプロイが面倒だと開発モチベがごっそり持っていかれるので大変良いです。

WordPressを辞めたかったのもこれが原因かもしれませんね。

WordPressの代わりはASP.NET Coreを使って作ることにしました。

NicoNicoViewerでC#力が鍛えられたのでちょうど良かったです。

このアプリケーションにはいくつか機能を持たせています。

  • ブログ機能
  • ファイルのダウンロード機能&ダウンロード数カウント
  • I18n
  • NicoNicoViewerのデプロイ管理

国際化対応する必要があるのかどうかは謎ですが勉強も兼ねて実装してみました。 記事の中身は私の英語力次第でしょうが・・・

特徴としてNicoNicoViewerの補助機能を入れています。

プラグインっぽく作ったのでNicoNicoViewer以外のものを作ったりすることも出来ます。

Dockerだとコンテナを作り直した際にログが吹っ飛ぶので、Azureのサービスを使うことにしました。

Azureで全て動かせば一番楽ですが、さくらのVPSのほうが全然安いのでロギングのみAzureにやってもらうことにしました。ロギングだけならめっちゃ安いです。


ASP.NET Coreはかなり新しいフレームワークですが、公式のドキュメントや公式のライブラリもたくさん揃っていて、且つ.NETのライブラリも普通に使えるのでちょっと特殊なことでも割と出来るんじゃないかなと思います。

少なくとも、公式のライブラリでTwitterログインやGitHub WebHookのライブラリがあるのはASP.NET Coreくらいではないでしょうか。

このサイトの管理ページにログインする際はTOTPによる2段階認証が必要ですが、これも特に追加のライブラリは必要ありませんでした。

パフォーマンスもWordPress時代と比べたらかなり応答が速くなった気がします。

まだまだ追加したい機能がありますが少しずつのんびり作っていこうと思います。

まだコメント機能とかスマホ対応とかやってませんし。

今後はネタがあれば記事を書いていこうと思います。

フロントエンドもいろいろ工夫したのですがそれはまたの機会に。

ではでは。


Tag: ASP.NET Core,