Industry Trends in Full Stack

Chapter 6
Cloud-Native Infrastructure and Platform Engineering

Bachelors Program in Full Stack Development
Industry Trends in Full Stack   •   Bachelor

Cloud-Native Infrastructure and Platform Engineering

Introduction

Cloud-native infrastructure is an approach to building and operating software systems that use elastic computing resources, automation, distributed architectures, containers, and managed services. It is not simply the practice of moving an existing application to a cloud provider. Rather, it involves designing applications and delivery processes around repeatability, resilience, observability, security, and rapid change.

Platform engineering extends this idea by creating internal platforms that provide developers with approved, self-service pathways for deploying and operating software. The platform team hides unnecessary infrastructure complexity while preserving the capabilities required by developers, security specialists, and operations personnel.

For full stack developers, these subjects matter because application behaviour is strongly influenced by its execution environment. Decisions about databases, deployment topology, networking, identity, storage, and monitoring affect performance, reliability, security, and cost.

Learning Objectives

By the end of this chapter, you should be able to:

  • distinguish IaaS, PaaS, SaaS, and serverless computing;
  • explain containers, images, registries, and orchestration;
  • describe infrastructure as code and deployment pipelines;
  • compare edge, regional, single-cloud, and multi-cloud architectures;
  • explain the purpose of internal developer platforms;
  • evaluate deployment choices using reliability, security, performance, and cost criteria;
  • identify governance, ethical, and operational risks in cloud-native systems.

1. Cloud Service Models

Cloud computing provides on-demand access to computing resources over a network. Resources may include virtual machines, storage, databases, identity services, queues, analytics systems, and application runtimes. The consumer generally pays according to consumption or subscription rather than purchasing all physical infrastructure in advance.

Infrastructure as a Service

Infrastructure as a Service (IaaS) supplies fundamental resources such as virtual machines, virtual networks, block storage, and firewalls. The cloud provider owns and operates the physical facilities and virtualization layer; the customer normally manages the operating system, runtime, application, and much of the configuration.

IaaS provides flexibility and supports legacy workloads, custom operating systems, and unusual networking requirements. Its disadvantages include patching responsibilities, greater configuration complexity, and a larger attack surface.

Platform as a Service

Platform as a Service (PaaS) provides a managed application runtime. The customer supplies application code and configuration while the provider manages much of the operating system, runtime, scaling, and underlying infrastructure. PaaS can improve developer productivity, but applications may become dependent on provider-specific interfaces or deployment constraints.

Software as a Service

Software as a Service (SaaS) delivers a complete application, such as a customer relationship management system or collaboration platform. The provider generally manages the application and infrastructure. Customers configure the service, manage users and data, and remain responsible for appropriate use and governance.

Serverless computing

Serverless computing is an operational model in which the provider allocates execution resources dynamically. It includes function-as-a-service and serverless databases, queues, and event systems. The term does not mean that servers do not exist; it means that customers do not manage them directly.

Serverless is valuable for event-driven, intermittent, or rapidly varying workloads. Limitations may include startup latency, execution limits, difficult local testing, complex distributed tracing, and vendor dependence.

ModelCustomer commonly managesTypical strengthTypical limitation
IaaSOperating system through applicationMaximum controlOperational burden
PaaSCode, data, configurationFast deliveryPlatform constraints
SaaSUsers, data, configurationReady-to-use capabilityLimited customization
ServerlessFunctions and eventsElastic event processingRuntime and provider constraints

The shared responsibility model is essential. A provider may secure physical facilities and core infrastructure, while the customer must still secure identities, application code, data permissions, secrets, and configuration. Responsibility varies by service; it should be verified from the provider’s documentation rather than assumed.

2. Containers and Images

A container packages an application and its dependencies into an isolated user-space process. Unlike a virtual machine, a container normally shares the host operating system kernel. This makes containers lightweight and quick to start, although it also means that kernel vulnerabilities and unsafe privileges can affect isolation.

A container image is an immutable template used to create containers. Images are usually composed of layers. A typical image contains a base operating system layer, runtime dependencies, application files, and metadata describing how the application starts. An image registry stores and distributes images.

A reliable image-building process should:

  1. use a trusted and preferably minimal base image;
  2. pin or verify dependency versions;
  3. run the process as a non-root user;
  4. exclude credentials and unnecessary files;
  5. scan dependencies and image layers;
  6. generate a software bill of materials where appropriate;
  7. sign images and verify signatures in controlled environments;
  8. rebuild regularly to receive security updates.

Containers are not automatically secure. A container with excessive Linux capabilities, an exposed management socket, untrusted dependencies, or embedded secrets can be dangerous. Security requires least privilege, network controls, image provenance, vulnerability management, and runtime monitoring.

