August 15, 2024
What is platform engineering? Unite tools & workflows for optimal developer experiences aligned with business value
See Liquibase in Action
Accelerate database changes, reduce failures, and enforce governance across your pipelines.
TL;DR: Platform engineering involves designing and optimizing toolchains and workflows to create cohesive, efficient platforms that support development and operations. It unifies the efforts of developers, data engineers, security teams, and more, by providing integrated systems like IDPs, CI/CD platforms, and infrastructure-as-code. This approach enhances productivity, scalability, and security, making DevOps a reality and ensuring that all aspects of software development and data management are streamlined and aligned with business goals.
What is platform engineering? Making DevOps a (seamless & valuable) reality
Platform engineering involves strategizing, designing, building, maintaining, and optimizing toolchains and workflows to unify, accelerate, and streamline application development and operations into a unified experience – a comprehensive platform that supports its users’ needs. Those platform users – application developers, data engineers, operations teams, security engineers, cloud architects, data scientists, and AI engineers– inform the platform engineering process to build their unified workflow. They also provide feedback to inform continual optimization.
In essence, platform engineering is the building of internal products for developers and operations teams (et al.) to do their work in bringing their digital products to life. Typically, these platforms include:
- Internal developer platforms (IDPs)
- Continuous integration / Continuous deployment (CI/CD) platforms
- Infrastructure-as-code platforms
- Observability platforms
“Platform engineering is what makes DevOps a reality,” explains Liquibase’s VP of Product Loreli Cadapan, who has seen DevOps evolve during her 20+ years in the industry. “Platform engineering provides the tools and infrastructure, and DevOps ensures those tools are used effectively to deliver software reliably, securely, and at scale.”
She’s also seen the practice of platform engineering emerge from the increasingly complex needs of development teams amplified by the explosion of Big Data and software experiences driven by digital, AI, and commercial applications.
Cadapan led DevOps and engineering at Oracle for more than a dozen years then moved on to lead the product teams at DevOps and DevSecOps tools JFrog and ActiveState. She joined Liquibase in pursuit of closing a glaring gap in so many internal platforms – database change management.
Extending DevOps to the database through inclusion in platform engineering, modern development, and data pipelines will level up the automation, governance, and observability capabilities in place throughout the rest of the development and operations pipeline.
Platform engineering broadly covers the development team’s workflow needs, but in reality, often creates multiple intertwined platforms.
What kind of platforms are engineered?
To bring the entire development, deployment, monitoring, and storage workflows together takes a nearly endless amount and variety of tools to enhance experiences, efficiencies, and productivity overall. This includes:
- Internal developer platforms (IDPs)
- Continuous integration / Continuous deployment (CI/CD) platforms to automate the integration and deployment of code changes
- Infrastructure-as-code platforms to manage and provision IT infrastructure
- Observability platforms to monitor, log, and alert
- Security and compliance platforms to ensure standards are met across the development lifecycle
- Database DevOps platforms
These platforms integrate various tools and workflows, providing a unified and efficient environment for developers and other IT professionals involved in building and supporting digital products and data collection.
Platform engineering vs DevOps
If DevOps powers optimal end-user experiences, platform engineering powers optimal developer experiences.
Platform engineering aims to make the lives of DevOps teams as easy as possible. By simplifying, streamlining, automating, and more, these internal platforms continuously reduce barriers, delays, and inefficiencies in the development, deployment, and monitoring process.
To say “versus” almost pits these concepts together when in fact, they are a philosophy/methodology (DevOps) that comes to life through processes linking solutions and teams (platform engineering). Platform engineering and DevOps both aim to create a seamless, efficient, and collaborative environment for software development and operations.
Distinguishing between platform engineering and DevOps might just be a matter of semantics – job titles – or it could be determined by technological need or organizational maturity.
DevOps focuses on bringing Development (on the “left”) and Operations together in a continuous loop of building, testing, deploying, and monitoring. The DevOps team’s priorities might include:
- Implementing CI/CD pipelines
- Automating deployment processes
- Ensuring reliable and efficient software releases
- Managing infrastructure as code (IaC)
- Monitoring application performance and uptime
- Enforcing security and compliance during deployments
But who manages the DevOps workflow, technology, and optimization? It’s a bit of a meta scenario: when the internal development and deployment operation is advanced, complex, and large enough to benefit from being managed as a technology product itself.
That DevOps technology and workflow “product” – or platform – is where platform engineering comes in to build and maintain Internal Developer Platforms (IDPs) and other platforms to support DevOps practices. These teams focus on:
- Designing and developing self-service platforms for developers
- Integrating various tools and workflows into a unified platform
- Ensuring scalability, reliability, and efficiency of the platform
- Collaborating with multiple stakeholders (DevOps, security, development teams)
- Providing a consistent and optimized developer experience
- Overseeing security, compliance, and governance within the platform
DevOps might be looking outward at public products while platform engineering focuses inward to support the organization itself, they both emphasize automation, collaboration, quality, security, and efficiency. Since internal platforms quickly become more complex and interconnected than software products, platform engineering requires a significantly larger and more specialized set of tools.
Platform engineering is a broad term. It can also focus on specific areas of the technology organization, especially in large or globally distributed companies. Data platforms, container platforms, security platforms, cloud platforms, and others represent how quickly the practice has grown into specialized disciplines.
Data platform engineering
Data platform engineering supports both data collection and storage as well as data and machine learning products. Automating and integrating data flows includes change management, keeping data stores structurally aligned with application evolutions, and other changes throughout the data pipeline.
AI development platforms pose new challenges for platform engineers who now need to support data scientists and engineers. They need to provide infrastructure, tools, and processes specialized to developing, deploying, and managing AI models. Foundationally, the AI/data platform needs to support data pipelines that can efficiently ingest, transform, and store the exceptionally large datasets required for training AI models.
Container platform engineering
Container platform engineering, typically with Kubernetes or a similar platform, specializes in managing containerized application development. These platform engineers ensure high availability and fault tolerance across clusters during automated deployment.
Platform engineers and DevOps teams at some of the world’s largest financial institutions integrate database change management with Kubernetes container platforms for truly end-to-end pipeline automation.
Security platform engineering (DevSecOps platform engineering)
You’re getting the theme here – security platform engineering aims to integrate and automate security measures across the development lifecycle. Security platform engineers design secure-by-default systems that proactively safeguard applications, data, and databases.
They ensure that security controls like access management, encryption, scanning, and compliance checks are embedded into CI/CD pipelines and daily operations. These platforms provide scalable security tools and policies to help DevOps and development teams maintain security and compliance without compromising speed or agility.
Cloud platform engineering
Cloud platform engineering specializes in building, optimizing, and maintaining cloud infrastructure and tools that support scalable, efficient operations. These platforms enable organizations to manage cloud-based applications, services, and data storage, ensuring reliable performance, cost efficiency, and security. Cloud platform engineers focus on automating deployments, managing infrastructure as code, monitoring cloud environments, and integrating cloud-native tools like AWS, Azure, or Google Cloud.
What is a platform engineer?
A platform engineer is the individual responsible for strategizing, building, maintaining, and optimizing the organization’s internal platforms. This role is quickly becoming ubiquitous across the tech industry as internal development processes get more complex – and tied directly to the business’s revenue and reputation.
Core responsibilities of a platform engineer
Platform engineering builds developer-centric DevOps products for internal use. Supporting development and deployment means embracing automation and integration while considering security, scalability, and monitoring. Digging into each element uncovers the unique challenges faced in this quickly growing field. Their main accountabilities include:
- DevOps best practices by empowering CI/CD through automation, tooling, and strategic team structures as well as end-to-end integration including databases
- Performance optimization by developing tools and processes to monitor and enhance system performance, including query optimization and indexing strategies
- Data integration by creating systems for a seamless and trustworthy flow between different databases and applications within the pipeline and third-party connections
- Automation and control by building automated solutions for deployments, backups, and disaster recovery that ensure high availability and data integrity
- Shifting left by supporting and enabling quality, security, and automated other testing earlier in the development process
- Security, compliance, and access control by implementing – and continuously updating – protections for sensitive data and governance of users and pipelines
- Scalability by designing systems and leveraging new technologies to handle more users, larger volumes of data, and more frequent database changes
- Standardization and documentation by establishing organizational policies for design, coding, and maintenance
- Monitoring and observability by implementing granular tracking of platform operations and maintaining analytics dashboards
- Cloud and emerging tech integration by facilitating cloud data migrations and other system optimizations to support cloud innovations, NoSQL databases, and other new options to maintain a competitive edge
- Database integration by implementing scalable and reliable data stores to handle the unique needs of the platform and its developers – including the bigger workloads and more frequent changes brought about by the explosion of data collection and products
To handle these duties, a platform engineering manager can build a team that balances specialties and competencies to support the platform.
Platform engineering team structure
Platform engineering might begin as a one-person gig, but quickly enables its own growth by empowering the development team’s scalability. A platform engineering team in support of a high-performing development team would include:
- Platform engineering manager
- Lead platform engineer
- DevOps engineer
- Site Reliability Engineer (SRE)
- Security engineer
- Cloud architect
- Infrastructure engineer
- Platform product owner
- Data Engineer
- AI/ML Engineer
- UX/UI Designer
- Network Engineer
- Quality Assurance (QA) Engineer
The platform engineering team will work closely with:
- Database administrators (DBAs)
- Application developers
- DevOps managers
- Cloud engineers
- Deployment managers
- Network administrators
The platform engineering team will vary by the needs of the organization. It might even include specialized roles to support AI/data products, compliance and security, cloud platforms, and advanced workflow automation.
Platform engineer vs software engineer
A software engineer develops applications for customers or other end-users. In contrast, a platform engineer builds and maintains the collection of tools and processes used by software engineers. A platform engineer’s primary goal is to improve and optimize developer experience.
All of the underlying platforms that software developers use to build, test, deploy, and maintain their digital products (applications) are managed by the platform engineering team. Think of Internal Develop Platforms (IDPs) as the platform engineer’s product and the software engineer as their user or customer.
While the two disciplines are distinct, the platform engineer has a clear role in the reliability of a software developer’s product by ensuring that the infrastructure, tools, and processes they use are stable, efficient, and scalable. This support allows software engineers to focus on writing quality code and delivering features, knowing that the underlying platform will support their work effectively.
What is a cloud platform engineer?
A cloud platform engineer is a specialized role focused on cloud solutions, including development tools and data stores. This role might lead the organization’s database cloud migration and then evolve their role to optimize cloud platforms and embrace new solutions.
The cloud platform engineer also handles the challenges of cloud security, automation, and infrastructure. They strive to maintain an efficient, high-performing cloud development platform while balancing the costs of easy scalability.
Platform engineer salary & job growth
With more digital experiences, data streams, and technological innovations bringing pressure and opportunity to development and DevOps teams, platform engineers are in high demand. In 2024, the average salary for a platform engineer is $130,000-140,000, while a platform engineering manager averages $160,000. Platform engineer salaries are similar to related roles, like those of a DevOps manager, and vary widely based on the company, product, location, and other factors.
Specializing in cloud, security, AI, or other sectors can increase a platform engineer’s salary and job prospects.
For engineers and others with relevant technical backgrounds who are passionate about using DevOps best practices to make more efficient, secure, and reliable software development ecosystems, platform engineering can be an exciting career opportunity with ample opportunity for growth.
Platform engineering tools
A platform engineer’s tool kit might look a lot like a DevOps manager’s, but key differences in scope and focus stand out. While a DevOps tech stack focuses on optimal development and deployment with IaC and CI/CD tooling, the platform engineer zooms out for a broader domain. That tech stack then expands to include tools for managing security, observability, and infrastructure from a holistic perspective, including more than just the DevOps team.
Categories include:
- Continuous integration/continuous deployment (CI/CD) tools for automating the integration and deployment of code changes
- Examples: Jenkins, CircleCI, GitLab CI, Liquibase
- Infrastructure as Code (IaC) tools for managing and provisioning infrastructure through code
- Examples: Terraform, AWS CloudFormation
- Container orchestration tools for managing containerized applications
- Examples: Kubernetes, Docker Swarm
- Monitoring and observability tools for tracking system performance, providing alerts, and logging operations
- Examples: Prometheus, Grafana, ELK Stack, Liquibase
- Security and compliance tools for keeping data safe and controlling user access
- Examples: HashiCorp Vault, Aqua Security
- Automation and scripting tools for automating repetitive tasks and standardizing workflows
- Examples: Ansible, Chef, Puppet, Liquibase
- Collaboration and communication tools for facilitating collaboration among teams
- Examples: Slack, Jira, Confluence
- Data and database management tools for managing storage, change, security, and integration
- Examples: Liquibase, Apache Kafka, Snowflake
Embracing automation via these tools is a no-brainer, but beyond choosing the right tooling, here are additional platform engineering best practices.
Platform engineering best practices
Some generally accepted best practices for platform engineering encourage teams to:
- Treat the IDP as a product – like a customer-facing product, it needs an owner as well as user-focused goals
- Leverage tools to automate and standardize – use automation to reduce manual intervention and standardize processes across the platform
- Build for scalability – design platforms to handle growth in users, data, and workloads without sacrificing performance
- Integrate security from the start – embed security practices throughout the platform lifecycle, from design to deployment
- Prioritize observability – implement monitoring and logging to ensure visibility into platform performance and to quickly diagnose issues
- Foster a culture of continuous improvement – regularly gather feedback from platform users and iterate on the platform to enhance its capabilities and user experience
- Encourage collaboration and cross-functional alignment – work closely with development, operations, security, and data teams to ensure the platform meets the diverse needs of its users
- Document thoroughly and maintain clarity – ensure that all processes, workflows, and components of the platform are well-documented to support ongoing maintenance and onboarding of new team members
The core concepts of platform engineering and its prioritization of seamless integration and automation align closely with Liquibase’s foundational database DevOps philosophies. Our own platform engineering experts have collected additional wisdom.
“You want to build a platform that makes your end users' jobs easier and more efficient,” emphasizes Liquibase VP of Product Loreli Cadapan. “But at the same time, you need to stay aligned with business goals. A deep understanding of the frustrations, challenges, and needs of the developers, data scientists, and operations teams the platform serves is your first priority if you want to achieve that balance.”
Jake Newton, Liquibase's own DevOps manager agrees, adding:
“Successful platform engineering isn’t just about building tools—it’s about creating a seamless experience for developers and operations teams that drives efficiency and innovation. By focusing on automation, security, scalability, and self-service we can empower our teams to deliver high-quality software faster, while staying aligned with the organization’s strategic goals.”
Database change management automation for platform engineering
When platform engineers look at the end-to-end pipeline, there’s no ignoring how central databases are to every stage of the workflow. While other solutions empower agile and incremental changes to application code, there’s nothing keeping pace with relevant database updates to support evolving application, compliance, technical, and user requirements.
Platform engineering, in this context, aims to provide a robust, efficient, and scalable foundation that allows database developers to focus on building and optimizing database solutions without worrying about the underlying infrastructure complexities.
As changes to data structures become more common with a stronger stream of releases and larger volumes of data collection and transformation, database change cannot be managed manually nor adjacently to the rest of the internal development and delivery platform. Platform engineers should automate and integrate database change management to flow as smoothly as any other deployment.
By shifting database change to an as-code method with a database DevOps tool like Liquibase, platform engineers can achieve the IDP, CI/CD, and other platform integration to make database updates a confident, self-service element as streamlined as the rest of the pipeline.
Liquibase focuses on database-level changes, complementing other tools that shift left at the application code level. It's used to enable version control for database changes so they can be processed through automated quality testing with controls in place for compliance, security, and internal processes.
With Liquibase, the same “smaller, more frequent deployment” mindset easily extends to database changes, avoiding slowdowns caused by manual reviews or waterfall updates. Platform engineers can also rely on Liquibase for easy automated rollbacks and even Targeted Rollbacks, making it just as easy to undo a problematic change as it is to deploy it.
Platform engineers can embrace database DevOps with Liquibase to increase the speed, quality, and reliability of database updates, supporting a comprehensive full-cycle development and deployment platform. Database DevOps enhances platform engineering by:
- Creating reusable components and processes for database changes
- Automating database schema changes
- Facilitating immediate feedback loops
- Integrating with CI/CD tools and pipelines
- Enabling easy scalability without risking data integrity
- Bridging development, data, infrastructure, and database teams
- Providing traceability and monitoring for every database operation
- Incorporating and automating compliance and security checks
Modern internal platforms cannot be considered completely engineered unless the database is adequately automated and observable.
Learn more: How can database change automation accelerate application delivery?