Live data from Hacker News

Habitat — A new approach to automation

habitat.sh

31–40 of 57 posts

Re: Habitat — A new approach to automation

#31

Earlier quoted context omitted.

>1. It is a from-scratch source build system written in rust that borrows a huge amount from nix. This means repeatable software builds with isolated dependencies. Except the builds aren't at all repeatable in a meaningful way, judging by the example code on the home page. The 'do_build' function runs 'npm install'. This means that 1) the build container has network access (i.e. it's nondeterministic by definition) a…

They used npm install in their example code? Well that was a poor choice. Having dealt with npm and node apps in my own build system, I have not found a good solution for deterministically building node apps. Does nix have a solution for this? Thankfully the prepackaged software with reasonable source build systems don't do craziness like this. See the redis package for example: https://app.habitat.sh/#/pkgs/adam/red…

The nix solution is npm2nix, which runs npm against a package.json file and generates a nix expression for all the npm modules you need.

This mostly works, but occasionally you need to override the generated derivations to add implicit dependencies that npm doesn't capture, or otherwise tweak packages that rely on quirks of npm.

Re: Habitat — A new approach to automation

#32

Hmm, I very much like the concept but when I see the need for supervisors and a habitat service, it makes me wonder if this is really what is says it is. If I need to pre-install all these services on my hosts before any of this will work, then how is that really different from uniformly deploying all my applications on an application server such as WebSphere? An EAR too contains all my configuration data, my binding…

There's no pre-installation - the supervisor is bundled with the application deployment itself.

Re: Habitat — A new approach to automation

#33
post #28

Is this like Docker?

Nope! You can use it with docker, and we think it makes the experience better. We love docker.

Is there anywhere that actually lays out the tech that powers habitat? ie:

This thing uses kubernetes or this thing uses mesos This other thing uses docker/rkt/containerd/lxd This is the set of things we wrote in rust, etc, etc.

Re: Habitat — A new approach to automation

#34
post #27

Found this elsewhere, interesting to note, Habitat looks to be built mostly with Rust https://github.com/habitat-sh/habitat

This is Adam - Rust has been amazing to work with, and was the prefect choice for this platform. It's great.

You should reach out to the Rust team if you haven't already. I'm sure many would love a blog post on using Rust. I was thinking about using protocol buffers for something in Rust, it's cool to see an example of a real app using it, thanks!

Re: Habitat — A new approach to automation

#35
post #27

Earlier quoted context omitted.

This is Adam - Rust has been amazing to work with, and was the prefect choice for this platform. It's great.

You should reach out to the Rust team if you haven't already. I'm sure many would love a blog post on using Rust. I was thinking about using protocol buffers for something in Rust, it's cool to see an example of a real app using it, thanks!

We're totally going to do it.

Re: Habitat — A new approach to automation

#36
post #21

Home Automation is what first came to mind when I read the title. With this in mind, reading the blurb on the website sounded like, oh they're talking about building home automation software... "build automation, IT automation, deployment automation, etc" would have saved me some confusion. Or simply compare yourself to other solutions out there will help me understand what category this new piece of utility and name…

Yep. Would made perfect sense for the name as well.

Re: Habitat — A new approach to automation

#37

I've been waiting for this announcement for a few weeks. Since the home page is quite lean on an actual explanation, let me give a rough summary of interesting points as i understand it. I apologize in advance if I have anything wrong. 1. It is a from-scratch source build system written in rust that borrows a huge amount from nix. This means repeatable software builds with isolated dependencies. 2. It attempts to mov…

>1. It is a from-scratch source build system written in rust that borrows a huge amount from nix. This means repeatable software builds with isolated dependencies. Except the builds aren't at all repeatable in a meaningful way, judging by the example code on the home page. The 'do_build' function runs 'npm install'. This means that 1) the build container has network access (i.e. it's nondeterministic by definition) a…

I think the point is more that it's completely under your control. The application build would be done however best suits your infrastructure and requirements.

Using npm doesn't demonstrate repeatability, but you could just as easily build a given application from fixed, verified source in this step.

Re: Habitat — A new approach to automation

#38

Earlier quoted context omitted.

>1. It is a from-scratch source build system written in rust that borrows a huge amount from nix. This means repeatable software builds with isolated dependencies. Except the builds aren't at all repeatable in a meaningful way, judging by the example code on the home page. The 'do_build' function runs 'npm install'. This means that 1) the build container has network access (i.e. it's nondeterministic by definition) a…

I think the point is more that it's completely under your control. The application build would be done however best suits your infrastructure and requirements. Using npm doesn't demonstrate repeatability, but you could just as easily build a given application from fixed, verified source in this step.

Many (bad) build systems will download stuff from the net and you may not even know it. I've discovered plenty of software like this because I used GNU Guix to build them, which does not allow network access to builds for which the checksum is not known in advance.

It's absolutely essential that a package manager constrain the environment in which builds are performed. Without it, the packages are doomed to be built in a nondeterministic manner and potentially tampered with.

Re: Habitat — A new approach to automation

#39
I wonder if this project is doing too many things. It includes a package builder and a supervisor. Is there any benefit to integrating the two?

For a project that's smaller in scope but addresses the part about packaging the automation with the application, Joyent's ContainerPilot [1] looks interesting.

[1]: https://www.joyent.com/containerpilot

Re: Habitat — A new approach to automation

#40
post #16
post #11

I'm not sure what I'm looking at. What is being "automated" here? The headline and home page don't give much context.

The main points around automation seem to be[1]: * Flexible versioning and configuration rollout * Ability to deploy anywhere * Ease of management Concretely, they're touting their gossip-based configuration and topology management layer as a way to send configuration updates to service groups, and then letting the service groups apply the changes to all the group members. Contrast this with a more traditional way of…

So but am I automating devices in my home/building IoT-style? Or am I automating deployments of software? Or hardware? "gossip-based configuration and topology management" means nothing to me unless I know actually what the overall context is here.
Post reply on HN