Skip to main content

DevOps and Data Pipelines

Go tools for systems and data engineering



Go is the preferred language for development and operations (DevOps) and for building command-line utilities and cloud-native applications.

Go’s focus on security, type-safety, and compatibility translates into data pipelines and applications that are easier to maintain over time. Software library incompatibilities are common in Python, Java, JavaScript, .Net/C#, and other programming environments. Not so with Go.

Cobra is a Go framework for building command-line interfaces (CLIs). Cobra provides the command-line interface for many popular systems, including GitHub, Docker, and Kubernetes. Cobra’s GitHub repository shows hundreds of open-source contributors and more than a hundred thousand users.

We can use Go to build application programming interfaces (APIs) and to implement remote process communications.

We can build database servers and high-performance data pipelines. Go clients are available for PostgreSQL, Elasticsearch, Neo4j, and EdgeDB, which are the relational, document, graph, and graph-relational database systems used in the MSDS program.

Dagger executes continuous integration and continuous deployment (CI/CD) pipelines in containers. This software development kit (SDK), written entirely in Go, is available from the Dagger GitHub repository.

Pachyderm provides data pipeline utilities written in Go.

Apache Beam provides tools for managing data pipelines for both batch and stream processing. Pipelines can involve ingesting and transforming data, as well as aggregating events and windowing across data streams. Beam can work with complex, multi-stage pipelines, reducing processing times. Beam utilities are available for Go, Python, SQL, and Java. What is Apache Beam? from Google Cloud Tech provides a brief overview of the history and purpose of Beam.

References #

Anagnostopoulos, Achilleas. 2020. Hands-On Software Engineering with Golang: Move Beyond Basic Programming to Design and Build Reliable Software and Clean Code. Birmingham, UK: Packt. [ISBN-13: 978-7-83855-449-1]

Doak, John. 2022. Go for DevOps: Learn How to Use the Go language to Automate Servers, the Cloud, Kubernetes, GitHub, Packer, and Terraform. Birmingham, UK: Packt. [ISBN-13: 978-1801818896]

Gerardi, Ricardo. 2021. Powerful Command-Line Applications in Go: Build Fast and Maintainable Tools. Raleigh, NC: The Pragmatic Bookshelf. [ISBN-13: 978-1-68050-696-9]

Strecansky, Bob. 2020. Hands-On High Performance with Go: Boost and Optimize the Performance of Your Golang Applications at Scale with Resilience. Birmingham, UK: Packt. [ISBN-13: 978-1-78980-578-9]

Back to Building Systems and Services