# Puppet

Puppet is a server configuration-management and infrastructure-automation tool.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## DevOps at Findmypast: Postgres Database Upgrades

DevFeed: [DevOps at Findmypast: Postgres Database Upgrades](<https://devfeed.tech/articles/devops-at-findmypast-postgres-database-upgrades-19745.md>)

Original publisher: [Read original article](<https://tech.findmypast.com/postgres-database-upgrades/>)

Author: Robbie Hill

Published: 2022-11-17T11:30:00Z

Content type: article

Language: en

Sources: [Findmypast](<https://devfeed.tech/sources/findmypast.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Puppet](<https://devfeed.tech/topics/puppet.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>)

Tags: [back-end](<https://devfeed.tech/tags/back-end.md>), [clusters](<https://devfeed.tech/tags/clusters.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [databases](<https://devfeed.tech/tags/databases.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [devops](<https://devfeed.tech/tags/devops.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [findmypast](<https://devfeed.tech/tags/findmypast.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [kubernetes-clusters](<https://devfeed.tech/tags/kubernetes-clusters.md>), [linux](<https://devfeed.tech/tags/linux.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [puppet](<https://devfeed.tech/tags/puppet.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>), [updates](<https://devfeed.tech/tags/updates.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [upgrades](<https://devfeed.tech/tags/upgrades.md>)

### AI overview

Findmypast describes its process for upgrading production and non-production Postgres databases. The article covers the database infrastructure, backup arrangements, Puppet-managed installations, version drift between environments, and the reasons for standardizing on the latest supported Postgres version.

### Source excerpt

Introduction Findmypast and its sister site; the British Newspaper Archive (BNA), are served by a web of microservices operating across multiple Kubernetes clusters. A number of our microservices rely upon a back-end database, and although we do operate other database technologies (MSSQL, MongoDB etc.), Postgres is our de-facto standard for relational databases. When the DevOps team first realised the need to upgrade all of the database nodes to the latest Postgres version, we operated a total of twelve production Postgres databases, each running on their own dedicated Ubuntu Linux virtual machine (VM). Running on standalone VMs allows for separation of concerns, and limits the 'blast radius' of issues and failures should they occur. All VMs are managed by our Hyper-V cluster, and backed up regularly by Veeam. In addition to this backup method we operate Barman, which takes a full backup of all production Postgres database hosts nightly, and continuously receives WAL (Write Ahead Log) updates. We operate a a similar number of staging / integration / utility Postgres databases. Unlike the production databases these are (mostly) co-located on a single host, given the reduced storage and performance requirements of these databases. Existing Processes We manage Postgres installations and configuration through Puppet, pinning the installed version of Postgres. After the initial deployment we were not actively upgrading the Postgres version running on the hosts. Upgrades of the production databases were instead only undertaken by the feature teams (those teams that manage our micro-services), or by us when requested by the feature teams. This meant that we had a variety of Postgres databases deployed to production, between versions 9 and 14 (the latest supported version at the time). It also meant that the Production Postgres versions differed from their respective staging / integration database. We knew this situation, as well as the approach to upgrades was bad practice

## The architecture of declarative configuration management

DevFeed: [The architecture of declarative configuration management](<https://devfeed.tech/articles/the-architecture-of-declarative-configuration-management-21948.md>)

Original publisher: [Read original article](<https://blog.nelhage.com/post/declarative-configuration-management/>)

Author: Nelson Elhage

Published: 2019-11-12T22:00:00Z

Content type: article

Language: en

Sources: [Nelson Elhage](<https://devfeed.tech/sources/nelson-elhage.md>)

Topics: [configuration-management](<https://devfeed.tech/topics/configuration-management.md>), [Infrastructure as code](<https://devfeed.tech/topics/infrastructure-as-code.md>), [Puppet](<https://devfeed.tech/topics/puppet.md>), [Terraform](<https://devfeed.tech/topics/terraform.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [code](<https://devfeed.tech/tags/code.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [configuration-management](<https://devfeed.tech/tags/configuration-management.md>), [data](<https://devfeed.tech/tags/data.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [puppet](<https://devfeed.tech/tags/puppet.md>), [state](<https://devfeed.tech/tags/state.md>), [terraform](<https://devfeed.tech/tags/terraform.md>)

### AI overview

This article presents a conceptual model of declarative configuration management tools. It explains how these tools represent a desired system state, compare it with the current state, and update the system to match. The article also describes resource schemas as a core architectural layer and discusses examples including Puppet, Chef, Terraform, and Kubernetes.

### Source excerpt

With the ongoing move towards "infrastructure-as-code" and similar notions, there's been an ongoing increase in the number and popularity of declarative configuration management tools. This post attempts to lay out my mental model of the conceptual architecture and internal layering of such tools, and some wishes I have for how they might work differently, based on this model. Background: declarative configuration management Declarative configuration management refers to the class of tools that allow operators to declare a desired state of some system (be it a physical machine, an EC2 VPC, an entire Google Cloud account, or anything else), and then allow the system to automatically compare that desired state to the present state, and then automatically update the managed system to match the declared state.

## AWS Infrastructure Setup: The CleverTap Way

DevFeed: [AWS Infrastructure Setup: The CleverTap Way](<https://devfeed.tech/articles/aws-infrastructure-setup-the-clevertap-way-27887.md>)

Original publisher: [Read original article](<https://clevertap.com/blog/aws-infrastructure-setup-the-clevertap-way/>)

Author: Francis Pereira

Published: 2017-07-25T07:36:24Z

Content type: article

Language: en

Sources: [CleverTap](<https://devfeed.tech/sources/clevertap.md>)

Topics: [AWS CloudFormation](<https://devfeed.tech/topics/aws-cloudformation.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Infrastructure as code](<https://devfeed.tech/topics/infrastructure-as-code.md>), [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>), [Puppet](<https://devfeed.tech/topics/puppet.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [data centers](<https://devfeed.tech/topics/data-centers.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [clevertap](<https://devfeed.tech/tags/clevertap.md>), [clevertap-engineering-infrastructure](<https://devfeed.tech/tags/clevertap-engineering-infrastructure.md>), [cloudformation](<https://devfeed.tech/tags/cloudformation.md>), [containers](<https://devfeed.tech/tags/containers.md>), [data-centers](<https://devfeed.tech/tags/data-centers.md>), [ec2](<https://devfeed.tech/tags/ec2.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [puppet](<https://devfeed.tech/tags/puppet.md>)

### AI overview

CleverTap describes how it redesigned its AWS infrastructure to support geographically distributed data centers and variable traffic. The article covers moving from console-based setup to CloudFormation and splitting the infrastructure into independent stacks, along with the earlier use of Puppet for configuration management and the transition toward Docker containers.

### Source excerpt

Now that a little more than half of 2017 has gone by, I want to talk about some of infrastructure The post AWS Infrastructure Setup: The CleverTap Way first appeared on CleverTap.

## Measuring production code coverage with JaCoCo

DevFeed: [Measuring production code coverage with JaCoCo](<https://devfeed.tech/articles/measuring-production-code-coverage-with-jacoco-37828.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/production-code-coverage-jacoco/>)

Author: Carlos Alexandro Becker

Published: 2017-03-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [test-coverage](<https://devfeed.tech/topics/test-coverage.md>), [Code](<https://devfeed.tech/topics/code.md>), [Java](<https://devfeed.tech/topics/java.md>), [Puppet](<https://devfeed.tech/topics/puppet.md>), [Maven](<https://devfeed.tech/topics/maven.md>)

Tags: [code-coverage](<https://devfeed.tech/tags/code-coverage.md>), [coverage](<https://devfeed.tech/tags/coverage.md>), [jacoco](<https://devfeed.tech/tags/jacoco.md>), [java](<https://devfeed.tech/tags/java.md>), [maven](<https://devfeed.tech/tags/maven.md>), [monolith](<https://devfeed.tech/tags/monolith.md>), [production](<https://devfeed.tech/tags/production.md>), [puppet](<https://devfeed.tech/tags/puppet.md>)

### AI overview

This tutorial explains how to use JaCoCo in a Java production environment to generate production code coverage reports. It describes instrumenting a production application server, collecting binary report files, and compiling them into HTML reports to identify code that is not executed.

### Source excerpt

Microservices is the new fancy way of doing applications. Yet, most companies still have big and old monoliths in production. In fast evolving software of this size, it's usual to have lines of code which are never executed in production. Production code coverage reports can help us find those lines.

## Jane Street Tech Talks: Verifying Puppet Configs

DevFeed: [Jane Street Tech Talks: Verifying Puppet Configs](<https://devfeed.tech/articles/jane-street-tech-talks-verifying-puppet-configs-20187.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/jane-street-tech-talks-verifying-puppet-configs/>)

Author: Yaron Minsky

Published: 2017-02-16T00:00:00Z

Content type: news

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Puppet](<https://devfeed.tech/topics/puppet.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [event](<https://devfeed.tech/tags/event.md>), [puppet](<https://devfeed.tech/tags/puppet.md>), [talks](<https://devfeed.tech/tags/talks.md>), [tech](<https://devfeed.tech/tags/tech.md>)

### AI overview

Jane Street announces a Tech Talk by Arjun Guha on using static verification techniques to catch bugs in Puppet configuration files.

### Source excerpt

Our first Jane Street Tech Talk went really well! Thanks to everyone who came and made it a fun event.

## Puppet Change Management for DevOps

DevFeed: [Puppet Change Management for DevOps](<https://devfeed.tech/articles/puppet-change-management-for-devops-35663.md>)

Original publisher: [Read original article](<http://blogs.atlassian.com/developer/2011/09/puppet-change-management-for-devops.html>)

Author: Bryce Johnson

Published: 2011-09-20T23:18:04Z

Content type: article

Language: en

Sources: [Atlassian Developer Blog](<https://devfeed.tech/sources/atlassian-developer-blog.md>)

Topics: [DevOps](<https://devfeed.tech/topics/devops.md>), [Puppet](<https://devfeed.tech/topics/puppet.md>)

Tags: [bamboo](<https://devfeed.tech/tags/bamboo.md>), [builds](<https://devfeed.tech/tags/builds.md>), [change-management](<https://devfeed.tech/tags/change-management.md>), [devops](<https://devfeed.tech/tags/devops.md>), [greenhopper](<https://devfeed.tech/tags/greenhopper.md>), [jira](<https://devfeed.tech/tags/jira.md>), [mentor](<https://devfeed.tech/tags/mentor.md>), [production](<https://devfeed.tech/tags/production.md>), [puppet](<https://devfeed.tech/tags/puppet.md>), [review](<https://devfeed.tech/tags/review.md>)

### AI overview

The article discusses how DevOps engineers can use Puppet for change management, including carefully applying changes to production, reviewing changes with stakeholders, mentoring colleagues, and remembering what was changed.

### Source excerpt

DevOps engineers need a way to carefully apply their changes to production. They also need to review those changes with other stakeholders, mentor fellow colleagues, and of course remember what they did...