Tidy Cloud AWS issue #35 - Pulumi, AWS blogs, commad-line glory
Welcome to the next issue of the Tidy Cloud AWS bulletin! In this issue, we will cover a bit on Cloud Engineering Days announcements from Pulumi, a few AWS blog posts, and several interesting command-line tools.
Cloud Engineering Days 2022
Pulumi ran their Cloud Engineering Days about two weeks ago. I only caught the keynotes and part of the other sessions live unfortunately, but the parts I saw were good, I think. The first day comprised keynote, and demo and best practices sessions pretty much. On the second day, there were more hands-on workshops. The sessions are not available on YouTube yet as I write this, but hopefully will appear soon.
Announcements include the new Pulumi Deployments feature (in preview), YAML support generally available, and architecture templates. The announcements are here: https://www.pulumi.com/blog/nov-2022-launches/
I have used both Pulumi YAML and some of the architecture templates. I like Pulumi provides several templates out of the box. You can also point to 3rd party templates if you create a new project, which is a neat feature. This is a good step to have for a quick onboarding experience.
I also experimented with Pulumi YAML, which you can read a bit about in the blog post How to Go with Pulumi YAML. In combination with the Pulumi YAML extension to Visual Studio Code, it worked pretty nice, I think.
There will also be an upcoming blog post about Pulumi Deployments, with Pulumi Challenge 3.
There are a few blog posts from AWS I thought I should mention:
There is a two-part series about setting up monitoring in CloudWatch to monitor CloudWatch costs (!). While the topic can actually be useful, it is also an interesting general tutorial on how to set up dashboards and widgets in CloudWatch, including custom widgets.
A post about detecting low disk situtations to avoid patching failures is a good topic, not only for the specific situation to avoid patch failures, but other low disk space situations as well. I only wonder why the article only shows a ClickOps-style implementation for this though, this would be so much better to include an automation-oriented example.
EventBridge Scheduler is a very interesting feature I think. It is not a new feature to trigger events on a schedule with EventBridge via rules, but this is an entirely improved solution. EventBridge Scheduler performs better, integrates with many more types of targets and is useful for large-scale use. It works with both many AWS services, and also many AWS APIs - you can send an event to (almost?) any AWS API. Price seems to be $1/million scheduled events, and the first 14 million are part of the free tier.
Recently there was a brilliant blog post about command-line tools written in Rust on dev.to. There are a lot of interesting terminal and command-line tools in this blog post. I am using a few of these myself, and this post gave me a few more to consider.
Interesting alternatives to bash and zsh
If you are using Linux, macOS or WSL (Windows Subsystem for Linux) in Windows, chances are that you are familiar with the shells bash and zsh. You find these used frequently. Despite using these daily, I forget some nuances of the syntax in these shells, and I have to look up how I do various data manipulation tasks in these shells.
There are other alternatives, though, which I think are nicer options:
- fish - the Friendly Interactive shell is an alternative shell that has been around for a while now. As the name implies, it is more user-fiendly than some of the other shells. It has some nice features and settings enabled by default, and you can have a pretty good experience doing no tweaking of the configuration. There are syntactic differences compared to bash and zsh, but in many cases, I think that is a good thing.
Nowadays, if there is specific shell support for anything besides bash and zsh, fish is one of these other shells. It is worthwhile to try it out; I think: https://fishshell.com
- PowerShell - PowerShell started out as a Windows-only shell and scripting language. Nowadays it is a cross-platform shell for Windows, Linux and macOS. It is quite different in syntax from the Unix-style shells, but it also has many interesting traits. This includes working with data as proper objects instead of plain text, which works great for data manipulation tasks and many features you find in more regular scripting languages. It also has a consistent syntax model, even though it can be verbose.
I like PowerShell for scripting tasks, although I do not use it regularly for interactive shell usage.
- Nushell - Nushell is what happens if you combine some data manipulation superpowers of PowerShell, with a neat Unix-style shell experience of fish and sprinkle it with some functional programming features. To me, it combines many great features of multiple shell tools. I really, really like it! The main downside it that is relatively young (0.x) and specific support is not that common. It might not be the primary or only shell to use yet, but certainly worthwhile to keep around.
You can find older bulletins and more at Tidy Cloud AWS. You will also find other useful articles around AWS automation and infrastructure-as-software.
Until next time,