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に…

KongのKubernetes Ingress Controllerを試す

はじめに 久しぶりにKongをちょっとお勉強したい気になってきたので、ドキュメントを眺めていたらKubernetes Ingress Controllerなるものを見つけました。面白そうだったので、とりあえず、動かすまでやってみようかと思います。 Kongの基本的なところとプラ…

atコマンドで指定時間にJobを単発実行させる

はじめに 最近、CrontabみたいなJobを定期的にスケジュールするのでは無くて、指定時間に単発で実行したいみたいな要件にぶち当たって、ちょっと調べていたらUnix系のOSにatというコマンドがあることに気がついたので機能を試して見ようかと思います。 at コ…

MinikubeにIstioをインストールする

はじめに 業務でKubernetesやIstioの機能の一部を利用することがあるですが、勉強のために試せる環境がほしかったのでローカルのMinikubeにインストールして見ようかと思います。 やってみる 動作環境 $ uname -srvmpio Linux 5.4.0-62-generic #70-Ubuntu S…

Reactor Publisherにおけるエラーハンドリング

はじめに 前回に引き続き、Reactive Springのを読んでいて、Publihsherのエラーハンドリングを行なうためのメソッド群が紹介されていたので、実際に動かして試してみようと思います。(書籍で紹介されていないものも結構あったので) 実際にやってみる 環境…

非Reactiveな非同期処理をFluxで扱う

はじめに Reactive Springを読んでいて、Flux.create()を使えば非Reactiveな非同期のイベントをReactiveのProducerにアダプトすることができるみたいなことが書かれていたので、実際に使って見て理解を深めたいと思います。 Flux.create()? Flux.create(Cons…

2020年振り返り

はじめに なんとなくいろんな人の振り返りみて、自分も振り返ってみようかとふと思ったので書いてみようかと。 ざっくり今年やったこと、あったこと 今年やったとことあったことをまとめると、以下のようになるかと思います。 転職して一年 ブログを平均して…

K6のシナリオを使ってみる

はじめに K6では負荷試験のシナリオを設定することが可能です。このブログではその機能を簡単に試してみてざっくりとした使い方を把握したいと思います。 このブログではK6をDockerを用いて起動します。また、テスト対象のアプリは以前のK6について書いたブ…