Blossom Logo Deploy your apps with Heroku-like simplicity using Blossom See Your Savings
BoltOps Logo

Nuts and Bolts

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

Ruby on Jets 6.0: Rails Support header image

Ruby on Jets 6.0: Rails Support

Tung Nguyen Tung Nguyen · May 23, 2024 · 4 min read
Jets 6.0 is a Deployment Service. Jets makes it easy to deploy and run your app on Serverless. It packages up your code and runs it on AWS Lambda. Jets can deploy Rails, Sinatra, Hanami, and any Rack app.
Read more →
Terraspace v2.1 Release header image

Terraspace v2.1 Release

Tung Nguyen Tung Nguyen · July 12, 2022 · 2 min read
With cost estimates, you will be able to see how much your infrastructure costs. The estimate is saved to Terraspace cloud for visibility and historical viewing. Here’s what it looks like on the dashboard.
Read more →
Introducing Terraspace Cloud header image

Introducing Terraspace Cloud

Tung Nguyen Tung Nguyen · June 10, 2022 · 6 min read
In this post, you’ll get an introduction to Terraspace Cloud. What is Terraspace Cloud? Terraspace Cloud is a nice addition to the Terraspace Framework. Terraspace Cloud adds extra features to Terraspace. GUI Dashboard and History: When working with multiple stacks, it can become hard to remember all the stacks you or others on your team have deployed. Terraspace Cloud helps you visualize the stacks by saving them and providing a web dashboard with deployed stacks, history, logging, and resources. Know who deployed what and when. Team and Permissions Management: Fine-grain permission control over access. You can create teams and define permission that target dev vs prod environments. CI/CD Integration: Integration with popular CI/CD systems like GitHub Actions, GitLab Pipelines, etc. GitHub Pull Request and GitLab Merge Request integration provide a comment with a link to the visual dashboard. Real-Time Logging: Terraspace captures logs that you see in your terminal and stream them live to the Dashboard. You can share this url to teammates who have access to the project. Cloud Cost Estimation: Terraspace Cloud provides cost estimates for your Terraform resources. Terraspace integrates the infracost estimation reports with the Terraspace Cloud dashboard and Pull Request comments. Terraspace Cloud provides these additional conveniences as an optional paid managed service. Terraspace Cloud Pricing
Read more →
Terraspace 2.0 Release header image

Terraspace 2.0 Release

Tung Nguyen Tung Nguyen · June 10, 2022 · 4 min read
Terraspace Cloud is a nice addition to Terraspace. Terraspace Cloud adds extra features and conveniences to the Terraspace Framework like Team Management, Permissions, History, and a GUI visual interface. It’s specifically designed it work with Terraspace. Terraspace Cloud provides these additional conveniences as an optional paid managed service. It also hopefully provides a means to support the project financially. The Terraform Framework itself is open source and free to use. You can start using Terraspace Cloud with the Terraspace Framework starting in version 2.0.
Read more →
Serverless Slack Commands with Ruby: Fun with AWS Image Recognition header image

Serverless Slack Commands with Ruby: Fun with AWS Image Recognition

Axel Molina Axel Molina · February 02, 2021 · 11 min read
This post will detail the steps to get a serverless slack command running on AWS Lambda using the Jets Serverless Ruby framework. We’ll make something fun: a command that takes in a URL, scrapes all the images on the page, filters the images using AWS image recognition, and posts the filtered images to the current slack channel. For example:
Read more →
Introducing Serverless Gems header image

Introducing Serverless Gems

Tung Nguyen Tung Nguyen · January 07, 2021 · 2 min read
Originally called Lambda Gems, Serverless Gems has been rebuilt from the ground up. It provides better support for multiple versions of Ruby, notable Ruby 2.7. Jets v3 uses Serverless Gems for a developer-friendly experience.
Read more →
Kustomize vs Helm vs Kubes: Kubernetes Deploy Tools header image

Kustomize vs Helm vs Kubes: Kubernetes Deploy Tools

