Cloud Native Application

Cloud computing environments are dynamic, with on-demand allocation and release of resources from a virtualized, shared pool. This elastic environment enables more flexible scaling options, especially compared to the up-front resource allocation typically used by traditional on-premises data centers.

According to the Cloud Native Computing Foundation1, cloud native systems have the following properties:

  • Applications or processes are run in software containers as isolated units.
  • Processes are managed via central orchestration processes to improve resource utilization and reduce maintenance costs.
  • Applications or services (microservices) are loosely coupled with explicitly described dependencies.

Taken together, these attributes describe a highly dynamic system composed of many independent processes working together to provide business value: a distributed system.

Distributed computing is a concept with roots stretching back decades. The eight well-known fallacies of distributed computing2 were drafted in 1994, and deserve a mention:

  1. The network is reliable.
  2. Latency is zero.
  3. Bandwidth is infinite.
  4. The network is secure.
  5. Topology doesn't change.
  6. There is one administrator.
  7. Transport cost is zero.
  8. The network is homogeneous.

Taking the fallacies into account something becomes clear: cloud native applications run in an environment of constant, unpredictable change, and must expect failures to occur at any time.

1. “Cloud Native Computing Foundation (“CNCF”) Charter”, https://cncf.io/about/charter
2. “Fallacies of Distributed Computing Explained”, http://www.rgoarchitects.com/Files/fallacies.pdf

results matching ""

    No results matching ""