26
3
submitted 1 year ago by jjba23@lemmy.ml to c/devops@programming.dev

cross-posted from: https://lemmy.ml/post/35239632

Maak: The infinitely extensible command runner, control plane and project automator à la Make (written in Guile Scheme - Lisp)

https://codeberg.org/jjba23/maak

Free yourself of repetitive, lacking, weird and arcane Makefile. After some weeks working on this project, I am upstreaming it to Guix so soon you all can enjoy.

https://codeberg.org/guix/guix/pulls/2132

Also, see here an advanced example of a Maak file: https://codeberg.org/jjba23/sss/src/branch/trunk/maak.scm

With the full power of Scheme (Guile) directly in your command runner/control plane, easily define functions, data, lists, loop through them, macros, etc.

Maak has as core mission being your control center or command plane, and act as a command runner, not necessarily a build system, so it avoids much of Make's complexity. No need for .PHONY recipes here.

Maak replaces the arcane syntax of Make with the power and elegance of a full-featured programming language: GNU Guile Scheme λ.

Instead of learning a limited DSL, you can leverage your existing Lisp skills to define tasks, manage data, and automate your workflows with ease. Define functions, manipulate lists, use conditional, create macros—the entire language is at your disposal.

You can also easily call external shell commands and integrate with your existing scripts and tools.

27
5
28
16

I recently completed a project that involved a lot of deep diving into some newer k8s-related tools. I'd like to document my findings so that they may help others, but I don't know where to put them. Years ago, Medium seemed like an option, but it sucks now with all the monetization. Substack supports nazis, so not there either. Where do I post?

29
9
submitted 1 year ago by YUART@feddit.org to c/devops@programming.dev

Hi DevOps, how do you think your ideal programming language would look like? I mean a language in which you would write pipeline logic, like Python or Bash, not define pipeline steps itself, like YAML.

I think for me it would have:

  • very clean and readable syntax
  • immutable state by default
  • strong typing
  • strong tooling and IDE support
  • focus on DevOps-need things, like JSON and files manipulation
  • absence of danger things like pointers
30
0
31
9
submitted 1 year ago* (last edited 1 year ago) by otto@programming.dev to c/devops@programming.dev

What are your preferred strategies when a MySQL/MariaDB database server grows to have too much traffic for a single host to handle, i.e. scaling CPU/RAM or using regular replication is not an option anymore? Do you deploy ProxySQL to start splitting the traffic according to some rule to two different hosts?

Has anyone migrated to TiDB? In that case, what was the strategy to detect if the SQL your app uses is fully compatible with TiDB?

32
8
Configuring Forgejo Actions (blogops.mixinet.net)
33
6
submitted 2 years ago* (last edited 2 years ago) by guttermonk@lemmy.ml to c/devops@programming.dev

I have a couple github issues that have been hanging out for more than several months. I'd like to incentivize them with a bounty to get a solution sooner than later. Has anyone tried Boss Bounty or something similar?

Boss Bounty looks like the most robust solution, but I'm not a fan of their 8% cut. That said, I don't know how you do something like this without a middle-man. If anyone has any first hand experience with something like this, I'd love to hear about it.

https://github.com/marketplace/boss-bounty

https://www.boss.dev/

34
0
submitted 2 years ago by bahmanm@lemmy.ml to c/devops@programming.dev

cross-posted from: https://lemmy.ml/post/22575070

bmakelib (which is a minimalist standard library for GNU Make) v0.8.0 was released last week.

The highlight of the release is the ability to use maps/dictionaries in your makefiles!

Here's the example from the release page:

$(call bmakelib.dict.define,THIS_BUILD)
$(call bmakelib.dict.put,THIS_BUILD,arch,x86_64)
$(call bmakelib.dict.put,THIS_BUILD,dir,/tmp/my-app/build)

some-target :
	@echo BUILD.arch = $(call bmakelib.dict.get,BUILD,arch)  # x86_64
	@echo BUILD.arch = $(call bmakelib.dict.get,BUILD,dir)   # /tmp/my-app/build
35
16

Someone posted a blog here a little while ago. I wrote up a big response only to find that OP deleted the post. I figured I might as well post my response here since it took me 45m to type out of my phone 🫠


What an interesting list. Some of these suggestions are good with others are not. I think we can reorder things a bit and make this more reasonable.

~~Jenkins~~

Jenkins is terrible! It should have been killed off a decade ago. Seriously, just don’t use Jenkins. There are much better offerings now.

Source control and CI/CD

The current trend is to rely on your source control provider for ci/cd. You may or may not have a choice in this space so let’s name some big ones. GitHub, Gitlab, Azure DevOps, Bitbucket, Gitea/Forgejo. They all act as a git server and all offer automation. Learn whichever your company uses. If you get to choose… GitHub is great! Gitlab is also good but the automations will be focused on bash and tend to get messy IMO. ADO is truly a Microsoft product with many nonsensical choices. I find it frustrating to use. I haven’t done ci/cd with bitbucket. If you want a foss option, check out forgejo (a fork of gitea). I have not used either yet though it looks nice and I really want to.

Containers

Docker is a fine choice. I really like some alternatives tools like buildah, podman, etc. but nearly every piece of documentation out there is based on docker. The choice is yours here but docker will probably give you the simplest experience.

Kubernetes is an amazing runtime environment! IMO should be used as a standard interface for running resources in a public cloud. However, this is a huge jump and you’ll want to learn at least a dozen good tools here. This one is a many years long practice but absolutely worthwhile. A quick and very incomplete list of tools: k9s, k3d, helm, kustomize (better than helm in most cases), flux, Argo (better than flux), istio. Seriously these are just the basics.

