2015年9月12日土曜日

QiNeel 勝手に内部解説

誰にも聞かれていませんが、勝手にQiNeelの内部構成を説明します。

基本構成

Linux, nginx, MySQL, PythonのいわゆるLEMP構成です。
  • Linux…サーバ用OSの定番
  • nginx…最近人気あるよね。軽いし。
  • MySQL…レプリケーションとか便利だよね。利用実績もバッチリ。
  • Python…好きなんです。ちなみに3K使ってます。
他にもmemcached, uWSGIとかの定番なやつも使っています。

ディストロは何よ

Ubuntu 14.04。
CentOSとUbuntuで迷ったけど、新しいパッケージにも比較的素早く対応してくれるUbuntuにしました。CentOSはnginxとかPy3Kとか標準で入ってないし。
Ubuntuは速度面でいろいろ言われることがあるけど、某巨大ウェブサービスもUbuntu使ってるから安定性も問題ない(はず)。

こだわりのOSとしてGentooも一瞬頭をよぎったけど、さすがにそこまで手間をかける気にはなりませんでした。稼働中のサーバでビルドするわけにいかんからもう1台用意しておかないとイカンし、ちょいちょいメンテしないとライブラリの依存地獄が待ってるし。
手間を惜しまない普段使いOSとしては最高なんですけどね。

Apache使わんの?

最近のトレンドってことでnginxにしました。
軽いし速いしプロセス浪費しないし。

設定ファイルが少々特殊でヘタすると「設定をしていたと思ったらいつのまにかプログラムを書いていた。何を言っているのk(ry」というポルナレフ状態になりそうですが、今のところはそこまで複雑な設定にしてないので大丈夫。

なんでMySQL?

単純に使い慣れているからです。それ以外に深い理由はありません。

PostgreSQLと比べて(というか標準規格と比べて)いろいろクセがあると言われることがありますが、MySQLから入った身としてはそこまで不便を感じません。

フレームワークは?

ぱいそんのフレームワークは定番のDjango…ではなくて独自フレームワークを使っています。
既存のものは多言語対応まわりでやりたいことができなかったのと、自分用にカリカリにチューニングしたかったから。

ちなみに↑のソースコードは結構古いやつで、バグがいくつか放置されているのでご注意。そのうち更新します。

認証局は?

SSLの認証局は、貧乏人の強い味方StartSSL。Class1でよければコレ一択。
多少古いブラウザでもほとんど対応済み。ガラケーとかは調べてないけど、QiNeelはガラケー対応する気はありません。

もう少しでLet's Encryptがローンチされそうな感じですが、待ちきれませんでした。

どこのサーバ?

ConoHaのVPSつかってます。最近はVPSサービスもいろいろあってどれにしようか迷いましたが、最終的にこれに決めました。
以下理由。
  • 比較的新しいサービスだから他と比べていろいろ改善されている(と勝手に期待)
  • IPv6対応
  • おねだんリーズナブル
  • 課金が1日単位なので、急にサーバを止めたくなったときとか一時的にもう1台使いたいときに便利
  • スケールアップできる(無停止じゃないっぽいけど)
  • クラウドみたいに複数台でLANを組めるからスケールアウトもOK
  • DB専用サーバあり。汎用サーバより安いので、スケールアウトが必要ならまず候補に挙がる ※ただしMariaDB
  • SSD対応
特にSSDについては、VPSを使うなら多少容量が落ちてもHDDよりこちらのほうがいいと思います。
HDDだと同居している他の子がガリガリアクセスしまくっていたらとばっちり喰らいますしおすし。

安定性については…まだ使って間もないのでなんとも言えませんが、今のところ大きな問題は出ていません。

ちなみにConoHaを検討中の方はここから契約すると、1000円分のオトクなクーポンがもらえます。やったね!

0 件のコメント:

コメントを投稿