This is the first post of a three-part series about filesystems, containers, and Concourse. The goal of this series is to describe what the different volume drivers available in Concourse do.
While working on a CI/CD pipeline recently, we encountered some flakey unit test failures. Random unit tests for a Rails app would fail intermittently with strange errors ranging from null objects, timeouts, and strange logic errors. The problem turned out to be that the EC2 instances running the tests did not have enough compute to handle the load, but a key metric that helped us identify this was stolen CPU time instead of CPU utilization. Have you never heard of stolen CPU time before? No problem. This post explains what it is and how burstable AWS EC2 instances work. This post will focus in on the concept for Linux. Similar metrics can be obtained for Windows (known as CPU ready) as discussed here.
Last time, I mentioned that we use a pipeline to manage updates to the techorrect.com website. The pipeline is triggered on each commit to
master, and begins running automated tests on the code changes. Since the techorrect.com website is simple and only consists of static pages, the tests we’ve chosen to run only validate the HTML and check for broken links. To do this, we are using the awesome html-proofer gem. Once these tests have passed, the pipeline uploads the new/updated static pages to our AWS S3 bucket. By automating tests and deployment, we can focus on creating new content.