Infrastructure Management

While ansible is good, I would be looking to retire it at this point. A big possible exception is if you are running your own hardware and don’t have a great interface for alternative tools. If somebody just gives you a VM to use, then ya use ansible.

Terraform is great but don’t use it. OpenTofu is a foss fork and people should honestly just use this instead. But both tools have some limitations and oddities. People seem to love using terragrunt as well to make this easier to use.

If you’re using k8s, there’s also the open tofu controller. I’ve haven’t personally used it, but people I 100% trust in this space absolutely love it.

Observability

Firstly I like the numeronym instead: o11y.

Don’t use nagios. It’s old and there are better alternatives.

Elasticsearch is ok but I don’t really like it. Everything is stored as a document and just… eh, there are better options.

Prometheus is quite good.

Here’s the biggest mistake that people make today. Use OpenTelemetry as the core of your o11y solution. It’s the 2nd biggest CNCF project (right behind k8s) and it’s a fantastic tool. It lets you collect telemetry data and build data pipelines to whatever storage devices you want. That includes Prometheus and elasticsearch but you also can choose many more options as well with only tiny configuration changes.

ChatGPT

This entire post looks 100% like a copy/paste from ChatGPT. AI is a cool tool but OP, you should learn to use it a little better. Tell it to not use so much fluff text or such a rigid structure. Make edits afterwards. And most important of all, make sure it’s actually providing good info.

36
7
37
18
submitted 2 years ago by veer66@lemmy.one to c/devops@programming.dev
38
207

Always call out Cloudflare for their bullshit. For those working for companies in devops, share this with your teams...

39
13
submitted 2 years ago by nikaro@jlai.lu to c/devops@programming.dev

I'm looking forward to switch from Terraform to OpenTofu, but i have the impression that the ecosystem around it didn't catch up yet.

Did any of you already did the switch? If so, what do you use as a replacement for Terraform Cloud, the VSCode extension and/or terraform-ls?

For Terraform Cloud, the are many options: scalr, spacelift, etc. Spacelift looks nice as it can also run Ansible, but Scalr seems to have a better and simpler UI.

But on the editor side, there doesn't seem to be much... the VSCode extension has been forked but it still seem to be in its early days (cf. this issue: it still uses terraform-ls under the hood, which itself looks for the terraform binary).

40
8

Struggling with a problem that i just can't seem to figure out.

When starting from scratch self hosting both the SCM and CI/CD server.

Given that you can't use an existing setup to deploy/manage it, what is the best practice for deploying said services?

41
9
freenginx (freenginx.org)
42
10
43
9
submitted 2 years ago* (last edited 2 years ago) by mao@lemmy.sdf.org to c/devops@programming.dev

I can't seem to find any trace of comparison between these specific libraries. I'm planning on using Python for them. I just don't wanna write YAML.

Pulumi seems more prone to the "single vendor is the new proprietary" theory, because they're an actual business and shit, so might do a bait and switch here Terraform-style. But that's the only difference I can spot besides obvious API differences.

Does anyone have an opinion?:)

44
26
45
19
submitted 2 years ago* (last edited 2 years ago) by rglullis@communick.news to c/devops@programming.dev

Out of principle I refuse to put any type of analytics on my sites. I don't want to send user data to third parties and I don't want to rely on data that comes from JavaScript on the browser unless strictly necessary.

But the thought recently occurred to me that I could use my server logs to create some basic data visualisation on Grafana.

I'd like very basic stuff:

  • hits
  • common referrers
  • geo location by IP address
  • bounce rates per page

What would be the recommended way to get this, assuming that I have traefik logs aggregates via Loki and Grafana installed?

46
7
47
15
Server less Horrors (serverlesshorrors.com)
48
5

Trying to do a couple things. I have 2 jump hosts I can use to get into my cluster login node. From my laptop to the jump hosts is password. From jump hosts to login node can be key-based, so if I do it all from CLI:

[me@home ~]$ ssh user@jump1
Password:
[user@jump1 ~]$ ssh user@login1
[user@login1 ~]$ 

Same process if I use jump2.

So first thing I'm trying to do is set up my ~/.ssh/config to use the ProxyJump host and key file to get to login1. I have the following:

Host jump1
  Hostname jump1.domain
Host jump2
  Hostname jump2.domain
Host login1
  Hostname login1.cluster
  ProxyJump jump1
  #ProxyJump jump2

I'm not sure how to configure the IdentityFile entries for each jump host. The user on the jump hosts has different id_rsa keys in ~/.ssh, but both are in the authorized_keys file on login1.

Second thing I'm trying to do is join or start a tmux session. From CLI, I can run:

tmux has-session -t mysession || tmux new -s mysession && tmux a -t mysession

I've learned that to just join a running session (tmux a -t mysession), I need to include "RequestTTY yes" in my ssh config entry for login1. What I can't get working is the conditional statement that will fire up a new tmux session if it doesn't already exist.

49
87
50
11

What is the industry/production grade solutions or if you have already any experience please share it. Thanks

view more: ‹ prev next ›

DevOps

2220 readers
1 users here now

DevOps integrates and automates the work of software development (Dev) and IT operations (Ops) as a means for improving and shortening the systems development life cycle.

Rules:

Icon base by Lorc under CC BY 3.0 with modifications to add a gradient

founded 3 years ago
MODERATORS