SlideShare a Scribd company logo
1 of 57
Download to read offline
gRPC:更⾼效的微服務介⾯
A more efficient microservice interface
葉秉哲
2020-09-08
Sr. Software Engineer
Carousell is a classifieds marketplace that makes selling as easy as taking a
photo, buying as simple as cha=ng. Launched in August 2012, Carousell began
in Singapore and now has a presence in eight markets across Asia. With
over 250 million lisEngs, we are one of the world’s largest and fastest-growing
marketplaces in Southeast Asia, Taiwan and Hong Kong, and are backed by
Telenor Group, Rakuten Ventures, Sequoia India and Naspers. The
Carousell marketplace has a diverse range of products across a variety of
categories, including cars, lifestyle, gadgets and fashion accessories.
With over 250 million lisBngs, we are one of the
world’s largest and fastest-growing marketplaces in
Southeast Asia, Taiwan and Hong Kong. The
Carousell marketplace has a diverse range of products
across a variety of categories, including cars, lifestyle,
gadgets and fashion accessories.
We use gRPC!
簡易 性能
左右擺盪
簡易 性能左右擺盪
Unix RPC
Java RMI
SOAP Web Service
REST
CORBA
hUps://github.com/dotnet-architecture/eShopOnContainers
Microservice world…
hUps://github.com/dotnet-architecture/eShopOnContainers
Is REST still good enough
in the microservice world?
簡易
REST
過於簡單的模型,
⽋缺基本的服務治理。
過於陽春的 HTTP,
⽋缺⾼效的傳輸介⾯。
HTTP 1.1
Swagger
WebSocket
OpenAPI
缺點 ➠改進
(個別)
簡易 性能左右擺盪
gRPC
過於簡單的模型,
⽋缺基本的服務治理。
過於陽春的 HTTP,
⽋缺⾼效的傳輸介⾯。
HTTP/2
Protocol Buffers
+
=
REST
(綜合)
簡易 性能左右擺盪
REST Unix RPC
Java RMI
SOAP Web Service
CORBA
gRPC
gRPC app
Protobuf
HTTP/2
HTTP 1.1
TCP + TLS 1.2
UDP
HTTP/3
IP
HTTP app
QUIC +
TLS 1.3
HTTP/2
HTTP 1.1
TCP + TLS 1.2
IP
HTTP app
Demo #1
HTTP/2
⾼效的傳輸介⾯
curl http://nghttp2.org/
HTTP 1.1
HTTP/2
curl -vkso /dev/null http://nghttp2.org/
HTTP/1.1 header size = 385
curl --http2 -vkso /dev/null http://nghttp2.org/
HTTP/2 header size = 224
curl http://nghttp2.org/
HTTP 1.1
HTTP/2
http header size 42% ➡
HTTP/2 key differences
✓binary, instead of textual
✓header compression to reduce overhead
• fully multiplexed, instead of ordered and
blocking
• can use one connection for parallelism
• server “push”
hUps://hUp2.github.io/faq/#what-are-the-key-differences-to-hUp1x
HTTP/2
HTTP 1.1
TCP + TLS 1.2
IP
HTTP app
gRPC app
Protobuf
HTTP/2
HTTP 1.1
TCP + TLS 1.2
IP
HTTP appgRPC
Protocol Buffers
+
=
HTTP/2
Demo #2
Protocol buffers
服務治理模型
HTTP/2
HTTP 1.1
TCP + TLS 1.2
IP
HTTP app
Content-Type: xxx/yyy
IDL Swagger
Client Server
Codegen
Client SDK Server stub
App
REST with Design-First API Strategy
java -jar swagger-codegen-cli …
IDL .proto
Client Server
Codegen
Client API Server API
App
protoc XXX.proto --go_out=plugins=grpc:.
gRPC
Protocol buffers and competitors
2008 Protobuf 2 by Google Apache Thril by Facebook
2009 Apache Avro by Hadoop
2016 Protobuf 3 by Google
gRPC 1.0 by Google
2017 gRPC donated to CNCF
IDL .proto
Client Server
Codegen
Client API Server API
App
protoc XXX.proto --go_out=plugins=grpc:.
gRPC
IDL .proto
Server
Mock
App
grpcurl Server Mock
gRPC dev/test with mock & grpcurl
50051
10000
hUps://github.com/William-Yeh/grpcurl-and-ghz-demo
IDL .proto
route_guide.proto
IDL .proto
Mock Server Mock
50051
docker run -ti 
--name mock --rm -p 50051:50051 
-v $(pwd)/routeguide:/proto 
-v $(pwd)/mock:/mock 
williamyeh/grpc-mock /mock/mock.js
mock.js
IDL .proto
Mock grpcurl Server Mock
50051
grpcurl -plaintext 
-d '{"latitude":407838351, "longitude":-746143763}' 
-import-path ./routeguide 
-proto route_guide.proto 
127.0.0.1:50051 
routeguide.RouteGuide.GetFeature
IDL .proto
App server.go
out/server Server
10000
Server API
protoc XXX.proto --go_out=plugins=grpc:.
Codegen
xxx.pb.go
grpcurl -plaintext 
-d '{"latitude":407838351, "longitude":-746143763}' 
-import-path ./routeguide 
-proto route_guide.proto 
127.0.0.1:10000 
routeguide.RouteGuide.GetFeature
IDL .proto
Server
grpcurl
10000
Protobuf message
IDL .proto
Server
grpcurl
10000
Try to input invalid message?
gRPC app
Protobuf
HTTP/2
HTTP 1.1
TCP + TLS 1.2
IP
HTTP appgRPC
Protocol Buffers
+
=
HTTP/2
gRPC benefits
✓ binary, instead of textual
✓ header compression to
reduce overhead
• fully multiplexed, instead
of ordered and blocking
• can use one connection for
parallelism
• server “push”
✓ binary marshaling format
✓ IDL
✓ language neutral
HTTP/2 Protobuf
Bidirectional
streaming
gRPC in the real world
gRPC app
Protobuf
HTTP/2
HTTP 1.1
TCP + TLS 1.2
IP
HTTP app
Server
gRPC
Server
Server
gRPC:更⾼效的微服務介⾯
⾼效的傳輸介⾯
服務治理模型
Server
REST
gRPC
Server
Server
Desktop
app
Mobile
app
?
?
Web
browser
?
?
Server
?
❶
❷
❸
❸ ❸
Beyond microservices?
Server
REST
gRPC
Server
Server
Mobile
app ?
Question ❶
hUps://grpc.io/docs/languages/
Mobile
app
gRPC mobile app
Protobuf
HTTP/2
TCP + TLS 1.2
UDP
HTTP/3
IP
QUIC +
TLS 1.3Challenge!
Rescue!
Connection migration
Server
gRPC
Server
Server
Web
browser ?
Question ❷
Server
gRPC
Server
Server
grpc-web
proxy
Web
browser
grpc-web
JS client
hUps://github.com/grpc/grpc-web
Limited gRPC functionalities
e.g., Envoy
Server
REST
gRPC
Server
Server
Mobile
app
?
Web
browser
?
Server
?
Question ❸
Server
REST
gRPC
Server
Server
Server
grpc-gateway
Mobile
app
Web
browser
Solution #1
IDL .proto
Server
Codegen
Reverse proxy code
App
protoc XXX.proto --grpc-gateway_out=.
grpc-gateway
hUps://github.com/grpc-ecosystem/grpc-gateway
protoc XXX.proto --swagger_out=.
REST
gRPC
Server
Server
Server
Server
API gateway
Mobile
app
Web
browser
Solution #2
Off-the-shelf software
Custom software
Conclusion
hUps://github.com/dotnet-architecture/eShopOnContainers
Is REST still good enough
in the microservice world?
簡易 性能
gRPC
過於簡單的模型,
⽋缺基本的服務治理。
過於陽春的 HTTP,
⽋缺⾼效的傳輸介⾯。
HTTP/2
Protocol Buffers
+
=
REST
gRPC app
Protobuf
HTTP/2
HTTP 1.1
TCP + TLS 1.2
IP
HTTP app
gRPC benefits
✓ binary, instead of textual
✓ header compression to
reduce overhead
• fully multiplexed, instead
of ordered and blocking
• can use one connection for
parallelism
• server “push”
✓ binary marshaling format
✓ IDL
✓ language neutral
HTTP/2 Protobuf
Bidirectional
streaming
We’re hiring!
Software Engineer, Backend (Taiwan)
https://grnh.se/c90e0c461us
• Newton's Cradle by Rflor from the Noun
Project
Attribution
gRPC:更高效的微服務介面

