• Flexible docker images with optional COPY We use a general-purpose base image for all our Rails apps here at TrueCar. By leveraging the ONBUILD directive to do common setup tasks, we obviate the need for developers to copy + paste those common tasks in their Dockerfiles. Recently, the ability of our general purpose image to handle specific app dependencies was tested,... Yongjie Lim 4 min read May 14, 2017
  • Continuous Testing – Milestone 4 At the closing of the last milestone, I discussed one of the applications for which we use parallelization today.  It takes the form of a Jenkins job that serves as a post-deployment process, which runs all tests for a given app within a given environment.  We call this job the Gatekeeper with the idea that... TJ Shewmake 5 min read April 7, 2017
  • Continuous Testing – Milestone 3 In the previous milestone, we discussed the details of our endeavor in parallelizing builds in Jenkins at the individual test case level.  As discussed, this allowed us to provide test coverage in a quick and scalable way. The only limitation we came across is the question of how many inexpensive Jenkins slaves we wanted to... TJ Shewmake 5 min read March 29, 2017
  • GlueStick, Docker, and DigitalOcean’s Ubuntu 14.04 Leveraging TrueCar’s open source GlueStick, this tutorial will run through a simple process of setting up a Gluetick app with Docker on an Ubuntu server. Never heard of GlueStick before? GlueStick handles asset package management, server-side rendering, and comes with a fully-functional testing environment and generators to help you move quickly. For more information on... Chase Cole 6 min read March 24, 2017
  • Continuous Testing – Milestone 2 In this milestone, I’m going to discuss the details involved in setting up our Jenkins builds to run all tests in parallel.  The solution is custom-built despite other already-built tools out there that achieve similar results.  One of the problems I’ve faced when using some of the existing parallelization tools out there is thread collisions between... TJ Shewmake 10 min read March 22, 2017
  • Continuous Testing – Milestone 1 Within the test engineering department here at TrueCar, we’ve tampered and experimented with CI practices for years.  It started, as it does for most, with a hacked-together Jenkins server.  It served its purpose in giving us a server to run scheduled and ad-hoc test jobs in support for the products we provided coverage for.  Nonetheless,... TJ Shewmake 8 min read March 16, 2017
  • Continuous Testing Series One of the most important aspects of using the Continuous Integration methodology is having a quick and reliable QA system that can keep up with the rapid-fire deployments that we are striving towards.  My objective was to achieve this very thing.  It was no small task, and the work is never finished. However at this... TJ Shewmake 2 min read March 16, 2017
  • Creating PDFs from HTML with AWS Lambda and API Gateway There are quite a few cases in which we’d like to be able to output a dynamic PDF (invoices, statements, receipts, etc.) However, our experience has been that working with PDF templates and editors is fairly painful. We would instead like to be able to work with the tools we’re familiar with, HTML and CSS.... Marc Delagrammatikas 7 min read February 17, 2017
  • MLeap: Quickly Release Spark ML Pipelines MLeap: Release Spark ML Pipelines MLeap allows you to quickly deploy your Spark-trained ML pipelines to production. Learn how to go from a raw Avro file to serving a random forest price-prediction model from a JSON API server in just a few minutes. For instance, if you work at a company that uses machine learning,... Justin Slaten 6 min read March 21, 2016
  • How TrueCar Uses Kafka for High Volume Logging Part 2 Introduction In my previous blog entry, I discussed configuring and setting up a production Kafka cluster to queue log messages. That article purposely started in the “middle” of the pipeline to describe how our logs make their way from an application server all the way to our operations and development users. This article will backup... Regis Wilson 12 min read January 19, 2016