Skip to main content

From Scratch to Scalable: Seamless CI for C++ Windows Build Infrastructure with Ansible and Terraform

· 10 min read
Christopher McArthur
C++ DevOps Expert

One of the biggest challenges in C++ is setting up CI from scratch and of that, the biggest pain point is the system administration which can be very disconnected from the development tools. In order to bridge this gap we can leverage Infrastructure as Code (IaC) targeting existing machines, locally in our network or in the cloud, is an excellent enhancement to ensure consistent reproducible builds. Having version controlled configuration management tied to the codebase is key, this will allow us to deterministically install all the tools required with confidence even in the far far future.

Let's walk through adding Ansible to handle configuring a Windows virtual machine. These ideas apply to Unix environments as well but we can tackle those in a future post. Once we've gained control over our build environments, we can tackle availability and scalability by introducing Terraform to help provision and initialize new Windows instances in Azure. This two prong solution enables both a path for migrating to the cloud and establishing a hybrid setup.

Revolutionizing C++ Development: A DevOps Odyssey

· 4 min read
Christopher McArthur
C++ DevOps Expert

In the ever-evolving landscape of C++ development, challenges abound, but the journey to overcome them has a powerful ally: DevOps. The annual ISO committee's survey paints a vivid picture of the hurdles faced by C++ developers, but within these challenges lie opportunities for transformation through DevOps principles and cutting-edge technologies like Artifact Management, Infrastructure as Code (IaC), and Platforms as a Service (PaaS).

Unveiling the Challenges

The 2023 ISOCPP Survey echoes the sentiments of C++ developers grappling with key issues:

  1. Managing libraries my application depends on: 83%
  2. Build times: 81%
  3. Setting up a continuous integration pipeline from scratch: 72%
  4. Managing CMake projects: 67% (MakeFiles MSBuild)
  5. Setting up a development environment from scratch: 67%

Unveiling the Power of C++ DevOps: Bridging Disciplines for Seamless Development

· 4 min read
Christopher McArthur
C++ DevOps Expert

In the ever-evolving landscape of software development, the transformative influence of DevOps cannot be overstated. It has reshaped how teams collaborate, develop, build, test, and ultimately deliver applications. DevOps is more than a mere collection of practices or tools; it embodies a cultural shift, fostering collaboration and communication among software developers, QA professionals, and IT operations.

Today, we navigate the intricate landscape of C++, delving into how the DevOps approach aligns seamlessly with both historical and contemporary roles within the ecosystem. It becomes apparent that DevOps best practices hold the key to unlocking solutions for some of the most prevalent challenges faced by C++ developers.

Harmonizing DevOps and Modern C++: A Symphony of Efficiency

· One min read
Christopher McArthur
C++ DevOps Expert

Welcome to our inaugural blog post, where we embark on a journey at the intersection of DevOps and Modern C++. In the fast-paced world of software development, the marriage of these two powerful domains is becoming increasingly essential for crafting robust, scalable, and efficient applications.

In this blog series, we will explore the seamless integration of DevOps practices with the elegance and performance enhancements offered by Modern C++. From automating deployment pipelines to leveraging advanced C++ features, we will uncover the synergies that can propel your development workflows to new heights.

Whether you're a seasoned C++ developer seeking to optimize your processes or a DevOps enthusiast eager to delve into the intricacies of this versatile programming language, join us on this enlightening expedition. Together, let's unravel the secrets of achieving harmony between DevOps principles and the cutting-edge capabilities of Modern C++. Get ready to embark on a transformation journey that promises to elevate your skills as a software engineer.