More Related Content

What's hot

十二項架構設計原則
十二項架構設計原則十二項架構設計原則
十二項架構設計原則Philip Zheng
 
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -ShionITO1
 
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~株式会社MonotaRO Tech Team
 
User Story 的那些人與那些事
User Story 的那些人與那些事User Story 的那些人與那些事
User Story 的那些人與那些事Yiching Chen
 
ネットワークの切り替えを感知する方法
ネットワークの切り替えを感知する方法ネットワークの切り替えを感知する方法
ネットワークの切り替えを感知する方法Keisuke Yamaguchi
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTakuto Wada
 
イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡NTT Communications Technology Development
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩Ayana Yokota
 
如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)Gelis Wu
 
【アジャイルサムライ】6章_ユーザストーリーを集める
【アジャイルサムライ】6章_ユーザストーリーを集める【アジャイルサムライ】6章_ユーザストーリーを集める
【アジャイルサムライ】6章_ユーザストーリーを集めるAkio Terayama
 
大型 Web Application 轉移到 微服務的經驗分享
大型 Web Application 轉移到微服務的經驗分享大型 Web Application 轉移到微服務的經驗分享
大型 Web Application 轉移到 微服務的經驗分享Andrew Wu
 
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發Edward Kuo
 
敏捷轉型:目標管理工作坊
敏捷轉型:目標管理工作坊敏捷轉型:目標管理工作坊
敏捷轉型:目標管理工作坊William Yeh
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからHiroshi Kawada
 
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所Kotaro Ogino
 
