ENECHANGE Developer Blog

ENECHANGE開発者ブログ

ランダムにおちるfeature/system specへの対応とリトライ機構

背景

プラットフォーム事業部のtaki(@yuyasat)です。ENECHANGE社には2016年10月から参画し、主にRuby on RailsやJavaScriptまわりの実装を行っています。

ENECHANGE社の顔とも言えるサービスが、電気・ガス比較サイト エネチェンジです。WordpressとRailsでできており、リポジトリのfirst commitから4年以上が経過しています。確認したところ、first commitはCTOの白木で、2014年5月16日でした。会社の設立が2015年4月ですから、会社の歴史よりも長い歴史をもつリポジトリということになります。ENECHANGE社の前身はCambridge Energy Data Labで、その当時に開発が開始されたわけです。

そんな4年以上の歴史を持つリポジトリですが、機能も増え、申し込み可能な電力会社も増えてきており、それに伴って自動テストの数も増えてきています。また昨年Vue.jsを導入するなど、フロントエンドもリッチになってきており、絶対に落とせない画面に関してはfeature specも書いています。[^1]

feature specが増えてくると悩まされるのが「テストが通るときもあるんだけどたまにおちる」「自分のlocalでは通るのにCI上では通らない」といったことです。100%落ちるのであればデバッグがしやすいですが、環境依存だったり、通ったり落ちたりすると原因究明に時間がかかります。通ることもあるものですから、Rebuildして通ればOKとしている開発現場も多いでしょう。

続きを読む

Terraformのdiff(差分)を見やすくする

プラットフォーム事業部のtaki(@yuyasat)です。 最近、とあるクライアントのインフラを構築しています。いつもであればインフラの基本的な構築はインフラ部門に任せます。ですが、今回は、ElasticBeanstalkがメインとなる構成であるものの、Webサーバだけでなく、バッチ処理を行うためのWorkerも利用し、さらにAWS Lambda等とも連携するため、構築後の動作確認は主にアプリケーションエンジニア側で行なっています。

一発でうまくいけばいいのですが、大抵は設定漏れや環境変数が間違っているなど様々な理由により、初回構築時はうまくいきません。その原因追求のため、アプリケーションエンジニア側でも環境を再構築することがあります。その際、弊社ではインフラを Terraform で管理しているので Terraform のコマンドを実行することになります。

続きを読む

第二回開発合宿(日帰り)を開催しました

エネルギースタートアップ、ENECHANGE株式会社 CTOの白木@shirakiaです。

第一回の開発合宿では旅館で一泊の形式だったのですが、ライトウェイトに形を変えて第二回を行いました。 という事でこの記事では、第二回開発合宿の様子をご紹介いたします。

今回は業務とは無関係に、エンジニアが各々スキルアップしたい内容に取り組むという形式で行いました。 ENECHANGE株式会社では、通常業務範囲内の技術の習得はもちろん、普段利用しない技術を学ぶ時間も支援していきます。

サマリー

  • 日程:8/25(土) 11時くらい現地集合(宿泊なし)
  • 参加ルール:自由参加
  • テーマ:業務時間外なので、仕事以外ならなんでも良い(今必要なスキルアップ or OSS開発推奨)
  • スケジュール:11時朝会(各自やること発表)、以降机・ソファー等でもくもく作業、適当にランチに行く、18時成果発表、19時希望者で夜ごはん
  • 費用:場所代、移動費は会社持ち
  • 場所:池袋のおしゃれ部屋的なところ

朝会

まずは朝会からスタートです。この日何をするのかを、各々が発表していきます。この発表が各自のコミットメントを高め、その日一日のパフォーマンスを高めます。

f:id:shirakia:20180826233033j:plain
朝会はやはりスタンディングで

続きを読む

ALBで複数のWebサーバをコントロールする

こんにちは。先日、富士の麓でソロキャンで思う存分焚き火してきたCTO室のigaharaです。 今日は、フロントエンド開発者が使用しているサーバのサーバ証明書 の有効期間が過ぎてしまっており、「更新よろ」と言われていたタスクを隙間時間で対応した記事を書きたいと思います。

これまで、開発者用サーバのサーバ証明書は、サーバ毎に配置し更新時などは管理工数が大きくなりがちでした。この機会にAWSのACMでサーバ証明書を管理できるように構成を変更し、その過程で、ALBのホストベースによるルーティングを使用してホストヘッダ毎にリクエストを割り振るように再設計しました。 個人的にはECSで開発してほしいんですが、開発者側で事情がいろいろあるようなので、今後のタスクとして積んでおきます...!

続きを読む

Osaka RubyKaigi 01 のスポンサーをさせていただきました!

ENECHANGE株式会社 CTO の 白木 @shirakia です。 ENECHANGE株式会社として、Osaka RubyKaigi 01 でスポンサーをさせていただきました。 記事化が遅くなってしまい反省…。

regional.rubykaigi.org

実は弊社チーフエンジニア @cuzic がOsaka RubyKaigi の運営に関わっており、その縁もあって今回スポンサーをさせていただきました。

灼熱の土曜日でしたが、100人以上の人々が集まる盛況ぶり! 今回会社ロゴが変わった都合もあり、ノベルティが用意出来なかったのが残念…。

集中して話を聞く参加者の方たち (手前が@cuzic)
集中して話を聞く参加者の方たち (手前が@cuzic)

続きを読む

TerraformでIAMグループ・ユーザを作成する

  • こんにちは。熱い太陽光を浴びるとモリモリ元気が出る気がするCTO室のigaharaです。 今日は以前から社内からAWSの機能検証を気軽に実施できる環境がほしいというリクエストがあったため、新たにAWSアカウントを作成し、異なる権限をもったIAMグループを作成し、エンジニアごとに所属させたことを記事にしたいと思います。
続きを読む

ElasticBeanstalkのUI変更の際にTerraformで生じた問題

こんにちは。関東の梅雨入りする日が誕生日という雨要素の多いCTO室のigaharaです。 terraformでElasticBeanstalkの環境作成時にエラーが発生し、オーケストレーションが失敗したので、ちょっと調べてみたら、しょうもないことが原因だったので、泣きながら記事を書いてます。

続きを読む