ES on Azure, what's the current situation?

I have a large application that must live in Azure.

I’m not finding strong evidence that ES works well in Azure, at least in any cost effective way.

Any tips, or upcoming solutions I should keep an eye out for?

Quite a few people are running ES in azure on IAAS. We have been
implementing a PAAS solution as well.

Yup. It runs well in Azure within the limitations of Azure itself (AWS is substantially better with less effort).

You have to understand how to get the best performance out of Azure however (e.g. striping drives across storage accounts because of IOPS limits), and understand the fault tolerance models of Azure which may or many not discount using IAAS currently depending
on your requirements (PAAS is better but less straightforward to set up - we may consider shipping some pre-built stuff for this as part of the commercial product though).

James

I’m going to try to get up and running using the doc here:

https://github.com/EventStore/EventStore/wiki/Setup-EventStore-on-Windows-Azure

Two questions though:

  1. I keep seeing “The commercial product” and want to know if the open source i.e. “free” version will exist or how much longer it might exists.

  2. Are there any more details on a “production” Azure setup? If I follow the instructions given in the above link, should that support a site of modest traffic and complexity? say 10 to 1000 users, and simple aggregates?

I’m willing to start my app based on the premise that EventStore will be affordable in the future (free with an option of paid support) and will scale well on Azure given a decent config.

Any reasons I should bail on this attempt?

  1. I keep seeing “The commercial product” and want to know if the open source i.e. “free” version will exist or how much longer it might exists.
  1. Are there any more details on a “production” Azure setup? If I follow the instructions given in the above link, should that support a site of modest traffic and complexity? say 10 to 1000 users, and simple aggregates?

I’m willing to start my app based on the premise that EventStore will be affordable in the future (free with an option of paid support) and will scale well on Azure given a decent config.

Event Store is BSD licensed open source with some additional commercial tooling and support available. It will remain that way for the foreseeable future - in fact the trend has been to open source more tooling (e.g. clustering and competing consumers
which were originally closed source) rather than less as others in the industry have done. Note that it also has a production-friendly license, rather than AGPL (where the middle finger is silent).

There are not many more details on production setups with Azure at the moment - we hope to post more information soon as we get in some reports of the best configurations. I’d imagine the wiki page in question is targeted at a development environment rather
than a production one - though the configuration required depends on whether you will be making the Event Store internet facing or not.

Similarly, with “scale well” - this is relative - what do you mean by “scale”, and “well”?

Cheers,

James

Thank you for the good news on the direction for your commercialization efforts; glad to hear I’m not heading for a bait and switch scenario!

Secondly, on “scale well”; I understand this is a very loaded phrase, but the gist of it would be: Given a reasonably “standard” setup/install, should I expect to be able to add capacity(storage, iops, etc…) to the system in a short time-span?

I would consider Azure Web Site scale out to be a very “easy” operation, vs scale out of a local MS SQL install.

Additionally, with a service such as Azure Web Sites, I can reasonably predict the # of instances required for a given workload.

Given that rough scale of easy to difficult (Azure Web Sites to MS SQL on a physical server)…

Where would you place eventstore? (or where would you like it to be)

Single node currently works very well on Azure but until they release Reserved Public Level IPs then it is not entirely practical to run a cluster using Azure VMs.

It is possible to assign instance-level IPs to your VMs, but if you stop and start the box then this will be reset and you’ll have to reconfigure the DNS that allows you to discover nodes.

Sorry I should add that it is easier if you want to use the HTTP API as you can position your nodes behind a single load balanced endpoint.

It is possible to assign instance-level IPs to your VMs, but if you stop and start the box then this will be reset and you’ll have to reconfigure the DNS that allows you to discover nodes.

This is trivial in Azure though as I understand it from speaking with the guys there (certainly in AWS it’s easy too). For cluster discovery you should be using DNS. The only reason that gossip seeds (originally called “fake DNS”) exists is to support
testing with multiple nodes on one box instead of using well known ports.

Cheers,

James

If I have a cluster of three machines and the ability to guarantee each node’s (private) IP address, then I don’t see the benefit of adding a dependency on a DNS server that, by the way, I have to maintain and ensure availability for. Configuring gossip seeds should be sufficient…?