並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 378件

新着順 人気順

grpcの検索結果1 - 40 件 / 378件

  • GoでgRPCのAPIテスト環境を構築する - enechain Tech Blog

    はじめに JCEXで実践しているAPIテストについて 単体テスト 負荷テスト なぜAPIの単体テストを行っているのか API単体テストで使用するパッケージ 実例によるAPI単体テストの環境構築 前提 ステップ1: テストしたいAPIの定義 ステップ2: テストの作成 ステップ3: APIの実装 ステップ4: DBを使ったテスト ステップ5: ヘルパー関数化 ステップ6: テーブル駆動テストに変える ステップ7: フィクスチャを使ったテスト まとめ おわりに はじめに こんにちは、enechainのGXデスクでエンジニアをしている@ejiです。 GXデスクは、『日本気候取引所 - Japan Climate Exchange』 (以下 JCEX) のサービス開発を担当しており、 私は主にBFFとバックエンドのAPIをGoで開発しています。バックエンドのAPIは gRPC を使用しています。

      GoでgRPCのAPIテスト環境を構築する - enechain Tech Blog
    • gRPC Federation: gRPC サービスのための Protocol Buffers を進化させるDSL | メルカリエンジニアリング

      Merpay Engineering Productivity Team の goccy です。 gRPC Federation は、gRPC で通信する複数のサービスから得た結果を合成して返すようなサービスを簡単に作成するための仕組みです。DSL ( Domain Specific Language ) を Protocol Buffers 上で記述することで利用します。まずは、GraphQL(Apollo) Federation の gRPC 用のものだと考えるとわかりやすいと思います。2023年8月に OSS として公開し、先日 Public Roadmap を公開しました。2024/6月末を目標に Version 1.0 ( GA版 ) をリリースする予定です。また、最近は Protocol Buffers のエコシステムに参加しました。Protobuf Global Extens

        gRPC Federation: gRPC サービスのための Protocol Buffers を進化させるDSL | メルカリエンジニアリング
      • スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで - スタディサプリ Product Team Blog

        こんにちは。SREのkyontanです。Rubyが大好きなのでRubyの話をします。ちなみにリクルートはRubyKaigi 2024へGold Sponsorとして協賛しています! *1。ぜひ沖縄でお会いしましょう。 これはあるアプリケーションのメモリ消費量を示すグラフなのですが、まさかgemを入れ替えるだけでこんなに嬉しい変化が見られるとは思っていませんでした。今日はそんなgemの話をします。 話は遡って2023年4月のある日、インターネットを眺めていたところ、ShopifyがpitchforkというOSSを公開したという情報が目に留まりました。 調べてみると、どうやら著名なRackサーバー実装の1つであるunicornの派生版であり、メモリ使用量の削減に特化しているらしいのです。 github.com これはスタディサプリ小中高のあのリソースドカ食いマイクロサービス第一位である api

          スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで - スタディサプリ Product Team Blog
        • BufとProtobufで始めるモダンgRPC開発

          Protocol Buffers(Protobuf)を用いた開発(主にgRPC)にはprotocのようなコンパイラが長い間使われてきました。 コード生成やドキュメントの作成、REST APIとしてのゲートウェイの実装など便利で柔軟なprotocプラグインが利用できる一方、そのためのコード生成コマンドは複雑になりがちです。 こういったProtobufを用いた開発に関わるさまざまな問題をBufは解決するためにBuf CLIやBuf Schema Registry、Connectプロトコルなどさまざまなツールやプロトコルを開発しました。 本書ではBufが開発したさまざまなツールやプロトコルを使用し、現代的でモダンなProtobuf開発について紹介します。

            BufとProtobufで始めるモダンgRPC開発
          • LinkedInがREST+JSONではなくgRPC+Protobufを選んだ理由:Karthik Ramgopal氏とMin Chen氏とのQ&A

            垂直スケーラビリティと効果的なテストによる金融取引システムのパフォーマンスと効率の最大化 Peter Lawrey氏はJavaチャンピオンであり、Chronicle SoftwareのCEOとして、開発者を鼓舞してソリューションのクラフトマンシップを高めることに情熱を注いでいる。経験豊富なソフトウェアエンジニアとして、Lawrey氏はソフトウェア開発プロセスにおけるシンプルさ、パフォーマンス、創造性、革新性を奨励することに努めている。

              LinkedInがREST+JSONではなくgRPC+Protobufを選んだ理由:Karthik Ramgopal氏とMin Chen氏とのQ&A
            • Why LinkedIn chose gRPC+Protobuf over REST+JSON: Q&A with Karthik Ramgopal and Min Chen

              InfoQ Software Architects' Newsletter A monthly overview of things you need to know as an architect or aspiring architects. View an example

                Why LinkedIn chose gRPC+Protobuf over REST+JSON: Q&A with Karthik Ramgopal and Min Chen
              • gRPC はじめからていねいに - Qiita

                はじめに 現在配属されているプロジェクトで、既存システムのマイクロサービス化対応を行っています。 その中でgRPCも使っているのですが、名前は聞いたことがあって、なんとなくは知っているけど、実際に触ったことがなかったので、これを機に基礎から学んでみようと思いました。 ということで、「完全に理解した」状態を一緒に目指しましょう! gRPCとは Googleが開発したRPC(Remote Procedure Call)1を実現するためのフレームワークです。 Protocol Buffersというバイナリ形式のシリアライズデータを利用し、データをシリアライズして高速な通信を実現します。 (Protocol Buffersがデファクトスタンダード) protoファイルと呼ばれるIDL(Interface Definition Language)にAPIの仕様を記述し、サーバサイドとクライアントサイ

                  gRPC はじめからていねいに - Qiita
                • 多様なプロダクトが存在する freee における health check 標準化 - freee Developers Hub

                  こんにちは。freee の Platform Solution チーム1 に所属している nkgw (Twitter) です。 この記事は freee 基盤チーム Advent Calendar 2023 の 15 日目の記事となります。 普段は、エンジニアリングマネージャーをしつつ、新規プロダクトのリリースサポートとか、プロダクトのキャパシティプランニングやコンピューティングリソース調整などをやってました。 今回、freee のプロダクトにおける health check の標準化について取り組みました。health check の要件と非標準化がもたらす具体的な問題を整理しつつ、freee では実際にはどのように health check を定義したのかを紹介します。 その前に... 詳細な内容の前に、弊社のような複数のプロダクトが相互に依存関係があるような環境下における health

                    多様なプロダクトが存在する freee における health check 標準化 - freee Developers Hub
                  • Rust の tonic で gRPC の Richer Error Model を扱う — HACK The Nikkei

                    この記事は Nikkei Advent Calendar 2023 および Rust Advent Calendar 2023 の 10 日目の記事です. はじめに Wave チームの何でも屋さん 伊東 です. 社内に ito さんがたくさんいるので区別が大変です. 最近嬉しかったことは短期インターンシップ参加者に Haskell 使いが2人もいたことです. 弊社にも静的型付け関数型プログラミング言語を普及したいです. さて、弊チームのサービスのバックエンドには gRPC を利用しています. gRPC はクライアント・サーバー間でスキーマ駆動開発をするのに便利なツールですがエラーハンドリングに少し癖があります. gRPC のエラーモデルにはシンプルだが柔軟性に欠ける Standard error model と柔軟だが互換性に欠ける Richer error model があります. St

                      Rust の tonic で gRPC の Richer Error Model を扱う — HACK The Nikkei
                    • いまさら聞けないgRPCの基礎 - Qiita

                      はじめに この記事では、gRPCのgもRPCも何もわからないという方でもgRPCを理解できようにと思い書きました。できる限り丁寧な解説を目指したいと思うので、ここら辺がわかりにくかったなどがあればぜひコメントで教えてください! 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 gRPCの概要 gRPCはオープンソースのRPCフレームワーク(後述)です。Googleによって開発され、2015年にオープンソースとして公開されました。gRPCは一般的にマイクロサービス間での通信や、モバイルアプリとバックエンドサーバー間の通信で用いられます。 マイクロサービスとは、機能ごとにサービスとして独立させることを指します。マイクロサービス

                        いまさら聞けないgRPCの基礎 - Qiita
                      • 【書き起こし】gRPC Federation を利用した巨大なBFFに対するリアーキテクチャの試み – goccy【Merpay & Mercoin Tech Fest 2023】 | メルカリエンジニアリング

                        Merpay & Mercoin Tech Fest 2023 は、事業との関わりから技術への興味を深め、プロダクトやサービスを支えるEngineeringを知ることができるお祭りで、2023年8月22日(火)からの3日間、開催しました。セッションでは、事業を支える組織・技術・課題などへの試行錯誤やアプローチを紹介していきました。 この記事は、「gRPC Federation を利用した巨大なBFFに対するリアーキテクチャの試み」の書き起こしです。 @goccy:それでは「gRPC Federation を利用した巨大なBFFに対するリアーキテクチャの試み」というタイトルでメルペイ Engineer ProductivityチームのGoshimaが発表します。よろしくお願いします。 初めに自己紹介です。@goccyというアカウントで活動しています。2012年に新卒で株式会社MIXIに入り、

                          【書き起こし】gRPC Federation を利用した巨大なBFFに対するリアーキテクチャの試み – goccy【Merpay & Mercoin Tech Fest 2023】 | メルカリエンジニアリング
                        • UnityとC#で簡単にgRPCする in 2023

                          Turing株式会社のUXチームでインターンをしている東大4年の三輪です。 自動運転のUXを向上させるため、UXチームでは自動運転の「可視化」ソフトウェアの開発に取り組んでいます。 このソフトウェアはTuringが販売する車のディスプレイに搭載される予定です。AIが認識している世界をユーザにも見える形で示すことで、ユーザは自動運転AIの振る舞いをよりよく把握することができるようになります。 画面は開発中のものです 可視化ソフトウェアは、自動運転AIの出力を受け取り、解釈し、Unity上で描画します。この際、自動運転AIと可視化ソフトウェアの間の通信はgRPCで行うことになっています。しかし、Unity上でのgRPCはさまざまな事情でやや複雑な構成を取る必要があります。 この記事では、UnityでgRPCサーバを実装するステップを解説します。 gRPC gRPCはRPC(Remote Pro

                            UnityとC#で簡単にgRPCする in 2023
                          • マイクロサービス構成における NestJS での gRPC クライアントの運用戦略 - ドワンゴ教育サービス開発者ブログ

                            はじめに はじめまして、バックエンドセクションの yukimochi です。 現在、N予備校ではバックエンドのアプリケーションの移行計画が進んでいます。 その一環で、一部のマイクロサービス間通信についても REST API + OpenAPI の現状から gRPC へと移行することになりました。 私の参画しているプロジェクトである教材入稿ツールでは TypeScript + NestJS を採用しており、結合している他マイクロサービスとの通信でgRPCを利用する際の gRPC クライアントと、そのスキーマ定義を担う proto の運用戦略、実現方法について記します。 proto ファイルと型定義パッケージの取り回しについて考える スキーマ定義である proto をどこに保存するか スキーマ定義である proto をどこに保存しておくかは、 proto のバージョン管理の観点で重要です。今回

                              マイクロサービス構成における NestJS での gRPC クライアントの運用戦略 - ドワンゴ教育サービス開発者ブログ
                            • GoとgRPCを用いたサービスベースアーキテクチャへの移行|ONE CAREER Tech Blog

                              導入こんにちは。ワンキャリアでバックエンドエンジニアをしている田中(@kakke18_perry)です。業務では、ONE CAREER CLOUDの開発に携わっており、リアーキテクチャの一環で、一部の機能をGo+gRPCでリプレイスしています。 本記事では、そのリプレイスにおけるアーキテクチャや技術の選定理由と振り返りについてお話します。 背景現在のワンキャリアではプロダクトごとのモノリシックなアーキテクチャを採用しており、メインとしてRuby on RailsとVue、AWSを使用しています。社内にもナレッジが多く、優れたフレームワークであることから、開発生産性の向上に大きく寄与してきました。 一方で、複数プロダクトを開発運用する中で「認知負荷の増大」という課題が顕在化しつつあります。ONE CAREERはリリースから9年、ONE CAREER CLOUDはリリースから3年経過しており、

                                GoとgRPCを用いたサービスベースアーキテクチャへの移行|ONE CAREER Tech Blog
                              • モジュラモノリスのモジュール間通信の話

                                What's in a price? How to price your products and services

                                  モジュラモノリスのモジュール間通信の話
                                • GitHub - mercari/grpc-federation: gRPC Federation generates a gRPC server by writing a custom option in Protocol Buffers

                                  Imagine a system with a backend of multiple microservices. Instead of the client directly communicating with each microservice, it's more efficient to use a dedicated service (BFF - Backend for Frontend) to aggregate information and send it back to the client. However, as the system grows, determining which team should handle the BFF service becomes unclear. This is where Federated Architecture, l

                                    GitHub - mercari/grpc-federation: gRPC Federation generates a gRPC server by writing a custom option in Protocol Buffers
                                  • モノリスなRailsにモジュラーモノリスを導入した話 - hacomono TECH BLOG

                                    こんにちは、プラットフォームチーム所属のまこたすです。 昨今、様々な場で「モジュラーモノリスを導入した」という話を目にするようになってきました。弊社でも昨年からモジュラーモノリスの試験導入を進めており、社内でノウハウが徐々に溜まってきたため、今回 技術ブログ で なぜ導入したのかと知見の共有 をさせていただけたらと思います。 想定読者 モノリスなアプリケーションの分割を検討している Railsへのモジュラーモノリスの導入を検討している 話さないこと チーム体制がどうあるべきかという観点の話 以下アーキテクチャについての詳細 モノリスアーキテクチャ モジュラーアーキテクチャ 背景 今回「モジュラーモノリスを導入した」というタイトルですが、最初に検討・導入に至るまでの背景について触れたいと思います。 hacomonoという組織・サービスの成長 hacomonoというサービスはリリースから現在に

                                      モノリスなRailsにモジュラーモノリスを導入した話 - hacomono TECH BLOG
                                    • モバイルとの相性最強と言われるgRPCをFlutter x NestJSで実装し、Stream通信や認証、複数言語実装に使えるか試す

                                      まとめ 相性バツグンといわれる、モバイル x gRPCは思ったよりずっと簡単に実装可能 複数言語間でもProtocol Buffersの恩恵により型変換を意識することなくスムーズに開発が進められる。 メソッド、引数の型、引数の返り値の型が自動生成されるのでとても良い RESTful APIにおけるheaderを、表現力の高いMetaDataとして利用し、認証認可等にも使えそう Streamをうまく使いこなせば、ユーザー体験をめっちゃ高くできそう。チャットやゲームなどの双方向通信が比較的楽に実装できるかも どんな人向きでない記事? NestJSの詳しい実装を知りたい方 Bidirectional streaming, Client streamの詳細実装を知りたい方 モバイル向け通信技術の本格的な選択肢、gRPCを実際に試してみたい 現在、私の働いているMinediaで開発しているサービス群

                                        モバイルとの相性最強と言われるgRPCをFlutter x NestJSで実装し、Stream通信や認証、複数言語実装に使えるか試す
                                      • neue cc - Unity用のHTTP/2(gRPC) Client、YetAnotherHttpHandlerを公開しました

                                        Unity用のHTTP/2(gRPC) Client、YetAnotherHttpHandlerを公開しました 2023-07-28 Cysharpから(主に)Unity用のHTTP/2, gRPC, MagicOnion用の通信ネットワーククライアントを公開しました。実装者は週刊.NET情報配信WeekRef.NETを運営している@mayukiさんです。 Cysharp/YetAnotherHttpHandler 何故これが必要なのかの背景情報としては、Synamon’s Engineer blog - Unityでもgrpc-dotnetを使ったgRPCがしたい が詳しいのですが、まず、.NETには2つのgRPC実装があります。googleが提供してきたgRPCのネイティブバインディングのGrpc.Core(C-Core)と、Microsoftが提供しているPure C#実装のgrpc

                                        • Trace-based Testing the OpenTelemetry Demo

                                          With contributions from Adnan Rahić and Ken Hamric. The OpenTelemetry Demo is a system that simulates a Telescope Shop, consisting of multiple microservices written in different languages, each handling a specific capability of this distributed system. Its purpose is to demonstrate how OpenTelemetry tools and SDKs can be used in an application to obtain telemetry for monitoring results and even to

                                            Trace-based Testing the OpenTelemetry Demo
                                          • grpcでC#とpythonの通信をする - Qiita

                                            はじめに grpcでC#からpythonへ通信をする方法をまとめました。 リポジトリ:https://github.com/kz-000/grpc_example プロジェクトの構成は以下のようになっています。 grpc_example ├ api (protoファイル) ├ client (C#) └ server (python) API 今回はIDを受け取り、ユーザー名を返すような簡単なAPIを実装しようと思います。 //user.ptoro syntax = "proto3"; package api; message GetUserRequest { int32 Id= 1; } message GetUserResponse { string Name = 1; } service UserService{ rpc GetUser (GetUserRequest) return

                                              grpcでC#とpythonの通信をする - Qiita
                                            • gRPC Client on Cloudflare Workers

                                              Workers Tech Talks #1 で話した内容です。 https://workers-tech.connpass.com/event/287490/

                                                gRPC Client on Cloudflare Workers
                                              • GolangとCloud SpannerでgRPC APIを構築する #1 - Qiita

                                                この抜粋の内容は次のとおりです。 Cloud Spanner Emulator の導入 Spanner で CRUD gRPC API の実装: connect-go さらに詳しく知りたい方は読み続けてください。 2023年7月2回目です。 普段、ぼくたちの Database の第一の選択肢は、Cloud SQL です。 ですが、今後、可用性が求められるフェーズに対応するために、Cloud Spanner での開発について調査します。 Cloud Spanner は、今のサービス群で使うには高価です。最小サイズが Processing Unit になったとは言え。 一方で、強整合性を持ちながらグローバルな負荷分散が可能で、これを CockroachDB などで運用すると考えると妥当な価格であることも認識しています。 Cloud Spanner Emulator の導入 gRPC リクエスト

                                                  GolangとCloud SpannerでgRPC APIを構築する #1 - Qiita
                                                • Proto Best Practices

                                                  Clients and servers are never updated at exactly the same time - even when you try to update them at the same time. One or the other may get rolled back. Don’t assume that you can make a breaking change and it’ll be okay because the client and server are in sync. Don’t Re-use a Tag NumberNever re-use a tag number. It messes up deserialization. Even if you think no one is using the field, don’t re-

                                                  • OpenTelemetryでgRPCのヘルスチェックのトレースを無視する - YAMAGUCHI::weblog

                                                    はじめに OpenTelemetryを使ってgRPCのトレースを楽に取ろうと思うと otelgrpc を使ってよしなにリクエストのトレースを取っていることと思います。 たとえばサーバー側であれば interceptorOpt := otelgrpc.WithTracerProvider(otel.GetTracerProvider()) srv := grpc.NewServer( grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor(interceptorOpt)), grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor(interceptorOpt)), ) クライアント側であれば interceptorOpt := otelgrpc.WithTracerProvider(o

                                                      OpenTelemetryでgRPCのヘルスチェックのトレースを無視する - YAMAGUCHI::weblog
                                                    • Goとgrpc-gatewayでリバースプロキシを開発する――gRPCサービスのRESTful API化

                                                      Goとgrpc-gatewayでリバースプロキシを開発する――gRPCサービスのRESTful API化:スキマ時間にこっそり学ぶ「gRPC」入門(終) 第8回は、gRPCをサポートしないWebブラウザなどのクライアントからgRPCサービスを利用するためのリバースプロキシgrpc-gatewayを紹介します。プログラミング言語はGoです。

                                                        Goとgrpc-gatewayでリバースプロキシを開発する――gRPCサービスのRESTful API化
                                                      • net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023

                                                        https://gocon.jp/2023/sessions/A13-S/ https://github.com/k1LoW/httpstub https://github.com/k1LoW/grpcstub https://github.com/k1LoW/smtptest https://github.com/k1LoW/runn

                                                          net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023
                                                        • gRPC-Web を Cloud Run のサイドカー Envoy でやる

                                                          はじめに Cloud Run のマルチコンテナがパブリック プレビューでリリースされました。本記事ではマルチコンテナを使って、1 つの Cloud Run サービスでサイドカー Envoy を使った gRPC-Web サービスを構築します。 本記事は前半が Cloud Run にサービスをデプロイして Web から呼び出してみるパート、後半が説明パートになっています。説明だけ読みたい場合は前半をスキップしてください。 マルチコンテナについては以下の記事もぜひ参考にしてください。 やってみる 環境など 新しいプロジェクトと Cloud Shell での操作を想定しています。ローカルで操作する場合は必要なツール等を適宜インストールしてください。 サンプルのコードはこちらを使います。 事前準備 こちらをクリックしてください。Cloud Shell が開いてリポジトリがクローンされます。エディタは

                                                            gRPC-Web を Cloud Run のサイドカー Envoy でやる
                                                          • Cloud RunでOpenTelemetry Collectorをサイドカーとして動かす

                                                            こんにちは!Google Cloudでオブザーバビリティを担当しているものです!Cloud Runでマルチコンテナーサポートがパブリックプレビューになりましたね!これはCloud Runでサイドカーを走らせられるということです!というわけで今日は1ユースケースとしてOpenTelemetry CollectorをCloud Runのサイドカーとして走らせてみようと思います。 TL;DR Cloud Runのマルチコンテナーサポートを使うと、アプリケーション側はOTLP送信の実装だけして、OpenTelemetry Collectorをサイドカーとして走らせて、テレメトリーをCloud Opsや外部のオブザーバビリティツールに送ることが可能になります。 構成 Kubernetesで使っているようなポッド内のサイドカーの構成をCloud Runでもできますよ、というだけなので、それをわかってる

                                                              Cloud RunでOpenTelemetry Collectorをサイドカーとして動かす
                                                            • 【Connect/gRPC】connect-goとconnect-queryで型安全で高速なAPIを作る

                                                              はじめに Connect の学習のために簡単なタスクリストを作ったらとても学びがあったので共有します。 アプリ全体のソースコードもあるので誰かの参考になれば幸いです。 Connect とは? Connect は簡単に言うとブラウザ・gRPC 互換の HTTP API を構築するためのライブラリ群です。 gRPC とは Google が開発した RPC 技術のことで、異なるプログラミング言語間で高速に通信するためのフレームワークです。 Connect は gRPC のメリットをそのまま引き継いでおり、Protocol Buffers で API のスキーマ定義を記述するだけでバックエンドとフロントエンドのコードを自動生成してくれます。 コードの生成が終わったらあとは型の恩恵を受けながらロジックや UI の開発に注力できます。 Connect は Go 言語だけでなく様々な言語に対応しているた

                                                                【Connect/gRPC】connect-goとconnect-queryで型安全で高速なAPIを作る
                                                              • Introducing Cacheable RPCs in Connect

                                                                Resource caching is an effective strategy to improve performance and reduce load when running a service. Unfortunately, because gRPC requests use POST requests, implementing caching for gRPC services the way one would with RESTful services is often cumbersome or impossible. As part of our commitment to build a better RPC protocol, we’re pleased to announce that we have expanded the Connect protoco

                                                                  Introducing Cacheable RPCs in Connect
                                                                • A detailed comparison of REST and gRPC | Kreya

                                                                  Standardization​ One of the disadvantages of REST is the lack of standardization. REST is more of a paradigm than an API standard and many folks mean different things when talking about it. For most, the term "REST API" is used for HTTP-based JSON APIs. For others, REST is used interchangeably with certain specifications such as HATEOAS or JSON:API. But using XML instead of JSON would still make a

                                                                    A detailed comparison of REST and gRPC | Kreya
                                                                  • HTTP/2 と gRPC に対するよくある誤解。 - ねののお庭。

                                                                    以前 .NET ラボで 「C# と HTTP/2 と gRPC」というタイトルで登壇しました。その時のスライドがこちらなのですが、ちらほら反応を頂きました。その結果、HTTP/2 や gRPC について勘違いしている人がちょこちょこいる事が分かったので、少し補足を書こうと思います。 blog.neno.dev 1. HTTP/2 で向上するのはスループットであって、1リクエストあたりの応答時間ではないよ。 HTTP/2 を使うからといって、1 リクエストあたりの応答時間が短くなるわけではないのです。 まず、1 HTTP リクエストあたりにかかる時間を、RTT とかいったりします。 1 RTT の内訳はだいたいこんな感じになります。 1 RTT = ネットワーク上で往路にかかる時間 + サーバの処理時間 + ネットワーク上で復路にかかる時間 HTTP/2 になったからといって、ネットワークを

                                                                      HTTP/2 と gRPC に対するよくある誤解。 - ねののお庭。
                                                                    • scenarigoを用いたgRPCサーバのE2Eテスト実装事例|ONE CAREER Tech Blog

                                                                      はじめに(イントロダクション)こんにちは、ワンキャリアでバックエンドエンジニアをしている田中(@kakke18_perry)です。業務では、ONE CAREER CLOUDの開発に携わっており、リアーキテクチャの一環で、一部の機能をGo+gRPCでリプレイスしています。 アーキテクチャ選定理由については以下の記事で紹介していますので、興味のある方はこちらもぜひご一読ください。 本記事では、Go+gRPCで実装されたサーバ(以後、gRPCサーバとする)に対するE2Eテストの実装方法を解説します。具体的には、scenarigoを用いたE2Eテストの実装、テストの実行までの手順を説明し、E2Eテストをどこまで書けばいいのかという話もします。 gRPCサーバに対するE2Eテストの選択肢E2Eテストは、システム全体の動作を検証するテスト手法であり、開発プロセスにおいて重要な役割を果たします。そんなE

                                                                        scenarigoを用いたgRPCサーバのE2Eテスト実装事例|ONE CAREER Tech Blog
                                                                      • 今日から分散トレーシングに対応しないといけなくなった人のための opentelemetry-go 入門 - Cybozu Inside Out | サイボウズエンジニアのブログ

                                                                        こんにちは。SRE/データストアチーム の飯塚です。 私たちのチームではデータベースを代理で操作したり情報を取得したりするサービスをいくつか作り、それをプロダクトチームが利用できるように gRPC 経由で提供しています。ところで、ある日突然「分散トレーシングを活用していくことになったので、あなたのチームのサービスも対応させてください」とお願いされたらどうすればよいでしょうか?私はこれまでにいろいろなカンファレンスで分散トレーシングや OpenTelemetry についての講演を聞いていたので、理念は理解した、便利そうだ、導入してみたい、と思ったことは何度かありました。しかし実際に導入しようとして SDK のドキュメントを開いてみると、理解しなければいけない(ように見える)概念や、使い方をマスターしないといけない(ように見える)API の数に圧倒されてしまい、後回しにしてしまっていました。

                                                                          今日から分散トレーシングに対応しないといけなくなった人のための opentelemetry-go 入門 - Cybozu Inside Out | サイボウズエンジニアのブログ
                                                                        • gRPCで一時的なネットワーク断でのtransportエラーを回避する - Carpe Diem

                                                                          背景 gRPCを利用していると、デプロイを含む一時的なネットワーク断で以下のようなエラーが発生することがあります。 rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp xxx: connect: connection refused" rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp: lookup xxx: i/o timeout" これはgRPCがfail fastの思想になっており、ChannelがTRANSIENT_FAILUREの状態だとRPCを即座に失敗させるようにして

                                                                            gRPCで一時的なネットワーク断でのtransportエラーを回避する - Carpe Diem
                                                                          • Better gRPC な Connect に乗り換える - Go言語編

                                                                            デジタル認知行動療法アプリ Awarefy は、2022年4月からバックエンドシステムを Go + gRPC / Protocol Buffers を用いて開発・運用しています。現在進行中の Web アプリ開発のために、connect-go への切り替えが事実上必要になったため、grpc-go から connect-go へのマイグレーションを実行しました。 Connect とはそもそも Connect とはなにかですが、Better gRPC と理解するのがよいでしょう。 Getting started | ConnectConnect is a slim library for building browser- and gRPC-compatible HTTP APIs.ConnectConnect is a slim library for building browser- an

                                                                              Better gRPC な Connect に乗り換える - Go言語編
                                                                            • gRPCコンテナにヘルスチェックを実行する|作ってわかる! はじめてのgRPC

                                                                                gRPCコンテナにヘルスチェックを実行する|作ってわかる! はじめてのgRPC
                                                                              • gRPCでTLS認証して通信する|leslesnoa

                                                                                本記事の全ソースはこちら gRPCクライアント側の簡単な実装では、通信開始時に grpc.WithInsecure() という引数を渡していましたが、これは「認証をせずに接続する」という指定のため、実運用向きではありません。 ローカルの環境でとりあえず試したいという場合は有効です。 # 抜粋 // client.go conn, err := grpc.Dial(addr, grpc.WithInsecure())TLS認証と暗号化gRPC では標準で⽤意されている認証の⽅式があります。それが TLS(TransportLayer Security) です。TLS は Web の世界では広く使われている認証⽅式で、⼤きく次のふたつの機能を持ちます。 • 認証: 通信相⼿が想定通りの相⼿であることを確認する • 暗号化: 通信内容を第三者に盗聴されても読めないようにする TLSを使ったgRP

                                                                                  gRPCでTLS認証して通信する|leslesnoa
                                                                                • RFC 準拠のコントローラー&プロトコルライブラリ開発の進め方 - NTT Communications Engineers' Blog

                                                                                  イノベーションセンターの三島です。 本記事では、RFC や Internet-Draft に準拠したコントローラーやプロトコルライブラリの開発について、 NTT Com が公開中の Segment Routing (SR) 用のコントローラー、Pola PCE の開発経験を基にご紹介します。 商用機器と相互接続可能なコントローラー・プロトコルライブラリを開発してみたい方、SR をはじめとするネットワークを運用中で、機能拡張が可能なコントローラーを導入してみたい方は是非ご覧ください! 以降では、コントローラー開発手順の概要を Pola PCE の実装例を基に解説した後、プロトコルライブラリの作り方と機能追加の方法、相互接続試験と OSS へのマージまでの流れを解説します。 例として扱う Pola PCE 自体の詳細や活用例については解説しないため、詳細を知りたい方は下記の資料をご参照ください

                                                                                    RFC 準拠のコントローラー&プロトコルライブラリ開発の進め方 - NTT Communications Engineers' Blog