ログ収集・分析(Fluent Bit / Amazon CloudWatch)
前回はログの収集にFluent Bit、その分析にAWS OpenSearchを使用しました。 AWS OpenSearchは、非常に高機能な検索とリッチなUIを提供しますが、デメリットもあります。 まず、OpenSearch自体のセットアップ作業が別途必要です。特に、高スループットが予想される商用環境では、マルチノードでクラスターを組む必要がありますし、構成に応じてかなりのコストが発生します...
記事を読むHelidon Tips - Helidon MP Testing with JUnit5を使ってみる
CDIのテストはCDIコンテナが必要となる点やアノテーションをもとにした静的な依存解決が中心になることから融通が効きづらく悩ましい点がありました。Helidon MP Testing With JUnit5(Helidon MP Testing)は言ってしまえばHelidonを使ってJUnit5からCDIのテストを行えるようにしてくれるだけのライブラリですが、実際に使ってみると非常に便利で悩み多きCDIのテストを激変させる威力を秘めています...
記事を読むIntel / M1 Mac で動作する Electron バイナリを作る - 2022.4
M1 Mac では Rosetta により Intel Mac 用のバイナリを動かせますが、できれば Apple Silicon 用のバイナリを提供したいところです。 electron-builder は M1 Mac にも対応しており、Intel Mac と M1 Mac でクロスコンパイル可能です...
記事を読むログ収集・分析(Fluent Bit / AWS OpenSearch)
今回はログの収集と分析に焦点を当てます。 いつの時代もアプリケーションが出力するログは、障害解析やアクセス/証跡管理に欠かせません。 マイクロサービスのような分散アーキテクチャを採用した場合、1つのアプリケーションは複数のサービスで構成されることになります。 このため、管理対象ログファイルの数は以前と比較すると飛躍的に多くなり、ファイルレベルでなく、全体のログを一元管理するためのバックエンドサービスは不可欠と言えます...
記事を読むお手軽便利MicroProfile Config
勝手に選んだMicroProfile厳選仕様を紹介していく2回目はMicroProfile Config(MP Config)です。MP Configは前回の概要編で触れたとおりマイクロサービスでの利用が考慮された使い勝手の良い設定機能です。今回はその基本機能から特徴的な機能や応用機能まで実装例をもとに紹介していきます。 なお、記事はコードの抜粋を記載します。全体を見たい場合や動作を確認したい場合は以下のGitHubリポジトリを参照ください...
記事を読む豆蔵デベロッパーサイトローンチから4ヶ月のふりかえり
本サイトもローンチから4ヶ月経ちました。 「豆蔵デベロッパーサイト」ローンチのお知らせ | 豆蔵デベロッパーサイト この期間の活動を軽くふりかえってみます。 継続的な記事公開 # 当初からある「コンテナ」カテゴリー。 コンテナ | 豆蔵デベロッパーサイト Kubernetes チュートリアルが、環境構築編、開発編を経て運用編に突入。ハンズオン形式で実践的な内容になっていると思います。チュートリアル以外の活用編の記事を含めると30本近くの記事を公開しています...
記事を読むGitHub issue からブランチ作成する新機能 - issue と PR を自動リンク
issue の画面からブランチを作成する機能がリリースされました。 Create a branch for an issue | GitHub Changelog issue からブランチが作れると何が嬉しいのかパッとは分かりづらいですね。この機能により、従来 Pull Request (PR) 作成時 issue にメンション飛ばしたり issue から PR をリンクしたりしてたのが自動化されます。では使い方を見ていきましょう...
記事を読むHelidon Tips - SLF4J+LogbackへのLogger切り替え
HelidonのLogger実装にはJavaSEのJUL(java.util.logging)が使われています。これは標準を意識しての選択だと思われるためスタンスは理解できるのですが、実際のところJULはちょっと勘弁、、が正直なところかと思います。このため、使い慣れたLogger実装に切り替えたいところですが、SLF4Jなどのブリッジを利用せずコード上で直接java.util.logging.Loggerを利用する実装となっているため、他のLogger実装への切り替えが一筋縄ではいきません...
記事を読むS3 の静的 Web サイトをセキュアに Envoy でホスティング
庄司です。 モダンな UI のフレームワークは静的なコンテンツとしてパッケージングされることが主流となっています。これは変化の激しい UI とそれと比較すれば比較的変化のスピードが遅くてよいバックエンドとの関係で理にかなっています。UI のこうした静的なコンテンツの配信では多くの SaaS 製品で CloudFront のような CDN が利用されています。しかし、エンタープライズで利用されるフロントエンドの場合には VPN を通じたアクセスのみを許可している場合が多くあります...
記事を読むコードが仕様の源泉MicroProfile OpenAPI
勝手に選んだMicroProfile厳選3仕様を紹介する初回はMicroProfile OpenAPI(MP OpenAPI)です。MP OpenAPIは前回の概要編でも説明したとおり、API仕様の取得リクエストに対しソースコード上のアノテーション情報をもとに動的にOAS(OpenAPI Specification)ドキュメントを生成しレスポンスとして返す一連の仕組みを定めた仕様です...
記事を読むメトリクス収集・可視化 - OpenTelemetry / CloudWatch
前回はPrometheusとGrafanaを利用して、Kubernetesおよびアプリケーションに関するメトリクスの収集・可視化を行いました。 今回はOpenTelemetryとCloudWatchを使って同じことをしてみましょう。 OpenTelemetryとは? # OpenTelemetryは、メトリクス、トレース、ログ等のテレメトリー[1]情報のやりとりに関するインターフェースを規定する仕様です(現状ログはまだドラフトです)...
記事を読むスタンドアローンおよび言語組み込みの WebAssembly ランタイム Wasmer
WebAssembly (Wasm) はブラウザで実行可能なバイナリフォーマットの標準として策定され、各ブラウザベンターにより実装されました。その後 Wasm の実行効率、ポータブルでセキュアな特徴をブラウザ外でも利用可能にするため WebAssembly System Interface (WASI) が策定されました。Wasmtime や Wasmer などの WASI 対応 Wasm ランタイムが開発されています...
記事を読むメトリクス収集・可視化 - Prometheus / Grafana
今回のテーマはモニタリングです。 アプリケーションの運用が開始されると、ピーク時間帯や各種イベントに応じてシステム負荷は大きく変動します。 特に、マイクロサービスアーキテクチャでは、臨機応変なスケーラビリティや、無駄なのないリソース効率性とそれに応じたコスト最適化が求められます。 このような状況下では、各サービスレベルできめ細かい情報を収集・可視化することがより重要となります。 モニタリング編では、以下の項目に焦点を当て、それぞれハンズオン形式で実施してみたいと思います...
記事を読むGitHub のリリースノート自動生成機能を使う
昨年10月 GitHub のリリース機能がリニューアルされ、自動的なリリースノート生成とリリースページ作成 UI の改善が実施されました。 Improvements to GitHub Releases - generally available | GitHub Changelog 自動的なリリースノート生成については、これまで Release Drafter が使われてきましたが、この機能が本家に取り込まれた感じですね...
記事を読む使って分かった!お勧めMicroProfile仕様厳選3選
MicroProfileは大小様々な仕様が存在します。 前回紹介したサンプルアプリにMicroProfileの各機能を組み込んでフィット感を試してみた結果、MicroProfileを採用するのであれば『これは抑えておくベキ、もしくは使っておくベキ』と言える仕様がいくつかありました。今回はその中から厳選した3つの仕様をランキング形式で紹介します...
記事を読むGitHub Actions - 再利用可能ワークフローを使う
GitHub Actions のワークフローから別のワークフローを再利用する機能が昨年11月にリリースされました。この機能がなくて不便に感じていた人も多いのではないでしょうか。 GitHub Actions: Reusable workflows are generally available | GitHub Changelog Reusing workflows - GitHub Docs シンプルなワークフローを作って試してみました。 呼び出し側のワークフロー...
記事を読む使った、作った、Helidonで! - サンプルアプリの紹介
前回まではMicroProfile全体に関する軟らかめの話でしたが、今回からはMicroProfileでどのようなことができるか?そして使うのか?などの実装的な側面の話をしていきます。 その初回となる今回は、まずは動くものを見てもらう意味も含めMicroProfileを使ったサンプルアプリを紹介し、その後にMicroProfile実装として利用しているHelidonを説明します。サンプルアプリの中身は以降の回をとおして説明するため、今回はこんなのが有りますよ程度の説明に留めます...
記事を読むRust によるデスクトップアプリケーションフレームワーク Tauri
Tauri はクロスプラットフォームデスクトップアプリのための Rust によるフレームワークです。Electron と同様 Web 技術でアプリの UI を構築します。 Build smaller, faster, and more secure desktop applications with a web frontend | Tauri Studio 記事執筆時点で v1.0.0-rc.5 (Pre-release)、もうすぐ v1.0 がリリースされそうなところです...
記事を読むKubernetesのPod Security(PSS/PSA)
Kubernetesのv1.21で、今までPodセキュリティを担っていたPodSecurityPolicy(PSP)が非推奨となりました[1]。このままいくとPSPはv1.25で削除される予定です。 Kubernetesコミュニティ(Auth Special Interest Group)では、現在これに代わるものとして新たにPod Security Standardsを規定し、これをもとにPodのスペックを検証するPod Security Admissionを開発しています...
記事を読むMicroProfileってなにそれ? - MicroProfileの仕様と実装
前回はMicroProfileの登場からMicroProfileが目指すものまで説明しました。今回はMicroProfileの中身となるMicroProfileの仕様と実装について、私見も交えながら説明したいと思います。若干長い説明となりますが、最後まで目を通していただけたら幸いです。 --> 連載の紹介豆蔵デベロッパーサイトではMicroProfileをテーマに「逆張りのMicroProfile ~ Helidonで始めるマイクロサービスへの一歩 ~」を連載しています...
記事を読む