はじめまして。入社して2年目の田村です。
最近は、ゴブリンの活躍がすごいですね。(貴族も含みます)
この記事では、自分が一年間で新しく何を学んだのかという簡単に振り返りします!
データ分析系
Elasticsearch
データの検索と分析をRESTfulにできるやつ。
例えば、頻度の多いエラーメッセージTOP5とかとかが簡単に集計できます。
とりあえず、分析したいデータを貯める場所として活用しています。
一分間で異常にエラー件数が多かった場合にSlack通知という自作プログラムも作ったりしました。(Elastalert使えば問題ないですが、自分でミニマム柔軟に作りたいって時あるじゃないですか。それです)
Logstash
データ収集し加工出力する。
データ源泉 -> データ加工 -> 出力先
- データ(DB、fileなどから取得)
- データ加工(数値に変換、IPからGeoIP情報、UserAgentを分析しやすく加工)
- データ出力(ElasticSearch、stdout、fileなど)
DBにSQL発行して、結果をElasticSearchに!っというのも簡単にできちゃうので楽です。
いろいろな情報をPipeline利用して収集しています。
Kibana
ElasticSearchのデータをいい感じに可視化してくれるWEBアプリケーション。
エラーメッセージ別割合の円グラフ、線グラフを簡単に作成できます。
公式サイトを確認すれば、どんな感じかわかるかと思います。
Metricbeat
システムやサービスの情報をとにかく収集してElasticsearchとかに出力。
CPUとかメモリ使用量を簡単に収集できます。
フロントエンド系
Nuxt.js
Vue.jsアプリケーションを簡単に構築できるフレームワーク。
よくNuxtという単語が目についていたので、使ってみました。
PythonスクリプトをWebサイトから起動するために利用しました。
Pug
HTMLを効率的に書くためのテンプレートエンジン。
インデントで階層を表すため、わかりやすい。
main
div
a.hoge(href="/hoge") ただのhogeボタン
Stylus
AltCSS。
Pugと同じくインデント大事なため、楽。
.hoge
color black
&:hover
color red
Bulma
CSSフレームワークの一つ。
名前気に入ったので使ってみました。
バックエンド系
Tornado
ノンブロッキングなPythonのWebフレームワーク。
WebSocket標準で入っており、オブジェクト指向ベースで記述します。
Nuxt.jsから叩くAPI作るために利用しました。
Selenium
WebアプリケーションのUIテストツール。(たぶんバックエンド系よりだと思います。)
ブラウザで操作できることなら何でも自動的に操作させることができます。
テスト自動化とか、コンソールエラー警察したりしてました。
これから
- 今まで感覚でコーディングしていたので、より良いコーディングができるような知識を学んでいく。リーダブルコードとか読んでみる。
- もっとNeovimを快適に使えるように設定する!
- 最近Linuxをいじいじしていないので、いじいじしたい。なんとなくconky-i3statusbarとかdmenuとか使っていたので、PolybarとかRofiに変更してみたりしようと思います。conkyもいい感じに表示させるように変更してみようかと思ってます。
さいごに
直近で興味あるのは、スマートスピーカーとVRですね。
なんか面白いことできないかなーってたまに考えてます。