
Hace unos años, para cerrar uno de sus artĂculos, resultĂł traducir este manual. De hecho, esta opciĂłn se ha convertido en una traducciĂłn oficial. Pero el desarrollo de esta traducciĂłn se ve obstaculizada por el hecho de que fue escrita en Google Drive y cerrada para su ediciĂłn. Hoy me tomĂ© el tiempo de reformatear todo este texto en formato MD con la ayuda del editor Habr, estoy feliz de publicarlo aquĂ y pronto lo darĂ© a los colaboradores actuales.
Diccionario
Node — —
Content — — e
Traffic — — /,
Hardware — —
Instance — — . API
Headers — — ( TCP , HTTP )
. , , .
(Latency) vs (Throughput)
- .
, .
, .
(Availability) vs () Consistency
CAP

, :
- — , .
- — , . , .
- — , , (node) .
, . .
CP — (consistency and partition tolerance) — +
, , timeout ( ). . . , -, .
AP — (availability and partition tolerance) — +
, . ( ), .
, . , .
, . . CAP — .
, , . best effort (A best effort approach is taken)
memcached. real-time, VoIP, . , , , .
, , , ( ). .
DNS Email. .
, . , . .
RDBMSes. , .
: .
(Fail-over)
- (Active-passive)
(heartbeats) . , IP .
(downtime) , . (hot) (cold) .
— shoot the other node in the head (STONITH), . , , .
- master-slave — -.
-
- , , .
, DNS IP . , .
-, — master-master — -.
Master-slave master-master
.
(Domain name system)

DNS — IP . www.example.com 127.0.0.1.
DNS . , DNS . DNS , , - . DNS .
- NS- (name server) — DNS /.
- MX- (mail exchange) — .
- A- (address) — IP .
- CNAME- (canonical) — (example.com www.example.com) A-.
CloudFlare Route 53 DNS . DNS , :
DNS
- DNS , , .
- DNS , DNS, .
- DNS .
(Content delivery network)

Content delivery network (CDN) — , . , CDN HTML, CSS, JS, .
CDN :
Push CDN
Push CDNs . , CDN () CDN . .
Push CDN . CDN, .
Pull CDN
Pull CDN . , . CDN- .
TTL — time-to-live, . Pull CDN , CDN, , CDN , .
Pull CDN , .
: CDN.
:
(Load balancer)

(, ), , .
:
() HAProxy.
:
- SSL — .
— .
— X.509 - — . , , .
, - - .
:
Layer 4
, . IP , . Network Address Translation (NAT).
Layer 7
, , .
.
4- , , . , .
(Horizontal scaling)
, . ( ). - .
:
- ,
- (SQL, NoSQL) (Redis, Memcached)
:
(-) — Reverse proxy (web server)

. , .
:
- — , IP , .
- — , .
- SSL — .
- —
- —
- —
— HTML/CSS/JS
—
—
—
vs
- . , .
- .
- NGINX HAProxy layer 7 .
:
/ (Application layer)

. API, .
.
— Microservices
, , . API . Pinterest, , : , , , , .
«Microservice Architecture» . , : -, , (endpoints) .
«» — . , , . , , . , . , , , .
, — , , , HTTP. - . . .
, , (monolithic style): , . Enterprise : ( HTML javascript-), ( , ) . HTTP , , , HTML , . .
— . , , namespace-. . .
, , , . , , . , , . , .

