並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 715件

新着順 人気順

gRPCの検索結果1 - 40 件 / 715件

  • API 設計: gRPC、OpenAPI、REST の概要と、それらを使用するタイミングを理解する | Google Cloud 公式ブログ

    ※この投稿は米国時間 2020 年 4 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。 ほとんどのソフトウェア デベロッパーがご存じだと思いますが、API 設計には RPC と REST の 2 つの主要なモデルがあります。モデルに関係なく、ほとんどのモダン API は、なんらかの方法で同じ HTTP プロトコルにマッピングすることによって実装されます。また、RPC API 設計では、RPC モデルの範囲から外れずに HTTP から 1 つまたは 2 つのアイデアを採用することが一般的になっています。これにより、API 設計者に提示されるオプションの範囲が広がりました。この投稿ではこれらのオプションについて説明し、どれを選ぶか決める際に役立つガイダンスを提供します。 gRPC は RPC API を実装するためのテクノロジーで、HTTP 2.0 をその基盤

      API 設計: gRPC、OpenAPI、REST の概要と、それらを使用するタイミングを理解する | Google Cloud 公式ブログ
    • 作ってわかる! はじめてのgRPC

      gRPCは主にバックエンド、特にマイクロサービス同士の通信に多く使われる通信方式です。 しかしそれゆえに知名度が低く、「gRPCってどんな通信なんだろう?」「HTTPとは別の仕組みなの?」と思っている方もたくさんいるのではないでしょうか。 この本では、gRPCはそもそもどんなコンセプトで作られた通信方式なのかから、Goでの具体的な実装ノウハウ、AWSにデプロイするための設定までを通貫して解説することで、 「gRPC全くわからない」という人が「自分で実装して動かせそうな気がする……!」と思える段階までたどり着けるようにしました。

        作ってわかる! はじめてのgRPC
      • Netflixにおける実用的なAPI設計: gRPCとFieldMask | pyspa

        Netflix Tech BlogのgRPC APIに関する以下の2つの記事に感銘を受けたので、ここにその概要を日本語で記します。 (めんどくさかったので)翻訳の許可は取ってませんが、再構成してますし元のJavaではなくPythonで書き直していますので、容赦して下さい… Practical API Design at Netflix, Part 1: Using Protobuf FieldMaskPractical API Design at Netflix, Part 2: Protobuf FieldMask for Mutation OperationsまとめgRPCでは、FieldMaskをうまく使うことで、必要な情報だけ取得したりあるいは与えたりしたりできまっせ第一部まずField Maskをどのように使うかを述べています。 背景Remote Callというものは、そもそもコ

          Netflixにおける実用的なAPI設計: gRPCとFieldMask | pyspa
        • サービス間通信のための新技術「gRPC」入門 | さくらのナレッジ

          たとえば次のような「user.proto」というプロトコル定義ファイルを用意し、これを変換する例を見てみよう。 syntax = "proto3"; message Picture { uint32 id = 1; uint32 width = 2; uint32 height = 3; enum PictureType { PNG = 0; JPEG = 1; GIF = 2; } PictureType type = 4; } message User { uint32 id = 1; string nickname = 2; string mail_address = 3; enum UserType { NORMAL = 0; ADMINISTRATOR = 1; GUEST = 2; DISABLED = 3; } UserType user_type = 4; repeated

            サービス間通信のための新技術「gRPC」入門 | さくらのナレッジ
          • REST vs. GraphQL vs. gRPC · Dan Hacks

            REST, GraphQL, and gRPC are 3 popular forms client-server and server-to-server communication. Choosing can be difficult, so this concise guide can help. In each section, an example will be provided to illustrate retrieving a user. REST Notes HTTP paths describing data, e.g. /users as a collection of users Easily discoverable data, e.g. user ID 3 would be at /users/3. All of the CRUD (Create Read U

            • gRPCがフロントエンド通信の第一の選択肢になる時代がやってきたかも? | フューチャー技術ブログ

              Go 1.19が8/2に早々にリリースされました。個人的にはGo 1.19よりも楽しみだったのが、サービス間通信とIDL(インタフェース記述言語)連載の中でご紹介したgRPCのGo実装の新星、Connectのアップデートでした。そしてそれはやってきました。 詳しい内容は↑の記事を見ていただくとして、Connectがその開発元ブログの紹介記事で宣言していたのが次の2つのことでした。 Go 1.19が出たらconnect-goは1.0にして以後後方互換性を守るよ connect-webを出すよ 前者はまだ0.3だったのですが、connect-webはリリースされました。歴史のあるフロントエンドのコードジェネレータはTypeScript対応が後付けだったりするのですが、TypeScriptがファーストシチズンかつ、ネイティブというコードジェネレータなので、開発はかなりやりやすくなることが期待され

                gRPCがフロントエンド通信の第一の選択肢になる時代がやってきたかも? | フューチャー技術ブログ
              • GitHub - ymmt2005/grpc-tutorial: gRPC tutorial for Japanese readers

                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                  GitHub - ymmt2005/grpc-tutorial: gRPC tutorial for Japanese readers
                • Go言語+gRPCの解説 [ハンズオン] - Qiita

                  はじめに この記事は、海外サイトhttps://tutorialedge.net/golang/go-grpc-beginners-tutorial/ の内容をベースに一部修正を加えたものです。この記事を読み進めることでGoでシンプルなgRPCクライアントとサーバーを構築することができるようになります。 ※gRPC公式より抜粋(また、以下の説明でも一部参考にしています。) gRPCとは? gRPCはGoogleによって開発されたRPCフレームワークです。 RPCはRemote Procedure Callの略で、逐語的に訳すと「遠隔手続呼び出し」となります。これはすなわち、「あるプログラムがネットワーク上の異なる場所に配置されたプログラムを呼び出して実行すること」と読み取れます。 公式による定義 サービス定義 多くのRPCシステムと同様に、gRPCはサービスを定義するという考えに基づいてお

                    Go言語+gRPCの解説 [ハンズオン] - Qiita
                  • インフラエンジニアが学ぶと良さそうなgRPCサーバーについて - じゃあ、おうちで学べる

                    3-shake にはSreake共有会 という毎週、火曜日と木曜日に担当者が現場で得た知見などを発表する社内勉強会が開催されています。こちらのブログはそれらを変更修正しております。 syu-m-5151.hatenablog.com 元々しようとしていたの話 Go 1.18 の最新情報←Generics の深い話とかはもう既出すぎて気になる人は読んでる Go でのTDD(が実は20周年なので)←書いてる途中で自分が言うべきことなんてないことに気付く 今後、案件で増えるであろう gRPC についてインフラエンジニアが知っておいても良いと思ったという話 ← 今ここ TL;DR protobuf (Protocol Buffers) はデータフォーマットで、JSONの役割を置き換えるものです。一方 gRPC は通信プロトコルで、HTTPの役割を置き換えるものです。 gRPC をライブラリやツール

                      インフラエンジニアが学ぶと良さそうなgRPCサーバーについて - じゃあ、おうちで学べる
                    • gRPCでインターフェースを再整理してからサービスを分割─freeeの段階的なマイクロサービス戦略 - エンジニアHub|Webエンジニアのキャリアを考える!

                      株式会社ウルフチーフ 代表取締役。TIS株式会社にて19年半、さまざまな業種のシステムアーキテクチャ設計を担当し、2018年に退職、株式会社ウルフチーフを創業する。以降流しのアーキテクトとして、前職時代から書き溜めていたOSSプロダクトや技術記事を元に、様々な現場でアーキテクチャの設計や研修を実施している。 課題:リポジトリの肥大化に伴ってリリース頻度が低下 川島 freeeではどのような課題を解決するためにマイクロサービス化を検討されたのでしょうか? 横路 freeeのプロダクトの成り立ちからお話しすると、「会計freee」の最初のリリースが2013年で、翌年に「人事労務freee(当時の名称は給与計算freee)」をリリースしました。その段階で既に、各プロダクトや認証・認可を扱うサービス基盤などは、リポジトリやサービスを分割する形で開発・運用を行っていたんです。 しかし、プロダクトがマ

                        gRPCでインターフェースを再整理してからサービスを分割─freeeの段階的なマイクロサービス戦略 - エンジニアHub|Webエンジニアのキャリアを考える!
                      • Connect: A better gRPC

                        Today we're releasing Connect, a slim framework for building browser and gRPC-compatible HTTP APIs. Connect is production-ready — focused, simple, and debuggable — and it's fully compatible with gRPC clients and servers. If you're frustrated by the complexity and instability of today's gRPC libraries, we think you'll find Connect a breath of fresh air. connect-go is available now under an Apache 2

                          Connect: A better gRPC
                        • gRPC Internal - gRPC の設計と内部実装から見えてくる世界 | Wantedly Engineer Blog

                          こんにちは、Wantedly の Infrastructure Team で Engineer をしている南(@south37)です。 今日は、WANTEDLY TECH BOOK 6 から「gRPC Internal」という章を抜粋して Blog にします。 「WANTEDLY TECH BOOK 1-7を一挙大公開」でも書いた通り、Wantedly では WANTEDLY TECH BOOK のうち最新版を除いた電子版を無料で配布する事にしました。Wantedly Engineer Blogでも過去記事の内容を順次公開予定であり、この Blog もその一環となっています。 Wantedly における Go 導入にまつわる技術背景 | Wantedly Engineer Blog (本記事は Go Conference 2019 Autumn にて無料配布した冊子『WANTEDLY TE

                            gRPC Internal - gRPC の設計と内部実装から見えてくる世界 | Wantedly Engineer Blog
                          • New – Application Load Balancer Support for End-to-End HTTP/2 and gRPC | Amazon Web Services

                            AWS News Blog New – Application Load Balancer Support for End-to-End HTTP/2 and gRPC Thanks to its efficiency and support for numerous programming languages, gRPC is a popular choice for microservice integrations and client-server communications. gRPC is a high performance remote procedure call (RPC) framework using HTTP/2 for transport and Protocol Buffers to describe the interface. To make it ea

                              New – Application Load Balancer Support for End-to-End HTTP/2 and gRPC | Amazon Web Services
                            • Docker Desktop 2.2正式版が登場。WSL 2対応をテクニカルプレビューとして。ファイルシステムもSambaからgRPC FUSEへ

                              Docker Desktop 2.2正式版が登場。WSL 2対応をテクニカルプレビューとして。ファイルシステムもSambaからgRPC FUSEへ WindowsおよびMacでDockerコンテナ環境を実現するDocker Desktopの最新版「Docker Desktop 2.2」正式版がリリースされました。 Now presenting #Docker Desktop release 2.2 https://t.co/qRDGy2B0fJ by @Nebuk89. Feat. WSL 2 as a tech preview, new file sharing implementation for #Windows & new integrated Desktop Dashboard. Thx to everyone who gave feedback! — Docker (@Dock

                                Docker Desktop 2.2正式版が登場。WSL 2対応をテクニカルプレビューとして。ファイルシステムもSambaからgRPC FUSEへ
                              • gRPC-Web + React + Node.js + TypeScriptでシンプルなチャットサービスを作る - Qiita

                                概要 かねてよりgRPCおよびgRPC-Webに興味があり、これを用いてシンプルなリアルタイムチャットサービスを制作し、公開した。 本稿では、その開発工程について解説する。 ゴール gRPC-Webを用いて「わいわいチャット」を作る。 https://waiwai-chat-2019.aanrii.com/ ※2020年9月現在、公開停止しました。 内容はシンプルなチャットアプリケーションだ。サイトを開くとまず過去ログが表示され、ほかの入室者の投稿が随時流れてくる。任意の名前で入室すると投稿欄が出現し、発言ができる。発言した内容はサイトにアクセスしている全員に、即座に共有される。過去ログは無限スクロールで遡ることができる。 フロントエンドはReactを用いたSPAとし、Netlifyを使って静的サイト生成・配信する。また、バックエンドはGKE上で動くNode.jsアプリケーションとし、かつ

                                  gRPC-Web + React + Node.js + TypeScriptでシンプルなチャットサービスを作る - Qiita
                                • gRPCのGo実装の新星、Connect | フューチャー技術ブログ

                                  サービス間通信とIDL(インタフェース記述言語)連載の2日目のエントリーです。 本当はGraphQLネイティブなデータベースの紹介をしようとしたのですが、紹介しようとしていたものがまだベータでクライアントライブラリが公開されていない(空っぽのリポジトリしかない)みたいな感じで試せなかったので、急遽2022/6/1に公開されたばかりのgRPC関連のライブラリのConnectを紹介することにしました。 Connectの開発元が公開したブログは次のサイトにあります。 Buf | Connect: A better gRPC 公式ドキュメントはこちらです。 Introduction | Connect なお、gRPCについての詳細はこのエントリーでは紹介しません。ちょうど、H.SakiさんがgRPCの詳しい紹介の記事を書いてくれているので、ぜひ、みなさんこちらを参照ください。 作ってわかる! はじ

                                  • RustのgRPCがGoよりも遅い?

                                    夏のある日、GoのgRPCが、Rustよりも2倍早いという記事を見つけました。「おいおい、測定ミスだろ」と強がっていましたが、日々、不安は高まっていきます。真実の愛であれば、疑うことは許されませんが、エンジニアの言語への愛など、所詮、状況に応じて使い分けるような打算的な愛。確認してみました。 性能測定結果上記の記事と同じく、gRPCのサーバソフトウェアは、Goはgrpc-go、Rustはtonicのgreeterの性能を、gRPCのクライアントソフトウェアghzを使って、測定しました。ハードウェアは、AWSを利用し、サーバはc5a.8xlarge(32 vCPU/64 GiB)インスタンス、クライアントはc5a.16xlarge(64 vCPU/128 GiB)インスタンスを使いました。 1台のクライアントインスタンスは、同時に3,000個のgRPCクライアントを立ち上げ、合計で6,000

                                      RustのgRPCがGoよりも遅い?
                                    • モバイルとの相性最強と言われる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通信や認証、複数言語実装に使えるか試す
                                      • いまさら聞けないgRPCの基礎 - Qiita

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

                                          いまさら聞けないgRPCの基礎 - Qiita
                                        • gRPCが遅すぎる?eBPFでカーネル内で動かす!

                                          gRPCの高速化への飽くなき追求(具体的な目標や目的なし)を続けてきましたが、まだ、遅すぎる!今回は、安全にLinuxカーネルに機能を追加できるeBPFという仕組みを使って、カーネル内で動作するgRPCサーバを実装しました。その結果、前回実装したRust版よりも2倍高速になりました! eBPFで安全なユーザコード実行eBPFを使えば、システムコール、パケットの受信など、カーネルで発生する様々なイベントに対して、私たちユーザが実装したコードを、カーネル内部で実行することができます。同じようにカーネルに機能を追加できるカーネルモジュールと違って、eBPFは、データ破壊など、システムの安定性に深刻な影響を与える危険なコードの実行を防ぐことができます。 eBPFで検索すると、たくさんの日本語の情報が見つかるXDPは、ネットワークインターフェイスのドライバのパケット受信時に、ユーザコードを実行する仕

                                            gRPCが遅すぎる?eBPFでカーネル内で動かす!
                                          • GoとDockerでLet's try gRPC - LiBz Tech Blog

                                            はじめに gRPCとは gRPCの特徴 gRPCが解決するマイクロサービスの課題 gRPCの課題 Let's try gRPC 1. 準備 2. protoファイルの作成 3. server側の処理 4. client側(リクエスト)の処理 5. buildして実行 最後に はじめに こんにちは!エンジニアの渡邊です。早いもので、11月でLiBに入社して丸1年がたちました。 このブログへの投稿も4回目になります。 前回の とってもRailsライクなサーバーレスフレームワーク「Ruby on Jets」を本番環境に導入した話 では、jetsの開発者であるtongueroo氏や、Rubyの生みの親まつもとゆきひろ氏をはじめ、多くの方にシェアをしていただき大変励みになりました!みなさんありがとうございました。 今回はGoogleが開発したRPCフレームワークgRPCについて書こうと思います。 g

                                              GoとDockerでLet's try gRPC - LiBz Tech Blog
                                            • API設計:REST、gRPC、OpenAPI - 気まぐれ開発日記

                                              googleからタイトルについて書かれた記事が出たので読んでいた cloud.google.com これらについて自分でもなんとなく考えていたことがあったけれど良い機会なのでまとめておく 記事での注目ポイント 冒頭より引用。 私としては、HTTP を使用する API のビルドには、重要かつ特徴のあるアプローチが 3 つあると考えています。次のようなアプローチです。 1. REST 2. gRPC(および Apache Thrift など) 3. OpenAPI(およびその競合製品) なるほど、と思うかもしれないが、読み進めていくとRESTについてはこう書かれていた。 このスタイルの API の特徴的な性質は、クライアントが他の情報から URL を構築せず、サーバーから渡された URL をそのまま使用することです 何の話かと思ったけれど、REST APIにはLv3までありこの記事ではLv3の

                                                API設計:REST、gRPC、OpenAPI - 気まぐれ開発日記
                                              • 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言語編
                                                • Protocol BuffersでgRPCとGraphQL両対応のコードを生成するプラグイン書いた - blog::wnotes.net

                                                  gRPC、あるいはGraphQL 昨今のAPI開発にgRPC、またはGraphQLを採用するケースは増えてきていて、ドメインロジックをgRPCで実装して、フロントエンド(BFF)はGraphQL経由のHTTP一本で取得するのはベストプラクティスの一つだと思っています。 とはいえ人的リソースや管理の問題から、ProtobufとGraphQLスキーマを両方メンテナンスしていくのはとてもつらくて、 他のエントリでも結果としてどちらかに寄せました、というケースをよく目にしました。 実際自分もやってはみたものの、両方のメンテナンスをしていくのは相当辛くて、Protobufを直してgRPCのI/Fを変更、合わせてGraphQLのSchemaにも手を入れてフロントに渡して…というのは管理コストに見合わないな、ってことで諦めました(今は grpc/grpc-web 、または grpc-ecosystem/

                                                  • ZOZOSUITからZOZOMATへ - Envoy gRPC-JSON transcoderによる部分的モダン化の実践 - ZOZO TECH BLOG

                                                    はじめに こんにちは、計測プラットフォーム部バックエンドチームの高木(@TAKAyuki_atkwsk)です。ZOZOMATシステムではAPIのリバースプロキシとしてEnvoyおよび付随するgRPC-JSON transcoderを導入しています。これらによって依存するサービスにレガシーなサーバーが存在していても部分的にgRPCを採用しモダンなアーキテクチャを広めようとしていることについて紹介します。 なお、本記事は以下記事のシリーズとなっておりますので合わせてご覧いただけるとZOZOSUITやZOZOMATなど計測プラットフォーム部の取り組みについてより深くご理解頂けるかと思います。 techblog.zozo.com ZOZOMATシステムとEnvoyについて ZOZOMATシステム構成におけるEnvoyの役割について簡単に説明しておきます。クライアント(ZOZOTOWNアプリ等)とZ

                                                      ZOZOSUITからZOZOMATへ - Envoy gRPC-JSON transcoderによる部分的モダン化の実践 - ZOZO TECH BLOG
                                                    • ZOZOMATにおけるEKSやgRPCを用いたシステム構成と課題解決 - ZOZO TECH BLOG

                                                      ZOZOテクノロジーズSRE部の市橋です。普段は主にAWSを用いて複数プロダクトのシステム構築、運用に携わっています。今回は2020年2月にリリースされたZOZOMATについて、システム構成と開発時に直面した課題、その課題を解決するために工夫した点について紹介します。 ZOZOMATではEKSやgRPCを新規に採用しており、これによって仕様の変更に強くなる、通信のオーバーヘッドを削減できるなど様々なメリットを享受できました。しかし導入時に一筋縄ではいかないことがあったため、今回苦戦した点についてご紹介できればと思います。 ZOZOMATとは お客様の足を3Dで計測するために開発された計測用マットです。ZOZOMATでの計測情報をもとに、靴の推奨サイズを参照するなどのサービスをご利用いただくことが可能です。ご興味のある方はこちらをご確認ください。 ZOZOMATのシステム構成 システムの全体

                                                        ZOZOMATにおけるEKSやgRPCを用いたシステム構成と課題解決 - ZOZO TECH BLOG
                                                      • Go言語でのgRPCコード生成(2020年10月以降版)|Dentsu Digital Tech Blog

                                                        でご紹介したGo言語でのgRPCコード生成の状況の続報(2020年末)をお伝えしたいと思います。 概要としては前回の記事に記載した通りで ・Protocol Buffer側のレポジトリは golang/protobuf から protocolbuffers/protobuf-go に移行 ・gPRC側のレポジトリのgrpc/grpc-goに新たにprotoc-gen-go-grpcコマンドができた なのですが、以下が追加になりました。 ・gPRC用のコードを生成するには Protocol Buffersのメッセージやシリアライズに protocolbuffers/protobuf-go のprotoc-gen-go、gPRCのサーバ/クライアントに grpc/grpc-goのprotoc-gen-go-grpc、と両方を使うことになった 以降で詳細をご紹介します。 経緯2020年3月のpr

                                                          Go言語でのgRPCコード生成(2020年10月以降版)|Dentsu Digital Tech Blog
                                                        • ZOZOMATのgRPCリクエスト負荷分散をNLBからALBに移行した話 - ZOZO TECH BLOG

                                                          こんにちは、計測プラットフォーム本部バックエンド部の髙木(@TAKAyuki_atkwsk)です。普段はZOZOMATやZOZOGLASSなどの計測技術に関する開発・運用に携わっています。ちなみにZOZOGLASSを使って肌の色を計測したところ、私のパーソナルカラーはブルーベース・冬と診断されました。 さて、本記事ではZOZOMATシステムで利用されていたNetwork Load BalancerをApplication Load Balancerに移行した事例をご紹介します。 ZOZOMATのシステム構成(2020年当時)に関しては、こちらの記事で詳しく説明されていますので合わせてご覧ください。 techblog.zozo.com 移行の背景 ZOZOTOWNアプリやZOZOTOWNシステムからZOZOMATシステムに対するリクエストの負荷分散のためにNetwork Load Balan

                                                            ZOZOMATのgRPCリクエスト負荷分散をNLBからALBに移行した話 - ZOZO TECH BLOG
                                                          • インターフェース定義の悩みを解決するために 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
                                                                  • 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歳からのプログラミング
                                                                    • 商品通報対応をgRPCとGraphQLとReactでリプレースしてみた | メルカリエンジニアリング

                                                                      こんにちは。Mercari Advent Calendar 2019 14日目は、CSTool Domainチームの @Peranikov がお送りします。 メルカリではお客さまに安心して取引を楽しんでいただくため「あんしん・あんぜん宣言」に取り組んでおり、プロダクトの開発と同じレベルの課題感でカスタマーサービスの質の向上にも力をいれています。私の所属するCS(Customer Service) Tool Domainチームでは、カスタマーサービスのメンバーがお客さまからのお問い合わせ対応に使用するシステムの開発・運用を担っています。 商品通報対応とは メルカリでは利用規約に反するような出品がされた場合、お客さまや権利者さまからの通報・ルールベースやMachine Learningによる監視などで違反出品を検知し、カスタマーサービスチームが確認・対応するという業務を行っています。 ただ、サ

                                                                        商品通報対応をgRPCとGraphQLとReactでリプレースしてみた | メルカリエンジニアリング
                                                                      • 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で簡単に作る方法
                                                                        • 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
                                                                            • 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
                                                                              • 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 と 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! - 赤帽エンジニアブログ