Container lifecycle

A practical lifecycle is:

Source code → Build and test → Create image → Scan and sign → Store in registry → Deploy → Observe → Replace or roll back

The preferred operational pattern is often replacement rather than manual modification. If a running container is changed by hand, the change may disappear when the container is recreated and may not be reproducible elsewhere.

3. Orchestration and Kubernetes Concepts

Running one container manually is straightforward. Running hundreds of containers across several machines introduces scheduling, service discovery, health checking, rolling updates, storage, secrets, and failure recovery. Container orchestration automates these concerns.

An orchestrator generally provides:

  • scheduling of workloads onto available nodes;
  • desired-state reconciliation;
  • service discovery and load balancing;
  • health checks and automatic replacement;
  • rolling deployment and rollback;
  • configuration and secret distribution;
  • resource limits and placement rules.

Kubernetes is a widely used orchestration platform. Its central idea is declarative management: an operator describes the desired state, and controllers attempt to make the actual state match it.

Important Kubernetes abstractions include:

  • Pod: the smallest deployable unit, containing one or more closely coupled containers;
  • Deployment: manages replicated, replaceable application pods and supports rolling updates;
  • Service: provides a stable network identity for a changing set of pods;
  • Ingress or gateway: routes external requests to services;
  • ConfigMap: stores non-sensitive configuration;
  • Secret: stores sensitive values, although additional encryption and access controls are still required;
  • Namespace: provides logical organization and a boundary for many policies;
  • Node: a worker machine that runs pods;
  • Cluster: the control plane and worker resources managed as one system.

A health check should reflect application behaviour. A liveness check asks whether a process should be restarted; a readiness check asks whether it should receive traffic. Confusing these checks can cause restart loops or route requests to an application that is not ready.

Resource requests influence scheduling, while limits constrain consumption. Incorrect values can cause inefficient packing, throttling, or eviction. Autoscaling must also be based on meaningful signals. CPU may be suitable for a compute-bound service but inadequate for a queue consumer whose main pressure is backlog length.

Orchestration does not eliminate architecture problems. A distributed monolith remains difficult to change, and a cluster adds operational complexity. Teams should adopt orchestration when its benefits justify that complexity.

4. Infrastructure as Code

Infrastructure as Code (IaC) defines infrastructure in machine-readable files that can be reviewed, tested, versioned, and applied repeatedly. Resources may include networks, access policies, databases, clusters, queues, and monitoring rules.

IaC has two broad styles. Declarative tools describe the desired result, allowing the tool to determine actions. Imperative automation describes a sequence of commands. Declarative approaches often provide clearer drift detection and repeatability, while imperative scripts remain useful for procedural tasks and migration operations.

A disciplined IaC workflow includes:

  • source control for all infrastructure definitions;
  • separate variables for environments;
  • code review and policy checks;
  • a plan or preview before applying changes;
  • state management with controlled access and locking;
  • automated testing and security scanning;
  • documented rollback or recovery procedures;
  • separation of duties for production changes.

Drift occurs when the actual infrastructure differs from the declared configuration, for example because an administrator changed a firewall rule manually. Drift can create security weaknesses and unpredictable deployments. Teams should either prohibit manual changes or record and reconcile exceptional changes promptly.

IaC is not a substitute for design. Poorly designed infrastructure can be reproduced consistently, but it remains poor infrastructure. Reusable modules should have clear interfaces, secure defaults, versioning, and documentation.

5. Delivery, Reliability, and Observability

Cloud-native infrastructure is closely connected with continuous integration and continuous delivery. A delivery pipeline may compile code, run tests, build an image, scan dependencies, provision infrastructure, deploy to a test environment, perform checks, and promote a version using an approval or policy gate.

Deployment strategies include:

  • Rolling deployment: gradually replaces old instances with new ones;
  • Blue-green deployment: maintains two environments and switches traffic between them;
  • Canary deployment: exposes a new version to a small proportion of users before wider release;
  • Feature flags: separate code deployment from user-visible activation.

Observability combines logs, metrics, and traces. Logs provide event detail, metrics support aggregation and alerting, and traces show the path of a request across services. Effective observability also includes context such as request identifiers, deployment versions, and tenant information, while avoiding unnecessary collection of personal data.

Reliability should be expressed through service-level indicators (SLIs), objectives (SLOs), and agreements (SLAs). An availability objective of 99.9% over a 30-day month permits approximately 43.2 minutes of unavailability, assuming a 30-day measurement period:

Allowed downtime = Measurement period × (1 − Availability target)

