A new issue of the CatOps Digest is available!
https://newsletter.catops.dev/p/catops-digest-2024-11-24
#digest #newsletter
Thoughtworks have published their usual TechRadar. You can also get the full PDF report there there.
This tech radar provides some valuable insights into the industry. Besides, this is already the 31st volume, so you can compare it with previous versions. Just keep in mind that this tech radar (as any other) is biased, because it basically represents the Thoughtworks' customer base, thus it's not universal.
#tech_radar
An article and a CNCF NA talk about Atlas - a tool to manage database migrations, and specifically about the Atlas Operator - a way of managing database state in Kubernetes. It's important to point out, that the database itself doesn't have to reside in Kubernetes.
Except some advertisement for Atlas, this article actually points out problems of executing migrations that are not limited to K8s. Still, even though this is an article about a tool from a creator of the tool, I think both blogpost and the tool itself are interesting.
But to be completely fair, there's also the SchemaHero tool - a truly open source one.
#databases #kubernetes
You have likely seen this already, but still.
Prometheus 3.0 is available!.
Notable changes (as listed in their release page):
- New UI
- Remote Write 2.0
- Native histograms
- Improved UTF-8 and OTLP (OTel Protocol l)support
- Better performance
#observability #prometheus
A brief overview of how to choose the right size for your RDS instance in AWS.
Although, I would argue that certain workloads would already experience problems at 80%+ CPU load on CPU. So, sometimes it doesn't make sense to wait the whole four-week evaluation period.
Also, make sure to keep track of your reserved instances: you don't want to pay more than you should when jumping between instance types!
#aws #databases
In his last interview for Deutsche Welle, Taras Chmut - the head of Come Back Alive foundation - described that it's much harder to raise funds for projects that are focused on trainings and other strategic initiatives that may not result in the "direct hits" on the battlefield.
That's why today I'd like to share a fundraiser for the Captain's Trainig program by Come Back Alive.
#donations #Ukraine
KiND is a popular tool for local development in Kubernetes. But what if the thing you're developing is not published anywhere yet?
Sure, you can use tools like Tilt or Skaffold, but they add additional knowledge overhead.
However, you can also load a Docker image into a KiND node. Of course, this won't be such a streamline developer experience as with the tools mentioned above, but it will make the job done with very little additional configuration.
#kubernetes
For today's Donations Monday I want to share with you a fundraiser for 1000 FPV-drones from our friends at DOU:
https://dou.ua/forums/topic/50669/
The page has all the information. Also, they have a raffle there. The information is in Ukrainian. So, here's also a direct link to their Monobank Jar:
https://send.monobank.ua/jar/22kincSfqv
#donations #Ukraine
8 ways to speed up your Ansible playbooks is a neat article with some simple tips and tricks for your Ansible operations.
Sure, configuration management is not such a hot topic as it used to be, but it’s still out there and it’s still relevant.
#ansible #cfgmgmt
If you want to improve your CLI & scripting game, make sure to check out this book bundle by O’Reilly!
#books
A great article about Kubernetes routing.
Yes, things described at the beginning are basic, but then the article explains, how things work under the hood using IPTABLES as an example. So, this article is great both for those who just learn K8s, and those who work with it, but want to dig deeper.
BTW, do you remember all the chains that IPTABLES have? :D
#kubernetes #networking
A friend of mine raises funds for a van for her relative that serves in AFU right now.
The fundraiser is in Privat Bank, which doesn’t accept non-Ukrainian cards for whatever reason. However there’s also PayPal.
Privat for Ukrainian cards: https://next.privat24.ua/send/dntp4
PayPal (worldwide): basta.tragedy@gmail.com
If you’re gonna use PayPal, please, put a comment that this is for a van, so it’s easier for her to distinguish between donations.
#donations #Ukraine
There is a slight disagreement between those who believe that AI is here to save the world from software developers with a job, and those who believe that this is just an advanced autocomplete.
This article provides some arguments to the latter point.
For me, first and foremost, it is interesting insight on the ways how people test new AI models.
P.S. If you are from the optimistic tribe, make sure to check out Den's video (in Ukrainian) about Cursor - an AI-powered editor.
#ai #programming
Today I stumbled upon an interesting project: Withmarble helps you to learn computer science topics using interactive flash cards.
It also looks like it uses some LLM under the hood to generate certain answers, but this is just a guess.
In any case, the project is very raw: it has only a couple of cases, it has bugs on both mobile and desktop, etc. For example, if you opened a flash card, there is no way to close it and go back to the list.
Still, I think it's a nice idea to teach folks computer science. Maybe, some of you could take this idea and execute it better :D
#programming
Another amazing article from the chat - 6 Reasons You Don't Need an SRE Team.
This quote from there should be carved in stone and put upon every technical manager's desk:
reliability is everyone's job.
If you, or engineering leads who work in your org don't think so, then hiring a separate team to care about it isn't going to help.
A nice overview of the evolution of Bluesky by Gergely Orosz and Elin Nilsson.
Bluesky is a decentralized social network which was born as an alternative to Twitter. It’s super interesting that for almost half a year Bluesky only had 2 engineers and even today the team behind the whole platform is rather small.
It’s also interesting that infrastructure wise they have started with AWS and Pulumi and eventually moved to their own equipment for cost savings.
#architecture
Where you good at math in school?
Humble Bundle sales a collection of Math for Programmers books. One of the books is from the “Grokking” series. I’ve heard that series is a good one.
Also, one of the books is written by a Ukrainian author. You can read an interview with him on DOU (in Ukrainian).
#books
A new fundraiser for the International Legion, where my friend's brother serves.
https://send.monobank.ua/jar/7wNX44oe8W
This is a fundraiser for ongoing expenses such as car repairs and Starlink fees. The goal is 80k UAH and about a half is achieved already.
#donations #Ukraine
You have a Database that can be affected by Disk corruption, and you have millions of transactions? Well, good for you that nothing bad happens yet.
But what if I say that there is better solution, x1000 faster and safer? Just send 0.1BTC called TigerBeettle.
Also, it has of the best presentation what I ever saw. Check it
Testing simulation showed at the end, if you want to try yourself - sim.tigerbeetle.com
#databases
25 years of Google data-center networking evolution is a sneak peek into Google's internal network, phases of its evolution through the company's history, as well as technologies that allow them to handle up to 13 Petabits/sec of bisectional bandwidth.
I especially liked this quote:
network is the foundation of reliability for all other compute services, from storage to AI. As such, the network must fail last and fail least.
If you work with NodeJS on backend, this article may be useful to you.
This one is about how to increase (or decrease) memory limit for NodeJS when working with PM2.
#programming #nodejs
A hot take was shared in our chat yesterday: Gitpod wrote an article on why they moved away from Kubernetes.
While the title sounds clickbaity, this is actually a good article that explains technical considerations for a very particular use case. It also has links to some Kubernetes' functionality that you may find useful for your workloads, such as dynamic resource allocation.
Where did they migrate, you may ask? Well, I can spoil the article for you a little bit: they have built their own orchestrator. Now, do I think this is a good solution? In their very specific use case, it may be. Is it a good solution in general? In my opinion, hell no!
P.S. I'd like to invite Gitpod folks to the FOSDEM conference. For example, in 2023 there was a talk on how to checkpoint and restore your containers in Kubernetes. According to their article, this feature, or rather a lack of it, was a major pain for them.
#kubernetes
A new newsletter issue is here!
https://newsletter.catops.dev/p/catops-digest-2024-11-03
#newsletter #digest
A story of debugging OOMs of a Go application in Kubernetes.
Now, I do not agree with the author of this article that the fact that Go is not aware of memory limits is a problem. In my opinion, it works as expected: you don’t want to have environment-dependent runtimes.
However, this article provides some examples of how one can manage Go’s memory utilization and tune garbage collection a little bit. Plus, it has links to articles that describe Go’s garbage collector in more detail, which is also cool.
#go #programming #kubernetes
Who said that there’s no development in the configuration management field :D
Mantis is a new tool to manage you infrastructure (and Kubernetes resources are in the roadmap). It uses Cue lang for configuration.
It’s not production ready! Even according to the author. I just want to share it as an example of:
- Cfg Mgmt development
- The fact that people are still trying to find a middle ground between DSL and Turing-complete languages
#cfg_mgmt
Many people know about resources in Kubernetes, because every second article talks about the importance of setting them correctly. Many people know that resources in Kubernetes are later translated into Linux cgroups, because this is a common interview question.
Yet, how many people know, how exactly are resource requests and limits are translated into cgroups?
#kubernetes #linux
A new issue of the CatOps Digest is here!
https://newsletter.catops.dev/p/catops-digest-2024-10-20
I've missed a week because I was traveling, so this one came a bit later that usual.
#digest #newsletter
Kubernetes on a High Traffic Environment: 3 Key Takeaways is a nice brief article on concrete things one would benefit from in a high load environment. These things are:
- Node cache DNS
- Peak EWMA algorithm for load balancing
- Multiple Ingress Controllers for different income streams (if this is your case).
This article also contains links to other articles, where you can learn more about each thing separately.
#kubernetes
For today’s Donations Monday I would like to remind you of a standing jar of my German tutor.
https://send.monobank.ua/jar/8jQSHW57kP
He’s also a volunteer and he uses this jar to address ongoing requests from the combatants.
These things may not be as favorable to the media compared to some other equipment, but it doesn’t make it not important.
#donations #Ukraine
Kubernetes Pi Cluster release v1.9.
This might be interesting for you, if you run Kubernetes clusters on Raspberry Pies. But what's also interesting about this particular release is that they have stated the reasons for a migration from ArgoCD to FluxCD for cluster bootstrap.
(saving you a click)
Main reasons for this migration: FluxCd native support of Helm.
- ArgoCD does not use Helm to deploy applications, instead helm template command is used to generate the manifest files to be applied to the cluster. The engine used by Argo CD for applying manifests to the cluster, is not always fully compatible with all Helm possible configurations (hooks, lookups, random password) causing out-of-sync situations.
- FluxCD uses helm command to deploy Helm Charts, so Helm charts installed in this way support all the Helm-functions. Also, it eases the debugging process, because helm CLI tool can be used to see installed packages and configuration applied.
- Dependencies Definition support and improve performance in Bootstrap process.
- ArgoCD does not support application dependencies definition, only synchronization waves can be defined, so applications can be allocated to one of the synchronization waves, so some kind of bootstrapping order can be specified. The problem with this approach is that one synchronization wave cannot start till the previous one has ended successfully, making the full process take longer times.
- FluxCD support the definition of dependencies between applications so the cluster can be bootstrapped in order. Each application start its deployment as soon as all its dependencies are already synchronized, improving the time required to make a full cluster deployment.
- Avoid definition of extra-configuration in the manifest files to fix never-ending out-of-sync ArgoCD issues. Due to how Argo CD drift assessment logic certain not mandatory fields or server assigned fields are marked as out-of-synch, and they have to be configured to be ignored during the sync process.
Cluster bootstrap process using Ansible playbook has been updated to use FluxCD instead of ArgoCD
#kubernetes #argo #flux