くりにっき

フルスタックキュアエンジニアです

ISUCON11に1人チームで参加するためにやったこと #isucon

最初に モチベーション ISUCON歴 事前準備 準備期間 やったこと 事前に用意したもの&やったこと Sentryのbillingを有効化した SentryのSpike Protectionを無効化した デプロイスクリプト デプロイスクリプト解説 スニペット enable_monitoring.rb nr_mysql2…

ISUCONの素振りでisucon11-priorをやった

先週末にisucon11-prior(事前講習のハンズオン課題)をやったのでメモ github.com isucon.net 結果 最終的なサーバ構成 コンテキスト 事前にやったこと:AMI作成 作成手順 AMIから起動したEC2インスタンスへisuconユーザでログインする方法 8時間の素振りで…

至極の難問AWS & GCPクイズ

社内勉強会で発表したら好評だったので公開 注意 問題1 問題2 問題3 問題4 問題5 おまけ:発表中の社内の反応 余談 1年前の僕 2ヶ月前の僕 関連クイズ 注意 全問解けても仕事の役にはたちません ググるのは禁止 問題1 Q: 正しい組み合わせはどれか? AWS: Cl…

GitHub-native DependabotでもAuto mergeをやりたかった

tl;dr; 前置き GitHub Actionsでやる方法 Dependabot Auto Merge メリット デメリット 備考 Merge me! メリット デメリット Dependabot Pull Request Action メリット デメリット 番外編 Renovateを使う 近況 tl;dr; いくつかやり方はあるんだけどどれも一長…

gitpanda v0.9.5をリリースした

github.com https://github.com/sue445/gitpanda/blob/master/CHANGELOG.md#v095 gitpanda的にはこれといって新機能は無いのですが GitHub Container Registryが secrets.GITHUB_TOKEN に対応した ためDockerイメージをGitHub Container Registryにホスティ…

Go 1.16以降はGitHub版Dependabotを使った方がよさそう

前提 3rd party版Dependabot GitHub版Dependabot どうしてGo.1.16以降はGitHub版Dependabotを使った方がいいのか? 3rd party版 vs GitHub版 前提 一言でDependabotと言っても実は2種類あります 3rd party版Dependabot dependabot.com *1 設定ファイルは .de…

Cloud FunctionsにRubyのスクリプトをデプロイする時の裏側

前置き 注意点 Cloud Functionsのデプロイ方法 デプロイ時のログの場所 Cloud Functionsのデプロイで使われるビルド環境 Cloud Functionsのデプロイ時の処理 前置き 個人ツールをCloud Functionsで動かしてるのですがある日突然デプロイできなくなりました。…

プリパラのライブにおける緊急対応事例 #ノンシュガー

起きたこと 真相 配信アーカイブを見返しての感想 起きたこと 3/6(土)の NonSugar スペシャルイベント「約束のてへペロピタですわ!」byプリパラ の昼夜公演に現地勢として参加してたのですが、昼公演の楽曲中に演者の1人の山下七海さんが 歌ってる最中に…

ItamaeのCIをTravis CIからGitHub Actionsに移行した

