-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 12/18/13 5:23 PM, Volker wrote:
>
> Generally i'm wondering why the decision was made, to use dynamic
> connections when returning to or requesting data from the
> salt-master. A static connection could be re-used anytime without
> the authentication/encryption/decryption overhead.
>
> Its by the way exactly that overhead, that really hurts scalability
> in my current setup. Im running several thousand minions on a
> single master and having them authenticate all the time does not
> scale well.
>
> I started addressing this with this patch [5] to at least be able
> ease the burden on the master, but it still does not scale as i'd
> like it to. Maybe adding the possibility to use a static connection
> for returning data to the master can be added? I'd even do it
> myself, but that part of salt is quite complicated.
Bump!
A comment on this would be highly appreciated.
Improving in this area is a must for salt if it wants to be an
enterprise solution.
How and why do i claim the above?
At my current state i would need 6+ DELL 610 with Dual-Quadcores to be
able to administrate all our servers (~13000 VMs). That is, because
having minions fire events on the master, reporting data to the mine,
applying states etc. does not scale beyond 2000 minions per master
because of all the connections, authentication and decryption being
done. Dropping the keysize to 2048 helps, but not very much [0].
Also having more than one master implies more requirements to be
enterprise:
1) Having many masters requires another logic layer which is (not yet)
provided by salt:
Which minion is on which master?
What master should the next new minion be added to?
What key needs to be accepted/revoked/deleted on which master?
Master1 is broken, which minions cant be reached now?
etc.
The syndic does help in some areas, but not with key management on
various masters, distributing minions across multiple masters
"atomically", etc.
This is just a general thought. Key management requirements differ
from company to company and maybe even from project to project. Salt
itself can not provide this logic, just APIs to work with.
2) Many hardware masters are not the desired approach economically.
Each and every server running means more power consumption and less
profit in the end. Which basically is, what the actual deciders in
upper management look at. 5000 minions per hardware master are much
easier to sell than 2000.
3) Each release has new feature x or feature y. Sometimes i wish, that
besides adding new features, adding only stability, performance and
scalability improvements would be a better choice for a release.
Pretty much all the patches i submitted so far aim at improving salt
in the scalabilty area, but this "problem" is salt-core. Using the
correct and "Hatch-Accepted-Approach" is absolutely required!
So please comment on this.
- - volker
[0]
https://github.com/saltstack/salt/pull/9235
iEYEARECAAYFAlLJTv0ACgkQHaTGAGocg2JPjQCff5+5mdIRKmE+30OJfyiyIQDM
R0wAniuILfNOTW7Xv5YUGNdhLC/AeHnm
=cf1y
-----END PGP SIGNATURE-----