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
Copy file name to clipboardExpand all lines: _posts/2015-10-26-principles.html
+2-2
Original file line number
Diff line number
Diff line change
@@ -13,10 +13,10 @@
13
13
<!--more-->
14
14
15
15
<p>
16
-
We’re also taking a big step forward in improving the installation process. Over the past few weeks we’ve rolled out gRPC packages to <ahref="https://packages.debian.org/jessie-backports/libgrpc0">Debian Stable/Backports</a>. Installation in most cases is now a two line install using the Debian package and available language specific package managers (<ahref="http://search.maven.org/#artifactdetails%7Cio.grpc%7Cgrpc-core%7C0.9.0%7Cjar">maven</a>, <ahref="https://pypi.python.org/pypi/grpcio">pip</a>, <ahref="https://rubygems.org/gems/grpc">gem</a>, <ahref="https://packagist.org/packages/grpc/grpc">composer</a>, <ahref="http://pecl.php.net/package/gRPC">pecl</a>, <ahref="https://www.npmjs.com/package/grpc">npm</a>, <ahref="https://www.nuget.org/packages/Grpc/">nuget</a>, <ahref="https://cocoapods.org/pods/gRPC">pod</a>). In addition <ahref="https://hub.docker.com/r/grpc/">gRPC docker images</a> are now available on Docker Hub.
16
+
We’re also taking a big step forward in improving the installation process. Over the past few weeks we’ve rolled out gRPC packages to <ahref="https://packages.debian.org/jessie-backports/libgrpc0">Debian Stable/Backports</a>. Installation in most cases is now a two line install using the Debian package and available language specific package managers (<ahref="https://search.maven.org/#artifactdetails%7Cio.grpc%7Cgrpc-core%7C0.9.0%7Cjar">maven</a>, <ahref="https://pypi.python.org/pypi/grpcio">pip</a>, <ahref="https://rubygems.org/gems/grpc">gem</a>, <ahref="https://packagist.org/packages/grpc/grpc">composer</a>, <ahref="https://pecl.php.net/package/gRPC">pecl</a>, <ahref="https://www.npmjs.com/package/grpc">npm</a>, <ahref="https://www.nuget.org/packages/Grpc/">nuget</a>, <ahref="https://cocoapods.org/pods/gRPC">pod</a>). In addition <ahref="https://hub.docker.com/r/grpc/">gRPC docker images</a> are now available on Docker Hub.
17
17
</p>
18
18
<p>
19
-
We’ve updated the <ahref="/docs/">documentation</a> on grpc.io to reflect the latest changes and released additional language-specific <ahref="http://www.grpc.io/docs/reference/">reference docs</a>. See what’s changed with the Beta release in the release notes on Github for <ahref="https://github.com/grpc/grpc-java/releases/tag/v0.9.0">Java</a>, <ahref="https://godoc.org/google.golang.org/grpc">Go</a> and <ahref="https://github.com/grpc/grpc/releases/tag/release-0_11_0">all other</a> languages.
19
+
We’ve updated the <ahref="/docs/">documentation</a> on grpc.io to reflect the latest changes and released additional language-specific <ahref="/docs/reference/">reference docs</a>. See what’s changed with the Beta release in the release notes on Github for <ahref="https://github.com/grpc/grpc-java/releases/tag/v0.9.0">Java</a>, <ahref="https://godoc.org/google.golang.org/grpc">Go</a> and <ahref="https://github.com/grpc/grpc/releases/tag/release-0_11_0">all other</a> languages.
20
20
</p>
21
21
<p>
22
22
In keeping in line with our <ahref="{{ site.baseurl }}/posts/principles">principles</a> and goal to enable highly performant and scalable APIs and microservices on top of HTTP/2, in the coming months, the focus of the gRPC project will be to keep improving performance and stability and adding carefully chosen features for production use cases. Documentation will also be clarified and will continue to improve with new examples and guides.
Copy file name to clipboardExpand all lines: _posts/2015-9-8-principles.html
+1-1
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ <h2>Motivation</h2>
17
17
18
18
<h2>Principles & Requirements</h2>
19
19
20
-
<p><strong>Services not Objects, Messages not References</strong> - Promote the microservices design philosophy of coarse-grained message exchange between systems while avoiding the <ahref="http://martinfowler.com/articles/distributed-objects-microservices.html">pitfalls of distributed objects</a> and the <ahref="https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing">fallacies of ignoring the network</a>.</p>
20
+
<p><strong>Services not Objects, Messages not References</strong> - Promote the microservices design philosophy of coarse-grained message exchange between systems while avoiding the <ahref="https://martinfowler.com/articles/distributed-objects-microservices.html">pitfalls of distributed objects</a> and the <ahref="https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing">fallacies of ignoring the network</a>.</p>
21
21
22
22
<p><strong>Coverage & Simplicity</strong> - The stack should be available on every popular development platform and easy for someone to build for their platform of choice. It should be viable on CPU & memory limited devices. </p>
Today, the gRPC project has reached a significant milestone with its [1.0 release](https://github.com/grpc/grpc/releases).
14
14
Languages moving to 1.0 include C++, Java, Go, Node, Ruby, Python and C# across Linux, Windows, and Mac. Objective-C and Android Java support on iOS and Android is also moving to 1.0. The 1.0 release means that the core protocol and API surface are now stable with measured performance, stress tested and developers can rely on these APIs and deploy in production, they will follow semantic versioning from here.
15
15
16
-
We are very excited about the progress we have made so far and would like to thank all our users and contributors. First announced in March 2015 with [Square](https://corner.squareup.com/2015/02/grpc.html), gRPC is already being used in many open source projects like [etcd](https://github.com/coreos/etcd) from CoreOS, [containerd](https://github.com/docker/containerd) from Docker, [cockroachdb](https://github.com/cockroachdb/cockroach) from Cockroach Labs, and by many other companies like [Vendasta](http://vendasta.com), [Netflix](https://github.com/Netflix/ribbon), [YikYak](http://yikyakapp.com) and [Carbon 3d](http://carbon3d.com). Outside of microservices, telecom giants like [Cisco](https://github.com/CiscoDevNet/grpc-getting-started), [Juniper](https://github.com/Juniper/open-nti), [Arista](https://github.com/aristanetworks/goarista), and Ciena, are building support for streaming telemetry and network configuration from their network devices using gRPC, as part of [OpenConfig](http://www.openconfig.net/) effort.
16
+
We are very excited about the progress we have made so far and would like to thank all our users and contributors. First announced in March 2015 with [Square](https://corner.squareup.com/2015/02/grpc.html), gRPC is already being used in many open source projects like [etcd](https://github.com/coreos/etcd) from CoreOS, [containerd](https://github.com/docker/containerd) from Docker, [cockroachdb](https://github.com/cockroachdb/cockroach) from Cockroach Labs, and by many other companies like [Vendasta](https://vendasta.com), [Netflix](https://github.com/Netflix/ribbon), [YikYak](http://yikyakapp.com) and [Carbon 3d](http://carbon3d.com). Outside of microservices, telecom giants like [Cisco](https://github.com/CiscoDevNet/grpc-getting-started), [Juniper](https://github.com/Juniper/open-nti), [Arista](https://github.com/aristanetworks/goarista), and Ciena, are building support for streaming telemetry and network configuration from their network devices using gRPC, as part of [OpenConfig](http://www.openconfig.net/) effort.
17
17
18
-
From the beta release, we have made significant strides in the areas of usability, interoperability, and performance measurement on the [road to 1.0](https://www.youtube.com/watch?v=_vfbVJ_u5mE). In most of the languages, the [installation of the gRPC runtime](http://www.grpc.io/blog/installation) as well as setup of a development environment is a single command. Beyond installation, we have set up automated tests for gRPC across languages and RPC types in order to stress test our APIs and ensure interoperability. There is now a [performance dashboard](http://goo.gl/tHPEfD) available in the open to see latency and throughput for unary and streaming ping pong for various languages. Other measurements have shown significant gains from using gRPC/Protobuf instead of HTTP/JSON such as in [CoreOS blogpost](https://blog.gopheracademy.com/advent-2015/etcd-distributed-key-value-store-with-grpc-http2/) and in [Google Cloud PubSub testing](https://cloud.google.com/blog/big-data/2016/03/announcing-grpc-alpha-for-google-cloud-pubsub). In the coming months, we will invest a lot more in performance tuning.
18
+
From the beta release, we have made significant strides in the areas of usability, interoperability, and performance measurement on the [road to 1.0](https://www.youtube.com/watch?v=_vfbVJ_u5mE). In most of the languages, the [installation of the gRPC runtime](/blog/installation) as well as setup of a development environment is a single command. Beyond installation, we have set up automated tests for gRPC across languages and RPC types in order to stress test our APIs and ensure interoperability. There is now a [performance dashboard](https://goo.gl/tHPEfD) available in the open to see latency and throughput for unary and streaming ping pong for various languages. Other measurements have shown significant gains from using gRPC/Protobuf instead of HTTP/JSON such as in [CoreOS blogpost](https://blog.gopheracademy.com/advent-2015/etcd-distributed-key-value-store-with-grpc-http2/) and in [Google Cloud PubSub testing](https://cloud.google.com/blog/big-data/2016/03/announcing-grpc-alpha-for-google-cloud-pubsub). In the coming months, we will invest a lot more in performance tuning.
19
19
20
20
Even within Google, we have seen Google cloud APIs like [BigTable](https://cloudplatform.googleblog.com/2015/07/A-Go-client-for-Google-Cloud-Bigtable.html), PubSub, [Speech](https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/speech/grpc), launch of a gRPC-based API surface leading to ease of use and performance benefits. Products like [Tensorflow](https://research.googleblog.com/2016/02/running-your-models-in-production-with.html) have effectively used gRPC for inter-process communication as well.
21
21
Beyond usage, we are keen to see the contributor community grow with gRPC. We are already starting to see contributions around gRPC in meaningful ways in the [grpc-ecosystem](https://github.com/grpc-ecosystem) organization. We are very happy to see projects like [grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway) to enable users to serve REST clients with gRPC based services, [Polyglot](https://github.com/grpc-ecosystem/polyglot) to have a CLI for gRPC, [Prometheus monitoring](https://github.com/grpc-ecosystem/go-grpc-prometheus) of gRPC Services and work with [OpenTracing](https://github.com/grpc-ecosystem/grpc-opentracing). You can suggest and contribute projects to this organization [here](https://docs.google.com/a/google.com/forms/d/119zb79XRovQYafE9XKjz9sstwynCWcMpoJwHgZJvK74/edit). We look forward to working with the community to take the gRPC project to new heights.
Copy file name to clipboardExpand all lines: _posts/2016-08-29-vendasta.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ The first optimization that we started with was to use the Go programming langua
20
20
21
21
The second optimization we used was to replicate large portions of our Datastore data into ElasticSearch. ElasticSearch is a fundamentally different storage technology to Datastore, and is not a managed service, so it was a big leap for us. But this change allowed us to migrate almost all of our overnight batch-processing APIs to real-time APIs. We had tried BigQuery, but it's query processing times meant that we couldn't display things in real time. We had tried cloudSQL, but there was too much data for it to easily scale. We had tried the appengine Search API, but it has limitations with result sets over 10,000. We instead scaled up our ElasticSearch cluster using [Google Container Engine](https://cloud.google.com/container-engine/) and with it's powerful aggregations and facet processing our needs were easily met. So with these first two solutions in place, we had made meaningful changes to the performance of our APIs.
22
22
23
-
The last optimization we made was to move our APIs to [gRPC](http://grpc.io). This change was much more extensive than the others as it affected our clients. Like ElasticSearch, it represents a fundamentally different model with differing performance characteristics, but unlike ElasticSearch we found it to be a true superset: all of our usage scenarios were impacted positively by it.
23
+
The last optimization we made was to move our APIs to [gRPC](/). This change was much more extensive than the others as it affected our clients. Like ElasticSearch, it represents a fundamentally different model with differing performance characteristics, but unlike ElasticSearch we found it to be a true superset: all of our usage scenarios were impacted positively by it.
24
24
25
25
26
26
The first benefit we saw from gRPC was the ability to move from publishing APIs and asking developers to integrate with them, to releasing SDKs and asking developers to copy-paste example code written in their language. This represents a really big benefit for people looking to integrate with our products, while not requiring us to hand-roll entire SDKs in the 5+ languages our partners and vendors use. It is important to note that we still write light wrappers over the generated gRPC SDKs to make them package-manager friendly, and to provide wrappers over the generated protobuf structures.
Our guest post today comes from Robert Sayre and Melinda Lu of VSCO.
14
14
15
-
Founded in 2011, [VSCO](http://vsco.co) is a community for expression—empowering people to create, discover and connect through images and words. VSCO is in the process of migrating their stack to gRPC.
15
+
Founded in 2011, [VSCO](https://vsco.co) is a community for expression—empowering people to create, discover and connect through images and words. VSCO is in the process of migrating their stack to gRPC.
0 commit comments