Little known fact about SmallTalk programming language.
The code written in SmallTalk should be able to be read aloud and it should make sense to a human.
Waypoint is a tool by Hashicorp to manage builds, artifacts and deployments.
It has a CLI interface and also a nice UI and uses HCL instead of YAML for configuration and templating.
It might not be needed if you have something like GitHub Actions and may felt redundant, but actually it's a kind of missing piece for having a good UI for CI/CD pipelines, as it gives a handy tool for a developer to streamline build/deploy/release process.
As, probably, many of you, I did a long journey from manual FTP sync, to semi-automated tools like Capistrano, then manually managed docker deployments, then anisble managed docker containers and finally, met the orchestration system of choice - Hashicorp Nomad.
TLDR: Kubernetes is too heavy for my moderate needs. Hashicorp Nomad strikes the right balance between features and maintenance complexity.
At some point in time I felt a need for better container orchestration system that I could run by myself in Hetzner. Funny enough, DHH and Co. came to the same conclusion, but implemented in a different way. They developed completely own version of ansible on steroids named Kamal. This has right for existence, but imho has own flaws, like manual nodes management for fault tolerance and challenge to keep versions of deployed artifacts in sync. The push based deployment always suffers from this. People were trying to solve this issues already for quite a long time by using systems like Chef of Puppet.
Rubu on Rails development changes a lot every year and sometimes it's not easy to keep up with the changes.
I've recently bought Sustainable Rails Book and it's hard to overestimate how valuable is it for me.
Here are couple of thoughts after reading first chapters.
Dare to add, invest heavily in CI/CD process, with modern GitHub offering it's just way easier then maintaining own on-prem solution.
The article provides overview of facts why Emacs is so different but also so powerful comparing to other editors. It gives a good starting point for the reader to understand the fundamentals and start own journey to effective work.
The way of learning is painful, but rewarding. The essense of Emacs is to codify your specific repetitive tasks so that eventually you realize, the editor contains a lot of customizations speeding up your daily routines, as no other editor does.
I do the following things in Emacs:
While Ansible is a great tool for certain use cases, such as building new AMIs when used with Packer, it has some downsides. These become apparent when using it for container orchestration (which I have witnessed at scale) or keeping the configuration of a set of nodes in sync.
Another significant, though not dramatic, downside is related to Python version and dependency management. This adds extra complexity that I would prefer to avoid in a system management tool.
Recently, I stumbled upon a concept that sounded new to me: Compliance as a Code.
The core idea is to “embed compliance policies into the code that can be repeated and tested automatically.” But what does it mean in practice?
For example, consider PCI DSS, which requires measures to secure credit card information to ensure compliance. Tools like Terraform, Ansible, and others should contain the code for encryption, access control, and data obfuscation. Additionally, before deployment, automated tests in the CI/CD pipeline should validate that the application meets PCI DSS requirements.
Short video with overview of Palettro, small utility that brings VSCode like navigation to any macOS application to boost your productivity.
SRE Simplified : Error Budget concept.
The concept of Error Budget is useful for setting up alerts of different severity. This video explains in extremely simplified manner how it works.
The next issue of SRE Simplified is about Service Level Agreement.
Service Level Agreement is an agreement between service supplier and a customer about what the target quality of the service is and what are the consequences if the promise is broken.
But the challenge here is to eastablish monitoring and alerting.
This video provides very simplified example of an SLA for the company that produces apples.