#mcollective

/

      • FriedBob has quit
      • FriedBob joined the channel
      • invidian joined the channel
      • invidian1 has quit
      • Volcane
        dhollinger: if it works, use it :)
      • bastelfreak
        Volcane: o/
      • Volcane: any chance you an do a new release of puppet-choria soonish?
      • Volcane
        yeah, i have a few things on my todo list and will get a bunch of releases out soon
      • mainly tons of things to test https://github.com/orgs/choria-io/projects/3
      • bastelfreak
        mhm can a project be secret? I get a 404
      • Volcane
        really? hmm
      • let me see
      • wow didnt even know its possible lol
      • visible now
      • bastelfreak
        ahh
      • thanks
      • Volcane
        will get a release out soon, snowed under writing a bloody cron daemon ugh
      • bastelfreak
        \o/
      • why do you write a cron daemon
      • Do I actually want to know
      • Volcane
        it'll run just RPCs
      • bastelfreak
        ah
      • Volcane
        today people cron mco rpc
      • its a fuckup of note
      • bastelfreak
        :D
      • Volcane
        all sorts of issues, loooong running rpcs cron'd every minute etc
      • so building a web ui to create jobs and targets DCs
      • where i can have things like a worker pool per DC and can be defensive - dont schedule jobs thats still running from previous invocation etc
      • and doesnt require people have shell access
      • this is distributed over 30 DCs with 3 instances per DC in a HA group
      • bastelfreak
        I thought about something similar, backed into foreman. Mostly because it's a working UI and nobody like to deal with UI
      • Volcane
        replies fro the fleet stream back over the choria adapter framework to a central point where it gets reported centrally
      • so choria brokers gets replies, rewrites them into NATS Stream or something like Kafka
      • from there i use another choria project to replicate all the replies to a central DC so its resilient to DCs becoming unroutable etc
      • yeah luckily we already have a big web ui for all sorts of systems needs so it goes in there
      • bastelfreak
        ah nice
      • Volcane
        so i get to pull a bunch out of this soon to open source
      • the HA framework which sits ontop of the choria brokers
      • and each of these crond runs a management backplane so i can pause/resume jobs on it if ever there's trouble - also extract running config etc
      • this management backplane connects to the choria network so i can do `mco rpc cron pause -W dc=DC1` or whatever
      • bastelfreak
        ah sweet
      • Volcane
        and this will become like a 5 line embed into a go app
      • whole thing - backplane, scheduler, HA - all fits in 25MB RAM :)
      • bastelfreak
        way more efficient than the ruby stuff :D
      • Volcane
        yeah
      • also means I had to write a choria client + RPC client in o
      • go
      • which is already open just need to announce
      • and its AMAZING
      • 50k nodes full RPC round trip around 1 second
      • discovers full node set in < 800ms
      • bastelfreak
        I saw the demo vids from you on youtube, pretty amazing
      • Volcane
        had to make NATS a lot faster
      • now its kind of too fast - it considers the ruby code a slow consumer
      • but i think i can keep it working around 50k nodes which is about my goal for the ruby stuff
      • bastelfreak: other thing i want to fix before this round of releases is this https://github.com/choria-io/packager/issues/1#... can you think of any ubuntu work i am missing there?
      • bastelfreak
        I use mcollective with multiple of your agents on ubuntu1.04. I don't know at the moment if I already pull in anything from your packagecloud repos, but if I do, it works
      • Volcane
        ok, then it should be easy stuff, the ubuntu build for the go daemon already seem to work, so thats easy
      • bastelfreak
        yep
      • Volcane
        i put that in a 1804 repo already on packagecloud
      • https://github.com/choria-io/go-backplane#readme <-- the embedable management backplane
      • bastelfreak reads
      • bastelfreak
        Volcane: so this basically allows my go application to register itself to the broker and then it can be controlled from an mco client?
      • so orchestration for services?
      • Volcane
        yes
      • like this cron i mentioned
      • we run it in all these DCs and multiple instances per DC etc
      • i can never get to say a REST interface to manage it
      • but i can make them all talk out to a management collective where i can use discovery to target one DC, all DCs etc and manage them nicely
      • bastelfreak
        mhm
      • so we develop java microservices with the spring framework and have this: http://www.baeldung.com/spring-boot-actuators#b...
      • multiple endpoints to reload the service, stop it, get prometheus facts, health data, stuff like that
      • We thought about a proper way to orchestrate the services
      • Volcane
        yes, eventually i imagine i will put a bunch of this stuff in this too
      • same idea
      • bastelfreak
        maybe it is a good idea to deploy the backplane as a sidecar service next to the actual microservice, and it will translate calls from choria to the rest interface and vice versa
      • Volcane
        yeah you can do that too - fine idea if you already have osmething like this
      • bastelfreak
        there is always this anoying gap between good ideas and timeslots to implement them :D
      • Volcane
        yeah :)
      • sidecar is basically traditional mco and thats perfectly fine - this embedded thing might be nicer to make a very targetted side car with no execute options etc
      • but generally yeah thats the mco model
      • i am looking toward systems without mco, or iot etc
      • bastelfreak
        yep
      • for a seperation of concerns, a dedicated side car might be better
      • so independet people can work and release it
      • Volcane
      • bastelfreak
        well, in theory
      • Volcane
        thats what this does
      • bastelfreak
        nice
      • Volcane
        so -W name=/DC1/ would hit all these
      • for the moment we just need circuit breakers, I'll add more stuff in time :)
      • but having built this damn thing 10 times over i got sick of it and extracted it into a standalone reusable package
      • bastelfreak
        ah yeah
      • Volcane
        and all slightly different, now i can standardise
      • FriedBob joined the channel
      • FriedBob joined the channel
      • MichaelSmith_ joined the channel
      • MichaelSmith_ has quit
      • MichaelSmith_ joined the channel