Cloud native - klagan/learning GitHub Wiki

What is "cloud native"?

According to the Cloud Native Computing Foundation (CNCF)

  • containers
  • microservices
  • orchestration
  • ci/cd
  • declarative api (intent not prescriptive, request outcome)
  • immutable infrastructure

What is a "service mesh"?

Consider 5 micro-services communicating with each other against:

ms

Against all 5 micro-services communicating with a broker like an api gateway:

mesh

Factors for better cloud services

Resiliency

Resiliency is the capability for a system to self heal after damage, failure, overload or attack. This does not mean the system needs to be available but merely capable of recovering.

Techniques to support increased resiliency are actove replication, active failover and monitoring.

e.g. If there is latency or issues talking to our integrated storage, the app is failed over to a secondary storage account. We don't explicitly call out how the infrastructure is configured but there are mechanisms in place to help provide resiliency.

For true availability taking in the context of possible regional issues, it's recommended to deploy to at least two regions.

more information

Reliability

Reliability is closely related to availability but it is possible for a system to be available but not reliable. Reliability measure the probability that a system will work as expected and designed.

Techniques to support higher reliability are testing different scenarios especially after patching and system upgrades.

Availability

Availability is the percentage of a time period when the service will be able to respond to the consumer requests otherwise known as - system uptime.

Techniques to support higher availability are load balancing in the same region and/or across regions.

Security

Security is the process of ensuring only authorised agents are allowed to operate the system with the minimum access required for the function.

⚠️ **GitHub.com Fallback** ⚠️