Design Sprint ガイドブック v2
Design Sprint ガイドブック v2Design Sprint ガイドブック v2
Design Sprint ガイドブック v2Takaaki Umada
 
Go 製リアルタイムサーバーの Kubernetes での運用について
Go 製リアルタイムサーバーの  Kubernetes での運用についてGo 製リアルタイムサーバーの  Kubernetes での運用について
Go 製リアルタイムサーバーの Kubernetes での運用についてKairiOkumura
 
クエリビルダとEloquent ORM の違い
クエリビルダとEloquent ORM の違いクエリビルダとEloquent ORM の違い
クエリビルダとEloquent ORM の違いtomo
 
Lyssa Adkins & Michael Spayd (Keynote)
Lyssa Adkins & Michael Spayd (Keynote)Lyssa Adkins & Michael Spayd (Keynote)
Lyssa Adkins & Michael Spayd (Keynote)AgileNZ Conference
 

What's hot (20)

十二項架構設計原則
十二項架構設計原則十二項架構設計原則
十二項架構設計原則
 
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
 
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
 
User Story 的那些人與那些事
User Story 的那些人與那些事User Story 的那些人與那些事
User Story 的那些人與那些事
 
ネットワークの切り替えを感知する方法
ネットワークの切り替えを感知する方法ネットワークの切り替えを感知する方法
ネットワークの切り替えを感知する方法
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩
 
如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)
 
