While a cup of coffee may seem like its two parts of hot water and coffee grinds there is much more to it. The same can be said for a well designed API. A good API does more then just taking input and returning output. It offers a few key items that make it enjoyable and easy to work with.
These few key items can sometimes be overlooked or not get the extra polish they deserve which detract from the API. Below we’ll touch upon these and how they can enhance the API experience.
The first interaction any developer will have with an API is its documentation. Good documentation is informative and clear which allows developers to quickly start integrating with the API. …
What is the GVR in Kubernetes? It stands for Group Version Resource and this is what drives the Kubernetes API Server structure. We will cover exactly what the terminology means for Groups, Versions, Resources (and Kinds) and how they fit into the Kubernetes API.
Kinds in Kubernetes relate to the object you are trying to interact with. A
deployment would be your Kind.
There are three categories of Kinds
This guide is meant to help you configure a private container registry running on your Kubernetes cluster that is backed by an S3 backend.
What you will need:
All of the instructions in this guide can be swapped out for your cloud provider of choice with minor changes. We will be using Vultr as our cloud provider for this guide.
If you wish to also use Vultr there is an open-source Terraform Module that Vultr provides called Condor which bootstraps a working cluster in a few minutes. To find out more visit https://github.com/vultr/condor …
What is Traefik? Traefik is a load balancer and HTTP reverse proxy that makes working with microservices and integrating with your infrastructure seamless.
As you you see above Traefik will allow you to define public routes that the internet can access which will then get routed to a docker container. These publicly accessible routes are called “frontend-rules” which get routed to “backends”.
By the end of this article you will learn how to setup Traefik to route http traffic to your Docker containers and have these calls go through HTTPS with Lets Encrypt.
You are going to need a web server that has Docker running on it. I deployed a high frequency instance on Vultr with Docker already preinstalled. …
This post is meant to help you get a Kubernetes cluster up and running with kubeadm in no time. This guide will be using Vultr to deploy two servers, one master and one worker, however you can deploy as many servers as you would like.
So what is kubeadm?
Kubeadm is a tool developed by Kubernetes which allows you to create a minimum viable cluster up and running by following best practices. It will only bootstrap your cluster not provision machines. Things such as addons, the Kubernetes dashboard, monitoring solutions, etc is not something kubeadm will do for you.
With this guide you can essentially deploy this Kubernetes cluster on any cloud provider. …
During one of my recent projects, I needed to find a new CI/CD service that could meet my needs. This service needed to be lightweight, affordable, and offer me the ability to define my workflow in code.
Enter Concourse CI. This isn’t your grandpa’s CI, Concourse CI is a free, open source CI written in Go and Elm. With all my criteria met, I decided to give it a shot and I was quickly won over.
In adopting Concourse CI, I wanted to share with you all two examples to help you get started. I’ll be splitting these examples into two parts; part one focusing on having Concourse build your Docker image from GitHub and deploying to ECR, part two being a more advanced version of this where Concourse can update your code and create pull requests. …
I spend a lot of time writing microservices in Go. Therefore, I found myself needing a concrete way to hand errors back to the client that was predictable and repeatable.
So I decided to follow the error response structure from https://jsonapi.org/format/#errors. This spec makes it very clear and concise to where the client can always expect a well formatted response that will never stray.
A few notable takeaways with this spec are:
Recently, I had an opportunity to deploy a Go application into AWS Elastic Beanstalk, and I was surprised at how painless the deployment was. Without having to worry about infrastructure issues, I was able to get my Go app deployed.
Below is a break down, from start to finish, on how to get a simple Go app out to Elastic Beanstalk using docker.
Before we get started, there are a few things that need to be setup/installed:
Once all of the prerequisites are setup, we can begin by creating a new folder for where our application will live. …