SRE/DevOps/Cloud Enginner Preparation tips

Ref. Source:
1) How to serve static content via web server
2) How to do proxy-passing, add basic auth, add TLS cert, rate limiting, enable CORS, sessions
3) How to tweak setting to reduce latency and increase response time
4) Understand L7 of OSI layer with NGINX for serving applications
5) Enable WAF in NGINX, HTTP compression, logging, Caching, Keep-connection alive, MIME types
6) Understand VPC, SUbnet, NACL, SG and VPN of cloud and how to set it up
7) Understand L4 and L7
8) How different LoadBalancers works (Network LB, Application LB)
9) How proxy servers works (reverse proxy and forward proxy)
10) How route tables and Internet Gateways works in Cloud
11) How Ingress and Egress works
12) Understand DHCP, VPN peering, static and Dynamic IP addressing
13) Understand OSI/TCP/IP Layers
14) Understand IPv4 addressing scheme
15) Understand Firewall rules
16) How machines talk to each other when in cluster and different region
17) How DNS name resolution works and its routing policies and aliases (different records)
18) Understand Elasticsearch cluster requirements, master node and data node configs
19) Understand sharding, replication and indexing strategies
20) Make Elasticsearch cluster accessible behind Nginx with Basic Auth and SSL enabled
21) Enforce security for Elasticsearch cluster using cerebro, ReadOnlyREST or X-Pack Tools
22) Monitor Elasticsearch cluster health
23) Put your services in Private subnet and grant access via NAT or Jumpbox from specific static IPs.
24) NACL at Subnet level. securityGroup at instance level
25) Use IAM Roles/Policies instead of AWS keys
26) Cache implementation -> Picking right cache size, expiration policy and eviction policy
Expiration policy determines how long to retain an item in the cache
Most common policy uses an absolute time based expiration (that is, it associates a time to live TTL with each object as it is loaded)
TTL is chosen based on client requirements, such as how tolerant the client can be to stale data, and how static the data is, because slowly changing data can be more aggressively cached.
The ideal cache size is based on a model of the anticipated volume of reauestes and the distribution of cached objects across those requestes. From that, we estimate a cache size can that ensures a high cache hit rate with these traffic patterns.
The eviction policy controls how items are removed from the cache when it reaches capacity. The most common eviction policy is Least Recently Used(LRU)
27) Implement modsecurity WAF for NGINX Ingress in K8S
28) Understand CI/CD concepts
29) Learn to setup Jenkins and in master-slave mode
30) How to setup a build pipeline
31) Learn to integrate Jenkins with GIT
32) Learn Groovy
33) Understand pre/post build
34) CI/CD with some alerting tool (Slack) to get notifications
35) Never expose  Jenkins to outside build and set it up on TLS
36) Understand Kafka and Zookeeper architecture
37) Understand Brokers, Partitions, Offset, producers, consumers
38) Understand RabbitMQ
39) Understand how you can connect to any data layer with different languages
40) Understand how Asynchronous concept works in different languages
41) Understand all formats of Testing
42) Understand Licensing (Apache, MIT, CreativeCommons etc..)
43) Understand Front-end framworks
44) Build bianries and run your application in Docker containers
45) Understand Release strategies (Blue-Green and Canary)
46) Understand K8S Operators and CustomResourceDefinitions(CRD)
47) Understand How Multi-threading works
48) GO, Nodejs, Python and Java languages