Nuts and Bolts

Everyone has opinions and thoughts. Here are some of ours.

Lono CloudFormation Framework Version 3 Release - Layering, Shared Variables, Nested Stacks, Format Detection, Custom Helpers, Source Name Convention, Settings Support

I’m excited to say that a ton of great features has been added to lono with this major version bump. At this point, lono has grown to become a framework for managing CloudFormation templates. Let jump right into it and cover the major improvements.

BoltOps Tooling and Software Design Philosophy

Software is often more of an art form than it is a science. This is one of the reasons software tends to vary substantially between tools and developers. By following guidelines and design patterns though it can help keep the code consistent and clean. This allows the code to be understandable between engineers and allow them to move between tools efficiently. In this post, I’ll talk about what some of the best practices and software design patterns followed in the BoltOps tools.

The 10X, 1X, 0X and -X Engineer

The 10X Engineer

“He’s a 10X engineer.” I remember hearing this expression from recruiters and product managers a few years ago. It’s a funny term but quickly conveys the point. A 10X engineer is someone who can get 10X more done than the average engineer.

Let’s think through this logically. How many hours are there in a normal working day? 8 hours. So does a 10X engineer work 80 hours a day? No, of course not. That’s silly and impossible to do unless you have a tardis. So it’s not about how much you work but how you focus your efforts. A 10X engineer is smarter about how about he choses to spend his time and is better able to focus on higher leveraged activities. He or she focuses on things that make the most difference. This is nicely explained in Edmond Lau’s The Effective Engineer book, which I recommend.

How to Customize AWS Elastic Beanstalk Environments

A common misconception is that Elastic Beanstalk is difficult to work with because it is not customizable. I fell into this trap myself when I first took a look at AWS Elastic Beanstalk. After working with AWS Elastic Beanstalk directly and looking at it more closely though, there are plenty of ways to customize Elastic Beanstalk. I’ll cover the main ways to customize AWS Elastic Beanstalk environments in this post.

Under the Hood of AWS Elastic Beanstalk Part 2

This a continuation of the last post: Under the Hood of Elastic Beanstalk Part 1

We’ll go over the EB nginx setup for the docker container in this post.

Under the Hood of AWS Elastic Beanstalk Part 1

Elastic Beanstalk, EB, is a bit of a magic box. I’d thought it would be good to poke around a little bit under the hood, see how things actually work and learn from it. Understanding just enough of how EB works is extremely helpful for debugging. For this example I’m using a “64bit Amazon Linux 2017.03 v2.7.0 running Docker 17.03.1-ce” EB solution stack.

Jack and the Elastic Beanstalk - Easy Way to Manage AWS Elastic Beanstalk Environments

As with most AWS services, Elastic Beanstalk is great and simply require some tooling on top of the service to speed up the flow. This post covers the jack tool that be use to quickly create and manage Elastic Beanstalk environments.

Speeding Up AWS Elastic Beanstalk's eb deploy

As I’ve covered in Jack and the Elastic Beanstalk, Elastic Beanstalk is a great PaaS offering from AWS that allows developers to deploy and run their applications on EC2 instances. I been tinkering with a few different ways to speed up the eb deploy command from my local machine and was able to speed it up somewhat. Though honestly I was hoping for better results. I will detailed the results to show what I learned.

Note, the project and all it’s files are available on GitHub at tongueroo/hi under the docker-cache branch.

Ufo — Easily Build Docker Images and Deploy Containers to AWS ECS

Amazon EC2 Container Service, ECS, is an AWS service that provisions and manages Docker containers on a cluster of EC2 instances. As with most of AWS services, it is great and simply requires a little tooling wrapped around it to create a smooth flow. Ufo is a simple tool that makes building and shipping Docker containers to AWS ECS super easy.

AutoScaling CloudFormation Template with Lono

In the last CloudFormation post, Generating CloudFormation Templates with Lono, the stack was intentionally designed simple to allow focus on learning and understanding CloudFormation basics. The stack was not that useful in real life. Today, I’ll walk through a CloudFormation template that is practical and useful for real life use cases: an AutoScaling App Tier.

Lono Improvements v2.1.0

Recently, I’ve made some major improvements and updates to the lono tool. I thought it would be nice to provide a post detailing the changes for everyone.

