Cloud Journey: Starting with Enterprise Scale — Part 5
Part 5: Cloud-native design and patterns
As defined by the Cloud Native Computing Foundation (CNCF), Cloud-native technologies empower organizations to build and run scalable applications in public, private, and hybrid clouds. Features such as containers, service meshes, microservices, immutable infrastructure, and declarative application programming interfaces (APIs) best illustrate this approach.
Cloud-native refers to the concept of building and running applications to take advantage of the distributed computing offered by the cloud delivery model. Cloud-native apps are designed and built to exploit the scale, elasticity, resiliency, and flexibility the cloud provides.
Cloud-native is divided into four sections
- Microservices
- Containers
- DevOps
- Continuous Delivery
Microservices A microservices architecture consists of a collection of small, autonomous services. Each service is self-contained and should implement a single business capability.

Container Once you have a large number of microservices all running in Docker containers, you need a way to manage or orchestrate those containers to make sense as an application. This is where you need an orchestrator (cluster manager) like Kubernetes or Docker Swarm or others.
DevOps is the collaboration between software developers and IT operations to automate the process of software delivery & infrastructure changes.
Continuous Delivery enables applications to be released quickly, reliably & frequently, with less risk.
Cloud-Native Service Models: All service models give options in terms of cost and operations across cloud service providers (AWS, Azure, GCP, and others)
- CAAS — Container as a service
- FAAS — Function as a service
- PAAS — Platform as a service
- IAAS — Infrastructure as a service
- DBaaS — Database as a service
Cloud-native development achieves its magic by linking and automating the work of systems development, systems support, and IT operations teams. The speed of pushing new software to production increases dramatically, while quality improves as opportunities for error are removed from previously manual processes.
In this blog post, I am putting together a setup of CaaS and FaaS with all the points discussed in this 5 part series. If I can represent the complex setup of IaC, Services, and application CICD workflow in a simplified diagram. It looks like below.

Organizations are looking at cloud-native architectures yet they do not want to be locked into a single cloud service provider, This is pushing for cloud-agnostic ideas. Let discuss 2 tools
- Dapr
- Knative
- DAPR : What is Dapr?
Dapr helps developers build event-driven, resilient distributed applications. Whether on-premises, in the cloud, or on an edge device, Dapr helps you tackle the challenges that come with building microservices and keeps your code platform agnostic.

2. Knative: is an open source community project which adds components for deploying, running, and managing serverless, cloud-native applications to Kubernetes. The serverless cloud computing model can lead to increased developer productivity and reduced operational costs.
Knative consists of 3 primary components:
- Build — A flexible approach to building source code into containers.
- Serving — Enables rapid deployment and automatic scaling of containers through a request-driven model for serving workloads based on demand.
- Eventing — An infrastructure for consuming and producing events to stimulate applications. Applications can be triggered by a variety of sources, such as events from your own applications, cloud services
