Ask HN: What are the gaps in current infrastructure software?
There's a lot of open infrastructure software out there, but it wasn't until recently that some problems got decent solutions (like prometheus for monitoring, kubernetes for orchestration, minio for object storage). What problems could do with fresh implementations? What's some internal software you wish had an open implementation?
If you had three months to work solidly on a new piece of open source infrastructure level software, where would you place your effort?
Use this thread to generally complain about infrastructure.
18 comments
[ 4.1 ms ] story [ 49.3 ms ] threadSomething to wrap around PostgreSQL to replicate RDS on your own infra (monitoring, provisioning, snapshots and transaction log shipping to various object stores).
I already started but I would spend 3 more months on this problem, trying to separate the boring stuff into something reusable and better than rewriting: https://userdashboard.github.io/home
Existing solutions like DnsControl and OctoDNS are great for development/devops teams who are familiar with Git, CI/CD, editing files in-line with a specific syntax and creating a merge request.
However, these can often be foreign concepts to general sysadmins or Windows technicians.
What'd be great would be to have a nice web frontend that implements version control with Git, and uses DnsControl or OctoDNS as the DNS-editing backend, but completely abstracts this complexity away from the users.
A comparable problem would be that non-developers may find Git on the command-line challenging, but the GitHub/GitLab web GUIs make it easy. I want to be able to say: Non-developers find DnsControl and OctoDNS challenging, but [x open-source solution that doesn't exist yet] makes it easy.
The target audience for this is traditional sysadmin roles and Windows technicians - in other words, people who are not used to non-GUI stuff.
Suddenly I found myself having to debug various Docker images, Jenkins files and Kubernetes pods.
Not only are these tools often used indiscriminately, regardless of whether they're actually needed for the use case at hand but there frequently also seems to be an apparent disregard for the non-functional requirements of the people using them.
Sure, I can launch "kubectl" or "docker exec -it" to see what's going on but as someone who merely wants to run unit tests I shouldn't have to.
Talking as experienced front-end developer, currently working in an angular project, I must indicate that there are no Angular unit tests in existence. A unit test that requires a full browser to run is not a unit test, but a full e2e test. Exactly the same as the endpoint tests that require opening a server and binding to a port.
Therefore, conceptually these indeed are unit tests.
You could argue that because a browser environment is required for running these units the tests are integration tests.
Still, they're commonly referred to as unit tests (including the official Angular documentation).
Containerism and modern devops practices become borderline impossible when you're working with a monolithic database that's encumbered in complex business processes. Ideally you're working with independent, decoupled microservices, but that's far from the reality that most admins face.