tl;dr; 前置き:ItamaeのCIの式年遷宮の歴史 移行のモチベーション ハマったこと 良かったこと 悪かったこと tl;dr; github.com 前置き:ItamaeのCIの式年遷宮の歴史 僕がコミッタになる前はWercker + Vagrant + DigitalOceanを利用 僕とうなすけさん( id:y…

VagrantとVirtualBoxは別物

Twitterを見てるとたまにVagrantとVirtualBoxを混同してる発言があってその度にイラッとしてるのでメモ。 tl;dr; 雑な説明 VirtualBoxとは Vagrantとは よくある間違い tl;dr; DockerとVagrantはカバーしてる分野が異なるツールなので比較するのは間違い Doc…

tanuki_reminder 0.6.0をリリースした

gitlab.com GitLab 13.7でMergeRequestのReviewers*1が無料版に入ってきたので対応しました。 about.gitlab.com Assignsの他にReviewersにもメンションが飛ぶようになっています。 CHANGELOG全文 https://gitlab.com/sue445/tanuki_reminder/-/blob/master/C…

sentry-ravenを使ってるアプリは基本的にsentry-rubyに移行した方がよさそう

tl;dr; 経緯 詳しいこと 古いsentry-ravenについて 新しいsentry-rubyについて 注意点 余談:投げたパッチ一覧 tl;dr; SaaS版( https://sentry.io/ )を使ってる場合は sentry-raven から sentry-ruby へ移行推奨 オンプレミス版を使ってる場合にはSentryが…

Cloud FunctionsでRubyを使う時はdevelopmentやtestのgemはインストールされない

前置き 検証コード Gemfile app.rb ローカルでの実行結果 Cloud Functions上での動作確認結果 前置き Cloud Functionsにデプロイする時には gcloud functions deploy を使います。 そこで bundle install も自動で実行されるのだけど、その時に --without de…

至極の難問YAMLクイズ

前置き 練習問題 問題1 問題2 問題3 問題4 参考文献 おまけ:LT直後のみんなの反応 前置き 社内勉強会のLTで発表したら好評だったので投下 自称YAMLエンジニアのsue445が今まで踏んだ罠をクイズにしました Ruby 3.0.0の Psych で動作確認していますが他言語…

GitHub Actionsのpushイベントとpull_requestイベントではGITHUB_SHAが異なる

tl;dr; 検証内容 サンプルコード masterブランチに普通にpushした時 PullRequestに対してpushした場合 pushイベントの結果 pull_requestイベントの結果 解説 2021/01/08 追記 GITHUB_SHAが異なることで何が困るか 余談:tfnotifyでpull_requestイベントの時…

rubicure 2.0.0をリリースした

gem

rubicure (2.0.0): All about Japanese battle heroine "Pretty Cure (Precure)". https://t.co/2ImrcNQ9QI— rubygems_news (@RubygemsN) 2021年1月3日 https://github.com/sue445/rubicure/blob/master/CHANGELOG.md#v200 rubocopを最新にしようと思ったら…

今年作ったもの(2020年版)

今年新しく作ったものを作った順に紹介 go-mod-tidy-pr prismdb-ruby, faker-pretty_series gcp-kmsenv gcp-secretmanagerenv プリマップ go-mod-tidy-pr sue445.hatenablog.com 今年の頭に作ったやつでたまにPRきてる。 最近GitHub本体のdependabotの方で g…

今年買ってよかったもの(2020年版)

Amazonや楽天などの購入履歴からピックアップ エクスジェル アウルカンフィ3Dプレミアム Oculus Rift S プリパラ LIVE COLLECTION KPro01 エクスジェル アウルカンフィ3Dプレミアム exgel.jp 家だと座椅子なのですが座椅子で仕事しててクッションに不満があ…

細かすぎて伝わりづらいプリマップの改修ポイント #プリッカソン

これは #プリッカソン Advent Calendar 2020 - Adventar の2日目です。 10月の プリマップ 公開以降見た目はほとんど変わってないのですが裏側をちょいちょい改善してるのでメモ sue445.hatenablog.com ジオコーディング前に住所をいい感じにしている データ…

今更だけどアイカツ!16話のチケット5万枚を2秒で売り切るシステムについて本気で考察してみた

発端 お前誰よ? 前置き 構成 webサーバ データベース 決済システム 負荷試験 当日の監視 まとめ 余談 発端 この後20時からBNP公式YouTubeチャンネルで「アイカツ!」「アイカツフレンズ!」第16話を配信されるよ☆プレミア公開後はアーカイブされるのでそち…

Goで複数パッケージ構成のプロジェクトでもちゃんとカバレッジ集計する(GitLab編)

tl;dr; Goで複数パッケージ構成の場合何が問題か? GitHubの場合 GitLabの場合 本題:GitLabで複数パッケージ構成のGoプロジェクトのカバレッジを集計したい .gitlab-ci.ymlのサンプル tl;dr; gcov + lcovが無難 Goで複数パッケージ構成の場合何が問題か? G…

compact_blank gemのメンテを終了した

gem

Rails 6.1.0.rc1がリリースされましたが*1、activesupport本体に #compact_blank や #compact_blank! のメソッドが入った*2ので6.1.0.rc1以降と一緒に入れられないようにしてメンテ終了宣言しました。 github.com *1:https://weblog.rubyonrails.org/2020/11…

rubocop v1系 + rubocop-rspec v1系でエラーになる件の回避策

tl;dr; ケース1: rubocop-rspec内でエラーになる エラー内容 関連するissue 実際に対応したコミット ケース2: 意図せずrubocop-rspecのバージョンが下がる 注意点 tl;dr; どっちのケースの場合もrubocop-rspec v2.0.0.preで直ってるので Gemfile に下記のよ…

プリマップというプリパラやプリ☆チャンが遊べるお店を探せる地図を作った

タイトルが全て primap.web.app モチベーション 使い方 技術的なこと リポジトリ 大雑把な仕組み サーバサイド ジョブ フロントエンド その他使ったもの こだわりポイント Cloud RunからCloud Functionsに移行して変わったこと GoのstructからTypeScriptのcl…

pixela gem v2.0.0をリリースした

pixela v1.19.0 で機能削除が行われたのでgemのメジャーバージョンを上げました。 blog.a-know.me Breaking changeついでに他にも非互換の変更を入れています 変更内容と変更意図 https://github.com/sue445/pixela/blob/master/CHANGELOG.md faraday v0.x系…

gcp-secretmanagerenvを作った

gcp-secretmanagerenvについて 作った経緯 使い方 gcp-secretmanagerenvについて GCPのSecret Managerのラッパみたいなやつで、 gcp-kmsenv のSecret Manager版です。 github.com 作った経緯 本番環境(GCP)ではSecret Managerを使うのでいいんだけど、ロー…

Cloud Functions CI/CD俺的ベストプラクティス

AWS Lambda CI/CD俺的ベストプラクティス - くりにっき のCloud Functions版です sue445.hatenablog.com 最近Cloud Functions使うことがあってCI面からフレームワークなどを検討しました。AWS Lambdaほどガッツリ使ってないので比較対象が少ないのはご愛嬌 T…

GitHub Actions上でPRを作る時はsecrets.GITHUB_TOKENは使わない方がよさそう

事象 GitHub Actions上で使える secrets.GITHUB_TOKEN だと別のジョブを起動できないというのが一番の理由。 https://docs.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token 具体的…

#ginzarails にRuby on CIで発表した

RubyKaigi2020 用に準備してた資料の供養として発表させていただきました。 僕が知ってるCIの知見や2020年時点でのCIのトレンドはだいたい詰め込めたと思っています。 connpass ginza-rails.connpass.com スライド

gcp-kmsenvを作った

github.com モチベーション 使い方 FAQ Q. Secret Manager使えばいいのでは? モチベーション condo3 で app.yaml 内に Cloud KMS で暗号化した秘匿値を埋め込みやすくするために作ったモジュールをライブラリ化しました。 とはいえGoogle App Engine専用と…