1クール続けるブログ

とりあえず1クール続けるソフトウェアエンジニアの備忘録

お休み1ヶ月振り返り

記事一覧はこちら なぜ1ヶ月お休み? この1ヶ月でやったこと 読書 データ指向アプリケーションデザイン Site Reliability Workbook スイッチ! 趣味 分散システムの勉強(中途半端) 手動かしたもの 自作OS本 React/GatsbyJSに入門 式場探し 新しいノートテ…

細々とTravisJapanとINIを応援している話

沼には落ちていないので、俗に言う沼落ちブログというやつではないです。 モチベーション 応援するに至った経緯 きっかけ ジャニーズJrってそういう制度なん!? Travis Japan INI 近況 モチベーション 高校時代ニコニコ動画にハマっていて、自宅に帰ってき…

WSL1でみかん本を進める上で躓いたところ

背景・モチベーション WSL1を使うに至った経緯 WSL1で躓いたところ ディスクイメージをマウント出来ない 仮想マシンで生成されたファイルの中身が見れない 番外編: QEMUが動かない 背景・モチベーション 低レイヤを理解したいというのは、ソフトウェアエンジ…

s3selectを実行するGo製CLI を作ってみての気づきとか

背景・モチベーション CLIについて エラーハンドリングについて CLIで共通利用する設定はひとまとめにする テストについて 外部APIを利用するテストにはgomockを使う 設定ファイル読み込み関数はテストはStubを用意するのも一つの手 go testするときに -race…

CDK for TerraformがGoをサポートしたので試してみた

記事一覧はこちら 背景・モチベーション 参考文献 CDK For Terraform とは Getting Started 実装の初期段階まで Goのコードで実装 デプロイしてみる 使ってみての所感 背景・モチベーション CDKには元々興味がありました!CloudFormationでのyaml記述はやは…

sqlcを利用してGoのDB周りの処理を扱う

記事一覧はこちら 背景・モチベーション sqlcとは sqlcを利用する方法 sqlcのメリット database/sqlパッケージを直接利用することのデメリット gormなどの高レベルライブラリを利用することのデメリット sqlcを実際使ってみての感想 sqlcを実際に動かしてみ…

kustomizeでCRDのpatchesStrategicMergeを動かしてみる

記事一覧はこちら 背景・モチベーション 参考文献 どのようにCRDでpatchesStrategicMergeを実現するのか Kubernetes本体ではv1.16からCRDのapplyがJMPからSMPに変わっている kustomizeでCRDのSMPを行う方法 スキーマのfetchの問題点 実際にCRDでpatchesStrat…

conftestで複数ファイルを横断してチェックする

記事一覧はこちら 背景・モチベーション --combineオプションを利用する --combineオプションとは --combineオプションを利用した時のinputの内容が変わる 複数ドキュメントを横断してチェックしてみる 背景・モチベーション 以前にconftestの概要をざっくり…

kubebuilderを利用して簡素なk8sのControllerを作ってみる

k8s

記事一覧はこちら 背景・モチベーション Controllerを作るときの指針 参考文献 Controllerの作り方について Controllerの仕事 kubebuilderを利用して雛形を作り不要なものを捨てる Controllerの実装 実装の大枠 動作確認 背景・モチベーション Controllerを…

GitHub Actionsでmarkdownをpdfで出力する

記事一覧はこちら 背景・モチベーション MarkdownのファイルをPDFに変換するのはVS Codeのエクステンションで出来るけど、Github Actionsでpushするごとに自動で生成してくれたら楽だなあと思いやってみました。 ついでにパブリックベータで提供されている、…

競プロの勉強するときにテストも書く with Go言語

記事一覧はこちら 背景・モチベーション 前半をさっと流し読みだけで止まってしまっている問題解決力を鍛える!アルゴリズムとデータ構造をちゃんと解きながらやろう!と思い、重い腰を上げて取り組み始めました。 始めたはいいものの、入力と出力がそれぞれ…

GoのhttpサーバにおけるMiddlewareとは

記事一覧はこちら 背景・モチベーション 参考文献 GoのHTTPサーバの処理の流れ Middlewareの実装について 背景・モチベーション go-chi を好んで使うのですが、ふんわりとした理解でMiddlewareを宣言していました。Middlewareという名称も個人的にはあんまり…

ArgoCDでArgoCD自身を管理する

記事一覧はこちら 背景/モチベーション ArgoCDについて 概要 アーキテクチャ Core Concepts ArgoCDでArgoCD自身を管理する 方針 実践 動作確認 背景/モチベーション 業務で利用し始めたArgoCDリソースを個人でも試しておこうという試みです。ArgoCDをArgoCD…

docker buildxがマルチアーキテクチャでビルドできる仕組みをさらっと確認してみた

記事一覧はこちら 背景/モチベーション buildxとは 概要 ビルダーインスタンスとは マルチプラットフォームビルド QEMU で異なるアーキテクチャのコンテナイメージをビルドする QEMUとは dockerからQEMUが呼ばれる仕組み 果たしてbitbucket pipelineでマルチ…

external-dnsの仕組みを少し覗いてみる

記事一覧はこちら 背景・モチベーション EKS(or GKE)を運用するときにお世話になる external-dns をふんわりとだけ理解て利用してきたのですが、どのようにDNSレコードを操作しているのかをちゃんと理解したいと思ったのがきっかけです。 使い始めた当初は…

