October 1st, 2020
Interesting AWS Jenkins Jobs
I recently built a new Jenkins server hosted using Kubernetes on EKS. My main use of the Jenkins server is to automate application and infrastructure tests, deployments, and miscellaneous tasks. I get email notifications if these jobs fail, so I know when there is an issue with my software.
Many of my Jenkins jobs work with the AWS CLI and Terraform to interact with and manipulate my cloud infrastructure. I believe these jobs may be useful as templates for others wishing to achieve similar results.
September 21st, 2018
Exploring Jenkins and the Job DSL Plugin
So far in my DevOps journey I've explored Terraform and how to use it to deploy AWS Lambda Infrastructure. In this post I explore Jenkins, which is a Continuous Integration and Continuous Delivery (CI/CD) tool used for automating tasks.
Jenkins is not my first glance into the world on Continuous Integration (CI). That came with my post on TravisCI, which is a CI tool that hosts tasks on a server (free of charge!). I still use TravisCI to help unit test my code every time I push to GitHub.
September 29th, 2020
Jenkins Server Modern Infrastructure with Kubernetes on EKS
In a prior article, I discussed a Jenkins server I created on AWS EC2 and EFS. In this article I’ll discuss the second generation of that infrastructure, which uses Docker containers orchestrated by Kubernetes on an EKS cluster.
September 27th, 2020
Jenkins Server Legacy Infrastructure on EC2 and EFS
Back in 2018, I created a Jenkins server which automated tasks for my applications. Jenkins is a continuous integration and continuous delivery (CI/CD) tool which I've written about in the past. When I first created the Jenkins server, I had a few jobs which ran unit tests, but I never took full advantage of them. Over the past two years, I've gained a greater appreciation for CI/CD tools and their ability to save time deploying code and building confidence in codebases by automating tests. Nowadays all my applications have automated test and deployment jobs on Jenkins.
Since 2018 the Jenkins ecosystem has evolved along with my understanding of cloud concepts. My original Jenkins server was hosted on an AWS EC2 instance which utilized AWS EFS for persistent storage. In the spring of 2020, I decided to rewrite the Jenkins server infrastructure. With my added knowledge of containerization with Docker and container orchestration with Kubernetes, I hosted the Jenkins server on AWS EKS as part of a Kubernetes deployment. In this article, I discuss the original EC2 Jenkins server and its creation process with Terraform. In an upcoming article, I'll discuss the Kubernetes Jenkins server infrastructure.
July 2nd, 2018
Groovy Basics Part I: Concise Syntax
Starting this summer I'll be picking a programming language to look at in-depth every season. The language may be one I want more knowledge on or it may be a completely new language I've never explored. For this summer, the language of choice is Groovy. Groovy is a programming language run on the JVM that can be used alongside Java code1. It supports static and dynamic typing, along with a host of features in hopes to shorten the verbose Java syntax. Groovy is used in a number of different projects such as Grails, Gradle, and Jenkins.
One of the main reasons I want to look at Groovy is my work on a project involving Jenkins at work. I also always had an interest in the language as an alternative to Java. This post looks at some basic features of Groovy that caught my eye after an hour or two of exploring. This post and Part II serve as my first impressions of Groovy. After these two posts I'll dig deeper into Groovy features and use it in Jenkins programs. Now its time to start exploring!
September 28th, 2020
Building an AWS EKS cluster with Terraform
Recently I made the decision to move my applications to Kubernetes, specifically hosted in an EKS cluster on AWS. Before making this decision, my applications (saintsxctf.com and jarombek.com) were hosted using different methods. saintsxctf.com was hosted on autoscaled AWS EC2 instances and jarombek.com was hosted on AWS ECS. I also had prototypes using different hosting methods and a Jenkins server which was hosted on EC2 instances. Moving all these applications to Kubernetes unifies the deployment process and allows me to take advantage of containerization and container orchestration.
In this article, I'll discuss the process for setting up my EKS cluster with Terraform. I'll also detail my experience deploying ALB Ingress Controller and External DNS pods on the cluster.