Creating Zendesk Tickets from Slack Slash Command

We use Zendesk to help manage internal support requests that the IT operations team handles internally. Zendesk provides multiple methods (or channels) to submit requests, such as e-mail and the Zendesk Guide (Help Center). However, most internal communication with the IT operations team now occurs via Slack. In order to make submitting requests easier, I crafted a Slack app to service slash commands as a way to submit support requests. Read more on Creating Zendesk Tickets from Slack Slash Command…

Secure HTTP Proxy with Static IP

Sometimes, we work with APIs that require whitelisting of origin IP addresses for access. This can prove challenging when applications run on SaaS platforms hosted in the public Cloud—you cannot be guaranteed that your application will make requests from a consistent IP address (or range of IP addresses).

For example, hosting on Heroku means that your origin IP address could conceivably be any IP address in the glut of AWS address spaces. Read more on Secure HTTP Proxy with Static IP…

Formatting AWS CloudFront and ELB Logs for Easy Review

Access logs from AWS CloudFront distributions and AWS Elastic Load Balancers can be essential to diagnosing problems with an AWS infrastructure. AWS provides the ability to store these logs in AWS S3 buckets.

However, the log files are often in very many small files which need to be combined in order to get a full picture of the traffic that they represent. In order to make this process easier, I wrote a few scripts which help me to quickly download and format the logs in a usable format for review. Read more on Formatting AWS CloudFront and ELB Logs for Easy Review…

Avoiding Incomplete/Corrupted Files During Processing Operations

Applications that work with files on disk can encounter incomplete or corrupted files if a target file is actively being written to disk by another process. Typically, this happens when two different systems or processes are interacting with the same file independently. Read more on Avoiding Incomplete/Corrupted Files During Processing Operations…

Five of My Favorite Command-Line Utilities

I spend a lot of time on the command line (generally, GNU/Linux), and often work on automating processes and tasks. My work often occurs on a remote machine to which I do not have access, and it generally must be headless (no GUI).

As a result, I have collected an arsenal of command-line interface (CLI) utilities that I always install when I’m setting up a new development machine for myself. There are often graphical analogues for these utilities, but I prefer these because of their CLI. Below is a sampling of my favorites. Read more on Five of My Favorite Command-Line Utilities…

A Script for Deploying Docker-Hosted Applications to AWS ECS

I have recently started relying more on AWS Elastic Container Service (ECS) to deploy applications. To assist with the process of building Docker images, pushing the images up to an AWS Elatic Container Repository (ECR), updating an existing task definition to make use of the new image, and updating an ECS cluster service to use that new task definition, I wrote a fairly simple script in Bash and Python to standardize and automate this process. Read more on A Script for Deploying Docker-Hosted Applications to AWS ECS…

Sharing an EFS Filesystem Across ECS Instances, Services, and Tasks

In application hosting scenarios, it is common to have data that must be available to all application instances. Often, this data is stored in a database (e.g. AWS RDS), or some other centralized repository (e.g. AWS S3). However, situations arise where third-party software expects data to be on the filesystem, or where application instances generate files which must be immediately available to all other application instances. Read more on Sharing an EFS Filesystem Across ECS Instances, Services, and Tasks…