running esignal on a windows cloud server

Discussion in 'Automated Trading' started by Runningbear, Jul 20, 2012.

  1. I want to go to the cloud because I need as close to 100% uptime as possible. Power outages and internet failure are not an option. My machine will run 24/7. The plan is to reboot only once every 12 weeks for futures contract rollover.

    My gut instinct is telling me I'll need two cores and 4 gigs of ram for my requirements. But what I don't get is how a cloud service can instantly scale according to demand.

    If I specify one core and I get a spike in usage, isn't the set-up designed to add capacity. If it can't, then all the hype around cloud solutions is really being overplayed.

    Runningbear
     
    #11     Jul 24, 2012
  2. of course it is overplayed. You are still running on ONE physical machine at a time. When their internet or server building blows up you get disconnected whatever people state. Of course you can architect the applications in distributed ways, but opening up a cloud account with Amazon definitely does not free you from the risk of an outage, connectivity or power wise. Its a completely overhyped concept. You do get more flexibility but you need to switch over to it, it does not expand the second your app needs more juice (there are services that actually can expand at an instant and there seems to be a lot of work done on the virtualization side of things but I only read about it and cannot speak with authority. )

     
    #12     Jul 24, 2012
  3. 99% of the cloud is misunderstanding more than hype. Eventually, somewhere you will be running on someone else's server and internet connection.

    Some of the service providers are set up for the end user (the VM or Virtual Machine) to be able to dynamically scale but you are going to pay a price for it. Fundamentally Windows is not set up to dynamically scale on the hardware level so you may need reboots when you add or drop CPUs and RAM. The other thing is most of the scaling is set to scale up not to pull back once the load is gone. This is how they make their money, sure you can have extra cores or RAM... no we can't take it back that would require a major machine reconfig.

    Also, just as an example, I run ESXi 5.0 Enterprise Plus which is a very top level hypervisor and virtualization solution (both expensive and good) and I can only give a VM more RAM or CPUs if it is fully powered down. I know that other versions of VMware and Citrix's XenServer will allow dynamically adding and removing resources but it really is not good for the operating system or the current processes you have running. A crash is imminent if you try it on the fly.


    The hype about the cloud from an IT perspective is true. On the back end, your provider (like an amazon) can dynamically scale and allocate - it's called over-booking. If I have a server with 24 cores and 96GB of RAM I can over-book and rent out virtual machines/servers based on 40 cores and 150GB of RAM assuming that not every VM will be at 100% capacity. Essentially it allows me to either take a bet that each VM will always be under capacity so I can charge more or as an IT guy it allows me to come in under-budget because I know the loads of each of my servers and can combine them to leverage the free resources on a host machine. When that host server (the hardware everything runs on) approaches it's max capacity you can use a service (VMware and Citrix both offer great solutions) that will dynamically move some of the VMs on that server over to another server with lower loads so that each end-user sees no drop in performance. All of this is done realtime and the end user is not impacted at all. The configuration of the VMs stays the same during that process though.

    Hope that makes sense. What you'll need to do is run a simulation or backtest or do the math to find out your max number of processes and RAM used and then rent something that allows all of your processes to run at full capacity. Essentially if you fake an inbound data feed (tick data or whatever you will subscribe to) and then run your system live off the fake data you'll be able to simulate the loads. Run the flash crash or any other high load day that you'd like. The spread that your service provider makes from customers is the capacity they built their VM at vs. the normal operating load the VM runs under. You want to try to build your VM as close to what it's 100% capacity will be knowing you will never go over.
     
    #13     Jul 24, 2012
  4. 2rosy

    2rosy

    cloud is dead slow. its for scalability not performance
     
    #14     Jul 24, 2012
  5. #15     Jul 24, 2012
  6. I have the same identical benchmarks on virtual vs. bare metal machines.

    The **ONLY** way I'd say that virtual machines are slow is because there is an added delay (approx 6-10 max milliseconds) of latency going between the virtual machine and the outside world. It can be as little as 1-3 milliseconds and as much as 10 but I'd not consider it "slow" by any means.
     
    #16     Jul 24, 2012
  7. not slow but I still do not see many advantages over a simple one-man-show who offers couple cooled racks in his backyard with emergency backup power supply. I am oversimplifying here but I do not think I am far from the truth. I tested Amazon and while its a cute little gizmo I do not see any benefit for anyone who is related to trading financial assets why they would host somewhere "in the cloud" over a targeted rack location either proximity hosted nearby exchanges or elsewhere with a specific setup catered to someones specific business needs. Its an incredibly overhyped term and means nothing else than storing data and computing remotely than locally which ANY server ANYWHERE in the world also can. I am sure once scalability will be instantaneous this will become a big game changer but we are not quite there yet.

     
    #17     Jul 24, 2012
  8. I actually tested Windows Azure and find it a very immature product to say the least. The trial virtual machines were a pain to setup, remoting into the machines was a pure hassle, mainly because there are still bugs and you need to set a very specific parameter set within the windows firewall in order to have the Azure instances go through. I have not tested performance in terms of computational power but it makes we wonder what advantage a cloud setup really has over a simple rack. I can rent a windows server with 12 cores for about 300-400 USD per month, running 24/7 with 32gb memory no transfer limitations, show me a single cloud service that than beat that. If I need more power then I simply setup a quick Amazon EC2 instance and that is, I guess, as far as I find cloud services practical, in that you can pay by usage rather than binding yourself to a monthly or longer contract. Problem is that each time you create a new instance you have to upload all your apps and setup your environment before you are ready to go. So far I am very happy with my conventional server rack and see no need to further consider "cloud services" at least not at this point in time.
     
    #18     Jul 25, 2012
  9. Approaching a distributed cloud environment the same way as you approach one enormous big server is kind of missing the point?

    There is not a thing to gain when you're hosting at a cloud service provider (such as Amazon, Azure, ..) and using only one instance. Reliability and speed are not going to be any different than any other hosting provider.

    The real power of clouds lay in the fact that you can dynamically up/downscale your redundancy and performance needs. This is achieved by dynamically starting and stopping instances. You can't quickly change the hardware in your server/instance, but you can start another instance when needed.

    Possibly you have to rethink your software to make good use of the cloud. Split your software into parts. Your functionality should be spread over multiple servers. Some of it will run 24/7 (data feed), some only during daytime (trading), some might even less (testing other strategies).

    You care about redundancy? Don't stick to one provider. You don't want to miss ticks because Amazon screws up.
     
    #19     Jul 25, 2012
  10. agree on your first point on single instance. Strongly disagree on your assertion of "dynamically". Nothing yet is dynamic about cloud instances. You need to setup new instances and you cannot, to my knowledge, automatically replicate a specific instance like a template. Each additional instance needs to be configured individually, software needs to be installed, configured. Whats the point of creating 10 instances if each single one needs to be configured, a very time consuming and tiring exercise. Please point me to links or resources if you disagree and think it can be done better. Windows Azure is the worst of all, you cannot even ping the instance IP out of the box once having setup an instance. Then you need to configure and open ports just to remote desktop into the instance. LOL, come on, this is 2012, but Microsoft behaves as if they have just discovered something new. Amazon is miles ahead in that regards.

    Sure, once one has put in all the work to get x number instances up and running and the application takes advantage of parallel computing then cloud instances have their benefit, I can see that but to get there is a process I find highly inefficient and immature.

     
    #20     Jul 26, 2012