Flagger と Ingress Nginx でA/Bテストをする
前回は、FlaggerとNginxのIngress Controllerを使ってカナリアリリースを試しました。 Flagger と Ingress Nginx でカナリアリリースをする 今回はA/Bテストの方を試したいと思います。 前回のカナリアリリースは、徐々にカナリアバージョンのトラフィック量を増やしながら切り替えていく形でした...
記事を読む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の以下のコア機能を利用します...
記事を読むKubernetes v1.24がリリースされました
2022/05/03 Kubernetesのv1.24がリリースされました。 Kubernetes 1.24: Stargazer 詳細な変更履歴はこちらで確認できます。 以下個人的に大きいと感じた変更点についてまとめてみました。 Dockershim削除 # 今回のリリースで一番の目玉はやはりDockershimの削除でしょうね。 v1.20でDeprecatedになったDockershimが削除され、v1.24以降はコンテナランタイムとしてDockerは使えなくなります...
記事を読むMizu(水)でマイクロサービスのトラフィックを分析する
--> Caution本記事の内容は古くなっています。MizuはKubesharkにリブランディングされていることを確認しています。 GitHub - Kubeshark Kubernetesでおもしろいツールを見つけたので、ご紹介したいと思います。 その名もMizuです。ロゴを見れば分かるように日本語の「水」から名付けられたものです...
記事を読むBackstageで開発者ポータルサイトを構築する - 導入編
依存関係にある他チームで開発しているAPIの情報を探すのに社内リソースを探し回った経験はないでしょうか? 小さな組織ではあまりないかもしれませんが、ある程度の組織になると、管理対象のシステムが数百から数千といったオーダーで構成されることが多いかと思います。 その結果、目的のものを探すためにあちこち探し回り、見つかったと思ったらほしい情報がそこにはなく途方に暮れる。。なんて経験が私はよくあります。 今回こんな悩みを解決するものとして、BackstageというOSSプロダクトを試してみたいと思います...
記事を読むアーキテクチャ・デシジョン・レコードの勧め
庄司です。 Michael Nygard 氏は「DOCUMENTING ARCHITECTURE DECISIONS」で、特にアジャイル開発では最初の時点でアーキテクチャが決まることはなく、また包括的なドキュメンテーションには価値がなく、小さなピースのドキュメントが全てのステークホルダーに必要となるため「アーキテクチャ・デシジョン・レコード (ADR: architecture decision record)」と呼ばれるドキュメントを提案しています...
記事を読むServerless Framework Composeで複数サービスをまとめて管理する
2022/04/20にServerless Frameworkの新機能Serverless Framework Composeがアナウンスされました。 Introducing multi-service deployments via Serverless Framework Compose 名前からも想像できるようにDocker Composeのように、Serverless Framework Composeは関数のオーケストレーションをするものです...
記事を読むドメイン駆動設計のコンテキストマップ
庄司です。 ドメイン駆動設計の戦略的設計では、システム全体をどのように境界づけられたコンテキストを統合するかを表すコンテキストマップ (Context Map) を描きます。さらに、このコンテキストマップには時間の経過とともに、コンテキストが追加、更新、削除のように修正されていくことも考慮しておく必要があります。 したがって、コンテキストマップは単なる画像としてではなく、git などのバージョン管理ツールで比較が容易なテキストで記述できると便利です...
記事を読む話題の 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 はパイプラインを構成するジョブの依存関係グラフのことです...
記事を読むMinikube のプロファイルを使いこなす
Minikube を使ってコンテナアプリを開発してると、目的別にクラスターを切り替えて使いたくなることがあります。 ふだんアプリ開発に使っているクラスターと別のクリーンなクラスターで作業をしたい テストのため、特定のバージョンの kubernetes でクラスターを構成したい Docker 以外のコンテナランタイムを試したい など。Minikube はデフォルトで minikube というプロファイルでクラスターを起動します...
記事を読むGitHub Actions ワークフローで個別ジョブのリランが可能に
先月、GitHub Actions でワークフロー内のジョブを個別にリランできる機能がリリースされました。 GitHub Actions: Re-run only failed or individual jobs | GitHub Changelog 以前の GitHub Actions ワークフローにおけるジョブ制御の記事で作ったサンプルのワークフローを利用して試してみました...
記事を読むLambda Function URLでLambdaをHTTPで直接実行する
2022/04/06 AWSはLambdaをHTTPで直接呼び出す機能追加を発表しました...
記事を読むIntel / M1 Mac で動作する Electron バイナリを作る - 2022.4
M1 Mac では Rosetta により Intel Mac 用のバイナリを動かせますが、できれば Apple Silicon 用のバイナリを提供したいところです。 electron-builder は M1 Mac にも対応しており、Intel Mac と M1 Mac でクロスコンパイル可能です...
記事を読む豆蔵デベロッパーサイトローンチから4ヶ月のふりかえり
本サイトもローンチから4ヶ月経ちました。 「豆蔵デベロッパーサイト」ローンチのお知らせ | 豆蔵デベロッパーサイト この期間の活動を軽くふりかえってみます。 継続的な記事公開 # 当初からある「コンテナ」カテゴリー。 コンテナ | 豆蔵デベロッパーサイト Kubernetes チュートリアルが、環境構築編、開発編を経て運用編に突入。ハンズオン形式で実践的な内容になっていると思います。チュートリアル以外の活用編の記事を含めると30本近くの記事を公開しています...
記事を読むGitHub issue からブランチ作成する新機能 - issue と PR を自動リンク
issue の画面からブランチを作成する機能がリリースされました。 Create a branch for an issue | GitHub Changelog issue からブランチが作れると何が嬉しいのかパッとは分かりづらいですね。この機能により、従来 Pull Request (PR) 作成時 issue にメンション飛ばしたり issue から PR をリンクしたりしてたのが自動化されます。では使い方を見ていきましょう...
記事を読むS3 の静的 Web サイトをセキュアに Envoy でホスティング
庄司です。 モダンな UI のフレームワークは静的なコンテンツとしてパッケージングされることが主流となっています。これは変化の激しい UI とそれと比較すれば比較的変化のスピードが遅くてよいバックエンドとの関係で理にかなっています。UI のこうした静的なコンテンツの配信では多くの SaaS 製品で CloudFront のような CDN が利用されています。しかし、エンタープライズで利用されるフロントエンドの場合には VPN を通じたアクセスのみを許可している場合が多くあります...
記事を読むスタンドアローンおよび言語組み込みの WebAssembly ランタイム Wasmer
WebAssembly (Wasm) はブラウザで実行可能なバイナリフォーマットの標準として策定され、各ブラウザベンターにより実装されました。その後 Wasm の実行効率、ポータブルでセキュアな特徴をブラウザ外でも利用可能にするため WebAssembly System Interface (WASI) が策定されました。Wasmtime や Wasmer などの WASI 対応 Wasm ランタイムが開発されています...
記事を読む