今週の進捗報告

このエントリーは日報サービスの進捗を報告するものです。

進捗

今週は本番環境の作り直しをしていた。作り直しは成功したが、ほぼ何も生み出してないのと大した学びもなかったので虚無感が生まれた。進捗ダメだけど、以下進捗内容。

  • Herokuでの作業内容
    • 本番環境はHeroku、Heroku pipelineを使っている
    • Heroku pipelineとproduction appの名前が同一になっていて、命名規則に対称性がなく気持ち悪かったのでappの名前をリネームした
    • app nameを手動で弄ったためにterraform周りの設定がうまくいかなくなり、まあどうせならと作り直す
    • Heroku ACMで使っているLet’s Encryptの更新に3,4日かかり、ハマった。原因がわからずひたすら祈ってた
    • pipelineとReview Appsはterraform管理できないので、手動で再設定
  • いいね機能を作っている
    • Reactつかってる.
    • いいね一覧は表示できた
    • あとはいいねのPOSTができるようにする

困ったこと

webpack(Railsのwebpacker)使っているんだけれども、webpackを起動させつつMacをスリープして作業再開すると更新が反映されなくて困ることが多々ある。今はdockerのimageを作り直したりと変なことしてるけど、別の解決方法みつけたい

与太話

Nintedo Switch&ゼルダを買ったので、世界を救いに行かなければいけない。今週も忙しくなりそう。

今週の進捗報告

これは個人的につくっている日報サービスの進捗報告をする週報です。

🌸

わりとキレイに撮れた気がする。

アニメ

鉄血のオルフェンズを見終わったので、今は花咲くいろはを見始めている。もう19話まで見たから、次のアニメ探してるのでオススメの作品あればTwitterで教えてください。

日報書いて100日達成

よく続いてる。エライ🎉

f:id:azuki_mihomiho:20170410015659p:plain

日報サービス

今週はインフラ周りを弄った週だった。Terraformを初めて触り、TerraformでHeroku・AWS(Route53とCoudFront、S3)のセットアップ、手動でHeroku Review Apps・CircleCi(恥ずかしながら1.0)のセットアップをした。いくつか悩んだけれど、1つははplanでは成功していたけど、applyしてみるとエラーがでてることがありplanというよりもprayといった感じ。みなさん、アレをどうやって運用してるのか気になる。

2つめはHerokuで独自ドメインSSLでどう扱うか。Herokuは固定IPが振り分けられないので、root domainに対してAレコードを設定できず、wwwなどのサブドメインを使い、root domain自体はS3などでwwwドメインにリダイレクトするのが定石になっている。ただ、SSL対応してるとS3のリダイレクトをうまく扱えないのでCloudFrontを前段に挟んで CloudFront => S3 => Heroku の構成にしようとしたがうまくいかず、 CloudFront => HerokuにしてRedirect処理はアプリ側で持つことにした。S3でRedirect処理したほうがアプリはシンプルになるので空きをみて後ほど改善したい。

初めてHeroku Review Appsを使ってみたけど、控えめに言って最高だと思う。既に成熟したサービスだとseedをつくるのは骨が折れる作業だと思うけど、新しいサービスだとやっておくといいと思う。適切にseedをつくっておけばエンジニアからディレクターへの動作確認が容易になったり、お試しな機能をつくった時の使い心地をみれたりとかメリットがあると思う。ここらへんのHeroku話はクラウドワークスさんの以下記事がすごい参考になった。ありがとうございます🙏 engineer.crowdworks.jp

最後に

生活リズム整えるために、夜に30分ほど走るとかやり始めたけど割と調子よいのでこれからも続けたい💨

今週の進捗報告 ~2017/04/01

はじまり

最近日報サービス作っていて最低限の形になってきた。

途中経過

直近の進捗

おわりに

明日はぱーっとスーパー銭湯行こう♨

あと、デザインダサいのでかっこよくしたい。

残タスク

  • redcarpetのtask list記法拡張
  • 基本色変える
  • コメント機能
  • PRDを書く
  • 本番環境にリリース
    • Heroku or GAE or AWS
    • terraform使いたい
    • review apps使いたい

