並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 304件

新着順 人気順

gRPCの検索結果121 - 160 件 / 304件

  • サービスメッシュ必読ガイド - 第2版: 次世代のマイクロサービス開発

    2016年頃「サービスメッシュ」という用語は、マイクロサービス、クラウドコンピューティング、DevOpsの分野に登場しました。楽天的なあるチームは、2016年にこの用語を使用して彼らの製品である Linkerd を説明しました。コンピューティングの多くの概念と同様に、実際には、関連するパターンとテクノロジーの長い歴史があります。 サービスメッシュの登場は、主に IT ランドスケープの最悪の状況によるものでした。開発者は、複数言語 (ポリグロット) アプローチを使用して分散システムの構築を開始し、動的なサービスディスカバリーを必要としていました。運用は一時的なインフラストラクチャの使用を開始し、避けられない通信障害を適切に処理し、ネットワークポリシーを適用したいと考えていました。プラットフォームチームは、Kubernetes などのコンテナオーケストレーションシステムの採用を開始し、Envo

      サービスメッシュ必読ガイド - 第2版: 次世代のマイクロサービス開発
    • マイクロサービスのQA・セキュリティ自動化テスト社内ツール「Testdeck」をOSS化しました! | メルカリエンジニアリング

      こんにちは。Product Securityチームの@gloriaです。前回、自動化テストエンジニアからセキュリティエンジニアへのキャリアチェンジについて記事を書きました。 今日は、最近OSSとして公開した社内ツールのプロジェクトについてお話をしたいと思います! 「Testdeck」とは? TestdeckはGolangで書いたgRPCマイクロサービスのインテグレーションテスト、エンドツーエンドテスト(E2E)とセキュリティテストの自動化ツールです。以下の機能を提供しています: gRPCとHTTPエンドポイントのインテグレーションテスト・E2Eテスト ファズテスト 悪意のあるペイロードの注入(Burp SuiteのIntruderという機能のように) gRPCとHTTPリクエストのユーティリティメソッド CharlesやBurp Suiteなどのデバッギングプロクシーに接続し、リクエストの

        マイクロサービスのQA・セキュリティ自動化テスト社内ツール「Testdeck」をOSS化しました! | メルカリエンジニアリング
      • RustでWeb APIを作る際のエラーハンドリング - CADDi Tech Blog

        TL;DR エラーハンドリングを行う目的 エラーハンドリングが適切に行われているとどう嬉しいか 1. エラーの発生原因が分かる 2. レスポンスステータスを型安全に出し分けることが可能になる どうエラーハンドリングを行うのか 実装方法 エラー型の定義で気を付けるべきポイント なぜanyhowを利用しないのか エラーハンドリングを行う上で持っている課題感 Drawer Growth グループ バックエンドエンジニアの中野です。今回は、私が所属するチームで gRPC API を開発する際に実践している Rust でのエラーハンドリングについて紹介していきます。 TL;DR エラーの発生原因がわかるようにエラー型を定義することが大切。 anyhow は使わずに自前のエラー型を定義して利用する。 エラーハンドリングを行う目的 そもそもなぜエラーハンドリングを行う必要があるのでしょうか。私が所属する

          RustでWeb APIを作る際のエラーハンドリング - CADDi Tech Blog
        • 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へ
          • Vagrantが開発言語をRubyからGo言語へ切り替え、次のメジャーバージョンアップ「Vagrant 3.0」で。現バージョンとの互換性は維持

            Vagrantが開発言語をRubyからGo言語へ切り替え、次のメジャーバージョンアップ「Vagrant 3.0」で。現バージョンとの互換性は維持 HashiCorpは、仮想環境をプログラミングできるツール「Vagrant」の開発言語を、これまでのRubyからGo言語切り替えることを明らかにしました。 Learn more about the new features, capabilities, and improvements we’re making on our journey toward Vagrant 3.0. https://t.co/49scP0FdqW — HashiCorp (@HashiCorp) June 11, 2021 時期未定ながら、今後約1年のあいだに登場するVagrant 2.3、Vagrant 2.4を経て、Vagrant 3.0でGo言語への移行が完了

              Vagrantが開発言語をRubyからGo言語へ切り替え、次のメジャーバージョンアップ「Vagrant 3.0」で。現バージョンとの互換性は維持
            • Infrastructure from Code (IfC) ツールまとめ - maybe daily dev notes

              昨今Infrastructure from Code (IfC)という概念をよく耳にします。先日もAWSのGregor Hohpeが関連する記事を書いていました。 architectelevator.com この記事では、Infrastructure from Codeとはなにか簡単に紹介し、具体的にどのようなツールがあるか網羅的にまとめます。 Infrastructure from Codeとはなにか Infrastructure from Code (IfC) とは、その名の通り、Infrastructure as Code (IaC) に関連する概念です。IaCとの根本的な違いは、IaCは開発者がインフラを明示的に意識して構成を記述するのに対し、IfCでは開発者がインフラをできるだけ意識しないよう抽象化を試みていることです。これにより、差別化に繋がらない重労働ができる限り排除された高

                Infrastructure from Code (IfC) ツールまとめ - maybe daily dev notes
              • Rust初心者がRustで全文検索サーバを作ってみた - Qiita

                情報検索・検索エンジン Advent Calendar 2019 の5日目の記事です。このAdvent Calendarを作った@takuya_aさんより、お誘いいただきました。 @minoru_osuka もし余裕あれば12/5の記事お願いします! https://t.co/YIA9tIB4Gj — takuya-a (@takuya_b) December 1, 2019 ということで、仕事とは別で個人的に始めたプロジェクトについて紹介できたらと思います。 私自身はApache Solrを好んで利用しています。 ただ、最近のサーバサイドの技術の移り変わりや、新しい開発言語の登場など、取り巻く環境が変化してきています。それらの習得も踏まえ、使ったことのない開発言語を用いて軽量な全文検索サーバを作り始めるという内容です。 開発した経緯 インフラの変化 ここ数年でインフラは大きく変化しました

                  Rust初心者がRustで全文検索サーバを作ってみた - Qiita
                • 今日から分散トレーシングに対応しないといけなくなった人のための opentelemetry-go 入門 - Cybozu Inside Out | サイボウズエンジニアのブログ

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

                    今日から分散トレーシングに対応しないといけなくなった人のための opentelemetry-go 入門 - Cybozu Inside Out | サイボウズエンジニアのブログ
                  • Go vs Rust : 特徴量DBに適するのはどっち!? (2020-04-14 実験追記) - ABEJA Tech Blog

                    ABEJA で Research Engineer をやっている中川です.普段は論文読んだり,機械学習モデルを実装したり,インフラを構築したりしています.今回のブログでは,Insight for Retail の一機能として提供しているリピータ分析に用いる特徴量DBの改善に向けた言語選定について紹介します. ※ たくさんの方々からのコメントありがとうございます.いただいた観点をベースに「2020-04-14 追記」以下に実験を追加しました. モチベーション リピート分析では,任意の特徴量をクエリに最も類似した特徴量を数100msec以内に検索する必要があり,一般的なデータベースでは実現することが難しいという課題がありました.そこで,われわれは python で独自のインメモリデータベースを実装し運用してきました.このデータベースがサービスの成長に合わせて限界を迎えつつあるので,アルゴリズム

                      Go vs Rust : 特徴量DBに適するのはどっち!? (2020-04-14 実験追記) - ABEJA Tech Blog
                    • Linuxカーネルが難しい?Rustで実装できそう!

                      「ついに、RustでLinuxカーネルを実装できる!」 待ち望んだ感を出してみましたが、2年前に記事を書いてから、すっかり忘れていました。LinuxカーネルのRustサポートについての意見を求められたら、「技術的には面白いけど、実用レベルではないね。」と、上から目線の回答でエンジニアレベルの高さをアピールするつもりでしたが、2年間の間、誰にも聞かれませんでした。 近々、LinuxカーネルにRustサポートが取り込まれそう、ということで、デバイスドライバを実装してみました。 Rust対応カーネルのコンパイルまずは、Rust対応を有効にしたLinuxカーネルをコンパイルする必要があります。「カーネルってコンパイルするものなの?」という読者は、ネットの長老たちに叡智を求めましょう。「インストール直後に、メモリ削減のために不要な機能を無効にして、カーネルコンパイルしたんじゃ。」というような、太古の

                        Linuxカーネルが難しい?Rustで実装できそう!
                      • C#大統一理論 - Qiita

                        C#大統一理論とは CySharpのneueccさんが提唱している理論で、ザックリ言えば サーバーサイドもクライアントサイドもC#で完結できるとよくね? という理論です。 そして現状サーバーサイドとクライアントサイドの両方で使える言語はC#を除くとJavaScriptくらいだと思います(なんかあったら教えてください) C#でクライアントサイドを作るにはXamarinやゲームエンジンのUnityが筆頭になります。 C#のよさ いろいろありますが、個人的に上げるなら 比較的言語が若く(C++と比較して)、LINQなどモダンな文法仕様が遂次追加されている(というかLINQは単独で良い)。 単純に.NET Coreがクラスプラットフォームで安定して動作する。マイクロソフトが本気を出してるからサーバーサイド、クライアントサイドから機械学習まで使える範囲がめちゃくちゃ広い。 decimalみたいな型ま

                          C#大統一理論 - Qiita
                        • ECS インフラの変遷 - クックパッド開発者ブログ

                          技術部 SRE グループの鈴木 (id:eagletmt) です。 クックパッドでは Amazon ECS をオーケストレータとして Docker を利用しています。Docker 自体は2014年末から本番環境にも導入を始めていましたが当時はまだ ECS が GA になっておらず、別のしくみを作って運用していました。2015年4月に GA となった ECS の検討と準備を始め、2016年より本格導入へと至りました。クックパッドでは当初から Hako というツールを用いて ECS を利用しており、Hako の最初のコミットは2015年9月でした。 https://github.com/eagletmt/hako/commit/7f95497505ef78491f3f68e9d648204c7c9bb5e2 当時は ECS に機能が足りずに自前で工夫していた部分も多かったのですが、ECS やそ

                            ECS インフラの変遷 - クックパッド開発者ブログ
                          • How we migrated Dropbox from Nginx to Envoy

                            In this blogpost we’ll talk about the old Nginx-based traffic infrastructure, its pain points, and the benefits we gained by migrating to Envoy. We’ll compare Nginx to Envoy across many software engineering and operational dimensions. We’ll also briefly touch on the migration process, its current state, and some of the problems encountered on the way. When we moved most of Dropbox traffic to Envoy

                              How we migrated Dropbox from Nginx to Envoy
                            • Dockerのファイルアクセスが最大で2倍から10倍高速に。買収したMutagenのファイル同期技術をDocker Desktopに統合

                              Docker社は、2023年に買収したMutagenの技術を1月25日付でリリースされたDocker Desktop 4.27に統合し、ファイルアクセスの速度を最大で2倍から10倍に向上させたことを明らかにしました。 Docker Desktopを用いた開発環境の課題の1つは、Docker Desktop環境で開発対象としている仮想マシンにあるファイル群と、仮想マシンをホストしているローカルマシン上のファイルとのやりとりに時間がかかることでした。 これはDocker環境からホストのファイルシステムにアクセスするためのbind mountと呼ばれる仕組みに主に起因するものです。 仮想マシンとホストマシンのファイルを高速かつ低遅延で同期 これを解決するのが、今回Docker Desktop 4.27で統合されたMutagenのファイル同期機能です。これはDocker Desktopが構築したコ

                                Dockerのファイルアクセスが最大で2倍から10倍高速に。買収したMutagenのファイル同期技術をDocker Desktopに統合
                              • “Tao of Node - Design, Architecture & Best Practices” 日本語翻訳

                                私が働いているAniqueという会社では、1年前に全てのソフトウェアでTypescriptを採用することにしました。私たちが開発している進撃の巨人のNFTサービス “Attack on Titan: Legacy” でも採用しています。 TypescriptではNestJSという素晴らしいAPIフレームワークを利用することができ、生産性高く開発を続けることができます。また、私たちはフロントエンドでNext.jsを利用しています。言語レベルでのコンテキストスイッチを抑えることで、一人のエンジニアがフロントエンドとバックエンドのどちらもの機能を開発する環境が作れました。 しかし、Nodeならではの作法や設計について、Web上にはたくさんの情報があるものの、あまりにも情報が多すぎて、まとまったプラクティスになかなか出会うことができませんでした。そのため、最初はチーム内での共通認識を作るのに苦労し

                                  “Tao of Node - Design, Architecture & Best Practices” 日本語翻訳
                                • 試行錯誤と改善を続けたRubyリリースマネジメントの歴史。その歩みを歴代の担当者たちが振り返る - Findy Engineer Lab

                                  世界中のエンジニアから愛されるオブジェクト指向スクリプト言語Ruby。多くの人々がこの言語にコントリビューションし、その成長を支えてきました。なかでも、特定バージョンのリリースの責任を持つ“リリースマネージャー”の功績はとても大きいものです。彼らの存在があったからこそ、Rubyのリリースは滞りなく行われてきました。 しかし、リリースマネジメントの歴史はけして平坦な道のりではありませんでした。歴代の担当者たちが、適切な運用方法について試行錯誤しながら、少しずつ改善を続けてきたのです。その過程には、全てのエンジニアにとって参考になるプロジェクトマネジメントの知見が詰まっています。 今回は、歴代のRubyリリースマネージャーである卜部昌平さん(@shyouhei)、園田裕貴さん(@yugui)、遠藤侑介さん(@mametter)、成瀬ゆいさん(@nalsh)にインタビュー。これまで担ってきた役割

                                    試行錯誤と改善を続けたRubyリリースマネジメントの歴史。その歩みを歴代の担当者たちが振り返る - Findy Engineer Lab
                                  • メルカリ Shops での NestJS を使った GraphQL Server の実装 | メルカリエンジニアリング

                                    ソウゾウの Software Engineer をやっています、@mookjp です。 8/10 の記事「メルカリShopsの技術スタックと、その選定理由」では、メルカリ Shops のアーキテクチャについて、その全体像を紹介しました。 この記事では、そのうちの BFF(Backend for Frontend) レイヤとして用意した GraphQL サーバについて、NestJS を使った実装例を交えて紹介します。 GraphQL とは GraphQL サーバ周辺の構成 NestJS とは GraphQL Module NestJS で Code First なスキーマ定義をする Object types の定義 Query と Mutation の定義 GraphQL スキーマの生成 スキーマの Breaking Change (破壊的変更)を防ぐ DataLoader を使って Bat

                                      メルカリ Shops での NestJS を使った GraphQL Server の実装 | メルカリエンジニアリング
                                    • k6を使いこなしてみよう - 生涯未熟

                                      この記事は MIXI DEVELOPERS Advent Calendar 2022 6 日目の記事です。 負荷試験を行う機会が年に何度かあるのですが、以前まではvegetaを使っていましたがちょっと高めの負荷をかけた時の挙動がよろしくなく、k6を試してみたところ不満が無かったので最近はk6を常用しています。 そんなk6をもうちょっと使いこなすために色々とまとめてみようかと思います。 k6とは? Grafana Labsが開発した負荷ツール。 github.com ツール自体はGo製で、負荷シナリオをJavaScriptで書きます。 負荷シナリオはk6 Browser RecorderというChrome拡張を使えばブラウジングしているだけで作成可能で、k6 Cloudを使ったWeb上でのシナリオ作成・管理・実行が可能です。 わざわざGitHub上でシナリオを管理しなくてもいいというのは個人

                                        k6を使いこなしてみよう - 生涯未熟
                                      • 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
                                        • 講義動画と課題 - はてなリモートインターンシップ2020 - 株式会社はてな - 株式会社はてな

                                          2020年は、はてな初のオンラインでのインターンシップ開催。 その講義の動画とインターン生に取り組んでもらった課題を公開します。 1週間という短い期間の中で、どれだけのものを吸収して持ち帰ってもらえるか、 はてなスタッフが全力で準備したカリキュラムを、 少しでも体験していただけるとうれしいです。 課題では、Kubernetes上に構築されたブログシステムを題材としました。 ブログシステムはマイクロサービスを意識しており、メインであるブログサービスに加えて、 アカウントサービスや、Markdownなどの記法を変換するサービスが用意されています。 それぞれのサービス間はgRPCを使って通信しています。

                                            講義動画と課題 - はてなリモートインターンシップ2020 - 株式会社はてな - 株式会社はてな
                                          • APIクライアント「Insomnia」で始める、チーム開発効率化 - JX通信社エンジニアブログ

                                            JX通信社の CTO の小笠原(@yamitzky)です。本日は、最近社内で検証している API クライアントの「Insomnia」や、Insomnia を活用したチームでの API 開発の効率化についてご紹介します。 Insomnia とは Insomnia は、オープンソースの API クライアントです。API 通信を GUI で直感的に検証・保存できる、というのが最も基本的な機能です。似たようなツールだと Postman などが有名だと思います。 insomnia.rest Insomnia は一般的な REST API だけでなく、GraphQL や gRPC の API にも対応したツールです。JX通信社では、NewsDigest や FASTALERT などのサービスで GraphQL を活用しているため、GraphQL にネイティブ対応しているのは非常に便利です。 Insom

                                              APIクライアント「Insomnia」で始める、チーム開発効率化 - JX通信社エンジニアブログ
                                            • Protocol Buffers によるプロダクト開発のススメ - API 開発の今昔 - | Wantedly Engineer Blog

                                              こんにちは、Wantedly People アプリの開発をしている竹野(Altech)です。今回は、Protocol Buffers についての記事になります。 Wantedly People では、2018年に Protocol Buffers (以下、Protobuf と呼ぶ)がとあるマイクロサービスに入って以降、何度か大規模に Protobuf を使った開発をしてきました。またその経験を通じて、Protobuf には単に「型がついて嬉しい」というだけではないパラダイム的な変化があることが分かってきました。 その知見を全社に展開するため、去年「Protobuf によるプロダクト開発速習会」という会を行いました。この記事の内容は、そこで話したことの前半「Protobuf を使うと開発がどう変わるのか?」になります。 なお、Protobuf にはバイナリフォーマットとしての役割とインターフ

                                                Protocol Buffers によるプロダクト開発のススメ - API 開発の今昔 - | Wantedly Engineer Blog
                                              • Mercari Microservices Platformの進捗(2019年) | メルカリエンジニアリング

                                                Microservices Platform TeamでTech leadをしている@deeeeeeetです. 昨年のMTC2018ではMicroservices Platformチームの立ち上げから1年で僕らが取り組んできたことを紹介しました. speakerdeck.com 具体的にはStranglerパターンによるMonolithからMicroservicesへの段階的なリクエスト移行を行うためのAPI gatewayの開発や,Microservicesのインフラのセットアップを簡単にしサービス開発チームのSelf-service化を進めるためのStarter-kitの開発,GoでのMicroservicesの開発を高速で始めるためのTemplateプロジェクトの開発,Spinnakerの導入などについて紹介しました. これらはPlatformとして最低限の機能を整備したにすぎず,さ

                                                  Mercari Microservices Platformの進捗(2019年) | メルカリエンジニアリング
                                                • プラットフォーム依存しない新しい「Docker Compose」 マルチコンテナをクラウドに簡単デプロイ

                                                  DockerCon 2021 にあわせて、ひさびさに開催された「Docker Meetup Tokyo」 DockerConの振り返りのほか、Docker 20.10の新機能や、大幅に新しくなったDocker Composeについてお知らせします。ゴリラ氏からは、Docker Composeの概要について発表がありました。 Docker CLIに梱包された新しいdocker compose ゴリラ氏:「新しいDocker Compose」と題して発表します。よろしくお願いします。 軽く自己紹介をします。ゴリラと申します。好きなものはGo、Vim、Dockerとかで、最近はちょっとDenoにハマっています。趣味はVimのプラグインだったり、Goを使ったCLIだったり、開発が多いです。あとは興味がある分野の勉強だったり、記事を書いたりです。最近はジムに行っていて、ムキムキな体を目指しています。

                                                    プラットフォーム依存しない新しい「Docker Compose」 マルチコンテナをクラウドに簡単デプロイ
                                                  • ssh-agent のしくみ - eagletmt's blog

                                                    ssh-agent のように daemon として起動し秘密の情報を保持しつつ別プロセスと通信するようなプログラムを書きたくて、ssh-agent はどう実装しているのかざっくり調べた。 https://github.com/openssh/openssh-portable 通信方法 これは普通に ssh-agent を使っていてもすぐ気付くことだけど、ssh-agent は UNIX domain socket を使って通信している。 eval $(ssh-agent) のように実行すると SSH_AUTH_SOCK と SSH_AGENT_PID の2つの環境変数がセットされ、SSH_AUTH_SOCK は UNIX domain socket のパスを、SSH_AGENT_PID は daemon 化した ssh-agent の pid を指している。 SSH_AUTH_SOCK は

                                                      ssh-agent のしくみ - eagletmt's blog
                                                    • ソケットAPIが遅すぎる?新たなio_uringを試す!

                                                      新しいAPIが作られるたびに、私たちは、古いAPIを置き換えるだけで高速化という夢をみます。何度夢破れても、高速なAPIが追加されたと聞けば、試さずにはいられませんよね! 今回は、Linuxカーネル5.1で追加されたio_uringを使って、Rustのasyncランタイムを実装し、gRPCサーバのベンチマークを実行してみました。 io_uringとはio_uringは、ファイルシステムとネットワークの非同期I/Oのために開発されました。同期よりも非同期のほうがおしゃれ、そういう雰囲気ありますよね!クラウドネイティブも、非同期にAPIを介して、なんかやってるやつですよね。 io_uringのインターフェイスは、高い性能を目指し、1)アプリケーションとカーネル間でのメモリコピーを避ける、2)複数のI/O要求を一度にカーネルに伝えることができる、という工夫がされています。 下図のように、アプリケ

                                                        ソケットAPIが遅すぎる?新たなio_uringを試す!
                                                      • REST APIを簡単にMockできるツールSmopeckの紹介 - Qiita

                                                        はじめに 最近のウェブアプリではバックエンドをREST-APIとして用意し、 フロントエンドはREST-APIから引っ張ってきたデータをReactやVueといったフレームワークで描画することが多いと思います。 このようなウェブアプリを開発する際に問題となるのはバックエンドとフロントエンドを並行して開発しにくいということです。バックエンドができなければフロントエンドはどんなデータが来るのかわからず描画できませんし、バックエンドもフロントエンドからどのようなリクエストが来るか決まらないと実装ができません。 そのため、最初にREST-APIの仕様を定めて、その仕様に沿ったモックサーバを作成し、 フロントエンドはバックエンドが完成するまでそれを用いて開発を進めるということが行われます。 さてそのREST-APIの仕様とはどのように記述されるのでしょうか? 1. 自然言語で記述する 一番よくある場合

                                                          REST APIを簡単にMockできるツールSmopeckの紹介 - Qiita
                                                        • YJITの性能を最大限引き出す方法 - k0kubun's blog

                                                          RubyのJITコンパイラYJITを開発している弊社Shopifyでは、社内で最もトラフィックが多いストアフロントのアプリにRuby 3.3 (master) をデプロイして平均レスポンスタイムが16%高速化、社内で最も大きなアプリであるモノリスにRuby 3.2をデプロイして平均レスポンスタイムが9%高速化している。他の会社でも、YJITを本番で有効にしたら高速化したという事例をちらほら目にした。 一方で必ずしも良い報告ばかりではなく、YJITを有効化したらメモリを使い切ってしまったりだとか、遅くなったみたいな報告も目に入ることがある。こういった問題は我々も多かれ少なかれ経験しており、それぞれ適切に対処することで解決できたため、その知見を共有する。*1 メモリを使い切ってしまった時 zenn.dev YJITを有効化すると、YJITが生成する機械語に加えて、それに関するメタデータもメモリ

                                                            YJITの性能を最大限引き出す方法 - k0kubun's blog
                                                          • TypeScriptとGraphQLで実現する型安全なAPI実装

                                                            この記事はTSKaigi2024での以下の私の発表内容を書き下ろしたものです。 なぜAPIに型をつけたいのか 現代のWebのシステム開発において、クライアント・サーバーともに型のある言語で開発されることが増えてきました。静的な型検査はコードの堅牢性やよりよいメンテナンス性の向上をもたらします。 プログラミング内部だけで型検査をするだけでも十分メリットはありますが、外部I/Oに対する型付けが不十分だとそのメリットを最大限に発揮してるとは言えません。外部I/Oとは、例えばWebフロントエンドだとLocalStorageやDOMからの入力値、それからネットワーク通信(今回はこれをAPIと呼びます[1])などですね。サーバー側でいうとAPIからの入力・レスポンスやデータベースへの読み書きが該当します。 個人的な経験から言うと、Webシステムの開発におけるエラーの多くはAPIやデータベースとのやり取

                                                              TypeScriptとGraphQLで実現する型安全なAPI実装
                                                            • 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よりも遅い?
                                                                • とほほのWWW入門

                                                                  はじめに ご使用上の注意 (1) 主な更新履歴 (24) 管理者へのメール (1) 自己紹介 (1) 基本編 用語集 (82) Webページ作成入門 (7) 逆引きリファレンス (32) フォーマット HTML (400) HTML5 (7) XHTML (1) MathML (1) DTD (1) JSON (1) SVG (1) VML (1) GIF (1) CSV (1) セマンティック・ウェブ (1) CSS CSS (ABC順)(719) Bootstrap (61) Less (1) Sass (1) Tailwind CSS (1) CSSフレームワーク (1) リセットCSS (1) プログラミング言語 JavaScript (39) TypeScript (1) Java (25) Perl (4) PHP (14) Ruby (11) Python (13) Go (

                                                                  • GraphQL 導入の反省と再挑戦 / jsconf jp 2021

                                                                    GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection

                                                                      GraphQL 導入の反省と再挑戦 / jsconf jp 2021
                                                                    • マイクロサービスの内部通信における認証について

                                                                      マイクロサービスの内部通信における認証について 1. マイクロサービスの内部通信における 認証について @pospome 2. 名前: pospome 読み方: ポスポメ Twitter: @pospome 専門: アプリケーションアーキテクチャ 実装パターンとかDDDとかが得意です 3. メルペイ認証基盤チーム メルカリ、メルペイにおける 認証認可を開発、運用するためのチーム 4. 認証基盤チームについてはブログ書きました https://www.pospome.work/entry/2019/06/12/125841 5. 現状 ・ユーザーアカウント管理とログイン処理はそれぞれのチームに任 せている。 ・メルカリ、メルペイの従業員の管理(入社、退職)やOktaによる ツールへのSSOは管理していない。いわゆる社内ITのようなことは していない。 ・セキュリティ面に関してはセキュリティチ

                                                                        マイクロサービスの内部通信における認証について
                                                                      • Web Vitals の概要: サイトの健全性を示す重要指標

                                                                        .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

                                                                          Web Vitals の概要: サイトの健全性を示す重要指標
                                                                        • Serverless連載3: Goでサーバーレス用の検索エンジンwatertowerを作ってみました | フューチャー技術ブログ

                                                                          サーバーレス連載の3回目は検索エンジンを作ってみたお話です。 クラウドサービスが充実してくるにつれて、サーバーレスではいろいろなことができるようになっています。HTTPサーバーは動きますし、RDBやNoSQLなストレージも使えますし、PubSubみたいなサービスも利用できます。これらを駆使するとそこそこ複雑な処理も記述できます。 一方で、上から下までサーバーレスにしようとするとできないものもいくつかあります。例えば、RDBも使えるといっても制約があり、LambdaやCloud FunctionsからRDSやCloudSQLを雑に使うとコネクションを張りすぎる問題があります。LambdaにはRDS Proxyが出始めています。あと、RDBそのものは基本的に常駐型なのでサーバーレスではないです。一応サーバーレスなのもありますが、起動時間が結構かかるらしい(自分ではまだ試してないです)。それ以外

                                                                            Serverless連載3: Goでサーバーレス用の検索エンジンwatertowerを作ってみました | フューチャー技術ブログ
                                                                          • エンジニアリング組織の設計と実践──「メルペイ」の事例から学ぶ、組織とアーキテクトの関係性とは? - TECH PLAY Magazine

                                                                            2017年末、メルカリからメルペイが設立された。メルカリ関連のお金まわりはもちろんのこと、独立した金融会社として、決済など各種金融サービスを展開していくためだ。 そして会社設立から約1年半で、サービスをローンチ。その裏側にはどんなストーリーがあったのか。技術と経営をつなぐアドバイザーとして数多くの企業の経営支援を担う、レクターの広木大地氏をモデレーターに迎え、メルペイCTOの曾川景介氏、同じく同社VPoEの木村秀夫氏との対談から考える。 【組織設計論】プロジェクトベースからマトリックス型組織に──その結果は? 広木:メルペイはメルカリのアプリに組み込まれる形で利用でき、お客さんから見ると単一のサービスには見えます。しかし実際には会社も違えば組織も異なります。互いの組織間で行う目標設定の調整は苦労があったのではありませんか。 ▲株式会社レクター 取締役 広木 大地氏 筑波大学大学院を卒業後、

                                                                              エンジニアリング組織の設計と実践──「メルペイ」の事例から学ぶ、組織とアーキテクトの関係性とは? - TECH PLAY Magazine
                                                                            • CtoCフリマアプリの作り方 (バックエンド編) 〜6カ月間のPayPayフリマ開発を支えた設計〜

                                                                              ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、PayPayフリマバックエンド開発の三宅です。 今回、YJTC2019-shibuyaにてPayPayフリマのバックエンド設計について話して来ましたので内容を紹介したいと思います。 本記事ではセッション前半のバックエンド部分をメインに紹介させていただきます。よろしくおねがいします。 PayPayフリマとは PayPayフリマはフリマに特化したサービスとして10月7日にiOS版をリリースしました。PayPayの名前がつく通り、PayPayを利用してフリマの商品をかんたんに購入でき、買い手から価格の相談をできる機能などが特長です。 また、ヤフオク!とも連携し、ヤフオク!に出品されている固定価格商品の一部もユーザー体験に変わ

                                                                                CtoCフリマアプリの作り方 (バックエンド編) 〜6カ月間のPayPayフリマ開発を支えた設計〜
                                                                              • フロントエンドをViteからNext.jsに書き換えた話 〜パフォーマンス編〜 - 株式会社ヘンリー エンジニアブログ

                                                                                こんにちは。4月にヘンリーに入社したSWE / アーキテクト / SETのsumirenです。 弊社ではレセコン一体型クラウド電子カルテの Henry を開発・提供しています。 今回、HenryのフロントエンドをReact + ViteからNext.jsに書き換えました。 この記事では、最初にNext.jsへの切り替えによってもたらされたユーザー体験の向上について説明します。次に、このユーザー体験の向上がどうして生じたのか、その背後にある技術的な要素をエンジニア向けに詳細に解説します。最後に、フロントエンドアーキテクチャに対する我々の長期的なビジョンについて述べます。 対象読者 Next.js導入によるユーザー体験向上 デモ 定量的なパフォーマンス比較 ユーザー体験がどう向上したか FCP高速化の技術的な仕組み Next.jsとViteの基本的なアーキテクチャの違い 補足:工夫しているポイ

                                                                                  フロントエンドをViteからNext.jsに書き換えた話 〜パフォーマンス編〜 - 株式会社ヘンリー エンジニアブログ
                                                                                • Amazon EKSでgRPCサーバを運用する - 一休.com Developers Blog

                                                                                  以前の記事でも紹介した通り、一休では、gRPCを使ったサービスを導入し始めています。 user-first.ikyu.co.jp この記事では、このサービスをAmazon EKSで提供するための設計や気をつけたポイントについて紹介します。 背景 一休では、ウェブアプリケーションの実行環境としてAWS Elastic Beanstalkを採用しています。 そして、この4月からElastic BeanstalkをAmazon EKSへ移行するプロジェクトを進めています。 このgRPCサービスもElastic Beanstalkで運用をしていましたが、以下の問題を抱えていました。 適切にロードバランシングできない。 Elastic BeanstalkでgRPCサービスを運用しようとするとNetwork Load Balancer(NLB)を使うことになります。NLBはレイヤ4のロードバランサです

                                                                                    Amazon EKSでgRPCサーバを運用する - 一休.com Developers Blog