Docker Notaryで署名したイメージをDockerHubで公開する

はじめに ソフトウェアをインストールするさいにHashの検証や署名の検証などで、ダウンロードしてきたバイナリの信頼性を検証するみたいなのはよくやると思います。Dockerのイメージに対してこれがどのように解決されるかというところに理解が浅かったので、…

SkaffoldとHelmを使い環境の設定を切り替えてk8sリソースをデプロイする

はじめに 以前のブログでSkaffoldのローカルでの開発機能を試しました。もちろんSkaffoldはローカルでの開発をサポートするツールにとどまらず、テストやビルド、デプロイなどもサポートしています。 デプロイをおこない場合は環境ごとの変数をうまく切り替…

jcmdで何ができるかをまとめる

はじめに jcmdは起動しているJavaプロセスのGCの統計情報をとったり、JFR起動したり諸々のことを行なうのによく使われるツールかと思います。 今まで必要になったコマンドを調べて使うぐらいしかしたことなかったのですが、実際どのくらいのことができるのか…

KtorとKoinの組み合わでWebAPIを作る

はじめに KotlinでWeb開発するときに、Springが選ばれることが多いと思うのですが、個人的な思いとしてはKotlin由来のライブラリーやフレームワークをなるべく使いたいという気持ちがあります。 KotlinでそのへんをやるにはKtorとWebフレームワークとKoinと…

GitHub ActionsでGauge Test(Kotlin)を実行する

はじめに 仕事ではGaugeを使うことが多いのですが、GitHub Actionsを使って動かすにはどうすればいいんだろうかというところに興味が少しわきました。 そもそもGitHub Actionsをそんなに使ったことも無かったのでHello Worldも兼ねてやってみようかと思いま…

Skaffoldを用いてローカルでk8sにデプロイするJavaアプリの開発を行なう

はじめに 最近身の回りでSkaffoldという名前をよく聞くようになりまして、ちょっと気になって調べたら面白そうだったし、今後使っていきそうな雰囲気を感じたので、ちょっとさわっておこうかと思います。 Skaffoldとは? Skaffoldはk8sネイティブなアプリケ…

OperatorSDKでCustom ResourceとCustom Controllerを作る

はじめに k8sではいくつかの拡張ポイントが用意されています。その中でも、APIをカスタムするためのCustom Resourceや調整ループによってリソースオブジェクトの状態管理を行い、宣言的なAPIを可能にするCustom Controllerがあります。 まえまえからこの2つ…

Isito、k8sでカナリアデプロイをする

はじめに 先月の5月18日にIstioが1.10のリリースがされたみたいです。 その中でStable Revision Labelsと言う機能を使ってカナリアップデートを行なう例が乗っていて、最初言葉尻を完全に読み間違えていてアプリのカナリアデプロイが容易になると思ったので…

http4sのHTTP Serverを使ってみる

はじめに FS2に依存するライブラリはいくつかありますが、http4sというHTTPサーバとクライアントを用意してくれているライブラリがあり、ちょっと興味が湧いたので触ってみようかと思います。 http4sはFS2(と、もちろんCats Effects)をベースにしているの…

fs2を試す。

はじめに ScalaでReactorみたいなリアクティブなプログラミングをするにはどうすれば良い?みたいなのをScalaに詳しい同僚に聞いてみたところ。 FS2というライブラリを教えて頂いたので試してみようかと思います。 ただ、この時期ではリアクティブのところま…

ScalaTestとScalaMockでテストを行なう

はじめに 今後Scalaを触ることになりそうになのでちょっと勉強しておこうかと思いまして、まずはテストのやり方を確認しようかと思いScalaTestとScalaMockを使ってユニットテストを書いてみようと思います。 書いてみる 環境 今回の環境は以下の通り $ scala…

Spring Boot 2.5についてメモ

はじめに 今週(2020/5/20)にSpring Boot 2.5が出ましたが、どんなのが出たのかまとめて、なんとなく違いを把握おこうと思います。 基本的にはRelease Notesの内容を個人的に気になったところを少し深ぼって、自分の理解をまとめようと思うので、正確な情報は…

Ktorのログ出力をJsonに変える

はじめに まえにQuarkusで同じようなことをやったのですが、Ktorだとどうなるんだろうとふと思ってやってみようと思います。 先にお伝えしておくと、タイトル詐欺ではないですが、ほぼLogbackの設定の話になりKtor特有のものはなさそうでした。 主題とは関係…

Raspberry PiでKubernetes The Hard Way(v1.21.0)をやる(失敗)

はじめに 最近、Raspberry Piを買ってKubeadmを使ってKubernetesのクラスタを構築してみたので今度は、「Kubernetes The Hard Way」をやってみようと思います。 Kubernetes The Hard Way自体は、VirutalBoxを使ってやったみたことはあったのですが、その当時…

Raspberry pi 3 model b+にUbuntu18をインストールする

はじめに Twitterとかでにk8sのクラスターをラズパイ上に構築しているのをよく見かけていたのですが、自分もGWでちょっとやってみようかと思い。 その仮定で、ラズパイにUbuntuをインストールする必要があるみたいなのでメモとして残しておこうと思います。 …

