Platform Development Life Cycle [PDLC]

Sandeep Sivanandan
4 min readMar 1, 2024

--

Platform engineering is essential in today's world because it not only facilitates quicker development but also helps organizations monetize their technical growth through unified infrastructure and automation tools. Build apps that cater to customers (internal and external) on top of standardized platforms and tools that are tested and maintainable.

Why is PDLC important?

The relationship between the Platform Development Life Cycle (PDLC) and the Software Development Life Cycle (SDLC) is somewhat interdependent and context-dependent. While they share similarities, they focus on different aspects of software development and deployment.

  1. PDLC (Platform Development Life Cycle): PDLC primarily focuses on building, deploying, and managing the infrastructure, tools, and frameworks that support software development and operations. It involves activities related to provisioning infrastructure, selecting and integrating tools, implementing automation, establishing monitoring and observability, and ensuring scalability, security, and compliance. PDLC is more concerned with the foundational aspects of software development and delivery, providing the platform upon which software applications are built and operated.
  2. SDLC (Software Development Life Cycle): SDLC, on the other hand, is concerned with the actual development of software applications or products. It encompasses activities such as requirements analysis, design, coding, testing, deployment, and maintenance. SDLC focuses on creating software solutions that meet specific business requirements and user needs. It involves iterative cycles of development, testing, and deployment, aiming to deliver high-quality software products that add value to users and stakeholders.

What's a unified infrastructure?

Unified infrastructure consolidates its hardware, software, networking, storage, and other IT resources into a cohesive and integrated environment. The goal of a unified infrastructure is to simplify management, improve efficiency, and reduce complexity by standardizing and centralizing IT resources. Cloud or hyper-converged (CI/HCI) infrastructures are good examples of unified infrastructures.

Platform Tooling practices

Every platform comes with its own pros and cons. What suits us best at that point and in the future (assumingly) as we build platforms. There are lots of standard tools available in the ocean of platforms today. I will talk more about principles than tools.

Development

Modularized development principles with reusability as the core. Most of the platform automation, once built, becomes standard on top of the unified infrastructure. If we are looking at customer experience, configuration-driven is another good practice to be followed. All the platform-developed code is built with IaC principles.

Packaging

How do we compile the code base and package it for consumption? Platform code bases are not application code bases but are platform-specific code bases built for, e.g., OS deployment on a VM. Installing an exe or a package on the virtual machine (Python, PowerShell, or Ansible) , running tests on platform layers, including linters, etc. These packages are small and lightweight.

Continuous Integration, Testing, Delivery, and Deployment:

CI/CD helps us to install builds (operating systems, apps) on the virtualized or bare bone, platform validation on build install, and app install (services, ports, APIs, paths, and security). Delivery: Built during development, it is delivered during the QA, stage, and production stages. Deploy—sstandard deployment follows using the canary or blue-green deployment models.

Maintain and monitor:

All the platforms that are built—cloud or on-premises—have to be monitored. Monitoring can happen via code. Observability as code gives an edge to building monitoring layers as code and following the development and testing phases. Measuring against defined metrics like MTTR, etc., is crucial.

Compliance:

As of today, many software organizations have compliance defined for the application world. For platform work, compliance engineering is emerging…Defining compliance controls on IaC, tests, and documentation will be a great new thing to watch out for.

Security:

All platform tools, builds, software’s, and OS components all follow the DevSecOps principles .Scanned on the CI layers before going to the repository . It helps to harden the platform in a secure way for unified infrastructure and also continuously scanning new tools

PDLC is a very important part of platform engineering. As we progress, PDLC is going to get more and more complex in the hybrid world, but PDLC also gives us the opportunity to plan and align the pieces for us to be successful for building and delivering a great platform.

Cheers!!

Sandeep Sivanandan | LinkedIn

--

--

Sandeep Sivanandan

An avid technologist with 2 decades of experience in engineering , security , operations and quality .