Hi Carlos, This sounds like a great idea and something that many people would like to be able to leverage.
Mesosphere has a pretty good starting example that could be used to bootstrap the process of authoring your Gatling Framework. The project is called Rendler[1] and has several different language implementations. Rendler is essentially a distributed web page renderer. Hope this helps, Ben Whitehead [1] https://github.com/mesosphere/RENDLER/tree/master/java On Thu, Jul 2, 2015 at 9:33 AM, Joao Ribeiro <[email protected]> wrote: > This sounds like a really cool project. > > I am still a very green user of mesos and never used gatling at all but a > quick search took me to > http://gatling.io/docs/2.1.6/cookbook/scaling_out.html > > With this it sound’t be took difficult to create a master/slave or > scheduler/executors approach where you would have the master launch several > slaves to do the work, wait for it to finish, collect logs and generate the > report. > For better synchronisation you could make the slaves register to zookeeper > while master waits for all slaves to be up and trigger a “start test” > command on all slaves simultaneously. > You then could easily time out if it takes too long to get all slaves up > or use other more fault tolerant strategies. i.e.: run slaves that you got; > bump each slave that is up with more load to try to make up for missing > slaves; > > It might be a naive approach but would be a starting point in my opinion. > > On 02 Jul 2015, at 18:00, CCAAT <[email protected]> wrote: > > On 07/01/2015 01:17 PM, Carlos Torres wrote: > > Hi all, > > In the past weeks, I've been thinking in leveraging Mesos to schedule > distributed load tests. > > > An excellent idea. > > > One problem, at least for me, with this approach is that the load testing > tool needs to coordinate > the distributed scenario, and combine the data, if it doesn't, then the > load clients will trigger at > different times, and then later an aggregation step of the data would be > handled by the user, or > some external batch job, or script. This is not a problem for load > generators like Tsung, or Locust, > but could be a little more complicated for Gatling, since they already > provide a distributed model, > and coordinate the distributed tasks, and Gatling does not. To me, the > approach the Kubernetes team > suggests is really a hack using the 'Replication Controller' to spawn > multiple replicas, which could > be easily achieved using the same approach with Marathon (or Kubernetes on > Mesos). > > > I was thinking of building a Mesos framework, that would take the input, > or load simulation file, > and would schedule jobs across the cluster (perhaps with dedicated > resources too minimize variance) > using Gatling. A Mesos framework will be able to provide a UI/API to take > the input jobs, and > report status of multiple jobs. It can also provide a way to > sync/orchestrate the simulation, and > finally provide a way to aggregate the simulation data in one place, and > serve the generated HTML > report. > > > Boiled down to its primitive parts, it would spin multiple Gatling (java) > processes across the > cluster, use something like a barrier (not sure what to use here) to wait > for all processes to > be ready to execute, and finally copy, and rename the generated > simulations logs from each > Gatling process to one node/place, that is finally aggregated and compiled > to HTML report by a > single Gatling process. > > > First of all, is there anything in the Mesos community that does this > already? If not, do you > think this is feasible to accomplish with a Mesos framework, and would you > recommend to go with this > approach? Does Mesos offers a barrier-like features to coordinate jobs, > and can I somehow move > files to a single node to be processed? > > > This all sounds workable, but, I do not have all the experiences necessary > to qualify your ideas. What I would suggest is a solution that lends itself > to testing similarly configured cloud/cluster offerings, so we the > cloud/cluster community has a way to test and evaluate new releases, > substitute component codes, forks and even competitive offerings. A > ubiquitous and robust testing semantic based on your ideas does seem to be > an overwhelmingly positive idea, imho. As such some organizational > structures to allow results to be maintained and quickly compared to other > 'test-runs' would greatly encourage usage. > Hopefully 'Gatling' and such have many, if not most of the features needed > to automate the evaluation of results. > > > Finally, I've never written a non-trivial Mesos framework, how should I go > about, or find more > documentation, to get started? I'm looking for best practices, pitfalls, > etc. > > > Thank you for your time, > Carlos > > > hth, > James > > >