JITWatchを動かしてみる

はじめに ちょっと前のどこかのイベント(おそらくJJUG)でJitWatchというのが紹介されていて、ちょっと気になってました。 このブログではJITWatchを動かして見ようかと思います。 紹介動画とかみつつ、自分の理解をまとめています。正確な情報は公式のGitH…

KtorのアプリからMicrometer+PrometheusでJVMのメトリクスを取得する

はじめに Ktorのドキュメント呼んでいたらMicrometerに対応してそうだというのを見かけてちょっと動かしてみようかと思います。 基本的にはドキュメントに書かれた流れを沿う感じでやろうかと思います。 あと、PrometheusはDockerを用いて起動します。 やっ…

Docker 20.10.0についてまとめる

はじめに だいぶ前ですがDokcer 20.10.0がリリースされています。かねてからやろうと思ってやってなかったのですが、リリースノートを眺めて、気になったところをかいつまんでまとめてみようと思います。 ものによっては動かしてみようかと。 やっていく 環…

QuarkusのDevServicesを試す

はじめに 先日、Quarkusの1.13がリリースされので、リリースブログを眺めていたのですがDevServicesという便利そうな機能が追加されていたので試してみようかと思います。 DevServicesとは DevモードでQuarkusを起動した場合、追加の設定無しでDBを起動して…

k8s上のSpring Bootアプリからメトリクスを取得する(Actuator + Prometheus Operator)

はじめに Kubernetes上でのSpring Bootのアプリのデバックを行なう際にPodのコンテナ内に応じて必要なコマンドとってきて、スレッドダンプやヒープダンプを取得してホストにコピーみたいなことをやっていたのですが、流石に面倒に感じはじめました。 そこで…

Minikubeにkube-prometheusを使ってPrometheusとGrafanaをデプロイする

はじめに 別のことがしたくて、Kubernetesクラスタの監視をPrometheus + Grafanaで行っている環境が欲しくて、いろいろ調べてたらkube-prometheusというのを見つけて、スターも多そうだったのでちょっと触ってみようと思います。 なおこのブログで特に指定が…

MandrelでQuarkusのアプリをネイティブイメージ化する

はじめに Quarkusのネイティブイメージ化したアプリを作ったことなかったのと、Mandrelという名前自体は聞いていたのですがQuarkusに関係するGraalVMぐらいの理解でしか無かったので、ちょっとまとめて動かしてみようかと思います。 基本的にはQuarkusのガイ…

Goのembedを使う

Go

はじめに Goの1.16からembed packageがcoreライブラリに追加されています。結構面白い感じの機能だったのでちょっと試してみようかと思います。 go enbedとは embedを利用すると静的ファイルをGoのプログラムに埋め込み、そこに対するアクセスを提供してくれ…

gockでHTTPリクエストをMockする

はじめに 最近はGo言語でWebアプリを書く際に使う諸々のライブラリを試してみているのですが、今はMockサーバをいろいろ見ていました。 Goの場合は標準ライブラリでもhttptestでいろいろ用意されていているみたいです。ただちょっと、そのまま使うには手間が…

GoのDIライブラリWireを試す

Go

はじめに GoのWebアプリは公私でなんとが作成したことがあったのですが、DIのライブラリをあまり使ったことが無かったなとふと思い。探してみたらGoogle製のアプリ、Wireがなんとなく目立ってたような気がしたので、Hello, worldとしてチュートリアルをやり…

jwt-goを試す

Go

はじめに JWTをGoで扱えるライブラリを少し探していて、検索して1番最初に出てきたのがjwt-goが出てきて、スターも多いしIsuueみる限り開発も盛んそうだったので使ってみようと思います。 そもそもJWTってなんぞ? よく聞くし、なんとなく理解した気ではいた…

S3 AWS SDK for JavaでMinIOのバケットとオブジェクトを操作する

はじめに 前回の記事でMiniIOを動かしてみたのですが、Javaのクライアントをいくつか試して見たいと思って、この記事ではAamazon SDKを使ってみようと思います。 前回同様MiniIOはDockerを用いて立てます。 使ってみる 環境 今回のプログラムを動かす環境は…

MinIOオブジェクトストレージとmcクライアントを動かしてみる

はじめに S3みたいなオブジェクトストレージで、ローカルで動かせるものが、なにかないか探しているときに、Minioというのがあることを教えてもらって、ちょっとインストールして、画像ファイルがダウンロードできるようになるまでやってみようと思います。 …

vmstatをつかってみる

はじめに vmstatというコマンドは名前は聞いたことあったのですが、あんまり使ったことなかったのでちゃんと使えるようになりたいと思ってちょっとまとめてみようかと思います。 vmstatとは vmstatコマンドはLinuxなどのOSでプロセス、メモリー、ページング…

Jaegerでk8s+Istio上のアプリ(Quarkus、Spring)を分散トレーシングする

はじめに 分散トレーシングをやる際にJaegerというツールがあって、試してみたいと思って試せていなかったのやってみようと思います。今回はMinikubeで作ったクラスターにIstioをデプロイして、 その環境でのトレーシングを行ってみようと思います。 Istioに…