【アジャイルサムライ】6章_ユーザストーリーを集める
【アジャイルサムライ】6章_ユーザストーリーを集める【アジャイルサムライ】6章_ユーザストーリーを集める
【アジャイルサムライ】6章_ユーザストーリーを集める
 
大型 Web Application 轉移到 微服務的經驗分享
大型 Web Application 轉移到微服務的經驗分享大型 Web Application 轉移到微服務的經驗分享
大型 Web Application 轉移到 微服務的經驗分享
 
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
 
敏捷轉型:目標管理工作坊
敏捷轉型:目標管理工作坊敏捷轉型:目標管理工作坊
敏捷轉型:目標管理工作坊
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれから
 
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
 
Design Sprint ガイドブック v2
Design Sprint ガイドブック v2Design Sprint ガイドブック v2
Design Sprint ガイドブック v2
 
Go 製リアルタイムサーバーの Kubernetes での運用について
Go 製リアルタイムサーバーの  Kubernetes での運用についてGo 製リアルタイムサーバーの  Kubernetes での運用について
Go 製リアルタイムサーバーの Kubernetes での運用について
 
例外處理設計
例外處理設計例外處理設計
例外處理設計
 
クエリビルダとEloquent ORM の違い
クエリビルダとEloquent ORM の違いクエリビルダとEloquent ORM の違い
クエリビルダとEloquent ORM の違い
 
Lyssa Adkins & Michael Spayd (Keynote)
Lyssa Adkins & Michael Spayd (Keynote)Lyssa Adkins & Michael Spayd (Keynote)
Lyssa Adkins & Michael Spayd (Keynote)
 

Similar to gRPC:更高效的微服務介面

Openshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetupOpenshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetupGiuseppe Bonocore
 
How to use apolloJS on React ?
How to use apolloJS on React ?How to use apolloJS on React ?
How to use apolloJS on React ?Jonathan Jalouzot
 
apidays New York - Building the Fabric to Future-Proof Modern API Architectur...
apidays New York - Building the Fabric to Future-Proof Modern API Architectur...apidays New York - Building the Fabric to Future-Proof Modern API Architectur...
apidays New York - Building the Fabric to Future-Proof Modern API Architectur...apidays
 
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...apidays
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays
 
API Design Principles with Oracle Apiary.
API Design Principles with Oracle Apiary.API Design Principles with Oracle Apiary.
API Design Principles with Oracle Apiary.Rolando Carrasco
 
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...Henning Jacobs
 
Google Opening up to Developers - From 2 to 55 APIs in 3 years
Google Opening up to Developers - From 2 to 55 APIs in 3 yearsGoogle Opening up to Developers - From 2 to 55 APIs in 3 years
Google Opening up to Developers - From 2 to 55 APIs in 3 yearsPatrick Chanezon
 
Serverless projects at Myplanet
Serverless projects at MyplanetServerless projects at Myplanet
Serverless projects at MyplanetDaniel Zivkovic
 
Dirigible @ Skyscanner
Dirigible @ SkyscannerDirigible @ Skyscanner
Dirigible @ SkyscannerJordan Pavlov
 
How has netflix embraced graph ql for rapid application development
How has netflix embraced graph ql for rapid application developmentHow has netflix embraced graph ql for rapid application development
How has netflix embraced graph ql for rapid application developmentjenniferCarnel1
 
API Design Principles using Oracle Apiary.io
API Design Principles using Oracle Apiary.ioAPI Design Principles using Oracle Apiary.io
API Design Principles using Oracle Apiary.ioRolando Carrasco
 
Create GraphQL server with apolloJS
Create GraphQL server with apolloJSCreate GraphQL server with apolloJS
Create GraphQL server with apolloJSJonathan Jalouzot
 
Full Stack Graph in the Cloud
Full Stack Graph in the CloudFull Stack Graph in the Cloud
Full Stack Graph in the CloudNeo4j
 
