Forgot your password?
typodupeerror
Cloud

Should a Web Startup Go Straight To the Cloud? 442

Posted by samzenpus
from the silver-lining dept.
Javaman59 writes "I am a one person company developing a web site from home. The site is hoped to attract millions of accounts and daily hits (just to give an idea of the scale of things, as its important to the question). My infrastructure is currently Visual Studio 2010 on a PC. To progress the site I need to set up version control, continuous integration, and staging. I have a Win2008 server VM, with all the Windows software (free and legal) to do this. However, I am only just competent as a Win admin, and I foresee each step of the way (setting up a domain; SQL-Server, etc) as a slow, risky process, and a big disruption to development. Should I forget my VM server (it will make a nice games machine!) and just go straight to the cloud for all my infrastructure?"
This discussion has been archived. No new comments can be posted.

Should a Web Startup Go Straight To the Cloud?

Comments Filter:
  • Hmm... (Score:2, Insightful)

    by Anonymous Coward

    You're not going anywhere running windows unless you had shit loads of cash behind you.

    • by Fuzzums (250400)

      The idea behind starting a company is to have shit loads of money coming towards you...

      • Re: (Score:3, Insightful)

        by myurr (468709)

        The reality is that for most companies, particularly startups, you have shit loads of money going away from you... That is why so many fail in their first year.

    • Re:Hmm... (Score:5, Informative)

      by Aquitaine (102097) <samNO@SPAMiamsam.org> on Sunday May 22, 2011 @12:42PM (#36210100) Homepage

      Sorry, this is BS. I am a one-person company that has been around for several years (growing soon to a more-than-one-person company) and we are MS partners and use their SPLA (Software Provider Licensing Agreement) to get our clients access to things like SQL on the cheap. We use the Web edition of Win Server 2008 on our two servers and our annual expenses for MS products with maybe ten clients needing SQL licenses are maybe $700, which we collect back in the form of hosting fees.

      We started out with MS just because SQL Server did a few things that we needed that MySQL didn't do back in '03/'04, and that's no longer the case -- so I'm not saying this to knock OSS. But MS software does not require 'shitloads of cash,' at least, not for a web shop.

    • Re: (Score:3, Insightful)

      by johnsnails (1715452)
      Im not M$ fan boy but this is not the case, at least not as a start up, some friends of mine are a startup and are using the services offered by http://www.microsoft.com/bizspark/ [microsoft.com] basically whilst you are strung for cash (m$ says first 3 years) they give you everything you need for free. And then once you start making money and are locked in to using m$ services you start paying, which is fair.
  • by Anonymous Coward on Sunday May 22, 2011 @11:37AM (#36209464)

    The reality is that a "just competent" person is far from qualified to make this choice. It is easy to think that "the cloud" is an easy answer to scaling problems, but if you do not design your service/software with horizontal scaling in mind, you may find that your service does not scale up on "the cloud" any more effectively than it could on your own servers. "Cloud" does not imply scalability, it implies out-sourced infrastructure which is accounted for as an OpEx, rather than a CapEx. You still must plan for scaling up.

    • by maraist (68387) *
      The single biggest reason to go cloud (IMO) is to avoid a slashdot effect. Bandwidth choke-points are gone. So long as your landing page is static / cacheable, and ideally in a CDN (rackspace/amazone provide it, I assume google-apps does as well), then you at least get people in the front door no matter what happens.

      No matter how much infrastructure and BW you purchase, it won't be enough to meet your launch date's advertising draw (assuming you have paid advertising / viral-ware). And it's ungodly expen
    • "if you do not design your service/software with horizontal scaling in mind, you may find that your service does not scale up on "the cloud" any more effectively than it could on your own servers."

      Absolutly true. But then, once you learn your design is pure bullshit, what do you prefer? Just close your accounts with your cloud provider and start anew or being there with a lot of useful-for-nothing hardware that you still have to pay for?

      ""Cloud" does not imply scalability, it implies out-sourced infrastruc

  • Haha. (Score:5, Insightful)

    by bbqsrc (1441981) on Sunday May 22, 2011 @11:37AM (#36209466) Homepage
    Seriously. What is this on Slashdot for?
    • Re:Haha. (Score:4, Insightful)

      by Relyx (52619) on Sunday May 22, 2011 @11:43AM (#36209538)

      A lot of knowledgable people hang out here, and I'm sure there are many others interested in the advice.

      • Re:Haha. (Score:5, Insightful)

        by bbqsrc (1441981) on Sunday May 22, 2011 @11:48AM (#36209590) Homepage
        The question lacks any signs of expertise, critical thought or realistic planning. It's nonsensical.
        • Re:Haha. (Score:5, Funny)

          by Anonymous Coward on Sunday May 22, 2011 @12:05PM (#36209792)

          Well, now that you put it that way, it's a perfect question for slashdot!

        • That's why it's good he came here. We can tell him he needs to hire a system administrator or purchase a completely managed hosting package.

        • Re:Haha. (Score:5, Insightful)

          by lymond01 (314120) on Sunday May 22, 2011 @04:01PM (#36211592)

          I have no idea why you've been modded insightful on either of your posts. We should have a tag for "Unhelpful".

          The question is valid -- the proper answer isn't a technical one, nor is it just to dismiss it. His options:

          1) Take some classes, do some reading, play around a lot with all the technologies he's learning about. Check back in a year or two.

          2) If his site is really expected to explode (millions of accounts), he should hire a company to build and host his infrastructure while he does development.

          Developers aren't always sys admins the same way physicists aren't mechanical engineers. They might know enough to ask a question like: "I want to measure gravity waves. I know I need something like an oscilloscope to display output and something to sense the wave. Any ideas?" You can shake your head, or you can tell them that it just isn't that easy, and they should hire a mechanical engineer.

      • Re:Haha. (Score:5, Insightful)

        by mcgrew (92797) * on Sunday May 22, 2011 @11:49AM (#36209598) Homepage Journal

        Indeed, I come here for the comments. Often I learn something here. Nobody knows everything.

      • by tverbeek (457094)

        It reads like the "business plan" of a 14-year-old who wrote this really cool song (well, the lyrics so far, plus the guitar hook) that he knows will be a bit hit, and he wants to know if he'll become a millionaire faster by signing a deal with a big record company or by releasing it on his own label.

  • by PPH (736903)

    A bit of alpha testing with a few friends from your home box is definitely OK. But if your app is going to be as popular as you think it is, get it running where you can scale it up fast. Or you may end up pissing off your customers with poor performance and they'll just leave.

    Getting your app configured properly for 'The Cloud' is going to be a prerequisite for the production version. Work those bugs out now rather than having to patch the 1.0 version.

  • Why would you want to host your website on an MS OS anyway, let alone one you don't even know how to administer properly.

    My advice, look around for a good hosting deal (with good backups etc.) on shared hosting. Buy a hosting plan that can easily be upgraded to something dedicated as and when (and if) needed. Use your machine as a developer machine with all that entails (backups, version control etc.).

    Forget about "the cloud". You're dreaming at this point. "The cloud" is something for when you actually nee

    • What sort of a question is that?

      Well, what sort of a question is that?

    • by Spiked_Three (626260) on Sunday May 22, 2011 @11:53AM (#36209638)
      Reality is in the big picture, there is no difference between MS OSs and anyone else. For joe blow at home playing, *nix may be more fun, but lots of huge web sites run MS and *nix - and most probably run a mix of the two. A couple of posts ago, hit the nail on the head; scalability is something you design. An os choice does not make you scalable. the fact that you throw that out there is a tell you are out of your league.
      • by dissy (172727) on Sunday May 22, 2011 @12:10PM (#36209858)

        Reality is in the big picture, there is no difference between MS OSs and anyone else.

        Except that adding another server to handle more load will cost a couple grand per seat on Windows (Hardware plus licensing) where on an OSS platform you only pay for the hardware.

        Your argument that it is possible to do is beside the point, since no one is saying Windows can't scale. The point is the cost of doing so.

        The poster stated he is using the Microsoft route since that is what he is familiar with. And there is nothing wrong with that, as long as you have firmly in the front of your mind that is what you are doing, and there will be huge costs involved to do that.

        Since his question was about costs, specifically keeping them down, you can not expect people to not recommend tools that perform the same function just as well yet are free.
        If he wasn't willing to change from what he is familiar with, he wouldn't have asked for cheaper options, and would have just accepted the fact he must pay a lot of money to stay with the familiar.

        • by jimicus (737525) on Sunday May 22, 2011 @01:02PM (#36210278)

          You need to look at the bigger picture.

          Let's face it, unless you've seriously screwed up the application design a modern server is plenty powerful enough to cope with a good number of users on a website. Provided you can monetize those users somehow, the extra cost of another Windows license is going to be a drop in the ocean next to the other costs a startup faces.

          If your server can't keep up when you've got hardly any visitors and you can't figure out some way of getting money out of the few visitors you do get, you have far greater problems than "can I afford another Windows license?"

  • Windows web server (Score:5, Informative)

    by frisket (149522) <peter AT silmaril DOT ie> on Sunday May 22, 2011 @11:40AM (#36209500) Homepage
    Unless this is some kind of troll, I'm unclear why you would have picked a platform like Win2008 for a large-scale web server, when a LAMP architecture is easier to manage and more easily portable to the cloud if you do decide to go that way.
    • by Bradmont (513167)

      I think he mentioned it's because that's what he's familiar with.

    • by Xest (935314) on Sunday May 22, 2011 @02:02PM (#36210698)

      Love or hate Windows, what you said is representative more of an anti-Microsoft meme than anything closely resembling fact.

      Personally I'd go LAMP too, but I disagree that LAMP is easier to manage, and anymore portable to the cloud. On the contrary, from personal experience with this sort of thing I think Windows is easier to manage for sure and with Azure is definitely more easily portable to the cloud. The reason I wouldn't go Windows though is because for example if a critical security flaw in the web server or OS comes around then with FOSS you can get a fix quickly, whereas with Microsoft you're potentially left with a choice of being vulnerable, or taking your site offline, that's a disadvantage of proprietary in general for this kind of thing- you're too dependent on an external company to ensure your service is rock solid.

  • Why? (Score:5, Insightful)

    by TheRealFixer (552803) on Sunday May 22, 2011 @11:41AM (#36209512)
    I really don't understand why a small web startup would go with Microsoft. The licensing costs when you (hopefully) start to scale up are going to kill you. There's a reason that all the big-hit startups over the past decade weren't standardizing on Windows as their web platform.
    • Re:Why? (Score:5, Informative)

      by awitod (453754) on Sunday May 22, 2011 @01:10PM (#36210328)

      You can use BizSpark and avoid any licensing costs until you are a viable business.http://www.microsoft.com/bizspark/

      They also have a ton of support for startups, including funding if they really like you.

    • Listen, we're a LAMP shop, RHEL and/or CENTOS all the way! We've been in business for a decade, and currently have a 20-node cluster for our $2 million/year niche software company, averaging about 20%/year growth, even with the down economy.

      And although we're a LAMP shop, I can tell you that hardware/licenses are a tiny part of the costs of our business if the application is structured correctly. ONE of our clients had a dozen servers before switching to our system. Our cluster of (at the time) 6 nodes didn

    • by npsimons (32752) *

      There's a reason that all the big-hit startups over the past decade weren't standardizing on Windows as their web platform.

      And quite frankly, it's not the licensing costs. If it were, and the quality were really there, you'd see tons of people pirating Winodws and setting up their own webservers on it, but AFAICT, the exact opposite is true: people largely setup webservers on Linux or FreeBSD because they work so much better at serving than Windows. Frankly, the only place I've seen people use Windows for w

  • Wrong question (Score:5, Insightful)

    by DragonHawk (21256) on Sunday May 22, 2011 @11:42AM (#36209522) Homepage Journal

    What you really need to do is find an entity who can help you with the tech mechanics. That entity could be a friend you promise to reward later, a business partner you legally go 50/50 with, an independent consultant you hire, a company (large or small) you hire. But you're asking really basic questions about stuff, so you obviously need some help. Moving to the cloud just moves the problem to some place you can't touch; it doesn't address it.

    (If you're offended by the suggestion that you need help, you need to adjust your thinking significantly, or abandon the idea of going into business for yourself. No one person can do everything, and any successful business person will need to realize that early on.)

  • by xxxJonBoyxxx (565205) on Sunday May 22, 2011 @11:42AM (#36209526)

    I call shenanigans. The username of this "Windows developer" is "javaman". He names the major Windows dev and SQL Server brands but doesn't mention Azure. He refers to "continuous integration" but pretends that setting up SQL Server is hard. Methinks this is a plant...though I'm not sure for what.

  • WTF? (Score:5, Insightful)

    by YrWrstNtmr (564987) on Sunday May 22, 2011 @11:46AM (#36209568)
    'The cloud' does not set up your infrastructure. It does not design or enforce your version control. It does not harden against SQL injection attacks.

    Your 'infrastructure', Visual Studio on a PC, is not infrastructure. That is merely a basic dev box.
    Staging? Needs to be a small scale duplicate of production.

    Do you have any clue? Apparently not. If you did, you'd hire someone else that actually knows how to do this. Because you clearly do not.. You have an 'idea'. An idea that you apparently cannot bring to the public.

    Sorry, but that the truth.
    • by seifried (12921)

      'The cloud' does not set up your infrastructure. It does not design or enforce your version control. It does not harden against SQL injection attacks.

      Actually there are providers that do, now granted they charge a lot to handle the entire process, but they do exist. A good Platform as a Service (PaaS) provider that handles windows apps (I don't know of any offhand, I'm a Linux/UNIX guy) is what he needs, I'm sure Google can find them.

  • Yes. Don't take on anything more than your core skills, or the other stuff will eat into your time and stop you doing what you aim to develop. When starting up you might even find free cloud hosting whilst you develop.

    You will want to move from Microsoft products as a one-man band, as this will make your cloud choices cheaper and more varied. Look into PostgreSQL or MySQL, and PHP, Java, Python or any one of the myriad other Linux web server languages.

    But do put some thought into how you are going to scale

  • You should totally be looking to do FORTRAN on z/VM... It's the only way you will be able to handle the "millions" of accounts you will be creating to pump your own image.

  • 1. Get used to the idea that your development and production environments are two distinct animals to be kept apart on purpose. Using one machine to develop and to host the production service is a recipe for disaster.

    2. Stop using the cloud as a magical entity that holds everything that is online. You can go to many web hosts and pick up a decent IIS and SQL Server hosting plan for just a few bucks per month. If you build your solution so it can allow multiple server instances, you can always move it to the

  • by Compaqt (1758360) on Sunday May 22, 2011 @11:50AM (#36209614) Homepage

    The guy above said you're not qualified, but the young and inexperienced have come up with plenty of new and innovative stuff, so:

    I think the question is: If not cloud, what?

    In no case would I run the site from home. You'll probably get your home Internet yanked.

    Cloud usually implies the ability to instantly increase/decrease the size of your server. I don't think you need that at the start.

    You could go with a cheap VPS [google.com]. In fact, I think that's what you should do. You should be able to take a stock Windows VPS and install your application, and have everything working. Either write an installation how-to, or reduce the steps to a script (PowerShell or whatever).

    After you're able to do that, you could start looking into cloud provisioning, separate database server, database replication, DNS proxying, round-robin DNS, backups/rsync, https and SSL certificates.

    You'll need to run email on the server, too, if only to send notification messages to your users (or to yourself). So you need to learn about how to administer and email server. Or rent and Exchange Server.

    You also need to learn about CANSPAM requirements.

    You'll need to have some kind of monitoring service to alert you to problems with your server. collectd is great for this on Linux.

    You also need to look into which ad service you'll be using. Or alternatively, which payment service. Don't keep credit card numbers on your site, don't manage subscriptions by yourself. Let the payment processor do it.

  • ...but you're in way over your head. Or at least, you will be if you get even a fraction of the hits you are planing on.

    Some simple advise:
    1. Start small, and grow slowly. Don't start off with the cloud. That being said, look to see what services the cloud has to offer, and run similar services on your desktop. You'll notice that a lot of the clouds offer LAMP with ssh access (or something similar). Do the same at home.

    2. Go with a free software stack, so you can afford the mistakes. (LAMP, or someth

    • What utterly useless information/advice.

      Him: I'm a windows developer looking for advice on how to deploy my service

      You: Switch to Unix and PHP, learn a completely new set of tools, and *then* you can work on your idea

      The truth is, you can deploy a cheap/effective website, scale it affordably, and meet all of your client's needs on a windows platform just as with any other. The idea that You need Linux/Apache/MySQL/PHP to do it isn't eating your own dogfood, it's drinking your own kool-aid.

      Here's some advic

  • I think you answered all your questions. It's probably cheaper and easier to use a solution that already exists, so as long as your technology and business plan doesn't rely on having your own physical servers, then go "to the cloud!"
  • by Anonymous Coward

    However this is the plan and the reasoning.

    - Windows Server 2008 R2: - ASP.Net + MVC3 + Entity Framework 4.1 w/ POCO + C# is simply a fantastic development platform. You are a single person which likely means your time is the optimizing factor, NOT cost. Otherwise use Linux + Apache as it will save you in the long term.

    - MySQL over MSSQL: MySQL is a nearly identical engineering experience for a site of your scale and will save you 10s of thousands of licensing costs in the long run. See the MySQL .Net co

  • If I were you as a one-man operation, I would definitely look into a cloud-based service - not so much for technical reasons but for reasons of practicality. It is challenging enough to manage your sales, marketing, and accounting let alone your information technology. The cloud will at least alleviate one significant headache allowing you to focus on earning money. I run my own IT consulting business part-time and I use Google Apps for Business because the last thing I want to do is maintain an Windows
  • You say "millions of ... daily hits". For simplicity, let's say that you get about 1 million hits per day; that's about 10 hits per second, and that's if they're spread out evenly throughout the day. If it's fairly business-centric and USA-centric, then let's say that you get about 90% of those hits during a period of about 10 hours; that's more like 25 hits per second. Now how long will it take your server, on average, to process one hit (taking multiple processes/threads/etc. into account)? The diffe

  • A couple of items jump out at me...

    - "a one person company developing a web site from home" that "is hoped to attract millions of accounts and daily hits..."
    - "I am only just competent as a Win admin..."

    No way this is a real question !

    • by Relyx (52619)

      Or it could just be a young guy, perhaps still at school, who simply has no idea of the knowledge required. A lot of people here are bashing him, but I think he should be encouraged to learn the sort of issues involved. And one of the best ways to do that is to try building his own web business. If no one took any risks or blind leaps of faith, we'd get nowhere.

  • by hackus (159037)

    Depends.

    I would use something like cloud services to minimize startup costs if it made sense.

    I would not use the cloud though if:

    1) Your startup requires security. Cloud services you have to remember own your data. If they decide to give it out with or without your permission, you have no control over the outcome. In fact, you may not even have any legal recourse either.

    2) Lots of storage. It is not clear what the track record is on Cloud Storage. I may be cheaper for sure, but it may not be very reli

  • Look at Azure (Score:4, Informative)

    by jesseck (942036) on Sunday May 22, 2011 @12:04PM (#36209780)
    If you're already developing with Visual Studio 2010, and using MS SQL as the backend, why not look at Microsoft's Azure platform? It integrates with both, and your web application should take less to run. Plus, I saw some items that they had promotions for people who get their apps validated (marketing funds and Office 2010), and something about free or discounted trials on Azure.
    • by jesseck (942036)

      It integrates with both, and your web application should take less to run.

      By "less to run", I don't mean money; I mean less configuration and tweaking. I'm writing a web app on a LAMP stack right now, which essentially disqualifies Azure (I'd need to re-develop it for MS products).

  • Google App Engine (Score:5, Informative)

    by swillden (191260) <shawn-ds@willden.org> on Sunday May 22, 2011 @12:10PM (#36209860) Homepage Journal

    I'd recommend you drop Visual Studio and Windows and "go to the cloud" on an environment that is already scaled out. There are a few options, but I think one of the easiest to set up and get going on is Google's App Engine system. I don't know what your preferred programming language is, and if it's not Java or Python (or Go), then you're going to have to switch, but all of those are easy languages to learn and the time required to learn them will be trivial compared to the rest of what it's going to take you to build a significant site. The App Engine SDKs are pretty easy to work with and provide a lot of powerful tools, and your site will be running on Google's infrastructure so you know it'll scale as far as you need it to. The free quota will allow you approximately 5 million pageviews per month, so there's plenty of room for initial growth. When you get to where you need more than that you should also have some cash flowing in to allow you to buy more quota.

    If you're concerned about being tied to Google (a valid concern), I'd also recommend that you put some thought into placing a layer between your business logic and Google's APIs. I wouldn't make a huge investment in that, because it's the sort of thing that can soak up a LOT of time, so much that you never actually get your site off the ground, but a little thought up front will make it much easier to migrate to your own platform when you have the revenue to justify hiring all the people you need to do that (because it's a BIG job).

    The nice thing is that you can start small, for free (other than your time, of course), and have plenty of room to test your ideas and your approach on the small-to-medium scale before it actually costs you anything, other than your time. Then by the time you're ready to scale up, you should know what you need, and hopefully have the cash to fund it. Or, if it doesn't work out, at least you minimized your sunk cost.

    (Disclaimer: I'm a Google employee. That actually has little to do with my recommendation, other than that my employment has motivated me to play with App Engine and I've been impressed with what I've seen, but I feel it should be mentioned.)

    • by hawguy (1600213) on Sunday May 22, 2011 @01:01PM (#36210260)

      I'd recommend you drop Visual Studio and Windows and "go to the cloud" on an environment that is already scaled out. There are a few options, but I think one of the easiest to set up and get going on is Google's App Engine system.

      Yeah, drop everything you've created and move it to a completely different platform. One that is is proprietary so you're locked into that one vendor forever unless you want to rewrite your app.

      Or, since you are already familiar with and comfortable with Windows development tools you can pick and choose from dozens of hosting providers that will provider a Windows VM or physical machine and if they change their price or terms of use to something you don't like, you can easily move everything to another hosting provider.

      • Re:Google App Engine (Score:5, Interesting)

        by swillden (191260) <shawn-ds@willden.org> on Sunday May 22, 2011 @01:50PM (#36210588) Homepage Journal

        I'd recommend you drop Visual Studio and Windows and "go to the cloud" on an environment that is already scaled out. There are a few options, but I think one of the easiest to set up and get going on is Google's App Engine system.

        Yeah, drop everything you've created and move it to a completely different platform. One that is is proprietary so you're locked into that one vendor forever unless you want to rewrite your app.

        Or, since you are already familiar with and comfortable with Windows development tools you can pick and choose from dozens of hosting providers that will provider a Windows VM or physical machine and if they change their price or terms of use to something you don't like, you can easily move everything to another hosting provider.

        None of which will be able to scale your application to the levels that the guy mentioned. Scalability like that comes from architecture, not hardware, and Google has an extremely scalable distributed storage and processing architecture.

        Of course, the odds that the OP will actually need that kind of scale are almost negligible, but it's what he asked for. As for the "Google lock-in"... that's manageable with a little up-front thought, as I suggested. Keep your business logic separate and you should be able to port easily to other environments. And, actually, most of the App Engine infrastructure is based on fairly standard stuff -- in Java you're writing Servlets and JSPs and in Python you can actually write most of your app as Django plugins. The main area you end up "tied" to Googel's APIs is around storage and task management, and around user identity/account management, should you choose to use Google's APIs rather than something else (there are lots of options) and it's not difficult to introduce a small abstraction layer to allow you to break those connections when required. If you grow to the point that it really makes sense to get off of Google, making the move will cost you a lot of effort and a lot of money, but it's just the effort and money required to build the scalable infrastructure, and you have to pay for that at some point, regardless.

        The bottom-line reason for my suggestion was that it allows you to start small, almost ignoring issues of scalability, but to be able to scale up to massive volumes almost trivially. The Visual Studio and VMs approach doesn't provide that scalable, highly-available infrastructure out of the box, you have to build it, which takes time and effort which could be better spent on building the meat of the app.

  • Cloud++ @Javaman59 (Score:4, Informative)

    by cfitkin (1206682) on Sunday May 22, 2011 @12:12PM (#36209880)
    Hi Javaman59. I run my own web startup and in the first year found myself moving from a dedicated windows server to a cloud based linux solution for the significant performance improvements. The learning curve for linux administration wasn't too big and if you're already developing for .net/mssql I'm sure you can handle it. PM me if you want any specific recommendations or articles to start with. Good luck, it sounds like a fun project.

    P.S. 2nd vote for Azure if you're sticking with a M$ platform.
  • Have you considered changing your infrastructure from Visual Studio on a PC to gvim on a Linux box? Also you might benefit from using apache2 and mysql as your text editor. You are quite right about setting up a domain, it is a slow process fraught with peril. Normally I'd advise hiring a developer to do this for you, but as you can't be too careful, make sure the geek you hire has expert level skills in medieval sword techniques. Since in several US States and some countries asking about ancient weapon
  • by rvw (755107) on Sunday May 22, 2011 @12:24PM (#36209984)

    All those comments about using LAMP may be true, but when you're comfortable with Windows and not with Linux, stick with Windows. When the application you're going to run *can* run on Linux, then you may want to keep it that way, so you can move to Linux later on. When you're making money you could hire a Linux admin and then move. It may be cheaper in the end.

    What is "the cloud" for you? I would think of Azure or Amazon EC2. I don't know of the fees that Azure has, but I believe Amazon has reasonable small servers (micro instances) that can be "scaled" (moved to larger instances) quite easily. At work we use Amazon, and I think it is great with the instant backup snapshots and all options that you have. But do you need it, and do you need it now?

    My advice is this. Stay on your server at home, and use that as long as possible, unless you know that it's more expensive because of power and internet and license costs. In the mean time, start up an instance at Amazon. Configure it, get used to it. Run it, test your application on it. Set it up like another staging environment. Then shut it down, and start it up when you need to test more.

    The most important thing about Amazon is that you need to set it up right. If you do it right, a big problem like Amazon had last month (4 days down) won't be a problem for you. If you mess up, it can mean disaster. So stick to what you know, and what works for you.

  • Learn to do it yourself.

    Get it running reliably.

    Troubleshooting is easier on equipment you control.

    There is no substitute for knowledge and experience.

    Once it is running smoothly, if the expected traffic actually happens, decide where to go from there.

  • by ScuzzMonkey (208981) on Sunday May 22, 2011 @12:48PM (#36210146) Homepage

    Because it's not a bad question. You're getting answers from a lot of people who are either so buried in the deeply technical side of things or locked into the past that they don't really understand it. Having shepherded a couple of dreamy startups through this phase, though, I don't think you are either crazy or necessarily under-qualified to make a successful site. To be honest, it no longer takes the hardcore technical skills that it once did, if in fact it ever did. Technical competency is over-rated by technical people; there are super-successful web businesses out there that started out (and sometimes even continued) with really shoddy coding and infrastructure setup. Craigslist and PlentyOfFish come to mind as examples. I know several others without such name recognition but which nonetheless did quite well for their owners, who slipped along with very basic programming skills and almost no hardware competency whatsoever.

    Having the ability to outsource your infrastructure makes it even easier to do this today. I'm going to stay away from the "C" word because it's so shot through with marketing dross and misunderstanding now. But it's entirely possible to effectively do away with almost all the Windows admin if that's not your strength by going with hosted services. You are probably a long, long way from having to worry about Windows/LAMP stack comparisons even at your stated traffic goals, and using a hosted service will abstract that to the point where you aren't going to need to worry about it anyway. I wish you the best, but the reality is also that few sites make it big anyway, so while scalability is certainly something to consider at this stage, you shouldn't allow it to hobble your choices excessively. If you actually get there, it's almost certain you are going to have both the resources and the need to rip everything up and re-do the entire site from scratch once or twice along the way anyhow. You can re-tool then if you must.

    Abstracting hardware doesn't absolve you from making other design choices that will afford scalability, and you should have some understanding of what's going on under the hood so you can make those appropriately. But you don't need all that to get started. I don't know anyone, at any skill level, who actually correctly made all the right choices on their first pass. You'll be learning along the way. That's actually an advantage; tech is filled with people who found their comfort levels and can't adjust to newer models.

    It sounds like you are asking as much about your dev environment as production. I would say "yes," move it all to a hosted environment. At this stage, you don't need to be worrying about the underlying nuts and bolts. Get up and running quickly and easily. Be flexible and make adjustments along the way. You probably don't even need to go with a full-on PaaS provider right now, either; get a cheap hosting plan with a company that will help you scale when you need to. Depending on your service requirements, you can go with best of breed hosting to find the most efficient solutions for your various problems... use a SaaS vendor for version control, use a CDN for content hosting, and so on. It's cheap, it's fast, and it reduces the time and cost of failure. Failure is undoubtedly something you will run into a few times along the way. That's going to happen whether you are a technical genius or just some schmoe with a good idea. Build it in to your plans; don't over-invest (whether in time or money) in things until you can see better how things are working out.

    If you have a good idea, don't be too afraid if you don't know what you are doing. A lot of the best people don't. One of the most valuable lessons you can learn is what not to spend time on, and a lot of things that certain folks here on Slashdot hold dear are things that you don't necessarily need to spend a lot of time on right now. Prove your concepts first. If you turn into the next Facebook, you can worry about infrastructure then. Until then, don't let the idea that you need a Facebook-worthy infrastructure before getting started to hold you back. Re-format that VM server into a games machine and go rent time elsewhere.

  • by hawguy (1600213) on Sunday May 22, 2011 @12:49PM (#36210162)

    The bandwidth needs alone will push you to the cloud (or to a coloc).

    You say you're expecting milions of hits/day - if each user pulls down 50KB of content, and you get a million of those hits over a 10 hour period:

    50KB/hit * 1 M hits/day / 10 hours / 3600 seconds/hour = 1388 KB/second

    It'll take at least a 15Mbit/second upstream connection to handle that bandwidth which is hard to get on a residential connection in most areas of the USA. Plus the mean-time-to-repair on a residential connection can reach days, so if you have an outage, your site will be offline for a long time. And you probably don't have a generator (and even if you do, there's no guarantee that the equipment that serves your internet connection is also on generator), backup cooling (if needed in your climate), or someone to reboot your server or swap a failed drive when you're on vacation.

    You can certainly get that much bandwidth delivered to your house, but you'll likely end up paying more than the cloud hosting costs and still won't have the uptime and reliability you'd get from the cloud provider.

  • Look at appharbor.com [appharbor.com]. Their slogan is Azure done right: you get ASP.NET 4.0 hosting, a Git repository, continuous integration and unit testing upon deployment, SQL Server instances, etc.. Basically everything you're asking for. Their backend is 'the cloud': Amazon EC2.

    Their rates start at 'free', so there is no cost while you're busy getting your millions of accounts and hits. When that happens move to one of their paid tiers and go nuts.

  • by CrankyFool (680025) on Sunday May 22, 2011 @06:45PM (#36212530)

    (My background: I've been doing IT for the last 18 years or so; for the last two years, I've been working at Netflix, one of the highest-visibility cloud consumers out there. Until two weeks ago, I was on the IT side, focusing on the datacenter; about two weeks ago I moved over to Cloud Operations, focusing on the cloud (duh) and monitoring, specifically. The following is my opinion only, and does not necessarily represent the opinions of my employer).

    In my opinion, the cloud is the easiest way to launch a new service with reasonable redundancy and growth potential. It's how I would start off any new business. Have there been failures? Sure. But largely, cloud failures have only impacted cloud consumers who engineered their environments in a non-fault-tolerant way, in the mistaken belief that "the cloud never fails." The cloud fails. It fails all the time. But following good design principles (ideally, be in multiple regions; at minimum, be in multiple availability zones; test what happens when an AZ dies an ugly death) will give you better uptime, with better cost, than you would achieve for a reasonable amount of money running your own datacenter systems.

    And then, once you've got a significant enough size with a big enough ongoing consumption of cloud resources, you can look at creating your own DC environment.

  • Author's response (Score:5, Interesting)

    by Javaman59 (524434) on Sunday May 22, 2011 @07:00PM (#36212620)

    Thanks for all the comments.

    I put on a very thick skin before posting, so the "you can't be serious" and "you are obviously not qualified" comments have not bothered me.

    Having been on Slashdot for some 10 years, I expected that (if my question was posted) that I would get some useful ideas from left field, and also some useful direct comments, and that is what has happened, and I am especially grateful to all who took my question seriously and shared of their highly valuable expertise.

    One bit of info was unfortunately omitted from my question, because of finger trouble while I was editing it. Obviously I am using Microsoft products, but it's not just because it's all I know (it isn't) but because I have used .Net for 8 years, and find myself always enjoying the latest stuff (now Linq, ASP.NET MVC, and F#) and, as a developer, this enjoyment is central to my productivity. I would never tell a RoR developer to stop enjoying his stuff, and I give myself the same license.

    A brief comment on the useful Win vs Linux comments. There has been some advice that, were I to switch to Linux, that I would find a Linux network easier to manage, as well as obviously saving money. I am also "barely competent" as a Linux admin, but I can see the wisdom in that, and I have found Linux administration much more enjoyable than Windows. If I had time to spare, then I would probably go with Mono, for the "best of both worlds", but that's not realistic.

    A lot of the advice relates to the cost of scaling if the application takes off, with warnings about the costs then of Windows. That is a factor I had not considered. I am, because of my free Windows infrastructure, immune to the costs for development, but I will have to look at the costs for scaling. I had thought that, if I'm getting many hits, then I would also being generating sufficient revenue to pay for servers, or that I would have sufficiently proven my concept to get investor funding, and possibly switch to Mono then. IOW, that would be a problem I would like to have. The comments here have suggested that I reconsider this optimism

    I haven't yet processed all the most helpful comments, and I will certainly be taking my time to do so, but there does seem to be some repeated advice that Azure is the way to go. This will, hopefully, provide a uniform environment for development, staging and scalable hosting.

    Some advice to young people out there. Don't be afraid to ask stupid questions. The chances are that your question and the answer will save you a lot of time.

    Thanks again, Slashdot

    And, a quick comment on my username. I adopted "Javaman59" when I moved to modern OO development in 2001. I have kept it, with some fondness for those roots in Java, Linux, and the GOF patterns.

    Javaman59

When all else fails, read the instructions.

Working...