がんばるぞいクラブの開発環境をDocker化した。

以下がんばるぞいクラブ の改善の続きです。

背景

がんばるぞいクラブの開発は Mac内にbrewRuby/Railsとnodejs、PostgreSQLを入れるオーソッドックスなやり方で行っていた。特にこれといった不満はなくこのままでよかったけれども、brew upgradeを実行した際にPostgreSQLが立ち上がらなくなってしまいうまく対処ができなかった。。そこで、開発環境のDocker化に重い腰を上げて取り掛かることにした。

Docker化にあたって事前にみた資料

あまりDockerに触ってなかったので、今回はDocker化に取り組む前に以下資料をみてDockerの学習をした。公式ページのTutorialがすごくわかりやすく、スムーズにすすめられたこと、Docker for Macを入れるだけでDockerのセットアップ自体は完了するのはよかった。

やったこと

コンテナの構成はdb(PostgreSQL)とweb(Rails)、node(webpack)の3つで、dbは既存イメージをそのまま使い、webとnodeはRubyのイメージを使って変更を加えている。webではRailsサーバの起動、nodeはWebpack(https://github.com/rails/webpacker)の起動をしていて、特段変わったことはしていないと思う。 bundleをキャッシュさせるためにGemfileのみをADDすること、Webpacker用のコンテナを立ち上げたりるべきかどうかを悩んだかも。Dockerfileとdocker-compose.ymlは公開するのでこうできるとありがたいです🙏

gistae1c403a80d0696a66fad484c2cff58d

おわりに

いざやってみると開発環境のDocker化はわりとすんなりとできてしまった。がんばるぞいクラブの開発は一人で行っているので、開発環境のポータビリティ性の向上といったメリットはないが、Mac内の環境の依存がなくなっただけでも導入の価値はあったのもかなと思っている。ということで、開発環境のDocker化はあまり工数かけずにできたのでおすすめです🙏

REF

今回以下の記事を参考にさせていただきました。特にSoftware Design 2017年02月号のDocker特集はこれまでDockerにあまり触ってなかった僕にはとてもわかりやすい記事でしたので、おすすめです。ありがとうございました!

Heroku+Let's Encryptを使ってHTTPS化する

以下がんばるぞいクラブのアップデートの続き。

2017年になったのでRailsアプリ(5.0.1)をHTTPS化することにした。HerokuのPaid Dyno($7/月)とLet’s Encrypt、gemを使えばHTTPS化できるので今回はそのやり方を紹介しようと思う。最初は自前でLet’s Encrypt対応しようと考えていたが90日(https://letsencrypt.jp/blog/2015-11-09.html)で証明書を更新しなければならず、その処理がめんどくさい&既にgemで提供されていたので今回はそれを使うことにした。そもそもLet’s Encryptの仕組みについて知りたい場合は公式ページが参考になるのでぜひ。Let's Encrypt の仕組み - Let's Encrypt 総合ポータル

手順概要

と、がんばって手順を書こうとしたが、力尽きたのでやり方の概略だけ紹介する。はじめの証明書発行はMac内で行い、証明書の更新処理はHeroku内でHeroku schedulerで行っているのがポイント。以下概略だけ。

という手順である。わりと手軽にできるのでやってみてくださいm( )m

REF

がんばるぞいクラブをRails5にアップデートした

最近は触ったことない技術を試しサンプルをつくることを無限に繰り返していたのだけれど、ちょっと実際に動いているものに適用しようと思い、がんばるぞいクラブで試してみることにした。

その第一弾、準備としてRails5.0.1にアップデートした。今まではRails4.2.5で動いていたので以下の手順でアップデートした。

  • Rails4.2の最新版にあげる(4.2.7)
  • Rails5にあげる
  • updateスクリプトを走らせる
  • スクリプトで消された部分を設定し直す

小さいサービスであること&Rails5にアップデートする知見が既に広く公開されていたことから特にハマることもなくできた。皆々様に感謝です🙏具体的な対応した箇所はこんなところだった。

対応箇所

activemodel-serializers-xmlいれた

ActiveModel::Serializers::Xmlがgemに切り出されたのでgemでいれて対応。

http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#xml-serialization

draperを3.0.0.pre1にあげた

decorator層を追加するgemのdraperですが、以下のようなRails側の変更でバージョンを上げる必要があった。

https://github.com/drapergem/draper/issues/681

Active Recordの継承元をApplicationRecordに変更

Rails5からModelはActiveRecord::Baseを直接継承するのではなく、ApplicationRecordから継承するようになっいてるのでそれに合わせて修正。

http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#active-record-models-now-inherit-from-applicationrecord-by-default

rails_12factorを削除

Railsのコア機能に組み込まれたのでgemの方は削除。herokuをつかっていたので、環境変数も設定した。

https://github.com/heroku/rails_12factor#rails-5

Rails5の自動読み込みの仕様変更に対応

以下のように設定。

Rails.application.config.enable_dependency_loading to true.

http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#active-record-models-now-inherit-from-applicationrecord-by-default

REF

Rails5アップデートに際して以下ページを参考にさせていただきました。ありがとうございました 🙏

2016年決定版 僕の行動指針

本エントリは「行動指針 Advent Calendar 2016」の2日目の記事です。

お久しぶりです。最近は「響け!ユーフォニアム」を見て感動してて、充実した毎日を過ごしています。

では早速、僕の行動指針を紹介していくぞい。

行動指針

悩んだらワイルドな方を選ぶ

これYahoo!Japan CEOのお言葉なんですが、僕の行動指針にしています。この言葉を知る何年か前、大学2年くらいからそういう意思決定をしていたように思います。その結果、つまらない・失敗だったという経験がないしワクワクして楽しかったので、今後も継続していきたい所存です。

人に期待しない

文字にするとすごい冷たい言葉になってて、びっくりなんですがまあ文字の通りです。人に期待をすると、期待が裏切られた時に怒りって感情が入ると思います。期待はせず、やってもらえたらHAPPYな考えると、その時はすごいHAPPYになります。

感情では怒らない

感情で怒ってるときって基本的に人のためではなく、自分のストレス発散だと思います。ロジックをちゃんと組み立てて説明するのが大事かなあと。書いてて思ったんですが、これって怒ると叱るの違いなのかなと。

人はみんな違って、でもそれがいい

人ってびっくりするくらいいろんな人間がいます。自分の考えとかルールを押し付けるとうまくいかない局面がいくつかでてきました。僕の場合。そんな時に「あの人はそう考えてるのね、なるほどね。たしかにそういう考え方もできるかもしれない」と人の考え方を理解するのが価値観が広がってよかったです。

石橋を叩いて叩いて叩いてどうするか考える

僕はすごい慎重な性格で、ものの大小によりますが、あらゆる可能性をできるだけ考えちゃいます。考えた上でこれなら大丈夫だなって時にやるかひくか考えます。優柔不断ですいません。。でも、まあしょうがないです。

試してみる

人から言われたことはできるだけ試してみます。そんな時間かからずにできてしまうことがほとんどなので。結局は人のレコメンドが最強かなと思ってます。

情を大事にしたい

感情では怒らないとか人に期待しないとか書いておきながらアレなんですが、人間の情はすごい大事にしたいです。なんだかんだ最後はロジックで動くことは少ないのが人だと思うので、情は大事。人を動かすとかに書いてあったような

おわりに

書きながらどんどん増えていってびっくりしてます。減らしてグルーピングとかもできそうだなあとも思ったのですが、そこは自分の思考の大きさを表してるってことで。

ここらへんがどんどんでてきたのはストレングスファインダーで自分の考えを知っておけたってのが大きいです。人から言われることであーたしかにそういう意思決定してたと認識することも多かったです。

明日は@yaginuuu さんです。人の行動指針をみるのはたのしいです。

本エントリは「行動指針 Advent Calendar 2016」の2日目の記事です。