sealed-secrets 学んだ

記事一覧はこちら 背景・モチベーション ArgoCD導入時に、リポジトリやk8sクラスタの認証情報といったセンシティブな情報をk8sのSecretとして保存する必要が出てきました。さらにそれらをGitOpsで管理しなければなりません。 SecretをマニフェストとしてGit…

conftest学んで試してみた

記事一覧はこちら 要約 Conftestとは Open Policy Agentとは OPA Document Modelについて Rego Languageとは インストール方法 実行方法 Conftestが認識するルール ConftestでKubernetesのマニフェストをテストする Deploymentにポリシーを設定してみる 要約…

Grafanaのダッシュボードをgrafonnetを使って管理する

記事一覧はこちら 要約 jsonnetとは grafonnetとは jsonnet+grafonnet でダッシュボードを作成してみる 要約 Grafanaはすごくパワフルな可視化ツールですよね。 例えば、kuberntesやECSのクラスタ1つごとにダッシュボードを作成することも多いかと思います。…

EKSでのAWSユーザorロール認証の流れを追う

EKS

記事一覧はこちら 要約 EKSにおけるAuthentification(認証) aws-authの定義の仕方 要約 下記の記事で、k8s内のリソースからAWSのリソースを操作する時の権限のマッピングについて書いたけど、今回はIAMロールorユーザがk8sのリソースを操作する時の権限のマ…

EKSにおけるPodレベルでのIAMロール割当

記事一覧はこちら NodeレベルでのIAMロール割当しちゃってる… Kubernetesの中での権限制御 Kubernetesからawsリソースを操作する時の権限制御 ノード単位での権限制御 pod単位での権限制御 IAM Roles for Service Accounts OIDC (OpenID Connect) Service Ac…

mtail事始め

記事一覧はこちら mtail使っているけどちゃんと理解できていないかも… mtailについて 概要 入手方法 実行方法 メトリクスの公開先 mtailの設定DSL mtailのテスト 他にも色々機能がある… mtail使っているけどちゃんと理解できていないかも… という僕がmtailを…

mavenキャッシュをDockerコンテナに閉じ込めてビルド高速化を図る

最近、全く更新出来ていなかった。 もう少し一つ一つの記事を軽い気持ちで書いてみてもいいのかもしれない(個人ブログだし)。 記事一覧はこちら 概要 方法 概要 JenkinsやCodeBuildなど、Dockerデーモンを叩ける環境でMavenを使ったJavaアプリケーションの…

linux/amd64でlinux/arm64アーキテクチャのイメージをPullする

AWSでm6g/r6g/c6gとarmのCPUが乗った新世代のインスタンスタイプが続々とGAになりましたね。 自分の運用している環境でコストとパフォーマンスにどのくらいに改善が見られるのか楽しみですね。EKSのOptimized AMIのARM版はまだGAされていませんが、もしされ…

TerraformでGKEクラスタ構築

記事一覧はこちら 業務ではdeployment managerというGCPから公式が提供している、Google Cloudリソースの作成と管理を自動化するインフラストラクチャデプロイサービスを利用して、Kubernetesクラスターやノードプールの作成を行っています。 ですが、GCPの…

Accept-CharsetとContent-Typeの不一致でJerseyは404を返す

かなりハマってしまったので残しておきたいと思います。 とあるWebクライアントから通信を行った際に、ChromeやFirefoxなどのモダンブラウザではステータスコード 200 OK を返していたリクエストパスで、ステータスコード 404 NotFound を返す事象と遭遇しま…

Sassもさらっと学んだ

いつもはDockerやKubernetesとべったりなのですが、最近はWEBフロントエンド+サーバサイドの開発をやっています。 サーバサイドは新卒で入った会社から慣れ親しみがありましたが、その会社のクライアントサイドがWindowsのデスクトップアプリ(※)だったため…

画像はhtmlとcssのどちらで定義をすべきか

developer.mozilla.org 支援技術は背景画像を解析できません。画像がページの全体的な目的を理解する上で重要な情報を含んでいるのでいる場合は、文書上で意味を記述してください。 MDNのドキュメント内にある、cssのbackground-imageプロパティには上記のよ…

JSの履歴APIを使って同一ページ内での疑似遷移でもブラウザバックできるようにする

タイトルを付けるのが難しかった…未来の自分が見返したときにこれでピンとくるのだろうか? 例えば、下記のようなケースで同一ページでもユーザからするとページ遷移したかのように感じるということがあります。 Ajax通信でデータをフェッチし、既存のデータ…

JSをさらっと学んでみた

ちゃんと書いたことあるのが、GoとJava(とC#)だけの自分がJavaScriptを速習しました。というのも、業務で急に必要になってしまったからです。 以前少し触ったことがあるものの中途半端な状態で触るのも無責任と思い、下記を読んで、気をつけようと思った点…

apacheのmod_cacheでお手軽キャッシュ機構

ユースケース 下記のような条件下にあるが、どうしてもキャッシュを使ってみたい場合に、mod_cacheは有効なのではというお話。 Amazon CloudFrontやAkamaiなどのCDNが諸事情によって使えない場合 お金をこれ以上かけられない ログを特定のフォーマットで出力…