Here, the measurement period is 43,200 minutes and the target is 0.999, so allowed downtime equals 43.2 minutes. This calculation is only meaningful when the measurement window, exclusions, and definition of downtime are specified. A service may meet an availability target while still suffering unacceptable latency or data loss; reliability is multidimensional.

6. Edge Computing and Distributed Placement

Edge computing places computation or content closer to users, devices, or data sources. Examples include content delivery networks, retail-site processing, industrial gateways, and mobile network edge locations.

Potential benefits include lower network latency, reduced bandwidth usage, local operation during intermittent connectivity, and improved data locality. Challenges include limited hardware, physical security risks, inconsistent connectivity, distributed updates, and more complicated monitoring.

Edge architecture is appropriate when latency, bandwidth, locality, or resilience requirements justify operational complexity. It is not automatically faster: processing at the edge may be offset by synchronization, encryption, routing, or cold-start delays.

A useful placement analysis considers:

  • user-to-compute network distance;
  • data transfer volume and cost;
  • regulatory or contractual location requirements;
  • failure behaviour when connectivity is lost;
  • consistency requirements;
  • device management and update mechanisms.

For safety-critical or privacy-sensitive systems, local processing may reduce exposure, but it must not be treated as a complete security control. Edge devices require secure boot, authenticated updates, physical tamper considerations, and credential rotation.

7. Single-Cloud and Multi-Cloud Decisions

A single-cloud architecture may provide simpler operations, stronger integration with managed services, and volume discounts. It may also create provider concentration risk, regional outages, and dependence on proprietary interfaces.

Multi-cloud uses more than one provider. It can support regulatory requirements, acquisition integration, geographic reach, or negotiation leverage. However, it commonly increases networking complexity, duplicated skills, inconsistent security controls, data-transfer costs, and operational overhead.

Multi-cloud should not be adopted merely as a slogan. A decision should identify the specific risk or capability it addresses. Portability also has levels:

  1. Conceptual portability: the architecture can be moved in principle;
  2. Application portability: code runs on another environment with limited changes;
  3. Operational portability: monitoring, identity, deployment, recovery, and governance also work across environments.

The third level is substantially harder. Teams should compare total cost and operational capability rather than only advertised service prices.

8. Internal Developer Platforms and Platform Engineering

An internal developer platform (IDP) is a product-like collection of tools, workflows, templates, documentation, and paved paths that enables teams to build and operate services. Platform engineering is the discipline of designing and maintaining that platform around developer needs.

A platform may provide:

  • service templates and repository creation;
  • automated build and deployment pipelines;
  • standard identity, secrets, and policy integration;
  • managed databases, queues, and observability;
  • environment creation and expiration;
  • deployment dashboards and ownership metadata;
  • cost and reliability information.

A good platform is self-service but not uncontrolled. It encodes organizational standards while allowing justified exceptions. Its users are developers, so platform teams should measure user experience, time to first deployment, deployment frequency, failure recovery, documentation quality, and support demand.

Platform teams should avoid building a large central system before understanding user problems. A minimum viable platform may begin with a secure service template, automated pipeline, standard runtime, observability defaults, and clear escalation paths. The platform should expose useful abstractions rather than conceal important consequences. For example, a one-click database should still show backup policy, data location, retention, and estimated cost.

9. Cost-Aware Deployment Decisions

Cloud cost is an engineering concern, not only a finance concern. Architecture determines resource consumption, network transfer, storage retention, licensing, and operational labour.

A simple monthly cost model is:

Ctotal = Ccompute + Cstorage + Cnetwork + Cmanaged services + Coperations

Each term represents a cost category over the same billing period. The model is an approximation: actual pricing may include tiers, reservations, requests, taxes, support plans, and discounts. It is useful for comparison only when workload assumptions are consistent.

For example, suppose a service uses 4 virtual instances at $0.08 per hour for 720 hours, 200 GB of storage at $0.10 per GB-month, and 500 GB of outbound transfer at $0.09 per GB. Ignoring other charges:

  • compute = 4 × 0.08 × 720 = $230.40;
  • storage = 200 × 0.10 = $20.00;
  • network = 500 × 0.09 = $45.00;
  • estimated total = $295.40 per month.

This estimate excludes taxes, managed-service charges, backups, observability, and support. It should therefore be presented as an estimate, not an invoice prediction.

Cost-aware practices include rightsizing, autoscaling with sensible bounds, deleting unused environments, selecting appropriate storage classes, controlling log retention, reducing unnecessary cross-region traffic, tagging resources, and creating budgets with alerts. A cheaper design that breaches reliability or security requirements is not necessarily the better design. The relevant question is often cost per successful transaction, user, or business outcome.

