Here at CloudGeometry, we are thrilled to announce the initial public release of our open-source platform engineering reference implementation, CGDevX. CGDevX provides a solid platform engineering foundation, enabling teams to speed up development and increase the quality of their work while helping to avoid needless toil and upstream overload.
We’ve seen the value of this integrated toolchain approach first-hand in our work with dozens of development teams, from growing tech startups to enterprise-level R&D. Before adopting platform engineering practices, it was a struggle to help our clients unify their processes, environments, and toolchains. The challenge was to roll back the "silent tech debt" often embedded in the end-to-end release process.
Inspired by various reference architectures we gathered our internal solutions designed and deployed in real-world software development organizations (more often than not, benefiting from a strong preference for open source. The outcome: our own reference implementation, CGDevX.
How platform engineering works and how it helps
Platform engineering revolutionizes the way engineering teams operate by offering a more efficient, scalable, and agile approach to software development and deployment. This means a shift towards a more streamlined and automated infrastructure, where the focus is on creating highly maintainable self-service platforms for developers.
Such platforms encapsulate best practices, security, and compliance, enabling development teams to deploy applications with greater speed and less operational friction. By abstracting away the complexities of underlying infrastructure and middleware, platform engineering enables developers to focus on writing code that adds direct value to the business. At the same time, it relieves them from getting bogged down by the intricacies of the deployment environment. This not only accelerates the development cycle but also enhances the overall quality and reliability of applications.
For developers
For years the industry has been pushing developers to “shift left,” but that’s meant an increased burden on them to do things they never signed up for – like owning and managing the deep details of an infrastructure environment. Platform engineering is a transformative shift towards a more empowered and efficient way of working. The platform engineering environment is designed to abstract away much of the complexity of infrastructure management and deployment processes. Whether intentional or not, DevOps culture has ended up drawing developers deep into those complexities. Now, it can be structured so they can focus primarily on their core task: coding.
This shift means developers can rapidly build, test, and deploy applications without being encumbered by the intricacies of the underlying systems. It removes the guesswork and the error-prone, or at best thinly stretched, stress of figuring out those intricacies, in order to just commit code into the pipeline. Before platform engineering, developers had to stretch their skill base well beyond the king of the unicorns, mastering dependent technologies at the expense of focusing on better coding. Now platform engineering provides a set of standardized tools and practices, such as automated pipelines, containerization, and orchestration, which streamlines the way quality code proceeds through development.
This not only accelerates the time-to-market for new features and applications but also fosters a culture of innovation, where developers can experiment and iterate quickly, safe in the knowledge that the platform's robust framework supports them. In essence, platform engineering empowers developers to deliver higher-quality software at a faster pace, aligning closely with the business challenges posed by rapid change.
For engineering managers
Adopting platform engineering principles is a strategic move towards building a more resilient and adaptive IT ecosystem. It empowers teams with the tools and processes needed for continuous integration and delivery (CI/CD), and by enabling the path to continuous deployment, a pinnacle of CI/CD and the only way to achieve the fastest possible time to market for business features. It also fosters a culture of innovation and rapid iteration.
This approach builds on the strengths of DevOps and aligns with its principles. That means never losing sight of the power of collaboration between development and operations teams, thus ensuring that software is built with operational realities in mind. Moreover, platform engineering provides a framework for implementing and scaling cloud-native technologies, such as Kubernetes and microservices, which are essential in today's fast-paced digital landscape.
By embracing platform engineering, engineering leaders can not only streamline their development pipelines but also create a more agile, responsive, and efficient IT organization. Going forward, it becomes not only supportive of developers but also ensures infrastructure is well-equipped to meet the evolving demands of the business.
How CGDevX helps platform engineering succeed
We designed and refined CGDevX to play a pivotal role in helping companies transition to platform engineering. It features a comprehensive suite of tools and practical methods to streamline this work. At its core, CGDevX provides an integrated platform that simplifies the complexities of infrastructure management, deployment, and CI/CD processes. This integration is crucial for companies looking to adopt platform engineering, as it allows for a more cohesive and efficient workflow.
By automating many of the routine tasks associated with software development, CGDevX enables engineering teams to focus on creating value-added features and innovations. The platform's emphasis on standardization and best practices provides relief from unnecessary friction in solving crucial operational details. This approach balances process architecture with well-specified tool interactions. It's a shorter path to ensure that all development activities align with the company's broader objectives, facilitating a smoother transition to a platform-centric approach.
A core part of our mindset in devising CGDevX's approach to platform engineering was forged through a realization in our long-running work with our customers: it is not about technology alone. By continuously seeking new ways to foster a culture of collaboration and efficiency, the platform encourages a shift in mindset.
The rubber meets the road where developers, operations teams, and other stakeholders are better set up to work together more closely, breaking down traditional silos. This structured framework is powered by CGDevX's robust set of collaboration tools and shared repositories, which ensure that all team members have access to the latest code, documentation, and resources. This includes structured versioning of not just software code, but also the code that defines the infrastructure in an Infrastructure as Code environment.
This level of integration and collaboration is essential for companies adopting platform engineering, as it leads to more efficient problem-solving, faster iteration, and a more agile response to market demands. Ultimately, CGDevX helps companies adapt quickly to changing requirements, maximizing the benefits of platform engineering and leading to improved software quality, faster time to market, and a more durable competitive edge in the digital landscape.
What’s a reference implementation?
A reference implementation serves as a practical, demonstrable example of how to implement a specific methodology or set of standards within a given domain. CGDevX is a reference implementation of the CloudGeometry approach to platform engineering.
When you put CGDevX to work in a real-world environment, the reference implementation serves as a tangible blueprint for platform engineering, showcasing the best practices, tools, and processes necessary for effective implementation. This includes demonstrating how to integrate various software development processes, from coding and testing to deployment and monitoring, into a cohesive and efficient workflow.
By providing a usable working model with complete code transparency, CGDevX can help you understand the practical aspects of platform engineering. It offers the stakeholders in across organizations insights into how it can be effectively applied in real-world scenarios. This not only aids in understanding the concept but also serves as a guide for companies looking to adopt similar practices, ensuring they have a solid foundation to build upon.
CGDevX's design as a reference implementation for platform engineering emphasizes flexibility and adaptability, enabling seamless integration or replacement of its constituent tools with alternative open-source or commercial options. We designed it as a modular approach because we've put it to work in a wide range of contexts, with different business models and different technology stacks. That way, organizations are not locked into a specific set of tools or technologies but rather have the freedom to customize their platform engineering stack according to their unique needs, preferences, and existing infrastructure.
Whether it's swapping out a continuous integration tool, adopting a different monitoring solution, or integrating a new database management system, CGDevX's architecture is built to accommodate such changes. This flexibility is crucial for organizations aiming to stay agile and responsive to evolving technology trends, enabling you to continuously optimize your development and operational processes without being constrained by the limitations of any single toolset.
What’s included in CGDevX?
CGDevX provides a complete platform engineering foundation (a "platform platform” if you will), including both a cloud-native substrate in the form of a Kubernetes cluster and all of the tools you need for an efficient development environment, complete with a CI/CD workflow and observability. In CGDevX R1, these include:
- Kubernetes as a development substrate: CGDevX is based around cloud-native application creation, making Kubernetes a natural choice, but it can be used as a foundation for any software development. That said, the software development tools included in the CGDevX reference implementation run on Kubernetes, so it comes pre-installed and configured, with all of those tools pre-installed as well.
- Deployment to public cloud providers: CGDevX will enable you to deploy your platform to the provider of your choice. This release focuses on deploying to Amazon Web Services, with experimental access to Microsoft Azure and Google Cloud coming soon.
- Argo for CI/CD workflows: All modern software development is based on the Continuous Integration / Continuous Delivery model, so CGDevX includes ArgoCD as a CI/CD manager. You can also substitute other tools such as FluxCD or Jenkins.
- GitHub for source code management: CGDevX enables you to easily integrate with Git-based repositories such as GitHub or, alternatively, Gitlab, Bitbucket, or other providers.
- Terraform for Infrastructure as Code: Terraform templates enable you to easily provision virtual and even physical resources, and provided templates mean you can start immediately.
- Harbor for a secure software supply chain: An open-source cloud-native container image registry that stores, signs, and scans content, ensuring only trusted content can run in production and providing certainty throughout your software supply chain.
- Vault for secrets management: Vault securely manages secrets — like API keys, passwords, and tokens — providing tight access control and recording a detailed audit log.
- SonarQube for code quality: SonarQube is a code analysis tool that helps you maintain code quality by identifying bugs, code smells, and security vulnerabilities before they make it into production.
- Prometheus/Grafana/Loki for monitoring and observability: Prometheus, an open-source systems monitoring and alerting toolkit designed for reliability and scalability, and Grafana, an open-source platform for monitoring and observability that enables you to query, visualize, alert on, and explore your metrics no matter where they are stored, work together to ensure that you always know what’s happening as your system runs.
How can I get CGDevX?
We’re excited for you to try out CGDevX. You can get it in one of two ways:
- For our professional services clients, ask your account manager about incorporating CGDevX into your engagement. (Not a client? We’d love to talk to you.)
- More of a do-it-yourselfer? Get CGDevX and try it for yourself! The CGDevX Github repository is open, and we invite you to try it out and (we hope) star it.
Either way, we’d love to hear from you. Our goal is to make your life better and easier, so let us know how we can do that!