` Licenses and learning from public infrastructure code » Motion design agency graphics studios

Licenses and learning from public infrastructure code

As is common in the industry, I often use reference implementations of e. g. a certain functionality in Terraform or Ansible on Github and then implement it myself in order to actually understand the code. Unfortunately, there's often no real liberty in implementing that functionality so I'm forced to pretty much copy it with alterations to suit my style. For a practical example, I was looking at today and I'm pretty sure there's just no substantially different way to implement AWS WAF Classic logging with Terraform. It's Apache-licensed which I guess means I'm allowed to learn from it but I'm not even really sure about that.

This has become a real problem because I avoid things that might be helpful for understanding an entire concept even if I don't look at the code later on. From my understanding (under German copyright law specifically, but this topic might also be interesting for people in other jurisdictions), code needs to have a certain level of creativity and originality to it in order to be protected. I can well see that for e. g. an interesting way to implement a complex algorithm but you don't really get to be creative with infrastructure. It's rather like craftsmanship: more or less complete as per vendor best practices if minute details like handling a single step elegantly don't matter. (Just copying an entire module is a different thing, I'm just talking about using it for reference.)

Still, I avoid looking at anything that's not licensed very permissively but I don't know if that's necessary. As with most devops things, we're not shipping our code but either use it entirely for internal needs or sell the resulting system we create with our internal code as a service or final product. (I assume the rules are very different if we'd sell e. g. a set of Terraform modules to a company to create their internal resources?)

Can someone explain how copyright and licensing affect us in this position (or devops more generally if you're good at this)? I don't think there's really any good resource for infrastructure code specifically, and the use case is quite different from "normal" code. What are my duties under the various licenses when referencing code in this situation? So far, I've just been putting a link to the original resource as a comment but that's more for documentation than anything.

submitted by
---
[fixed][/fixed]
jodo