🤖

🤖

:gijutsu_burogu:

2020-08-01から1ヶ月間の記事一覧

3ヶ月のブログメンタリングを通して学んだこと考えたこと

ブログメンタリングについて 6, 7, 8 月と @kakakakakkuさんのブログメンタリングを受けました。 週 2 で記事を投稿するルールを定めて、もし達成できない時は次の週に足りない分を追加で書きます。 例えば、食中毒になり 1 記事も書けなかった週がありまし…

Goのお作法を学んでセルフコードレビューしてみた

Go

はじめに 業務以外で Go でツールを作ったり、Twitter Bot を作ったりしています。 しかし、コードレビューを受ける機会がなく良い Go の書き方が身につかないのではと不安になりました。 そこで、さまざまな記事を参考にしてコードの書き方を学んでみました…

ISUCON: DBのデータをメモリに載せて高速化する

はじめに やり方 どのデータをオンメモリに載せるか どう実装するか 1. グローバルで変数を宣言します。 2. 初期化処理/initializeでメモリに載せます。 3. SQL を叩いて取得している部分をメモリに載せた Map から取得するように変えます。 おわりに 参考 …

CI上でのマルチステージビルドにおけるキャッシュ活用の銀の弾丸を見つけたかもしれない(Buildx, BuildKit)

銀の弾丸 以下でキャッシュ活用、ビルド、Push をよしなに行ってくれます。 $ docker login -u $DOCKERHUB_USER -p $DOCKERHUB_PASS # Docker Hub や ECR にログイン $ export DOCKER_CLI_EXPERIMENTAL=enabled # Buildxを有効にする $ docker buildx create…

Dockerfileを書かずにBuildpacksで圧倒的に軽量なDockerイメージを作成する(539MB->245MB)

はじめに 2018 年 10 月に Cloud Native Buildpacks は Cloud Native Computing Foundation (CNCF)に Sandbox として受け入れられました。 CNCF には Kubernetes, Prometheus, Envoy, Fluentd など有名プロジェクトも多く受け入れられています。 Buildpacks …

VagrantでISUCONを練習しようとしてハマったことと計測の準備

はじめに これを利用して、ISUCON の練習をします。 github.com 以下でベンチマーカーを動かすところまでできます。 $ git clone https://github.com/matsuu/vagrant-isucon.git $ cd isucon9-qualifier-standalone $ vagrant up $ vagrant ssh # VM上で以下…

Docker で立てた CI で Docker Build する -Docker in Docker と /var/run/docker.sock

はじめに CI では毎回まっさらな環境でテストやビルドができます。 これには、多くは Docker が用いられています。 さらには、Docker で実現されたまっさらな環境でも Docker ビルドなど Docker を利用できます。 前提知識: Docker クライアントと dockerd d…

キャッシュのためにDockerビルドで中間イメージをタグ付けしレジストリにPushする

WHY: なぜ中間イメージをタグ付けするのか 今では Docker イメージの軽量化のためにマルチステージビルドは欠かせません。 ローカルでの実行では問題ありませんが、CI 環境などの dockerd が毎度変わる Docker In Docker(dind)では問題が起こります。 最終イ…

Twitter Account Activity API を使ってリプライ自動返信する(Go)

Go

概要 Twitter Account Activity API を使うことでリプライの自動返信をできます。 しかし、手順が複雑であり公式ドキュメントも分かりにくいと感じたため記事にまとめます。 リプライの自動返信には以下の二段階が必要です。 認証を行いアプリケーションを W…