ブログ

豆蔵エンジニアの技術ブログ

  • |ブログ|9 min read
    #k8s#container#CI/CD#Flagger#nginx

    Flagger と Ingress Nginx でA/Bテストをする

    前回は、FlaggerとNginxのIngress Controllerを使ってカナリアリリースを試しました。 Flagger と Ingress Nginx でカナリアリリースをする 今回はA/Bテストの方を試したいと思います。 前回のカナリアリリースは、徐々にカナリアバージョンのトラフィック量を増やしながら切り替えていく形でした...

    記事を読む
  • |ブログ|2 min read
    #CI/CD#GitHub

    GitHub Actions ジョブサマリー機能を使う

    GitHub Actions のジョブサマリー機能がリリースされました。 Supercharging GitHub Actions with Job Summaries | The GitHub Blog ワークフロー内で、GITHUB_STEP_SUMMARY 環境変数を用いてワークフロー実行中の情報を出力できます。出力内容はワークフロー実行のサマリーページに表示されます。GitHub Flavored Markdown が使えますので、表現力は十分でしょう...

    記事を読む
  • |ブログ|4 min read
    #JetBrains

    JetBrains Gateway の Gitpod 統合を使って IntelliJ IDEA でリモート開発する

    JetBrains の IntelliJ IDEA は根強い人気を誇る IDE です。先月末に JetBrains Gateway と Gitpod を使ってリモート開発が可能になったというアナウンスがありました。 JetBrains Gateway と Gitpod を使ったリモート開発 | JetBrains News Gitpod は IDE をホスティングする SaaS で 従来は VS Code as Service のような存在でした...

    記事を読む
  • |ブログ|18 min read
    #k8s#container#CI/CD#Flagger#nginx

    Flagger と Ingress Nginx でカナリアリリースをする

    Kubernetesはデフォルトではローリングアップデート(RollingUpdate)とPod再生成(Recreate)をデプロイ時の戦略として利用できます。 特にデフォルトのデプロイ戦略であるRollingUpdateは、ゼロダウンタイムで順次新バージョンをリリースさせていく方式ですが欠点もあります。 たとえば、Pod(アプリケーション)の起動には成功するものの、バグ等が原因で正常なサービスとして提供できていない場合です...

    記事を読む
  • |ブログ|14 min read
    #Backstage

    Backstageで開発者ポータルサイトを構築する - カタログ作成

    以前以下のブログでBackstageの紹介と導入に関する記事を書きました。 Backstageで開発者ポータルサイトを構築する - 導入編 今回はこの続きで、Backstageを利用して実際にコンポーネントを登録してみたいと思います。 ここでは、Backstageの以下のコア機能を利用します...

    記事を読む
  • |ブログ|3 min read
    #k8s#container

    Kubernetes v1.24がリリースされました

    2022/05/03 Kubernetesのv1.24がリリースされました。 Kubernetes 1.24: Stargazer 詳細な変更履歴はこちらで確認できます。 以下個人的に大きいと感じた変更点についてまとめてみました。 Dockershim削除 # 今回のリリースで一番の目玉はやはりDockershimの削除でしょうね。 v1.20でDeprecatedになったDockershimが削除され、v1.24以降はコンテナランタイムとしてDockerは使えなくなります...

    記事を読む
  • |ブログ|4 min read
    #k8s#container

    Mizu(水)でマイクロサービスのトラフィックを分析する

    --> Caution本記事の内容は古くなっています。MizuはKubesharkにリブランディングされていることを確認しています。 GitHub - Kubeshark Kubernetesでおもしろいツールを見つけたので、ご紹介したいと思います。 その名もMizuです。ロゴを見れば分かるように日本語の「水」から名付けられたものです...

    記事を読む
  • |ブログ|10 min read
    #Backstage

    Backstageで開発者ポータルサイトを構築する - 導入編

    依存関係にある他チームで開発しているAPIの情報を探すのに社内リソースを探し回った経験はないでしょうか? 小さな組織ではあまりないかもしれませんが、ある程度の組織になると、管理対象のシステムが数百から数千といったオーダーで構成されることが多いかと思います。 その結果、目的のものを探すためにあちこち探し回り、見つかったと思ったらほしい情報がそこにはなく途方に暮れる。。なんて経験が私はよくあります。 今回こんな悩みを解決するものとして、BackstageというOSSプロダクトを試してみたいと思います...

    記事を読む
  • |ブログ|3 min read
    #continuous-architecture

    アーキテクチャ・デシジョン・レコードの勧め

    庄司です。 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は関数のオーケストレーションをするものです...

    記事を読む
  • |ブログ|3 min read
    #DDD

    ドメイン駆動設計のコンテキストマップ

    庄司です。 ドメイン駆動設計の戦略的設計では、システム全体をどのように境界づけられたコンテキストを統合するかを表すコンテキストマップ (Context Map) を描きます。さらに、このコンテキストマップには時間の経過とともに、コンテキストが追加、更新、削除のように修正されていくことも考慮しておく必要があります。 したがって、コンテキストマップは単なる画像としてではなく、git などのバージョン管理ツールで比較が容易なテキストで記述できると便利です...

    記事を読む
  • |ブログ|9 min read
    #CI/CD#dagger

    話題の 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 はパイプラインを構成するジョブの依存関係グラフのことです...

    記事を読む
  • |ブログ|5 min read
    #minikube

    Minikube のプロファイルを使いこなす

    Minikube を使ってコンテナアプリを開発してると、目的別にクラスターを切り替えて使いたくなることがあります。 ふだんアプリ開発に使っているクラスターと別のクリーンなクラスターで作業をしたい テストのため、特定のバージョンの kubernetes でクラスターを構成したい Docker 以外のコンテナランタイムを試したい など。Minikube はデフォルトで minikube というプロファイルでクラスターを起動します...

    記事を読む
  • |ブログ|2 min read
    #CI/CD#GitHub

    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で直接呼び出す機能追加を発表しました...

    記事を読む
  • |ブログ|6 min read
    #electron

    Intel / M1 Mac で動作する Electron バイナリを作る - 2022.4

    M1 Mac では Rosetta により Intel Mac 用のバイナリを動かせますが、できれば Apple Silicon 用のバイナリを提供したいところです。 electron-builder は M1 Mac にも対応しており、Intel Mac と M1 Mac でクロスコンパイル可能です...

    記事を読む
  • |ブログ|4 min read
    #retrospective

    豆蔵デベロッパーサイトローンチから4ヶ月のふりかえり

    本サイトもローンチから4ヶ月経ちました。 「豆蔵デベロッパーサイト」ローンチのお知らせ | 豆蔵デベロッパーサイト この期間の活動を軽くふりかえってみます。 継続的な記事公開 # 当初からある「コンテナ」カテゴリー。 コンテナ | 豆蔵デベロッパーサイト Kubernetes チュートリアルが、環境構築編、開発編を経て運用編に突入。ハンズオン形式で実践的な内容になっていると思います。チュートリアル以外の活用編の記事を含めると30本近くの記事を公開しています...

    記事を読む
  • |ブログ|2 min read

    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 を通じたアクセスのみを許可している場合が多くあります...

    記事を読む
  • |ブログ|5 min read
    #wasmer#WASM

    スタンドアローンおよび言語組み込みの WebAssembly ランタイム Wasmer

    WebAssembly (Wasm) はブラウザで実行可能なバイナリフォーマットの標準として策定され、各ブラウザベンターにより実装されました。その後 Wasm の実行効率、ポータブルでセキュアな特徴をブラウザ外でも利用可能にするため WebAssembly System Interface (WASI) が策定されました。Wasmtime や Wasmer などの WASI 対応 Wasm ランタイムが開発されています...

    記事を読む

豆蔵では共に高め合う仲間を募集しています!

recruit

具体的な採用情報はこちらからご覧いただけます。