4 ms·
As someone not familiar with HashiCorp's products, could you give a super high level overview of what consul, vault and nomad are?
by ZephyrBlu 5y ago
As someone not familiar with HashiCorp's products, could you give a super high level overview of what consul, vault and nomad are?
- gorbypark 5y agoConsul is a service mesh, vault is secret storage and nomad is for workload orchestration.
- ZephyrBlu 5y agoSo relating to things I do know about, consul is like cloud infra, vault is a service for secret storage and nomad is like Kubernetes?
- dilyevsky 5y agoConsul is like etcd but has some extra features built in like service discovery and l7 proxy so they market it as full blown service mesh a la istio, the other two are spot on
- mianos 5y agoI think this is more correct. Like Etcd in that it is a distributed kv store with consensus. It has a dns interface that facilitates service discovery but it can be used for so much more. Infrastructure like global locks, coordination or even just a fault tolerant kv database, as it is for vault itself.
- judge2020 5y agoThe home pages for the products are helpful https://www.consul.io/ https://www.consul.io/ https://www.vaultproject.io/ https://www.vaultproject.io/ https://www.nomadproject.io/ https://www.nomadproject.io/
- inside_edition 5y agoConsul is a service mesh. It’s your dynamic service discovery and routing layer. You have systems dynamically allocated in a cluster, they need to reach other systems, you ask consul where they are. Vault is secrets and management. Put secret strings in, get secret strings out (if permitted). Most apps need secrets of some type, and vault is normally discovered via consul. Nomad is an application/workload scheduler. You tell it what you need to run and what their memory/cpu requirements are and it finds a space in your physical infrastructure to run that. The apps it runs normally needs secrets from vault and communicate with services discovered via consul. They all are well integrated and build off of each other, kind of like layers an onion where your app services are the outer layer of the onion. Consul failing this badly is like the core of the onion going rotten. There’s not much saving it at that point, you need to grow a new onion from the inside out, but that takes time.
- ZephyrBlu 5y agoThanks for the explanation. I see how that would cause a cascading failure.
- colordrops 5y ago> Consul is a service mesh. It’s your dynamic service discovery and routing layer. How does this differ from DNS?
- lmm 5y agoDynamic-first, better support for failover etc.. It's probably not doing anything that you couldn't build on top of DNS, but it's designed from the ground up for clustered deployments.
- anilgulecha 5y agoReally high level, it doesn't. It's an internal dynamic DNS, essentially.
- zeeZ 5y agoOne of their primary query interfaces actually even is DNS.
- maccam94 5y agoI'd recommend reading the official Hashicorp website for that, but the gist is that nomad is another way of deploying apps in containers (similar to kubernetes), consul is how apps find other apps to talk to (kinda like DNS but with health checking built-in so they don't get stale info), and vault is how apps retrieve the credentials they need to connect to other services.
- Rebelgecko 5y agoI haven't used most of these but here's my possibly-flawed understanding: Consul: It's used to help manage cloud networking so that your application doesn't have to worry about IP addresses, datacenter locations, punching through firewalls, etc. Think of the situation where you have a zillion microservices talking to each other on different machines- it makes it easier for them to find each other. It also includes a distributed key-value store Vault: If you've used a password manager in your browser, imagine that but distributed and on steroids. You can use it to share credentials with groups. It also has some APIs to help with encryption/decryption and includes a key-value store Nomad: Roughly similar to Kubernetes (although with good support for non-containerized software). It's used to orchestrate software. For example when you have a bunch of programs you want to run 24/7 , you can specify what machines they should run on (for example at the datacenter/region level), what resources to give the programs, how to handle hardware failures, etc.
- softveda 5y agohttps://www.hashicorp.com/cloud-operating-model https://www.hashicorp.com/cloud-operating-model