: . , . .
, . , , Unix. , .
, , , , . , , , . , .
, , . , .
, , . : — , .
, — . , , — , - remote procedure call (RPS).
— . , , , . , , - , . , - , , , , — , .
— . Published Interface. . .
, . , , API (coarser-grained), . , - , .
, . , . , , .
, , UI , . , - - . , , . (Conway's Law) .
« , - ( ) , »
— Melvyn Conway, 1967

(Conway's Law)
. , -, , . - , : user-experience, project management.

,
, — www.comparethemarket.com. - , .
, . , . , . , - . , . .
?
«» , , «». , , . , « » (, ), .. 12 (. .: , ). , .
, , . , (1 12 1 1 ) , . (. .: , ; , , « », ).
,
, , , , . .
, , . , " , ", . , , , , .. .
. — , . , — -.
, , .
(Smart endpoints and dumb pipes)
, . Enterprise Service Bus (ESB). ESB- , , -.
: . , , (decoupled) (cohesive), : Unix- — , . , WS-* BPEL, REST- .
— HTTP API . Ian Robinson: «Be of the web, not behind the web».
, , , (, , Unix). IT-.
— . — RabbitMQ ZeroMQ . — , .
. . «» , . .
. , — . . , .
, , . Node.js ? . C++ real-time ? . , ? .
, -, . .
, , . , , -, , . , -. , git github - , - .
Netflix — , . , , , . , , .
, . Tolerant Reader Consumer-Driven Contracts , . Consumer-Driven . , . : , — YAGNI.
— , . , , 24/7. , , . Netflix — , . 3 — , .
SOA
, , Service Oriented Architecture (SOA), . , .. , SOA. , , , SOA , , , «SOA» , , - ESB, .
, SOA ( ESB, , ), .
, , , . Tolerant Reader — . — — , .
SOA , «SOA», SOA, , , SOA. , , SOA , , .
,
JVM — . , , . , « » .
, DSL- . , .
. , . , enterprise-: «» . «» . , .
, , . Bounded Context Domain-Driven Design (DDD). DDD . , , , .
, . , . , , . : , . Polyglot Persistence. Polyglot Persistence , .

, . , . .
, (temporal coupling), , , . , , , (eventual consistency) .
— , . , . , , .
, , vs
, , , . HTTP ATOM.
, . , IETF, , open-source .
, , .
. AWS , .
, , Continuous Delivery Continuous Integration. , , . .

Continuous Delivery, . , , . , (automated deployment).
, () . , Continuous Delivery — , .
, , — . , , , , .
(operations folk). , , . , , — open source Netflix, , Dropwizard, .
(Design for failure)
, . - . , . , .. . , , user experience. Simian Army Netflix () .
, . , , , .
, , , . , (, ), - (, ). , .
, .. . .
, . , . , , , , , . , , .
, , . , (/) -: , ..
, (downtime). . : , . , www.guardian.co.uk — . Netflix API .
, , () . : , , .
, , . - , , «» ? — , . : , , .
- Guardian — , , . , , API . , . — . . , .
— , , . , , . , , . , , .
(granular) . . (redeploy) , . . , , , . , , . , , .
?
, . , — , enterprise . , .
— Amazon, Netflix, The Guardian, the UK Government Digital Service, realestate.com.au, Forward comparethemarket.com. 2013 , , , , Travis CI. , , , , . ( SOA, , , SOA , , .)
, , — . , , , .
, . , , «» . , , .. . , , , , .
, - . , . . . , , , , . , . . .
, , . , , .
. , , , . , , , . , .
, , , . , . ( , .. .)
, . , . , , , , , .
— Service Discovery
Consul, Etcd, Zookeeper, (, ). Health checks ( ), , HTTP .
: application layer

(RDBMS)
SQL
ACID —
Atomicity — .
Consistency — .
Isolation — .
Durability — , .
. - , - , , , , SQL .
- — Master-slave replication
, , . , . , .

: master-slave:
- — Master-master replication
. , .

: master-master replication
- , , .
- master-master ( ACID), - .
- , .
- . : , master-slave, master-master.
:
— Federation

. , . : , , . , . . , .
:
Scaling up to your first 10 million users
// — Sharding

. . , , . .
: sharding
. , . (PostgreSQL, Oracle)
, . .
(1000:1), .
:
Denormalization
SQL
SQL .
.
- Benchmark — .
- Profile — , .
- MySQL .
- CHAR VARCHAR .
- CHAR , VARCHAR, , .
- TEXT . TEXT . TEXT .
- INT 2^32 4 .
- DECIMAL .
- BLOBS, .
- NOT NULL .
Use good indices
- (SELECT, GROUP BY, ORDER BY, JOIN) .
- B- , , .
- .
- , .
- , .
NoSQL
NoSQL - , , . , . NoSQL ACID.
BASE NoSQL. CAP BASE , .
- Basically available — .
- Soft state — .
- Eventual consistency — .
, SQL NoSQL, , NoSQL . .
- — Key-value store
: hash table
Key-value store O(1),. , . - .
, in-memory . , , .
- .
/ — Document store
: key-value store
XML, JSON, binary . . API .
, , , . , .
MongoDB CouchDB SQL . DynamoDB - .
.
— Wide column store

: map ColumnFamily<RowKey, Columns<ColKey, Value, Timestamp>>
— . ( SQL).
.
— Graph database

: graph
, — . , .
, .