並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 30 件 / 30件

新着順 人気順

grpcの検索結果1 - 30 件 / 30件

  • スタディサプリ最大の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
    • モバイルとの相性最強と言われる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
        • モノリスなRailsにモジュラーモノリスを導入した話 - hacomono TECH BLOG

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

            モノリスなRailsにモジュラーモノリスを導入した話 - hacomono 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をサイドカーとして動かす
            • 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
              • 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
                • 多様なプロダクトが存在する 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
                  • gRPC Client on Cloudflare Workers

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

                      gRPC Client on Cloudflare Workers
                    • マイクロサービス構成における NestJS での gRPC クライアントの運用戦略 - ドワンゴ教育サービス開発者ブログ

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

                        マイクロサービス構成における NestJS での gRPC クライアントの運用戦略 - ドワンゴ教育サービス開発者ブログ
                      • モジュラモノリスのモジュール間通信の話

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

                          モジュラモノリスのモジュール間通信の話
                        • 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
                          • 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 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 | メルカリエンジニアリング
                              • BufとProtobufで始めるモダンgRPC開発

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

                                  BufとProtobufで始めるモダンgRPC開発
                                • 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
                                  • 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
                                    • 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
                                        • gRPC はじめからていねいに - Qiita

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

                                            gRPC はじめからていねいに - Qiita
                                          • 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
                                            • 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
                                              • 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化
                                                • 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
                                                  • 【書き起こし】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】 | メルカリエンジニアリング
                                                    • 【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を作る
                                                      • 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

                                                        • 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 でやる
                                                          • 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
                                                            • 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
                                                              1