AWS Stripe Meetup - Powering UK Startup Economy
AWS Stripe Meetup - Powering UK Startup EconomyAWS Stripe Meetup - Powering UK Startup Economy
AWS Stripe Meetup - Powering UK Startup EconomyAmazon Web Services
 
GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018Sashko Stubailo
 
APIdays Paris 2018 - GraphQL Opening Talk: The State of GraphQL, Jonathan Jal...
APIdays Paris 2018 - GraphQL Opening Talk: The State of GraphQL, Jonathan Jal...APIdays Paris 2018 - GraphQL Opening Talk: The State of GraphQL, Jonathan Jal...
APIdays Paris 2018 - GraphQL Opening Talk: The State of GraphQL, Jonathan Jal...apidays
 
Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Ari Leichtberg
 
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
OpenAPI v.Next - Events, Alternative Schemas & the Road AheadOpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
OpenAPI v.Next - Events, Alternative Schemas & the Road AheadTed Epstein
 

Similar to gRPC:更高效的微服務介面 (20)

Openshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetupOpenshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetup
 
How to use apolloJS on React ?
How to use apolloJS on React ?How to use apolloJS on React ?
How to use apolloJS on React ?
 
apidays New York - Building the Fabric to Future-Proof Modern API Architectur...
apidays New York - Building the Fabric to Future-Proof Modern API Architectur...apidays New York - Building the Fabric to Future-Proof Modern API Architectur...
apidays New York - Building the Fabric to Future-Proof Modern API Architectur...
 
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
 
Styleguide for your APIs
Styleguide for your APIsStyleguide for your APIs
Styleguide for your APIs
 
API Design Principles with Oracle Apiary.
API Design Principles with Oracle Apiary.API Design Principles with Oracle Apiary.
API Design Principles with Oracle Apiary.
 
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
 
Google Opening up to Developers - From 2 to 55 APIs in 3 years
Google Opening up to Developers - From 2 to 55 APIs in 3 yearsGoogle Opening up to Developers - From 2 to 55 APIs in 3 years
Google Opening up to Developers - From 2 to 55 APIs in 3 years
 
Serverless projects at Myplanet
Serverless projects at MyplanetServerless projects at Myplanet
Serverless projects at Myplanet
 
Dirigible @ Skyscanner
Dirigible @ SkyscannerDirigible @ Skyscanner
Dirigible @ Skyscanner
 
How has netflix embraced graph ql for rapid application development
How has netflix embraced graph ql for rapid application developmentHow has netflix embraced graph ql for rapid application development
How has netflix embraced graph ql for rapid application development
 
API Design Principles using Oracle Apiary.io
API Design Principles using Oracle Apiary.ioAPI Design Principles using Oracle Apiary.io
API Design Principles using Oracle Apiary.io
 
Create GraphQL server with apolloJS
Create GraphQL server with apolloJSCreate GraphQL server with apolloJS
Create GraphQL server with apolloJS
 
Full Stack Graph in the Cloud
Full Stack Graph in the CloudFull Stack Graph in the Cloud
Full Stack Graph in the Cloud
 
AWS Stripe Meetup - Powering UK Startup Economy
AWS Stripe Meetup - Powering UK Startup EconomyAWS Stripe Meetup - Powering UK Startup Economy
AWS Stripe Meetup - Powering UK Startup Economy
 
GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018
 
APIdays Paris 2018 - GraphQL Opening Talk: The State of GraphQL, Jonathan Jal...
APIdays Paris 2018 - GraphQL Opening Talk: The State of GraphQL, Jonathan Jal...APIdays Paris 2018 - GraphQL Opening Talk: The State of GraphQL, Jonathan Jal...
APIdays Paris 2018 - GraphQL Opening Talk: The State of GraphQL, Jonathan Jal...
 
Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08
 
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
OpenAPI v.Next - Events, Alternative Schemas & the Road AheadOpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
 

More from William Yeh

