2018年の目標1: 自分の砂場を作る

2018年の個人目標の一つ。もう一月が終わろうとしている...。

やりたいこと/目的意識

ミドルウェア/インフラで見れる範囲を少しずつ増やしていく/理解を深めていく。仕事で実際使っているっていうのもあるし、インフラ方面への理解を深めたいって気持ちが強い。苦手意識を少しでも減らしていきたいし、この辺含めてもう少しチームの戦力になりたい(今はあまりにも無力...)。

お題

題材としてはgo-active-learning。今はcliアプリになっていて、機械学習っぽいエントリを推薦してmarkdownに吐き出すという手抜き構成。自分が継続的に使っていたり、愛着がないとなかなかやる気にならない性格だけど、去年それに該当するようなものを書いていた自分good job。データ収集のクローラや格納先のElasticsearchなども去年から稼動している。

これをあれこれミドルウェアを使いつつ、ひとまずwebアプリ化。できてきたらmaster/slave構成にしたり、webサーバー/アプリサーバー/dbサーバーの同居をやめるとか色々やってみる。自分の用途的にはそうなっている必要は全くないが、ミドルウェア/インフラ回りで自分で構築してぶっ壊せる砂場を作りたい。同僚が似たような活動をやっていて、それの真似とも言える。

詳細

具体的にはこの辺が遊び要素かなって思ってる。大して難しいことはやるわけではない。

  • キャッシュにredis
    • 今はバイナリのファイルをローカルに持ってる。書き込みとか毎回やってると大変なので、適当にバッファリングしながらやってる
  • 学習データの管理
    • ぽすぐれ。テーブル構造はシンプル
    • やればいいだけ
    • master/slave構成やレプリケーション回りって実際どんな感じになっているかを知る
  • nginx
    • 自分のお手頃webアプリを作ると、ローカルで済ませるかherokuくらいしかやってなかった
    • バックエンド複数立てて割り振るとか、設定周りとかログ周りを一通りやってみれるようにする
    • 複数台構成。リクエストの割り振りとかあれこれ実験してみる

あとはこれらのprovisioningもできるようにする。前期に少しansible入門していたので、これを使う。cloudformationとかも使って楽をしたい。複数台立てたり、Amazon Elasticsearch Searviceへの通信とかもあるので、ネットワーク周りを含めて考えたい。