10. Illustrative Case: A Regional Education Platform

Background

A fictional university operates a full stack learning platform used by 40,000 students. The original application runs on several manually configured virtual machines. Examination periods produce sharp demand peaks, deployments require evening maintenance, and the operations team has limited visibility into failures.

Problem

The university wants faster releases and improved resilience but must protect student records, control costs, and comply with data-location requirements. A proposal recommends moving everything to a multi-cloud Kubernetes architecture immediately.

Analysis

The proposal does not clearly solve a business requirement and would introduce duplicated expertise and data-transfer complexity. The application also contains a tightly coupled legacy module that would gain little from being split into many services.

Approach

The university adopts a staged plan:

  1. define data classification, recovery objectives, and ownership;
  2. place the existing application in a managed regional environment;
  3. create IaC modules for networking, identity, logging, and backups;
  4. package independently deployable components as containers;
  5. use a managed orchestration service only where scaling and deployment benefits justify it;
  6. create a platform template with secure defaults, monitoring, and cost tags;
  7. use autoscaling for examination workloads and scheduled testing before peak periods;
  8. retain a documented recovery environment rather than duplicating every service across providers;
  9. introduce canary releases and automated rollback.

Outcome

Deployments become repeatable, operational visibility improves, and peak capacity can be provisioned without keeping all resources active year-round. The university does not claim universal portability; instead, it documents which components are portable and which managed services are deliberately provider-specific.

Learning points

The case demonstrates that cloud-native transformation should be driven by measurable requirements. Managed services can reduce undifferentiated work, but they require governance. Platform engineering is effective when it offers a safe path that developers willingly use. Finally, resilience and portability are related but not identical: a well-tested regional recovery plan may be more valuable than an expensive multi-cloud design.

11. Governance, Ethics, and Contemporary Developments

Cloud-native systems raise governance concerns involving privacy, sovereignty, access, algorithmic processing, and concentration of infrastructure power. Personal data should be collected minimally, retained only as necessary, encrypted appropriately, and accessed according to role and purpose. Logs and traces may themselves contain sensitive information.

Governance should include identity lifecycle management, separation of duties, auditable changes, vulnerability response, backup testing, incident procedures, supplier assessment, and documented responsibility. Regulatory compliance is not achieved by selecting a particular cloud provider; it requires evidence that controls operate effectively.

Artificial intelligence is increasingly used for anomaly detection, incident summarization, capacity forecasting, and code or configuration assistance. These tools can improve productivity but may generate insecure configurations, expose confidential data, or produce misleading explanations. Human review, access controls, evaluation datasets, and audit records remain necessary.

Contemporary platform engineering is moving toward software supply-chain security, policy as code, confidential computing, workload identity, eBPF-based observability, and more automated environment management. These developments are useful when they address a demonstrated problem. Adopting technology without operational competence can increase rather than reduce risk.

Best-Practice Checklist

  • Define reliability, security, data-location, and cost requirements before selecting services.
  • Prefer immutable, reproducible builds and declarative infrastructure.
  • Use least privilege for identities, containers, and platform components.
  • Treat images, dependencies, and infrastructure definitions as supply-chain assets.
  • Automate testing, scanning, deployment, rollback, and evidence collection.
  • Monitor user-visible outcomes, not only infrastructure utilization.
  • Make cost ownership visible through tags, budgets, and product metrics.
  • Design recovery procedures and test them regularly.
  • Build platforms around developer workflows and documented paved paths.
  • Adopt multi-cloud or edge computing only when a specific requirement justifies the added complexity.

Chapter Summary

Cloud-native infrastructure combines elastic cloud services, containers, orchestration, automation, observability, and resilient operating practices. IaaS offers control, PaaS reduces operational burden, SaaS delivers complete capabilities, and serverless provides dynamically managed execution. Containers improve packaging and consistency but require careful security controls. Orchestration manages desired state, scheduling, networking, health, and updates, while infrastructure as code makes environments reproducible and reviewable.

Edge computing can reduce latency and bandwidth use, but it introduces distributed management challenges. Single-cloud and multi-cloud architectures represent trade-offs rather than universally correct choices. Internal developer platforms turn approved infrastructure patterns into self-service workflows. Cost-aware engineering evaluates compute, storage, networking, managed services, and operational effort together. Across all decisions, security, governance, reliability, privacy, and human usability must be considered alongside technical performance.

Key Terms

Cloud-native: An approach using automation, distributed design, and elastic cloud capabilities.

IaaS: Cloud delivery of virtualized infrastructure resources.

PaaS: A managed application platform on which customers deploy code.

