Image for post
Image for post

Part 1 of “Comparing CI/CD Tools”. In this introduction to GitHub Actions, we’ll explore how easy it is to build and deploy a simple Python Flask application to AWS Elastic Beanstalk.

Welcome to the first part of a series of articles comparing CI/CD platforms. To help evaluate, compare and contrast the tools currently dominating the market, the goal will be to automate the deployment of a Flask application onto AWS Elastic Beanstalk. A new deployment will need to occur after every push to main branch, and during the series this same requirement will be implemented across a multitude of CI/CD tools.

First up, part 1 will focus on GitHub Actions, where the support for CI/CD was first announced in August 2019. I’ll document the steps taken along the way to achieve the goal with GitHub Actions, and there’s a write up of the positives and negatives in a conclusion at the end of this article. …


Image for post
Image for post

Speed up your WordPress website with AWS CloudFront serving all your images, css, and javascript content.

I recently helped out a WordPress site owner — let’s call our site owner “Joe”.

Joe was struggling to get WP Rocket working with AWS CloudFront for stylesheets and javascript. His site was already successfully using S3 and CloudFront for all its image media using the “WP Offload Media Lite” plugin.

Joe had also configured a custom subdomain for his CloudFront distribution and SSL certificate using the techniques described in the two articles below.

However, after installing the “WP Rocket” plugin and updating its CDN configuration to point at the existing CloudFront distribution, Joe’s WordPress site no longer rendered correctly.

On closer inspection, CloudFront was returning “403 Forbidden” errors for all the .css and .js files.


Image for post
Image for post

Part 2 of “Comparing CI/CD Tools”. In this introduction to Buddy, we’ll explore how easy it is to build and deploy a simple Python Flask application to AWS Elastic Beanstalk.

Welcome to the second part of a series of articles comparing CI/CD platforms. To help evaluate, compare and contrast the tools currently dominating the market, the goal will be to automate the deployment of a Flask application onto AWS Elastic Beanstalk. A new deployment will need to occur after every push to main branch, and during the series this same requirement will be implemented across several CI/CD tools.

Our first article looked at GitHub Actions, which you can read below.

Next up, part 2 will focus on Buddy — to be found online at https://buddy.works. I’ll document the steps taken along the way to achieve the goal with Buddy, and there’s a write up of the positives and negatives in a conclusion at the end of this article. …


Image for post
Image for post

Guide for developers to get up and running with Jenkins running in Docker (on Windows).

This small series of guides will walk through three solutions for installing Jenkins in a Docker container on Windows, along with the configuration necessary to spin up dynamic build slaves also using Docker containers.

Running locally on a personal device is perfect for individual users, freelancers, or developers looking to do local Jenkinsfile or Shared Library development and testing before pushing to a central CI/CD platform.

“You said three solutions?” Yes — this article demonstrates running the Jenkins container as root user instead of jenkins user. Part 1 was using Docker-in-Docker and Part 2 was to replace with a socat container. …


Image for post
Image for post

Guide for developers to get up and running with Jenkins running in Docker (on Windows).

This small series of guides will walk through three solutions for installing Jenkins in a Docker container on Windows, along with the configuration necessary to spin up dynamic build slaves also using Docker containers.

Running locally on a personal device is perfect for individual users, freelancers, or developers looking to do local Jenkinsfile or Shared Library development and testing before pushing to a central CI/CD platform.

“You said three solutions?” Yes — this article demonstrates using socat (further reading at socat). Part 1 was using Docker-in-Docker and Part 3 is to run the Jenkins container as root user. …


Image for post
Image for post

Guide for developers to get up and running with Jenkins running in Docker (on Windows).

This small series of guides will walk through three solutions for installing Jenkins in a Docker container on Windows, along with the configuration necessary to spin up dynamic build slaves also using Docker containers.

Running locally on a personal device is perfect for individual users, freelancers, or developers looking to do local Jenkinsfile or Shared Library development and testing before pushing to a central CI/CD platform.

“You said three solutions?” Yes — this article demonstrates using Docker-in-Docker (further reading at dind). Part 2 is using a socat container and Part 3 is to run Jenkins as root. …


Image for post
Image for post
Photo by Chris Ried on Unsplash

Tips on how developers can include source code within their Medium articles.

There are several quick ways for developers to share code snippets within their Medium article. We’ll explore five ways in this article.

#1 — Inline code

Inline code can be inserted using a single backtick character `.

Image for post
Image for post

#2 — Block code

A multi-line block of code can be inserted using a triple backtick combination ``` or by typing CRTL + ALT + 6. You can also highlight a piece of existing text and use this combination to convert it.

Image for post
Image for post

#3 — GitHub Gists

If you have just a single piece of code you want to embed, then an easy option is to create a public gist at GitHub Gist. …


Image for post
Image for post

This tutorial will introduce a technique for building a Spring Boot java application into an RPM package using Maven.

The goal of this article is to package a Spring Boot application as an RPM using the rpm-maven-plugin. We’ll not only cover the basics of creating the RPM, but include pre- and post-installation scripts to ensure you’re up and running and ready to get stuck in to build your own application.

If you’re interested in packaging via Docker instead, check out the post below.

Let’s get started.

Spring Boot application

For the purpose of this demonstration we are going to use the Hello World example detailed on the Spring Boot Quickstart. …


Image for post
Image for post

This tutorial will introduce three techniques for building a Spring Boot java application into a Docker image using Maven.

The three approaches walked through in this article are;

  1. Using the integrated Spring Boot build-image goal.
  2. Using the jib-maven-plugin from Google.
  3. Using the dockerfile-maven-plugin from Spotify.

Let’s get started.

Spring Boot application

For the purpose of this demonstration we are going to use the Hello World example detailed on the Spring Boot Quickstart. You can bring your own application or get started by using the source code that has been prepared for this article and can be cloned from GitHub.

I’m using Java 11 and Maven 3.6.3. Build using mvn package and verify the application runs as expected by using java -jar target/demo-application-0.0.1-SNAPSHOT.jar


Image for post
Image for post
Photo by Christian Wiediger on Unsplash

Run out of disk on your EC2 instance? Quick guide to expanding the disk without taking your Amazon Linux server offline.

Like I did this week, at some stage you will will find you have run out of disk on your EC2 instance. I was installing a suite of new packages via yum and got the dreaded errors that my disk was full. Nothing to fear… (this article is how to expand the disk, rather than finding out where it all went).

tl;dr

  1. Increase the size of the disk in AWS Management Console.
  2. Confirm filesystem is “xfs” by using df -Th
  3. Verify partition size and mount using lsblk
  4. Extend the partition using sudo growpart /dev/xvda 1
  5. Grow the filesystem using sudo xfs_growfs -d…

About

Dave Sugden

DevOps | SRE | AWS | GCP https://www.linkedin.com/in/davelms/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store