5 ms·
Circuit: A Minimal Distributed Programmatic OS written in Go
- Xeoncross 12y agoWould someone give an overview of what this system does? I'm thinking this is like chef or puppet and not something like docker correct?
- ansible 12y agoThe README on github provides a little more information: https://github.com/gocircuit/circuit https://github.com/gocircuit/circuit I too am having a hard time trying to figure out exactly where circuit fits vs. other technology. It wasn't immediately clear to me if circuit launches the apps, or if it can start new instances if the current ones fail, or if it can grow the cluster if demand is the current utilization is too high, or what. How does this help me vs. writing a script in (the shell, some other orchestration tool, etc)? How much of the configuration does it handle? Does it replace etcd? Those are questions I could ideally answer myself by exploring the documentation links on the main page. Where / how does it store its own state? Edit: There is a comparison with Consul on the wiki: https://github.com/gocircuit/circuit/wiki/Circuit-vs.-Consul https://github.com/gocircuit/circuit/wiki/Circuit-vs.-Consul
- duggan 12y agoIt's more directly comparable to https://mesosphere.com/ https://mesosphere.com/ - so, an abstraction further up the chain than Chef of Puppet. The general idea being that it creates a virtual operating system across multiple physical or virtual "hosts" and allocates application stacks (like containers, maybe) compute/memory/storage as required. It ideally handles fault tolerance and load balancing gracefully too.
- al2o3cr 12y agoFrom the security page: "A HMAC-based symmetric authentication, followed by an asymmetric RC4 stream cipher is supported." RC4 is WEBSCALE! Well, and insecure.
- lclarkmichalek 12y agoUnfortunately, implementing your own crypto seems to be a per-requisite for working in the container networking space
- jff 12y agoI'm getting really sick of people calling this kind of thing an Operating System. If your first step is "Install Linux", it's not an operating system. It might be a meta-operating system or something like that, but we've had a pretty standard definition of what constitutes an OS for decades now.
- mavdi 12y agoNot an operating system in traditional terms. but it certainly is operating a system, on a higher level. Plus, life is too short to be offended by what people call their product.
- seanmcdirmid 12y agoMicro kernels and and OS personalities were once a think in Mach. Today, the micro kernel is simply called Linux (ironic since Linux was designed explicitly to not be a micro kernel).
- m0th87 12y agoWhat? Microkernels have a specific definition too, and Linux most certainly is not one.
- 12y ago
- deleted 12y ago[deleted]
- malgorithms 12y agoSome noteworthy background: this was created by Petar Maymounkov, who is also known for creating the DHT Kademlia. http://en.wikipedia.org/wiki/Kademlia http://en.wikipedia.org/wiki/Kademlia
- deleted 12y ago[deleted]
- haosdent 12y agoI really confuse this: "Once a circuit cluster is formed, the circuit system itself cannot fail—only individual hosts can. In contrast, comparable systems (like CoreOS, Consul and Mesosphere) can fail if the hardware hosting the system's own software fails." When I read the document, start a process in circuit is equal to start a process on a individual host. So how circuit make sure this process which run on a individual host could not fail? But if the fail mean the whole circuit cluster could not fail, as I now, CoreOS, Mesos, Kubernetes also could not fail.
- alexpw 12y agoAfaict, the circuit server runs on every host, and is aware of the other nodes, coordinating with peers without a single master. So if one host fails, the other circuits can still function, broadcasting their underlying services. "Clients dial into [any] circuit server in order to interact with the entire system. All [circuit] servers are equal citizens in every respect and, in particular, any one can be used as a choice for dial-in." However, the example diagrams I've seen, include services which aren't masterless or even multi-master, so the app/system the circuit cluster supports will surely fail in some way.
- al2o3cr 12y ago"Clients dial into [any] circuit server in order to interact with the entire system. All [circuit] servers are equal citizens in every respect and, in particular, any one can be used as a choice for dial-in." This sounds like it will cause exciting behavior under a network partition...
- saintfiends 12y agoI was very excited when I read the headline. I thought someone wrote an OS kernel in Go. Which is something I would like to see.
- afshin 12y agoThat's an interesting idea, but because Go is garbage collected, it doesn't seem like a language that could be used to write an effective kernel, but I'm out of my depth, so I could be entirely incorrect. Here is the language authors' current thinking on where they want to go with GC: https://docs.google.com/document/d/16Y4IsnNRCN43Mx0NZc5YXZLovrHvvLhK_h0KN8woTO4/edit https://docs.google.com/document/d/16Y4IsnNRCN43Mx0NZc5YXZLo... It seems like a language like Rust with safe memory management and no GC pauses is better suited to writing a kernel. I know the two languages aren't really competing in the same space or for writing the same types of systems, but they are both gaining momentum at about the same time, so the comparison is a little inevitable.
- saintfiends 12y agoI had this bookmarked https://code.google.com/p/gofy https://code.google.com/p/gofy. But it's pre Go 1.0. I wish someone would port this to recent a version.