アーキテクチャ・デシジョン・レコードの勧め
庄司です。 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 ランタイムが開発されています...
記事を読むGitHub のリリースノート自動生成機能を使う
昨年10月 GitHub のリリース機能がリニューアルされ、自動的なリリースノート生成とリリースページ作成 UI の改善が実施されました。 Improvements to GitHub Releases - generally available | GitHub Changelog 自動的なリリースノート生成については、これまで Release Drafter が使われてきましたが、この機能が本家に取り込まれた感じですね...
記事を読むGitHub Actions - 再利用可能ワークフローを使う
GitHub Actions のワークフローから別のワークフローを再利用する機能が昨年11月にリリースされました。この機能がなくて不便に感じていた人も多いのではないでしょうか。 GitHub Actions: Reusable workflows are generally available | GitHub Changelog Reusing workflows - GitHub Docs シンプルなワークフローを作って試してみました。 呼び出し側のワークフロー...
記事を読む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を開発しています...
記事を読むDebezium によるチェンジデータキャプチャー
Change Data Capture (CDC) は、データベースで発生した変更をキャプチャーして別のシステムに伝播させ、応答できるようにする仕組みです。CDC を利用することで、テーブルの更新をポーリングするバッチ処理などを作り込まずに、イベントドリブンな応答処理を実装できます。CDC はイベントソーシングと並んで分散システムをリアクティブに連携させるためのソリューションとして位置付けられます...
記事を読むmacOS 上で Podman を動かす
2022年1月31日で Docker Desktop の移行期間が終了し、企業での使用は無償使用の条件に該当しない限り全て有償化されました。 有償化による金額の大小に関わらず、大企業での作業には予算の認可に時間が掛かったり、中小企業だとそもそも年度の予算が足りなかったりなど、さまざまな理由でライセンス料を支払う事が難しいケースもあります。 そこで Docker Desktop の代替となるツールの候補として、Podman について調査してみました...
記事を読むEnvoy を使用して ID Token (OIDC) を検証する
庄司です。 Envoy proxy は API を使って動的に構成すると無停止で設定変更等を行うことができます。このような操作は 通常 Istio や AWS App Mesh のようなコントロールプレーンで行うことになります。 この一連の記事では Envoy proxy 単体の機能を説明するために静的な設定を用いて説明しています...
記事を読むEnvoy と Open Policy Agent を使用した認可
庄司です。 Envoy proxy は API を使って動的に構成すると無停止で設定変更等を行うことができます。このような操作は 通常 Istio や AWS App Mesh のようなコントロールプレーンで行うことになります。 この一連の記事では Envoy proxy 単体の機能を説明するために静的な設定を用いて説明しています。 認証についての記事で OpenID Connect の ID Token の検証について説明しています...
記事を読む