GraphQL: A success story for PayPal Checkout
PayPal Checkoutサービスは、四年間をかけて、純正REST APIから、 Batch APIへ移行して、さらに去年からPayPal Checkoutに全面移行したお話です。

元々の課題の定義は、支払い行為に伴い複数処理が常に発生し、処理時間がかかった事。

However, REST's principles don't consider the needs of Web and Mobile apps and their users. This is especially true in an optimized transaction like Checkout. Users want to complete their checkout as fast as possible. If your applications are consuming atomic REST APIs, you're often making many round trips from the client to the server to fetch data.

特にスマートデバイスで世界は自分の周りも複数既存APIをmashupしたり、proxyやgatewayの形で対応しているね。

サービス化(API化)の本質はソフトウェア産業化の続き。

「物の生産過程の産業革命」と「目に見えないソフトウェアの生産の産業革命」について妄想して見ます。

産業革命によって、職人仕事が機械に奪わられて、工場の工業労働者は、機械を操作するオペレーターに変身させられた。
ソフトウェア開発の将来も近いではないでしょうか?

そもそも今まで低水準言語から高水準言語に進化してきて、
最近だとクラウドやバーチャール技術によりOSのlow-levelのことを理解する必要もなくなった。

数名の会社の同僚と雑談していたが、SolrやSparkやHadoopなどを使っていて、
でもほとんどの時間は、設置と設定調整に取られている。
あまり高機能すぎるOSSだから設定項目だけでも数百に登る。
ですので性能チューニングだけで半年以上かかったとか。

話を聞いて思ったのが、開発業務がビジネスロジックをコーディングするはずだったプログラマーが、
設定調整や設定ファイルを書く仕事の量がだいぶ増えたじゃないか。
ソフトウェア製品を動かすための開発は、オペレーターに近いのかな?
CI/CDのためのコードやテストケースのコードなども、どっちかというと、オペレーターに近い。

ソフトウェアアーキテクチャのためのC4モデル

C4はコンテキスト(context)、コンテナ(containers)、コンポーネント(components)、コード(code)の略です。ソフトウェアアーキテクチャを様々な表示倍率で記述するための一連の階層図で、それぞれが(関心の)異なる聞き手に有用です。
C4モデルはコンテナ(アプリケーション、データストア、マイクロサービスなど)やコンポーネント、コードの観点からソフトウェアアーキテクチャの静的構造に関心を払っています。また、構築するソフトウェアシステムを使う人々についても考慮しています。

Strategies for Decomposing a System into Microservices
将系统分解为微服务的策略

ソフトウェアのオブジェクト指向設計やDBMSのER図設計には、
粒度についていつも難解な課題ですが、
マイクロサービスも同様で、サービスをどこまで細かく分割するかは、
今までベストプラティクスがなかった。

このドキュメントは、結構参考になるかもしれません。

正しいSREのやり方

Google Explains Why Others Are Doing SRE Wrong

Google诠释其它企业在实施SRE中的错误

SLOに対する理解が重要ですね。
要は、未然防止のためにやる指標で、障害対応のため(SLA)ではない。
ユーザが気づく前に、まずSREチームが問題を検知。

Typical SLOs at Google include:

uptime of 99.9% a month (i.e. 43 minutes of downtime a month)
99.99% of HTTP requests in a month succeed with a 200 OK
50% of HTTP requests returned in under 300ms

Istio and the Future of Service Meshes

Istio以及Service Mesh的未来

Envoy is a high-performance, open source distributed proxy developed in C++ at Lyft (where it handles all of their production traffic). Deployed as a sidecar, Envoy intercepts all incoming and outgoing traffic to apply network policies and integrate with Istio's control plane.

Istio leverages many of Envoy's built-in features such as discovery and load balancing, traffic splitting, fault injection, circuit breakers and staged rollouts.