Tung Nguyen Tung Nguyen · November 05, 2020 · 13 min read
Today, we’ll talk about some deployment tools in the Kubernetes world. We’ll talk a little bit about why tools are used on top of kubectl. We’ll compare 3 different tools in the Kubernetes world focused on the deployment side of things: Kustomize, Helm, and Kubes. Then we’ll elaborate on the features that Kubes offers.
Read more →
Terraspace Terrafile: Using Git and Terraform Registry Modules header image

Terraspace Terrafile: Using Git and Terraform Registry Modules

Tung Nguyen Tung Nguyen · October 18, 2020 · 5 min read
Terraspace makes it easy to use Terraform modules sourced from your own git repositories, other git repositories, or the Terraform Registry. The git repos can be private or public. This is an incredibly powerful feature of Terraspace because it opens up a world of modules for you. Use any module from anywhere.
Read more →
Terraform HCL Intro 8: For In and Removing Duplication header image

Terraform HCL Intro 8: For In and Removing Duplication

Tung Nguyen Tung Nguyen · October 08, 2020 · 8 min read
In the last post, we provided an introduction to the for in construct. This post provides more examples, shows local assignment, and covers how to set default attribute values. Remember, for is useful for data structure manipulation. Sometimes you may not get the data in the structure that is easy for you to work with, so understanding how to manipulate the data structure in Terraform can be quite useful.
Read more →
Terraform HCL Intro 7: For In Loop Basics header image

Terraform HCL Intro 7: For In Loop Basics

Tung Nguyen Tung Nguyen · October 07, 2020 · 10 min read
In this post, we’ll cover the Terraform for in loop construct. Though it performs looping, its primary purpose is really for manipulating data structures. You can do a few things to data structures with it:
Read more →
Terraform HCL Intro 5: Loops with Dynamic Block header image

Terraform HCL Intro 5: Loops with Dynamic Block

Tung Nguyen Tung Nguyen · October 05, 2020 · 15 min read
In the previous post, we established loop fundamentals. The loops were pretty basic, though. We were only able to assign a single attribute for each resource per iteration. In this post, we’ll learn how to assign multiple attributes per iteration.
Read more →
Terraform HCL Intro 4: Loops with Count and For Each header image

Terraform HCL Intro 4: Loops with Count and For Each

Tung Nguyen Tung Nguyen · October 04, 2020 · 12 min read
In this post, we’ll cover Terraform looping constructs. Terraform is declarative, so it’s looping structure may seem weird to those used to procedural programming loops. There are a few ways to performing looping with Terraform. We’ll cover the looping constructs that specifically work at the resource level. They handle resource creation itself. There are two of them:
Read more →
Terraform HCL Intro 3: Conditional Logic header image

Terraform HCL Intro 3: Conditional Logic

Tung Nguyen Tung Nguyen · October 03, 2020 · 6 min read
In this post, we’ll cover how to perform conditional logic with Terraform. It’ll be a little weird looking for those who are not used to the Terraform declarative syntax. There are only a few ways to do conditional logic with Terraform:
Read more →
Terraform HCL Intro 2: Function Analogy header image

Terraform HCL Intro 2: Function Analogy

Tung Nguyen Tung Nguyen · October 02, 2020 · 5 min read
In this post, we’ll review the basic Terraform building blocks from the previous post, Terraform HCL Intro 1: Resources, Variables, Outputs, and compare them to a “function”. This is a contrived analogy, but folks find it helpful. You’ll also learn about Terraform locals.
Read more →
Terraform HCL Intro 1: Resources, Variables, Outputs header image

Terraform HCL Intro 1: Resources, Variables, Outputs

Tung Nguyen Tung Nguyen · October 01, 2020 · 7 min read
This is the start of a series of posts to help introduce and learn the Terraform HCL language. It is written for those with an elementary understanding of programming already. This allows us to cover things effectively instead of being stuck in the weeds.
Read more →
Join a group of good-looking folks who get free email updates from BoltOps.