ドリコムにてサーバサイドエンジニアをしております hayabusa333 (橘田)です。
こちらの記事はErlang & Elixir Fest 2018のレポート第1回目となります。
2018年6月16日に Erlang & Elixir Fest 2018が開催され、私はLTにて「個人でElixirでやってきたことの報告」というタイトルで登壇させていただきました。
資料
当日の資料はこちらとなります。
概要
去年のElixir Conf Japan 2017のセッションでは各社企業様でElixirを使い始めたという内容のセッションが多かったです。
しかし今年は実際に運用を始めての話が多く聞くことができました。
私自身も個人でElixir-Phoenixで動くアプリケーションを開発し、運用を行なってみましたので個人運用を行なった知見に関しましてLTをさせていただきました。
個人でのElixir-Phoenixのサイトの作成
Elixir-Phoenixを使用しての個人のサイト作成を行いました。
理由としましては他の言語でも、言語やフレームワークを使用しての開発が難しいというよりは、いかにして運用をしていき運用をしながら機能のアップデートをしていくかを考えていくところが難しいと思います。
個人でのアプリケーションを作成し、運用していくことによって難しいであろう運用部分を早めに体験しておき、地雷を踏み抜いておきたかったために個人でのElixir-Phoenixで作成されたアプリケーションの作成を行いました。
実際にアプリケーションの作成自体は難しくはなく、アプリケーションを動かす環境の用意やデプロイ自体も問題なく行うことができましたが、運用を始めて新しい機能をデプロイする際に暗号化ライブラリを読み込む際にエラーとなる問題が発生しました。
こちらはMac環境で開発を行い、ビルドしていたためMac環境で動かすようにビルドしているものをLinux環境で動かしたために発生しておりました。
問題が発覚してから、すぐにビルド環境とstaging環境の用意をするという、個人で行なったからこそ発生した問題を踏み抜くことができました。
また他にも開発環境での暗号化では地雷を踏んでおりまして、そちらはドリコム Advent Calendar 2017のElixir環境構築にて暗号化でエラーにならないためにに記載しておりますので、合わせて読んでいただけると幸いです。
アップデート
PhoenixやElixirのバージョンアップですが、破壊的な変更点はそこまでなく、Elixirでは発生する前には数バージョン前から非推奨であるという警告を表示してくれており、新しいメソッドへ切り替わっているためテストがしっかりと行われていれば問題なく検知することができます。
Phoenixに関しては、CHANGELOGのupdrade instructionsにアップデートをどのように行なっていけば良いか記載されておりますので、そちらを実際に実行していただければ問題は発生しないという状況でした。
1.2から1.3はディレクトリ構造なども変わっており、アップデートがそれなりに厳しいものとなりそうですが、記述がしっかりと行われておりますので安心してアップデートを実行していくことができました。
またErlangのバージョンアップに関しても、Elixirと同じく非推奨になる機能は数バージョン前から非推奨であるということがワーニングとして表示されますので驚くようなアップデートは少ないっと感じております。
上記のElixir-Phoenixのアップデートを実際に行ってみたことは仕事でのElixir-Phoenix環境のアップデートを行う際の自信となり自信を持ってアップデートを実行していくことができました。
運用知見
個人で運用を行なっているアプリケーションに関しまして人の流入数も少ないということもあり、また機能自体も少ないこともありますがエラーなども特に発生せず、問題が発生していないため運用しての知見はたまっていない状態となります。
個人で運用を行なっていますのでコストをかけずに良い感じに動いてくれて安心して任せられておりますが、問題点を発見するという意味では問題が発生していないのでという状況になります。
この辺りに関しましては個人活動としてアップデートを行い人の流入数を増やしていくことによって何かしらの問題を発生させて情報を共有できれば良いなっと考えています。
まとめ
Elixirについての情報はまだまだ少ない状態ですので発生した問題は共有し、Elixir界隈を盛り上げていければと考えております。
Erlang & Elixir Fest 2018 お疲れ様でした
また今後の活動、そして来年のErlang & Elixir Fest 2019の時もよろしくお願いいたします。