給 RD 的 Kubernetes 初體驗 (EKS version)
給 RD 的 Kubernetes 初體驗 (EKS version)給 RD 的 Kubernetes 初體驗 (EKS version)
給 RD 的 Kubernetes 初體驗 (EKS version)William Yeh
 
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)William Yeh
 
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version) 給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version) William Yeh
 
Next ’19 的 Istio 場次 重點摘要
Next ’19 的 Istio 場次 重點摘要Next ’19 的 Istio 場次 重點摘要
Next ’19 的 Istio 場次 重點摘要William Yeh
 
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)William Yeh
 
給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗William Yeh
 
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)William Yeh
 
為了精準估算,你必須付出什麼代價?
為了精準估算,你必須付出什麼代價?為了精準估算,你必須付出什麼代價?
為了精準估算,你必須付出什麼代價?William Yeh
 
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)William Yeh
 
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...William Yeh
 
軟體雲端化的要素 (Elements of Cloud-Native Apps)
軟體雲端化的要素 (Elements of Cloud-Native Apps)軟體雲端化的要素 (Elements of Cloud-Native Apps)
軟體雲端化的要素 (Elements of Cloud-Native Apps)William Yeh
 
瓶頸處理九大原則 (精簡版)
瓶頸處理九大原則 (精簡版)瓶頸處理九大原則 (精簡版)
瓶頸處理九大原則 (精簡版)William Yeh
 
Docker 導入:障礙與對策
Docker 導入:障礙與對策Docker 導入:障礙與對策
Docker 導入:障礙與對策William Yeh
 
Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點William Yeh
 
從限制理論看 DevOps
從限制理論看 DevOps從限制理論看 DevOps
從限制理論看 DevOpsWilliam Yeh
 
有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?William Yeh
 
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)William Yeh
 
Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)William Yeh
 
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點William Yeh
 
Whoscall 的 Realtime Monitoring 經驗分享
Whoscall 的 Realtime Monitoring 經驗分享Whoscall 的 Realtime Monitoring 經驗分享
Whoscall 的 Realtime Monitoring 經驗分享William Yeh
 

More from William Yeh (20)

給 RD 的 Kubernetes 初體驗 (EKS version)
給 RD 的 Kubernetes 初體驗 (EKS version)給 RD 的 Kubernetes 初體驗 (EKS version)
給 RD 的 Kubernetes 初體驗 (EKS version)
 
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
 
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version) 給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
 
Next ’19 的 Istio 場次 重點摘要
Next ’19 的 Istio 場次 重點摘要Next ’19 的 Istio 場次 重點摘要
Next ’19 的 Istio 場次 重點摘要
 
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
 
給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗
 
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
 
為了精準估算,你必須付出什麼代價?
為了精準估算,你必須付出什麼代價?為了精準估算,你必須付出什麼代價?
為了精準估算,你必須付出什麼代價?
 
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
 
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
 
軟體雲端化的要素 (Elements of Cloud-Native Apps)
軟體雲端化的要素 (Elements of Cloud-Native Apps)軟體雲端化的要素 (Elements of Cloud-Native Apps)
軟體雲端化的要素 (Elements of Cloud-Native Apps)
 
瓶頸處理九大原則 (精簡版)
瓶頸處理九大原則 (精簡版)瓶頸處理九大原則 (精簡版)
瓶頸處理九大原則 (精簡版)
 
Docker 導入:障礙與對策
Docker 導入:障礙與對策Docker 導入:障礙與對策
Docker 導入:障礙與對策
 
Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點
 
從限制理論看 DevOps
從限制理論看 DevOps從限制理論看 DevOps
從限制理論看 DevOps
 
有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?
 
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
 
Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)
 
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
 
Whoscall 的 Realtime Monitoring 經驗分享
Whoscall 的 Realtime Monitoring 經驗分享Whoscall 的 Realtime Monitoring 經驗分享
Whoscall 的 Realtime Monitoring 經驗分享
 

Recently uploaded

Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 

Recently uploaded (20)

Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 

gRPC:更高效的微服務介面