SaaS: A complete software application delivered as a service.

Serverless: An execution model in which the provider manages resource allocation and servers.

Container: An isolated process package sharing the host kernel.

Image: An immutable template from which containers are created.

Registry: A repository for storing and distributing images.

Orchestration: Automated management of containerized workloads.

Kubernetes: A declarative platform for orchestrating container workloads.

Infrastructure as Code: Machine-readable, versioned definitions of infrastructure.

Drift: Difference between declared and actual infrastructure state.

Observability: The ability to understand system behaviour through logs, metrics, and traces.

Edge computing: Processing located near users, devices, or data sources.

Multi-cloud: Use of services from more than one cloud provider.

Internal developer platform: Self-service tools and workflows for software teams.

SLO: A defined reliability target for a service.

Autoscaling: Automatic adjustment of resource capacity in response to demand.

Software supply chain: The tools, dependencies, processes, and artifacts used to build software.

Rightsizing: Matching resource capacity to actual workload requirements.

Review Questions

Short Answer Questions

  1. What is the main difference between IaaS and PaaS?
  2. Why are container images scanned and signed?
  3. What problem does a Kubernetes Service address?
  4. Define infrastructure drift.
  5. State two benefits and two challenges of edge computing.

Long Answer Questions

  1. Explain the shared responsibility model and apply it to a managed database service.
  2. Compare rolling, blue-green, and canary deployment strategies.
  3. Explain how infrastructure as code improves governance and repeatability.
  4. Discuss the benefits and limitations of internal developer platforms.
  5. Evaluate the operational trade-offs between single-cloud and multi-cloud architectures.

Analytical / Application Questions

  1. A team proposes moving a low-traffic application to Kubernetes solely because containers are fashionable. What questions should be asked before accepting the proposal?
  2. A service has an availability target of 99.95% over a 30-day month. Calculate its permitted downtime and explain why this figure alone is insufficient to assess reliability.
  3. Design a cost-aware deployment approach for an application with predictable weekday demand and occasional weekend peaks. Identify scaling, storage, observability, security, and governance decisions.

Multiple Choice Questions with Answers

Question 1

Which cloud service model generally gives the customer the greatest control over the operating system?

A. Software as a Service

B. Platform as a Service

C. Infrastructure as a Service

D. Function as a Service

Correct Answer: C. Infrastructure as a Service

Question 2

What is the principal purpose of a Kubernetes Service?

A. To build a container image

B. To provide stable networking for a changing set of pods

C. To encrypt every database field

D. To replace source control

Correct Answer: B. To provide stable networking for a changing set of pods

Question 3

Which practice best reduces configuration drift?

A. Manual production edits

B. Declarative infrastructure stored in version control

C. Disabling audit logs

D. Using larger virtual machines

Correct Answer: B. Declarative infrastructure stored in version control

Question 4

A 30-day month has 43,200 minutes. For an availability target of 99.9%, what downtime is permitted?

A. 4.32 minutes

B. 43.2 minutes

C. 432 minutes

D. 4,320 minutes

Correct Answer: B. 43.2 minutes

Question 5

Which deployment strategy initially exposes a new version to only a small percentage of users?

A. Canary deployment

B. Blue-green deployment

C. Batch database loading

D. Full replacement deployment

Correct Answer: A. Canary deployment

Question 6

Which statement about containers is correct?

A. Containers always include a complete independent kernel

B. Containers share the host kernel in typical implementations

C. Containers cannot be monitored

D. Containers automatically protect embedded secrets

Correct Answer: B. Containers share the host kernel in typical implementations

Question 7

What is a central purpose of an internal developer platform?

A. To remove all developer autonomy

B. To provide secure, self-service paths for common delivery tasks

C. To eliminate the need for testing

D. To guarantee zero infrastructure cost

Correct Answer: B. To provide secure, self-service paths for common delivery tasks

Question 8

Which factor most directly justifies edge computing?

A. The desire to increase physical distance from users

B. A requirement for lower latency or local operation

C. The need to avoid all monitoring

D. The elimination of device management

Correct Answer: B. A requirement for lower latency or local operation

Question 9

In the simplified cost model, which category includes outbound data transfer?

A. Network cost

B. Compute cost

C. Storage cost

D. Personnel cost only

Correct Answer: A. Network cost

Question 10

Why may multi-cloud increase operational complexity?

A. It always prevents automation

B. It requires duplicated skills, controls, and integration across providers

C. It eliminates data-transfer charges

D. It guarantees identical service interfaces

Correct Answer: B. It requires duplicated skills, controls, and integration across providers

Industry Trends in Full Stack
Chapter 6 of 14