GitHub Actions ジョブサマリー機能を使う
GitHub Actions のジョブサマリー機能がリリースされました。 Supercharging GitHub Actions with Job Summaries | The GitHub Blog ワークフロー内で、GITHUB_STEP_SUMMARY 環境変数を用いてワークフロー実行中の情報を出力できます。出力内容はワークフロー実行のサマリーページに表示されます。GitHub Flavored Markdown が使えますので、表現力は十分でしょう...
記事を読むJetBrains Gateway の Gitpod 統合を使って IntelliJ IDEA でリモート開発する
JetBrains の IntelliJ IDEA は根強い人気を誇る IDE です。先月末に JetBrains Gateway と Gitpod を使ってリモート開発が可能になったというアナウンスがありました。 JetBrains Gateway と Gitpod を使ったリモート開発 | JetBrains News Gitpod は IDE をホスティングする SaaS で 従来は VS Code as Service のような存在でした...
記事を読むFlagger と Ingress Nginx でカナリアリリースをする
Kubernetesはデフォルトではローリングアップデート(RollingUpdate)とPod再生成(Recreate)をデプロイ時の戦略として利用できます。 特にデフォルトのデプロイ戦略であるRollingUpdateは、ゼロダウンタイムで順次新バージョンをリリースさせていく方式ですが欠点もあります。 たとえば、Pod(アプリケーション)の起動には成功するものの、バグ等が原因で正常なサービスとして提供できていない場合です...
記事を読むBackstageで開発者ポータルサイトを構築する - カタログ作成
以前以下のブログでBackstageの紹介と導入に関する記事を書きました。 Backstageで開発者ポータルサイトを構築する - 導入編 今回はこの続きで、Backstageを利用して実際にコンポーネントを登録してみたいと思います。 ここでは、Backstageの以下のコア機能を利用します...
記事を読むMizu(水)でマイクロサービスのトラフィックを分析する
--> Caution本記事の内容は古くなっています。MizuはKubesharkにリブランディングされていることを確認しています。 GitHub - Kubeshark Kubernetesでおもしろいツールを見つけたので、ご紹介したいと思います。 その名もMizuです。ロゴを見れば分かるように日本語の「水」から名付けられたものです...
記事を読むKubernetes v1.24がリリースされました
2022/05/03 Kubernetesのv1.24がリリースされました。 Kubernetes 1.24: Stargazer 詳細な変更履歴はこちらで確認できます。 以下個人的に大きいと感じた変更点についてまとめてみました。 Dockershim削除 # 今回のリリースで一番の目玉はやはりDockershimの削除でしょうね。 v1.20でDeprecatedになったDockershimが削除され、v1.24以降はコンテナランタイムとしてDockerは使えなくなります...
記事を読む分散トレーシング(OpenTelemetry / AWS X-Ray)
前回はOpenTelemetryとJaegerを使って、エンドツーエンドでトレース情報を収集・可視化をしました。 ここで利用したJaegerは分散トレーシングに特化したOSSプロダクトで高機能ではありますが、実際に運用する場合は、その構成を慎重に検討する必要があります。 例えば、以下の対応が必須で必要となるでしょう...
記事を読むHelidon Tips - MicroProfile RestClientを使ったRESTリソースのJUnitテスト
HTTPプロトコルを用いた結合レベルのRESTリソースのテストはどのようにやられていますか? クライアントからE2Eテストでドカンと一緒に確認でしょうか?それともRESTリソースを呼び出す疑似クライアントプアプリを作成して実施でしょうか?あるいは真面目にやっていないとかでしょうか?いずれにせよHTTPレベルでRESTリソース(REST API)に対するテストを細かくやろうと思った場合、それなりに手間は掛かると思います...
記事を読むBackstageで開発者ポータルサイトを構築する - 導入編
依存関係にある他チームで開発しているAPIの情報を探すのに社内リソースを探し回った経験はないでしょうか? 小さな組織ではあまりないかもしれませんが、ある程度の組織になると、管理対象のシステムが数百から数千といったオーダーで構成されることが多いかと思います。 その結果、目的のものを探すためにあちこち探し回り、見つかったと思ったらほしい情報がそこにはなく途方に暮れる。。なんて経験が私はよくあります。 今回こんな悩みを解決するものとして、BackstageというOSSプロダクトを試してみたいと思います...
記事を読むアーキテクチャ・デシジョン・レコードの勧め
庄司です。 Michael Nygard 氏は「DOCUMENTING ARCHITECTURE DECISIONS」で、特にアジャイル開発では最初の時点でアーキテクチャが決まることはなく、また包括的なドキュメンテーションには価値がなく、小さなピースのドキュメントが全てのステークホルダーに必要となるため「アーキテクチャ・デシジョン・レコード (ADR: architecture decision record)」と呼ばれるドキュメントを提案しています...
記事を読むらくらくMicroProfile RestClient
MicroProfileの厳選仕様を紹介していくシリーズの最後は前回紹介した『これは抑えておくベキ、もしくは使っておくベキ』仕様第1位の筆者一押しのMicroProfile RestClient(MP RestClient)です...
記事を読むServerless Framework Composeで複数サービスをまとめて管理する
2022/04/20にServerless Frameworkの新機能Serverless Framework Composeがアナウンスされました。 Introducing multi-service deployments via Serverless Framework Compose 名前からも想像できるようにDocker Composeのように、Serverless Framework Composeは関数のオーケストレーションをするものです...
記事を読む分散トレーシング(OpenTelemetry / Jaeger)
今回はアプリケーションのパフォーマンスに焦点を当てます。 アプリケーションのパフォーマンスを分析するにはどうすれば良いでしょうか? 従来は処理時間等の情報をログに残し、これを集計することが多かったと思います。 単一サービスで構成されるシステムではこれで事足りることが多いですが、多数のサービスで構成されるマイクロサービスとなるとそうはいきません...
記事を読む話題の CI/CD ツール Dagger を体験してみる
Dagger は、Docker を開発した人たちによるポータブルな CI/CD ツールです。先月末公開されました。 Introducing Dagger: a new way to create CI/CD pipelines ポータビリティ実現のためコンテナ環境が前提になっています。 Dagger は DAG (Directed Acyclic Graph)に由来するものと思われますが、CI/CD の文脈で DAG はパイプラインを構成するジョブの依存関係グラフのことです...
記事を読むドメイン駆動設計のコンテキストマップ
庄司です。 ドメイン駆動設計の戦略的設計では、システム全体をどのように境界づけられたコンテキストを統合するかを表すコンテキストマップ (Context Map) を描きます。さらに、このコンテキストマップには時間の経過とともに、コンテキストが追加、更新、削除のように修正されていくことも考慮しておく必要があります。 したがって、コンテキストマップは単なる画像としてではなく、git などのバージョン管理ツールで比較が容易なテキストで記述できると便利です...
記事を読むMinikube のプロファイルを使いこなす
Minikube を使ってコンテナアプリを開発してると、目的別にクラスターを切り替えて使いたくなることがあります。 ふだんアプリ開発に使っているクラスターと別のクリーンなクラスターで作業をしたい テストのため、特定のバージョンの kubernetes でクラスターを構成したい Docker 以外のコンテナランタイムを試したい など。Minikube はデフォルトで minikube というプロファイルでクラスターを起動します...
記事を読むLambda Function URLでLambdaをHTTPで直接実行する
2022/04/06 AWSはLambdaをHTTPで直接呼び出す機能追加を発表しました...
記事を読むGitHub Actions ワークフローで個別ジョブのリランが可能に
先月、GitHub Actions でワークフロー内のジョブを個別にリランできる機能がリリースされました。 GitHub Actions: Re-run only failed or individual jobs | GitHub Changelog 以前の GitHub Actions ワークフローにおけるジョブ制御の記事で作ったサンプルのワークフローを利用して試してみました...
記事を読むログ収集・分析(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のテストを激変させる威力を秘めています...
記事を読む