Continuously Generate CloudFormation Templates with Lono and Guard

When using lono if you sometimes forgot to regenerate the templates after making changes you can use lono with guard to never have to remember again.

Generating Hundreds of CloudFormation Templates with Lono

Writing CloudFormation templates becomes difficult to manage once you start using it heavily. Whether it is one complicated template or multiple simple templates, maintaining the templates are a decent amount of work. This post covers a tool I wrote called lono to that manages and generates CloudFormation templates.

AWS CloudFormation dry-run with lono cfn preview

I’ve covered lono cfn in Easily Manage CloudFormation Templates with lono cfn. After learning about AWS CloudFormation Change Sets, I was decided to add a dry-run mode to the lono tool. This dry-run command simplifies the usage of change sets to a single command: lono cfn preview 😁

Easily Manage CloudFormation Templates - Introduction to Lono Template Generation

Lono is a tool that generates CloudFormation templates from smart ERB templates. With it, you can use variables and simplify managing your raw CloudFormation templates greatly.

Why Generate CloudFormation Templates with Lono

Writing CloudFormation templates becomes difficult to manage once you start using it heavily. Whether it is one complicated template or multiple simple templates, maintaining the templates are a decent amount of work. This post talks about why I built a tool called lono to help manage and generate a large amount of CloudFormation templates.

A Simple Introduction to AWS CloudFormation Part 4: Change Sets = Dry Run Mode

UPDATE 2022/8/12: Check out the improved CloudFormation Fundamentals Introductory Course.

I am a big fan of AWS CloudFormation because it gives you the power to codify the infrastructure and provision it in a repeatable way. One thing that I’ve always wished that CloudFormation had was the ability to see the what changes would be applied ahead of time before hitting that update-stack button. Who wants to hit a big scary red button without knowing what is about to happen? I don’t.

A Simple Introduction to AWS CloudFormation Part 3: Updating a Stack

UPDATE 2022/8/12: Check out the improved CloudFormation Fundamentals Introductory Course.

In the last 2 stories, we created an EC2 instance and a Route53 record successfully with CloudFormation. We have yet to walk through the useful update-stack command though. In this post, we’ll use the 2 templates created in the first 2 posts to play around with the update-stack command.

A Simple Introduction to AWS CloudFormation Part 2: EC2 Instance and Route53

UPDATE 2022/8/12: Check out the improved CloudFormation Fundamentals Introductory Course.

This is a continuation of A Simple Introduction to AWS CloudFormation.

We will build on top of the first simple CloudFormation template from Part 1, which provisions an EC2 instance and Security Group. We will add to it a Route53 record that points to the EC2 instance’s DNS public hostname. This demonstrates CloudFormation’s ability to “orchestrates” the components of the stack. CloudFormation will wait until the EC2 instance’s DNS public hostname is ready and then create the Route53 record pointing to it.

A Simple Introduction to AWS CloudFormation Part 1: EC2 Instance

The easiest way to describe what CloudFormation is that it is a tool from AWS that allows you to spin up resources effortlessly. You define all the resources you want AWS to spin up in a blueprint document, click a button, and then AWS magically creates it all. This blueprint is called a template in CloudFormation speak.

Setting Up Continuous Deployment to ECS on CircleCI

CircleCI is one of my goto hosted Continuous Integration, CI, providers. They make it very easy to quickly connect your GitHub account and set up CI. This story covers how to set up Continuous Deployment to ECS on CircleCI.

Continuous Integration Provider Killer Debugging Feature: ssh login

I’m not the one who usually buys into the single killer feature hype. However, in the case of CircleCI they have a feature that blew my mind when I first saw it and still does today: ssh login. Being able to ssh into the machine to debug and poke around the environment is a godsend.

Virtues of Great Programmers: Diligence, Patience, Humility

Many years ago when I first got into web programming, I read a lot of Perl books and remember reading Larry Wall’s Camel book. In it, he says that the virtues of a great programmer are: “laziness, impatience, and hubris”. I ran into it again in this RTFM? How to write a manual worth reading post by Rikki Endsley. I have heard programmers reference this, or some form of it, over the years. You probably have heard: “A good programmer is a lazy one.” I knew that Larry was facetious, but I thought it is funny some people did not. Larry Wall had to post a video to explains that he was joking.

subscribe to Blog via RSS

More tools: