Operations | Monitoring | ITSM | DevOps | Cloud

Latest Posts

Deploying your Gradle Build Cache Node using GCP

This tutorial is a follow-up to TurboCharging your Android Gradle builds using build cache . The key focus of this post is the remote build cache, a build speed acceleration technology that can be implemented for both local and CI builds. This is a technology worth knowing about because: Gradle provides a build cache node available as a Docker image. You can host this image in a number of ways.

Top 6 benefits of virtualization

Virtualization has been with us since the 1960s. In computer science terms, it is about as old as the hills. Yet this old-school idea has never been more relevant. We all know hardware is expensive. Despite the cost, many businesses squander their precious processing power. All too often, a “one server, one purpose” mindset leads IT departments to waste server capacity. With virtualization, we leave this myopic view of server management in the dust.

Functional browser testing with Puppeteer

Most interactions with a web application occur at the browser. Users search items, fill forms, create shopping carts, log into their profiles, and perform many other tasks. Unit tests are great, but nothing beats testing an application by interacting with the user-facing frontend. In this tutorial, you will learn and demonstrate how to write tests for the browser using Puppeteer . You will then take this a step further by automating the testing process in a continuous integration flow.

Create a continuous deployment pipeline for Django applications

Django is the most popular web development framework for the Python programming language. Its design facilitates rapid development without compromising on the standards of professionally built applications. It is free, open source, uses the Model-View-Template architectural pattern, and encapsulates a lot of boilerplates to enable developers churn out web apps quickly.

How to sell your manager on CI/CD

Continuous integration seems like a smart choice, right? Why would anyone think that integrating your code into the product as soon as possible is a bad idea? Let me take you back to August 2000, when a fresh-faced young engineer was starting her first engineering role. She was given a desk, a computer, and a detailed project plan that included a release date three months in the future.

Continuous integration for Rust applications

Rust is a powerful language built on the promise of performance and reliability. With no runtime or garbage collector, it easily runs in any environment and can be integrated into any existing language or framework. With the advent of WebAssembly . Rust has become even more valued in the web development space. Rust’s seamless peering with Node.js to build highly performant functionalities has made it a delight for web developers.

Automate your releases with CircleCI and the GitHub CLI orb

Last year, GitHub announced the release of their new CLI tool . The new gh CLI wraps around the standard git cli and offers a suite of additional GitHub.com specific commands. These new commands include the ability to create a new pull request and to create a release directly from your terminal. We here on the CircleCI Community and Partner Engineering team at CircleCI use the gh pr checkout command all the time to safely test pull requests from the community (you!) on our various orbs .

Clojure microservices for JavaScript developers part 2

This series was co-written by Musa Barighzaai and Tyler Sullberg. In the previous post, we explored high-level differences between thinking in Clojure compared to thinking in JavaScript. We are now ready to start building our first Clojure microservice. The microservice we are going to build will be very simple. It will be an HTTP server that uses a Redis data store to count how many times a given IP address has pinged the /counter endpoint.

Clojure microservices for JavaScript developers part 3

This series was co-written by Tyler Sullberg and Musa Barighzaai. This is the third and final post in a series of posts for JavaScript developers about how to set up Clojure microservices. The previous posts were: Those previous posts are useful context, but you can clone the repo and jump into this post without reading them.