summaryrefslogtreecommitdiff
path: root/day1/massively-scaled-microservices.txt
diff options
context:
space:
mode:
authorPhil Burton <phil@d3r.com>2019-02-25 13:37:59 +0000
committerPhil Burton <phil@d3r.com>2019-02-25 13:37:59 +0000
commit3431e667a5c6475043ebfd97b43a3fdc4b078596 (patch)
treecd9eb1249e42de8ee1c7e99fd83cb7f091637b7c /day1/massively-scaled-microservices.txt
parent4e8368f4d847e5c1352302fc53658dfab2c72a9b (diff)
Refactor and clean up notesHEADmaster
Diffstat (limited to 'day1/massively-scaled-microservices.txt')
-rw-r--r--day1/massively-scaled-microservices.txt108
1 files changed, 108 insertions, 0 deletions
diff --git a/day1/massively-scaled-microservices.txt b/day1/massively-scaled-microservices.txt
new file mode 100644
index 0000000..3b6dbe0
--- /dev/null
+++ b/day1/massively-scaled-microservices.txt
@@ -0,0 +1,108 @@
+# micro services - perf
+
+https://joind.in/event/php-uk-conference-2019/massively-scaled-high-performance-web-services-with-php
+https://www.slideshare.net/DeminYin/massively-scaled-high-performance-web-services-with-php-132696547
+
+## Overivew
+
+glu mobile - microservices
+
+- Use docker
+- HTTP processing
+- Amazon ECS
+- NOSQL Redis + couch base
+- 40M votes a day
+- 1M active users
+- 14K req/m
+
+## Microservices
+
+- Small
+- Simole
+- easy to deploy
+- upgradable
+
+Use Base images
+Name by version and never change (Freeze them)
+
+## background processing
+- Execute externally
+- Shutdown functions
+- Job server
+- fastcgi_finish_request
+
+## HTTP Compression
+
+- gzip on
+- gzip_types
+- gzip_proxied any
+- gzip_comp_level 5
+- gzip_min_length (default 20)
+- Smaller than 1500B means it will always fit in one TCP packet
+
+If content_length is not set then nginx will compress always
+
+Laravel/Lume/Others add middleware to add content_length
+
+## Caching
+- HTTP2 Server push
+- Repeated server calls HTTP1
+- 304s
+ - Last-modified
+ - cache-control
+
+## No SQL
+- Mongo/Redis
+- Fight network I/O
+- save hdd space
+- compress large messages
+- serialise better
+- message templates
+- add ttl expiry
+- shorten cache keys
+
+## Fast caching
+- PHP Redis
+- Predis - high memory, slower
+- Persistent connections available
+
+## Deployment EC8
+- 0 Downtime
+- quick rollout
+- ELB health-check
+- Auto scaling
+
+## Hardware upgrades
+- Doubling the hardware, halving the # of machines
+
+## VPC
+- Closer together
+- Same location
+- utilise internal networks
+- other thoughts
+ - Async I/O
+ - swoole
+ - HTTP/2
+ - Tars
+ - binary (80% reduction)
+
+## Managing images
+- Don't use aptitude (apt)
+- Build from source
+- fpm and Nginx together
+ - Separate not helpful
+ - No need for TCP/IP overhead
+- supervisorD - everywhere
+
+# Useful terms
+aerospike
+couch base
+php_swoole
+supervisorD
+new relic
+bugsnag
+amazon cloud watch
+sonarqube
+sensolabs security checker
+fastcgi_finish_request
+crowdstar https://github.com/Crowdstar/background-processing