並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 362件

新着順 人気順

grpcの検索結果81 - 120 件 / 362件

  • 2019-15 gRPC and Protocol Buffers

    Exploring Type-Informed Lint Rules in Rust based TypeScript Linters

      2019-15 gRPC and Protocol Buffers
    • インターフェース定義の悩みを解決するために gRPC、Protocol Buffers を調査してみた - SMARTCAMP Engineer Blog

      こんにちは!今年の 4 月からスマートキャンプに入社し、只今新卒エンジニア研修期間中の中田です。本記事は、インターフェース定義の悩みを解決するために gRPC、Protocol Buffers を調査してみた!という内容のエントリです。 背景 gRPC とは Protocol Buffers とは 4 つの通信方式を試してみた 実装 準備 インターフェース定義 コンパイル サーバーとクライアントの実装 UnaryCall ClientStreamingCall ServerStreamingCall BidirectionalStreamingCall ドキュメント生成 学び まとめ 背景 新卒エンジニア研修では、同期のメンバーと 2 人で Go (REST API) + React/TS 構成の SPA を作っています。 このアプリの開発では、Server - Client 間でインター

        インターフェース定義の悩みを解決するために gRPC、Protocol Buffers を調査してみた - SMARTCAMP Engineer Blog
      • TypeScriptにおけるgRPC関連ライブラリの比較とプロダクト開発で採用した方法の紹介 - CADDi Tech Blog

        こんにちは、テクノロジー本部バックエンド開発グループの山田です。 弊社のプロダクト開発では、以下の図のようにフロントエンド <-> BFF <-> バックエンドの構成をとっており、Node.js上で稼働しているBFFと、Rustで作成しているバックエンドの間をgRPCで通信しています。 そこで今回は、TypeScriptにおけるgRPCの関連ライブラリについて、以下を紹介していきます。 【1】 公式チュートリアルに沿った2種類の実装サンプルに、アプリケーション開発中に認証や分散トレーシング等で利用するMetadataの実装を追加したコード 【2】 2種類の方法をライブラリの実装も見つつ比較 【3】 直近の開発で採用している方法の紹介 お急ぎの方は下部にまとめを記述しているのでそちらを参照ください。 また、説明の都合で記事中のサンプルコードは一部を抜粋して記述していくため、完全なサンプルコー

          TypeScriptにおけるgRPC関連ライブラリの比較とプロダクト開発で採用した方法の紹介 - CADDi Tech Blog
        • マイクロサービスのデータぜんぶ抜く……gRPCで! - Retty Tech Blog

          どうも、エンジニアの神 id:pikatenor です。書きかけの記事を下書きに突っ込んで放置していたらマネージャーの常松に目をつけられ、#Rettyマイクロサービス強化月間 第1週目の記事に祭り上げられることになりましたが無事に遅刻しました。記事の公開をお待ちいただいていた皆様には深くお詫び申し上げます。 engineer.retty.me そういうわけで今回は自作OSSの宣伝とそいつをサービスに組み込むに至った背景のお話です。 マイクロサービスのDB分割と集約 Logstash + gRPC という選択 大雑把な説明 gRPC Server 側の実装 良かったこと おまけ: プラグインの実装についてあれこれ マイクロサービスのDB分割と集約 さて、Retty がマイクロサービスアーキテクチャへの移行に取り組んでいるという話は従前の通りですが、最近では共有DBの呪いから解き放たれるべくD

            マイクロサービスのデータぜんぶ抜く……gRPCで! - Retty Tech Blog
          • 今流行りのgRPCについて簡単にまとめてみた(Goのサンプルコード付き) - Qiita

            はじめに (当時)Go歴1ヶ月の私が急遽gRPCを用いてバックエンドのAPIを開発してる業務に参画することになり、必要にかられて急いで学んだので、その時の学びを共有します✎ gRPCって最近よく聞くけど、「なにそれ?」って方も多いと思うので(私もそのうちの1人でした)、自分の学びを纏めるためにもgRPCのエントリー記事を書こうと決意し、Go 5 Advent Calendar 2020に登録しました! gRPCとは gRPCって良いらしい 最近gRPC流行ってるらしい 等聞いたことは多いと思いますが、簡単に説明すると RPC (Remote Procedure Call) を実現するためにGoogleが開発したプロトコルの1つ Protocol Buffers を使ってデータをシリアライズし、高速な通信を実現できる IDL(インターフェース定義言語)を使ってあらかじめAPI仕様を .pro

              今流行りのgRPCについて簡単にまとめてみた(Goのサンプルコード付き) - Qiita
            • API Improvement Proposals

              Welcome AIPs are design documents that summarize Google's API design decisions. They also provide a framework and system for others to document their own API design rules and practices. AIPs are a combination of design guidance and a system we use to manage and track that guidance. Learn more about how the AIP program works in the first AIP!

              • Next.js で始める gRPC 通信 - 30歳からのプログラミング

                サーバ・クライアント間の通信を gRPC で行う場合、インターフェイスを定義した共通のファイルから、サーバとクライアント双方のコードを生成することができる。 この記事では、インターフェイスの定義ファイルを作成するところから始めて、gRPC を利用した単純なウェブアプリを作っていく。 gRPC についての概念的な説明などは扱わず、実際に手元で動くウェブアプリを作ることで、gRPC を使った開発についてイメージしやすくなることを意図している。 Next.js では API Routes を使って API サーバを作ることができるが、それを gRPC クライアントとして実装する。 そのため、リクエストの流れは以下のようになる。 Frontend == (REST) ==> API Routes == (gRPC) ==> gRPC Server 動作確認は Node.js のv16.13.2で行

                  Next.js で始める gRPC 通信 - 30歳からのプログラミング
                • サービスメッシュとしてLinkerdを導入するに至った経緯 - ANDPAD Tech Blog

                  はじめに SREの須恵です。 弊社では、昨秋からサービスメッシュの導入を開始していたのですが、なかなかアウトプットできていなかったので書くことにしました。 マイクロサービス化とgRPC 弊社で進行中の技術テーマの1つに「マイクロサービス化」があります。 ビジネスの成長拡大に伴い開発組織も拡大し続けており、どんどん人数が増えています。この増加していく開発者の力を、可能な限り効果的に活かして開発するため、マイクロサービス化に舵を切ることになりました。 (マイクロサービスの動機と目指す結果の詳細はいずれ誰かが記事化することに期待) 今年の1月に弊社初のマイクロサービスとしてリリースされた2つのサービスがあり、それらはgRPCで通信することが決定されていました。また今後も、マイクロサービス間の同期通信にはgRPCの採用が広がる見込みです。 なぜgRPCか モノリスをマイクロサービス化する、あるいは

                    サービスメッシュとしてLinkerdを導入するに至った経緯 - ANDPAD Tech Blog
                  • 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をサイドカーとして動かす
                    • LINE開発担当が語るプロダクションレディなgRPCサーバをArmeriaで簡単に作る方法

                      LINE Developer MeetupはLINEが定期的に開催する技術者向けミートアップです。66回目の今回はLINEの新規サービス開発に携わる奥山氏が社内フレームワークArmeriaを使って簡単にgRPCサーバーを実装する方法を共有しました。 gRPCって何だったっけ? 奥山裕也氏(以下、奥山):LINEの開発4センター、 Official Account開発室の奥山が、「OA DevにおけるgRPC」についてお話しします。 まず簡単に自己紹介しますと、私は2019年の4月に新卒で入社しました。Official Account開発室というチームで、LINE公式アカウント関連の新規サービスを主に開発しています。コードは、サーバサイドで主にKotlinを書いています。また、line-bot-sdk-pythonというMessaging API SDKのメンテナーもしています。 今日は、最

                        LINE開発担当が語るプロダクションレディなgRPCサーバをArmeriaで簡単に作る方法
                      • trpcって知ってますか?

                        はじめに みなさんはAPIの定義を何で行なってますか? Swagger? GraphQL? gRPC? 私もGraphQLでアプリとBFFのAPI定義をしたり、gRPCで定義してそれを無理やりRESTAPIの型定義として使っていたりします。 方法はどうであれAPIの型定義はやっぱり欲しいですよね。 いくらTypeScriptとかGoとか型のある言語を使っていても、それをつなぐAPIのインターフェースに型を決めておかないといくらでも事故れますよね… 特にフロントエンドとバックエンドで開発するエンジニアが違うと、こういった定義ファイルがないと思ってたのと違うパラメータが返ってきたり、リクエストボディに入れる型を間違ってしまったりという事故が起きたりすると思います。 なので何かしらの定義ファイルをフロントバック両者で定めておいてこういった事故を起きないようにしているわけです。 定義ファイルがある

                          trpcって知ってますか?
                        • REST・Protocol Bufferは必要ない RPCフレームワークにそのまま使えるScalaの魅力

                          アジア最大級の国際Scalaカンファレンスである「ScalaMatsuri2020」がオンラインで開催されました。そこでTreasure DataのTaro L. Saito 氏がScalaに関するいろいろなテクノロジーを紹介しました。2つ目は、Scalaで直接通信する方法について。前回の記事はこちら。 Scalaは実はRPCを実装するのに適した言語 Taro L. Saito氏:もともと何をしたかったかというと、「Scalaでクライアントもサーバーも実装できるんだったら、Scalaでそのまま通信できないのか?」というところが出発点になって、今新しいフレームワークを整えているところです。 ScalaはFunctional(関数型)で、かつstatically typed(静的型付き)、というobject orientedな言語になっているのがいいところです。 これよく考えてみると、Scal

                            REST・Protocol Bufferは必要ない RPCフレームワークにそのまま使えるScalaの魅力
                          • 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 に対するよくある誤解。 - ねののお庭。
                            • Connect-Web: It's time for Protobuf and gRPC to be your first choice in the browser

                              Connect-Web: It's time for Protobuf and gRPC to be your first choice in the browser Today we're releasing connect-web, an idiomatic TypeScript library for calling RPC servers from web browsers. If you've been unimpressed by gRPC and Protobuf on the web before, now's the time to take another look: connect-web generates modern TypeScript that's just as ergonomic as a hand-written REST client. Client

                                Connect-Web: It's time for Protobuf and gRPC to be your first choice in the browser
                              • .NET Framework 3.0 で作られたアプリケーションを .NET 5 に最新化して GitHub で公開するまでに行ったこと - しばやん雑記

                                CodePlex に置いてあった .NET Framework 3.0 時代に書かれたアプリケーションを、GitHub に移行しつつ .NET 5 で動くように 2 週間ぐらい頑張った話を書きます。正直なところ 12 年前に書かれたコードを何とかするのはめっちゃ大変でした。 今回コードの改善を頑張ったので色々な実験場としても使えるようにしています。特に GitHub 周りは新しい機能を使ってみるようにしています。 .NET Framework 3.0 時代に書かれたコードを何とかするのが本当に大変だった(まだ何とか出来てない https://t.co/u5SrISQRCL— Tatsuro Shibamura (@shibayan) 2021年5月9日 実際には .NET 5 で動くようにはなっていますが、中身は古臭い実装がたくさん残っているので、ツイートの通り全然何とかなっていない状況で

                                  .NET Framework 3.0 で作られたアプリケーションを .NET 5 に最新化して GitHub で公開するまでに行ったこと - しばやん雑記
                                • Scalaはバックエンドでもフロントエンドでも動く Treasure Dataのエンジニアが語るScalaの応用力の高さ

                                  アジア最大級の国際Scalaカンファレンスである「ScalaMatsuri2020」がオンラインで開催されました。そこでTreasure DataのTaro L. Saito 氏がScalaに関するいろいろなテクノロジーを紹介しました。まずは、バックエンドとフロントエンドの両方で使えるScalaについて。 趣味はオープンソースのプロジェクトを作ること Taro L. Saito氏:「Scala For Everything」というタイトルで発表します。簡単な自己紹介を。Treasure DataのSaitoといいます。Principal Software Engineerをしていて、今、カリフォルニア、アメリカの西海岸から発表しています。タイムゾーンの都合上、今こちらは夜の20時なんですけれども、ScalaMatsuriの運営の麻植さんが、タイムゾーンに配慮してくださったので、非常に感謝し

                                    Scalaはバックエンドでもフロントエンドでも動く Treasure Dataのエンジニアが語るScalaの応用力の高さ
                                  • みんなで育てる GraphQL スキーマ, それを支える Protobuf / GraphQL and Protobuf #tech_stand

                                    TECH STAND #7 発表資料 https://standfm.connpass.com/event/239750/ これまでのあらすじ - GraphQL 導入の反省と再挑戦 by @izumin5210 - 技術を的に当てる技術について - GraphQL を入れ直した話 by @Altech OSS - https://github.com/proto-graphql/proto-graphql - https://github.com/proto-graphql/proto-nexus 紹介したもの - https://book.productionreadygraphql.com/

                                      みんなで育てる GraphQL スキーマ, それを支える Protobuf / GraphQL and Protobuf #tech_stand
                                    • 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
                                      • Real World Performance of gRPC - gRPC 利用による劇的なパフォーマンス改善 | Wantedly Engineer Blog

                                        こんにちは、Wantedly の Infrastructure Team で Engineer をしている南(@south37)です。 先日は、「gRPC Internal」というタイトルで gRPC の設計と内部実装についてブログを書きました。 こんにちは、Wantedly の Infrastructure Team で Engineer をしている南(@south37 )です。 今日は、WANTEDLY TECH BOOK 6 から「gRPC Internal」という章を抜粋して Blog にします。 「WANTEDLY TECH BOOK 1-7を一挙大公開」でも書いた通り、Wantedly では WANTEDLY TECH BOOK のうち最新版を除いた電子版を無料で配布する事にしました。Wantedly Engineer Blogでも過去 この gRPC ですが、Wantedly

                                          Real World Performance of gRPC - gRPC 利用による劇的なパフォーマンス改善 | Wantedly Engineer Blog
                                        • gRPC と Quarkus! - 赤帽エンジニアブログ

                                          Red Hat で Solution Architect として Quarkus を担当している伊藤ちひろです。 この記事は、Quarkus.io のブログ記事、gRPC with Quarkus! の翻訳記事です。 Quarkus 1.5 では、gRPC Quarkus拡張機能の最初のバージョンを出荷しました。 gRPCに馴染みのない方に紹介すると、HTTP/2とProtobufに依存した高効率なリモートプロシージャコールの仕組みです。gRPC は、Go、JavaScript、Python、Java などの任意の言語から gRPC サービスを実装して利用できます。 gRPC は、より古典的なリクエスト/レスポンスの相互スキームと同様に、双方向のデータストリームをサポートしています。gRPCは特にマイクロサービスに適しています。マイクロサービスシステムを構築する際の3つの大きな懸念事項であ

                                            gRPC と Quarkus! - 赤帽エンジニアブログ
                                          • 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
                                            • shiodaifuku.io

                                              Webエンジニアのブログです。

                                                shiodaifuku.io
                                              • 5日間で同期メンバーとgRPCを使ったリアルタイム通信ゲームを作ってみた - Qiita

                                                はじめに #おうちハッカソンというものに同期と参加して、gRPCを使ったリアルタイム通信ゲームを作りました。 これは、ゲームクライアントを作った人間の視点での話になります。私はサーバサイドを担当していないので、サーバサイドをやってくれた人が記事を投稿してくれることを期待しています。 自己紹介 Twitter @AblerBiri Github Gamu2059 サイバーエージェント21年度入社予定 Unity、ゲームクライアント系がメインフィールドのエンジニア プログラミング歴だけだと7年くらい おうちハッカソン https://connpass.com/event/174573/ @at_sushi_atさんが主催されたハッカソンです。 内定者同士でリモート飲み会をした時に、「なかなか交流できないからハッカソンとかやって交流したいね」という意見が出ていました。 ちょうどその時にこのハッカ

                                                  5日間で同期メンバーとgRPCを使ったリアルタイム通信ゲームを作ってみた - Qiita
                                                • proto定義や成果物の管理用レポジトリを構築した話 - Kyash Product Blog

                                                  こんにちは、Fundsチームの @convto です。Kyashでは銀行入金やコンビニ入金などの残高の入出金に関わる部分の開発をしています。 Fundsチームではその業務の性質上多数の外部ベンダとやり取りをしています。 それぞれベンダごとに仕様なども異なるため、その接続部分のいくつかはマイクロサービスとして切り出されています。 Fundsチームの管理しているサービス間の通信でgRPCを導入する際、今後の社内の別サービスなどにも汎用的に使えるようなproto管理レポジトリを構築したのでその紹介をしたいと思います。 proto管理レポジトリで満たしたい要件について はじめに、他社の事例も参考にしつつ、自分たちがprotoを管理するにあたってどのような要件を満たせれば良いのか整理しました。 他社の事例を調査したところ、以下のような構成が多かったように思います。 名称は app-proto や p

                                                    proto定義や成果物の管理用レポジトリを構築した話 - Kyash Product Blog
                                                  • gRPC Development Environment - Wantedly の gRPC Server/Client 開発環境 | Wantedly Engineer Blog

                                                    こんにちは、Wantedly の Infrastructure Team で Engineer をしている南(@south37)です。 先日、gRPC 関連で2つのブログを書きました。「gRPC Internal」では、ドキュメントやコードを読み解くなかで見えてきた「gRPC の設計と内部実装」についてブログを書きました。「Real World Performance of gRPC」では、Wantedly で実際に gRPC を利用することで達成できたパフォーマンス改善についてブログを書きました。 こんにちは、Wantedly の Infrastructure Team で Engineer をしている南(@south37 )です。 今日は、WANTEDLY TECH BOOK 6 から「gRPC Internal」という章を抜粋して Blog にします。 「WANTEDLY TECH

                                                      gRPC Development Environment - Wantedly の gRPC Server/Client 開発環境 | Wantedly Engineer Blog
                                                    • PerlでもgRPCで通信したい - アリ

                                                      まずはじめに、2021/2時点でgRPCがサポートされている言語にはPerlは含まれていなく、公式にはサポートされていません。 現時点でと言ったものの将来的にもサポートされることがないだろうことからPerlでgRPCを扱うのは茨の道といえるでしょう。 おとなしくgRPC transcodingしてHTTP REST APIで叩きましょう、というのがほぼ答えなのですがCPANに公開されているライブラリを使ってどこまでできるのかを検証するのがこの記事の目的です。 題材 gRPCで通信といっても、サーバとクライアントのどちらをPerlで実装するかという話になりますが、今回実装するのはクライアントです。 他の言語で書かれたマイクロサービスからPerlと通信することを想定して、手軽な例としてGAPIC Showcaseのサーバと通信することにしてみます。 github.com google.show

                                                        PerlでもgRPCで通信したい - アリ
                                                      • Postman Now Supports gRPC | Postman Blog

                                                        Learning Center Learn about how to get started using Postman, and read more in the product docs. Labs Flows, gRPC, WebSockets! Learn about the latest cutting-edge features brewing in Postman Labs. Open Technologies Invest in the knowledge, specifications, standards, tooling, data, people, and organizations that define the next 50 years of the API economy. Don’t forget to register here to attend PO

                                                          Postman Now Supports gRPC | Postman Blog
                                                        • マイクロサービス・アーキテクチャと共存する Ruby on Rails のアーキテクチャ的拡張 - その事例と可能性 / Kaigi on Rails 2021

                                                          Kaigi on Rails 2021 の発表資料です。 https://kaigionrails.org/2021/talks/Altech_2015/

                                                            マイクロサービス・アーキテクチャと共存する Ruby on Rails のアーキテクチャ的拡張 - その事例と可能性 / Kaigi on Rails 2021
                                                          • gRPCとは?gRPCベースのシステムの脆弱性診断とツール(前編) | セキュリティブログ | 脆弱性診断(セキュリティ診断)のGMOサイバーセキュリティ byイエラエ

                                                            札幌オフィス在籍の岸谷です。近年gRPCの利用がだいぶ普及してきましたね。今回はgRPCを利用するシステムの脆弱性診断と、そのためのツールについて書きたいと思います。 gRPCって何? 本稿はgRPC自体の解説を目的としたものではありませんが、本題に進む前に簡単に概要に触れます。gRPCはGoogleで開発され、その後オープンソース化されたフレームワークです。grpc.ioには下記のようにあります。 gRPC is a modern open source high performance RPC framework that can run in any environment. 「環境を問わずハイパフォーマンスなRPC開発フレームワーク」ということで、XML-RPCやJSON-RPC、REST API開発用のフレームワークなどのように、他コンピュータ上のコードの呼び出しなどシステム間通

                                                              gRPCとは?gRPCベースのシステムの脆弱性診断とツール(前編) | セキュリティブログ | 脆弱性診断(セキュリティ診断)のGMOサイバーセキュリティ byイエラエ
                                                            • gRPCを使ってRust – JavaScript通信 | DevelopersIO

                                                              Introduction RPCは昔からあるクライアント−サーバー間の通信手法です。 サーバで実装されている関数をクライアントから呼んで実行します。 最近ではHTTP/HTTPSでクラサバ間通信をして、 フォーマットにXML(XML-RPC)やJSON(JSON-RPC)を利用するのが 多いようです。 (直近で私は使った記憶がないですが) 上記のRPCは各技術がメジャーなので採用しやすいですが、 パフォーマンスがそこまで高くなかったり バイナリデータが扱いにくかったりします。 そういった問題点を解決するために開発されたのが、 Google発のRPCであるgRPCです。 gRPC? gRPCはハイパフォーマンスなオープンソースのRPCフレームワークです。 Googleが開発したRPC技術(Stubby)が元となって開発され、オープンソース化されました。 現在はCNCFによって開発が進められて

                                                                gRPCを使ってRust – JavaScript通信 | DevelopersIO
                                                              • Goでミドルウェアとインターセプターのテストをする方法

                                                                はじめに この記事では HTTP のミドルウェアと gRPC のインターセプターのユニットテストの方法について紹介します。 HTTPミドルウェアのテスト gRPCインターセプターのテスト HTTP のミドルウェアや gRPC のインターセプターといえば Web サービスの共通処理の実装が集中する場所です。共通処理であるが故に開発初期に作り込んで後から手を入れることが少ないという特性があります。あまり手を入れることがないからといってユニットテストを省いてしまうと、あとから機能追加したり、バグを発見したりしたときに慌てることになります。共通処理が集まるコードはいざという時に備えてしっかりユニットテストをしてあげましょう。 HTTPミドルウェアのテスト まずは HTTP ミドルウェアのテスト方法を見てみます。 テスト対象のミドルウェア 以下の HTTP ミドルウェアのコードをテストします。コンテ

                                                                  Goでミドルウェアとインターセプターのテストをする方法
                                                                • Cysharpの河合様をゲスト講師にお招きしてゲームサーバーに関する社内勉強会を開催しました! | DevelopersIO

                                                                  データアナリティクス事業本部の貞松です。 今回はデータ分析でも機械学習でもない話です。 細かい経緯はさておき、ゲーム開発におけるクライアントサイド(主にUnityを想定)だけでなく、サーバーサイドまで一貫してC#で開発することを想定した場合の知見を蓄積する為の社内タスクフォースが発足しました。 その活動の一環でCysharpの河合様とコンタクトを取らせていただき、ゲームサーバーに関する勉強会を実施していただくことになりました。 本記事は、上記勉強会のまとめ的な内容と個人的に重要だと感じたポイント、またゲームサーバーの開発を加速するCysharp製のライブラリについて記載します。 2020.9.16更新 : 当日のスライドをシェアいただいたので追加しました! 株式会社Cysharpについて 今回の勉強会で講師をしていただきました河合様が代表取締役を務められているCysharpのコーポーレート

                                                                    Cysharpの河合様をゲスト講師にお招きしてゲームサーバーに関する社内勉強会を開催しました! | DevelopersIO
                                                                  • インターンで作成したgRPCリクエスト再現ツールについて | Wantedly Engineer Blog

                                                                    こんにちは!Wantedly Visitの推薦基盤チームで三週間インターンをしていた大山です。 今回のインターンで、過去の特定の日のgRPCリクエストを模倣して同じリクエストを再び投げるリクエスト再現ツールを作ったのでここで紹介させていただきます。 何を作ったかgRPCリクエストしたいサービス・メソッド・日時が書かれたjsonファイルを読み込んで、それに従ってgRPCのリクエストを送るツール (request-repeater)BigQuery上の推薦基盤サービスvisit-recommendation-projectのアクセスログから上記jsonファイルを作成するツール (bq-to-request-file)以下、上記括弧内の名称をそれぞれのツールの呼称とします。 背景このようなツールを作るにあたって以下のような背景がありました。 本番環境と同じリクエストを用いてqa環境に対して負荷を

                                                                      インターンで作成したgRPCリクエスト再現ツールについて | Wantedly Engineer Blog
                                                                    • Go Protocol Buffer Message API V2 のReflectionとgRPC Server-side Interceptorを使ってAPIの呼び出し権限チェックを実現する|Dentsu Digital Tech Blog

                                                                      Go Protocol Buffer Message API V2 のReflectionとgRPC Server-side Interceptorを使ってAPIの呼び出し権限チェックを実現する 電通デジタルでバックエンド開発をしている齋藤です。弊社では社内/グループ会社向けのデジタル広告運用実績の管理システムのバックエンドAPIにgRPCを利用しています。 そこに、今年(2020年)の3月2日にGo公式のブログでGo Protocol Buffer Message API V2 の発表があり、4月13日にgolang/protobuf に Message API V2 対応版の v1.4.0 が正式リリースされました。これにより Go でも Reflectionが使えるようになりました。ブログ中で紹介されている、FieldOptionsを読み取ってフィールドをクリアする条件に使うなどより

                                                                        Go Protocol Buffer Message API V2 のReflectionとgRPC Server-side Interceptorを使ってAPIの呼び出し権限チェックを実現する|Dentsu Digital Tech Blog
                                                                      • いまさらだけどgRPCに入門したので分かりやすくまとめてみた - Qiita

                                                                        はじめに gRPCという言葉自体はよく聞いていたのですが、「RESTと同じような立ち位置なんだよね?何が違うの?」という状況だったので調べてまとめてみました。 モダンな技術を採用している企業では、既にサービスで当たり前のように活用されている技術ですので、gRPCの基本レベルで自信無い方は目を通してみてください。 gRPCとは gRPCはGoogle謹製のHTTP/2を利用したRPCフレームワークです。 Protocol Buffersを利用し、データをシリアライズして高速なRPCを実現します。 (Protocol Buffers以外も利用可能ですが、デファクトスタンダードとなっているため、本記事ではProtocol Buffersを前提に説明します。) protoファイルと呼ばれるIDL(Interface Definition Language)にAPI仕様を記述します。 また、IDLか

                                                                          いまさらだけどgRPCに入門したので分かりやすくまとめてみた - Qiita
                                                                        • Python、Node.js、C#のサンプルコード付き サービス間通信技術「gRPC」を学べる無料の電子書籍

                                                                          Googleによって開発され、オープンソース化された通信技術「gRPC」は、マイクロサービスアーキテクチャにおけるサービス間の通信手段としてはもとより、モバイルアプリケーションがサービスにアクセスする際のインタフェースとしても注目されています。 本eBookでは、連載「スキマ時間にこっそり学ぶ『gRPC』入門」全8回を収録。そもそもRPC(Remote Procedure Call)とはどのような通信技術なのか、gRPC誕生の背景や、gRPCの特徴、利点を解説しています。 第1回以降はC#、Python、Node.js、KotlinとAndroid、SwiftとiOS、Goとgrpc-gatewayなどさまざまなプログラミング言語、プラットフォームを取り上げ、gRPCサーバとクライアントを実装する方法や、サーバストリーミング、クライアントストリーミングを実装する方法を、サンプルコードととも

                                                                            Python、Node.js、C#のサンプルコード付き サービス間通信技術「gRPC」を学べる無料の電子書籍
                                                                          • 帰ってきた optional - Protocol Buffers v3.12 から Field presence が導入|Dentsu Digital Tech Blog

                                                                            帰ってきた optional - Protocol Buffers v3.12 から Field presence が導入 電通デジタルでバックエンド開発をしている齋藤です。 今回は Protocol Buffers v3.12 のリリースで追加された Field presence 機能について調べたことをご紹介します。 前提:v3.12 以前の Protocol Buffers v3 における optional な値の扱いProtocol Buffers v3 (proto3) では v2 (proto2) にはあった optional ながなくなり、optional を扱うにはひと工夫必要でした。加えて、Message の Filed に値を入れなかった場合は、Fieldの型のディフォルト値が送られてきたとみなす仕様になっています(各型のディフォルト値はこちら)。 そのため、開発者は

                                                                              帰ってきた optional - Protocol Buffers v3.12 から Field presence が導入|Dentsu Digital Tech Blog
                                                                            • GraphQLはサーバーサイド実装のベストプラクティスとなるか - Qiita

                                                                              この記事は GraphQL Advent Calendar 2020 14 日目の記事です。 前回の記事は @joe-re さんの 「ライブラリの実装からCursor-based paginationにおけるcursorのフォーマットのベストプラクティスを探る」 でした。 前置き GraphQLは2010年代後半に出てきた技術の中でも個人的に特に強力なアプリケーション実装パターンの一つだと思っているのですが、シンプルな実装なのに利用用途が豊富にあることと利用する立場が違うと全く印象を抱く事から全体像を掴みづらく、本来持つべきポテンシャルに対してまだ認知が広がっておらず利用されていないように感じます。 今回はサーバーサイドからの視点を中心にGraphQLを構築する要素を分解して解説するのとともに、それを利用した際にWebアプリケーション開発やそれに関わるエンジニアに起きうる変化について書いて

                                                                                GraphQLはサーバーサイド実装のベストプラクティスとなるか - Qiita
                                                                              • [アップデート] ALBでエンドツーエンドのHTTP/2サポートによりgRPCワークロードが可能になりました | DevelopersIO

                                                                                本日のアップデートにより Application Load Balancer(以下、ALB)でエンドツーエンドのHTTP/2がサポートされ、加えて gRPC プロトコルが利用可能になりました。 Application Load Balancers enables gRPC workloads with end to end HTTP/2 support ALB でエンドツーエンドの HTTP/2 通信が可能に 以前より ALB は HTTP/2 に対応していましたが、ALB - ターゲット間の通信は HTTP/1.1 に変換されていました。そのため、エンドツーエンドでの HTTP/2 利用できませんでした。この仕様により、HTTP/2 をトランスポートに利用する gRPC を ALB で利用することは出来ないため、NLB または CLB を利用されていたかと思います。 今回のアップデートで

                                                                                  [アップデート] ALBでエンドツーエンドのHTTP/2サポートによりgRPCワークロードが可能になりました | DevelopersIO
                                                                                • 多様なプロダクトが存在する 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