Cloud native - klagan/learning GitHub Wiki
According to the Cloud Native Computing Foundation (CNCF)
- containers
- microservices
- orchestration
- ci/cd
- declarative api (intent not prescriptive, request outcome)
- immutable infrastructure
Consider 5 micro-services communicating with each other against:
Against all 5 micro-services communicating with a broker like an api gateway:
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.
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 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 is the process of ensuring only authorised agents are allowed to operate the system with the minimum access required for the function.