Slashdot Mirror


Should a Web Startup Go Straight To the Cloud?

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?"

74 of 442 comments (clear)

  1. Hmm... by Anonymous Coward · · Score: 2, Insightful

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

    1. Re:Hmm... by Fuzzums · · Score: 2

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

      --
      Privacy is terrorism.
    2. Re:Hmm... by truthsearch · · Score: 4, Insightful

      And if he has money he should buy managed hosting, cloud or otherwise. An ideal, but expensive, solution for his situation is a managed Rackspace server. For a few hundred a month he won't have to deal with system maintenance, OS upgrades, or emergencies. He would be able to focus on his applications.

    3. Re:Hmm... by myurr · · Score: 3, Insightful

      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.

    4. Re:Hmm... by Aquitaine · · Score: 4, Informative

      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.

    5. Re:Hmm... by monoqlith · · Score: 2

      Or he should just get a Rackspace/Amazon/Azure cloud instance for $10 a month (Rackspace, don't know about the others) plus additional bandwidth use and have basically all the same things. He's not going to start with millions of user. Frankly, this whole thing "millions of users" seems a bit cavalier and kind of pie-in-the-sky without knowing what it is and who is backing it. I remember saying similar things to myself when I was a teenager - oh yeah, no problem, we'll have millions of users. Sigh.

      Whatever he's doing, dedicated hardware is not necessary at this point. Since the point of clouds is that they are scalable, why not just go straight there? Not much money.

    6. Re:Hmm... by ron_ivi · · Score: 2

      > See why most stuff on the internet and cloud run Linux yet?

      Because it's more stable and secure;
      and because unixes has a longer history doing large-scale networking stuff;
      and it's easier to develop for;
      etc.

      The guys running serious servers could afford whatever they wanted if it actually were a better technology; so whatever you're hinting at probably isn't the main reason.

    7. Re:Hmm... by Barbara,+not+Barbie · · Score: 3, Insightful

      Anyone who says "I foresee each step of the way (setting up a domain; SQL-Server, etc) as a slow, risky process" really isn't going to be comfortable even with a managed server - they need to find a partner with at least a bit of experience.

      That said, this whole thing sounds like pie-in-the-sky. No, your groupon clone or whatever is not going to get millions of hits a day. Ever.

      --
      Let's call it what it is, Anti-Social Media.
    8. Re:Hmm... by kelemvor4 · · Score: 4, Informative

      So, you have a CAL for everyone that is going to connect to IIS? or a special Web license for IIS (I forget what that is called).. Do you have processor licenses for SQL Server? or one CAL for each user that might use the site? (and remember, its one Processor License for processor in the physical machine, not how many you expose to the VM, at about $6K per processor). Do you have the Machine CALs for each machine that is going to connect to Active Directory? Do you have a proper MSDN Development license?

      See why most stuff on the internet and cloud run Linux yet?

      Your data on the licensing is incorrect. Here is where you can read about it. http://www.microsoft.com/windowsserver2008/en/us/licensing-R2.aspx For example, windows web server is $469 USD list and requires NO cal's. http://www.microsoft.com/windowsserver2008/en/us/pricing.aspx
      If you can't be bothered to read, you could even call their sales line and just ask. Voice: 1-800-Microsoft (642-7676)

      I'm no Microsoft fanboy, but if you're going to argue about stuff like this you should get your facts straight first.

    9. Re:Hmm... by JAlexoi · · Score: 2

      For startups, hiring a lawyer to decipher Microsoft licensing is just too much. And your local Microsoft representative is really clueless when it comes to licensing. I should know, my office is right under the Microsoft HQ(small country, small office) and we have lunch together periodically.

    10. Re:Hmm... by Pieroxy · · Score: 4, Interesting

      For my websites, I have a PC in my garage, running on my DSL box. It works perfectly. I have some downtimes, sure. Just this morning, my kid found my router's plug and thought it was fine to unplug it because his DSi was out of battery... It lasted 5 minutes.

      When I'll have bandwidth issues (which will come before HW issues - 1.5Mbps up) we'll see. For now, I have about 1000 hits/day and my DSL box is doing fine. It is most likely that my outage of 5 minutes went completely unnoticed.

      That said, to do this, you'll have to be comfortable running a PC, administering a database, managing backups, etc. But you get the liberty of your own house.

    11. Re:Hmm... by Kalriath · · Score: 2

      You don't need Windows Server CALs for websites exposed to the internet [provided they don't use NTLM security]. Provided you're using Web Edition you don't even need the External Connector License. Same applies for SQL Server.

      As an aside, it costs maybe $10-$20 per month to run Windows on a dedicated server/VPS, provided the datacenter has a SPLA.

      If you actually plan (and know what you're doing), you don't have to pay thousands or even tens of thousands (well, maybe you will over the lifetime of the project, but whatever. Linux has an intrinsic cost too, it's just not in dollars and cents).

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    12. Re:Hmm... by bloodhawk · · Score: 2

      The cost of the licenses is relatively miniscule compared to the cost of the hardware and everything else.

    13. Re:Hmm... by Hognoxious · · Score: 2

      thing is, people who have MS stuff had money.

      FTFY.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    14. Re:Hmm... by johnsnails · · Score: 3, Insightful

      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/ 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.

    15. Re:Hmm... by arth1 · · Score: 4, Informative

      Web Server 2008 R2 is severely limited. You have to run your database under the same OS instance as the web server, for example, and you are not allowed to access that database from any other machine. This means that you can't, for example, poll data from your database for processing -- that's against the license terms, and you need to change to a CAL license.

      Oh, and of course, the database is not included. If you want to use MSSQL, Microsoft does have a web edition, but it lacks a couple of much used features, and costs $3500 per processor + $876 per year in software assurance. And you can't even buy it unless you're a volume license customer.. And it too has the strange requirement that you can't hook any other applications up to the database, even if it is to make use of the data you get from web users. A CRM system? Specifically forbidden.
      If you can't live with that restriction, or don't have volume licensing, MSSQL standard might be the cheapest alternative.at $7171 per CPU, plus $1793 yearly software assurance.

      The price of the OS then becomes rather irrelevant.

      In pure license costs, LAMP is cheaper. Even if you go with the most expensive solution, Red Hat Enterpris Linux.
      However, it can be much harder to get someone competent to admin LAMP systems (and much easier to get someone incompetent).

      tl;dr: If you wnat to play, be prepared to pay. Either in license costs and downtime, or salaries.
      TANSTAAFDBA+SADM

  2. cloud does not imply scalability by Anonymous Coward · · Score: 3, Insightful

    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.

    1. Re:cloud does not imply scalability by maraist · · Score: 2

      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 expensive to maintain that BW capacity 24/7 - especially prior to launch.

      For dynamic data, yeah, there's no such thing as cloud-scale real-time computing. Ultimately it all comes down to in-RAM DB's and or sharding - both of which don't generally solve multi-million dollar problems very well (multi-billion dollar ... sure). If you're lucky enough to have a business model that can fit in RAM or be geographically / lexographically partitioned, then count yourself lucky.

      Everything else comes down to ingenuity of software/network/data design. But of course, that's all predicated around having a sound business model.

      --
      -Michael
    2. Re:cloud does not imply scalability by turbidostato · · Score: 2

      "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 infrastructure which is accounted for as an OpEx, rather than a CapEx"

      And being so, it's a perfect match for a company that still has not demonstrated the ability to earn a dime out of its idea nor has the slightest idea about what its real volume -thus, its real needs, will be.

  3. Haha. by bbqsrc · · Score: 4, Insightful

    Seriously. What is this on Slashdot for?

    --
    Disagree != mod troll.
    1. Re:Haha. by Relyx · · Score: 3, Insightful

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

    2. Re:Haha. by bbqsrc · · Score: 4, Insightful

      The question lacks any signs of expertise, critical thought or realistic planning. It's nonsensical.

      --
      Disagree != mod troll.
    3. Re:Haha. by mcgrew · · Score: 4, Insightful

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

    4. Re:Haha. by Anonymous Coward · · Score: 5, Funny

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

    5. Re:Haha. by lymond01 · · Score: 4, Insightful

      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.

    6. Re:Haha. by plover · · Score: 4, Funny

      and the rest come for what? To read the articles?

      I just read Slashdot for the pictures.

      --
      John
  4. What sort of a question is that? by no+known+priors · · Score: 2, Insightful

    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 need to radically increase the number of visitors that the site can handle.

    --
    Appended to the end of comments you post. The maximum is 120 characters.
    1. Re:What sort of a question is that? by Spiked_Three · · Score: 3, Insightful

      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.

      --
      slashdot troll = you make a compelling argument I do not like the implications of.
    2. Re:What sort of a question is that? by dissy · · Score: 5, Informative

      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.

    3. Re:What sort of a question is that? by jimicus · · Score: 3, Insightful

      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?"

  5. Windows web server by frisket · · Score: 4, Informative

    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.

    1. Re:Windows web server by Bradmont · · Score: 2

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

    2. Re:Windows web server by Xest · · Score: 3, Insightful

      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.

  6. Why? by TheRealFixer · · Score: 5, Insightful

    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.

    1. Re:Why? by awitod · · Score: 4, Informative

      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.

    2. Re:Why? by npsimons · · Score: 2

      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 web (or email, or ftp, etc, etc) is where it was forced down their throat by know-nothing management who was sold on it by marketeers from Microsoft.

  7. Re:Your not qualified by Relyx · · Score: 3, Informative

    I think you are right, but he's probably taking on this challenge because no one else can dedicate the time or effort he can. At least not for free.

    In his situation what should he do? Just give up before he has even started? A more proactive approach is to admit there is a lot to learn, but it is by no means insurmountable. It will just take a lot longer.

    Sometimes that is the only realistic option available to people. I admire his can-do attitude. It will be one hell of a learning experience!

  8. Wrong question by DragonHawk · · Score: 5, Insightful

    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.)

    --

    dragonhawk@iname.microsoft.com
    I do not like Microsoft. Remove them from my email address.
  9. I call shenanigans. His username is "javaman" by xxxJonBoyxxx · · Score: 4, Interesting

    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.

  10. WTF? by YrWrstNtmr · · Score: 5, Insightful

    '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.

    1. Re:WTF? by jimicus · · Score: 2

      That's the best joke I've heard in a long time.

      GoDaddy can afford to offer unlimited space & bandwidth at $14.99 (about £9)/month for the exact same reason your broadband supplier can afford to advertise 24Mb ADSL with no bandwidth caps for £15/month when a 20Mb leased line would cost twenty or thirty times that amount.

      They work on the assumption that 90% of their users will use hardly any bandwidth or space, and so over-sell their servers horrendously while providing little to no support if things go horribly wrong. Sooner or later they will, and if you're lucky they'll go wrong at a point and in such a way that it's quite easy for you to move your hosting somewhere more reliable with little impact on your operations.

  11. Use the cloud... by hattig · · Score: 2

    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 your platform so that it will run on the dirt cheap hosting platform initially, yet expand and scale across multiple cloud hosts down the line.

  12. Re:This is advertisement by bleble · · Score: 2

    So what? He has UID 524434 so he has been around on slashdot for a quite while. That just shows he has past coding experience in Java, and quick google query shows he is coding with C# now. Java->C# is a natural progress (as the languages are similar, but C# is better) and Visual Studio 2010 and Windows environment makes a lot of sense for C#.

  13. Assuming you're serious... by Compaqt · · Score: 5, Insightful

    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. 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.

    --
    I'm not a lawyer, but I play one on the Internet. Blog
    1. Re:Assuming you're serious... by jimicus · · Score: 2

      The most obvious ones are:

      - Your upload speed is the outside world's maximum download speed from your site. How many visitors will be using it at any given point in time?
      - Hosting companies generally have half-decent HVAC, power, spare parts onsite and the spare equipment available that if something goes horribly wrong with a server they can get everything back up fast. If you go to that level of expense for just one server, it very quickly becomes much cheaper to pay a hosting firm for several years.

  14. Actual Entrepreneur Here by Anonymous Coward · · Score: 2, Informative

    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 connector. If you are bold try MongoDB, however it sounds like you are most comfortable with RDBMS and we are optimizing for your time.

    - Source control: GIT, then SVN, then Perforce; by order of preference. The first two are free, the last one is used widely in professional shops (MSFT for example). Your choice.

    - Cloud: Assuming you have the dev chops to target it, don't. As a one man operation, doing this now will sap your time and you will never ship. Design for the scale you have and not the scale you want.

    - Licensing: Google Microsoft BizSpark and enroll. As a startup you get something like the first 3 years unlimited licenses for a few hundred bucks.

    Notes:
    1. This optimizes for getting you to market quickest.
    2. This minimizes your long term licensing costs (Windows Server ONLY).
    3. This assumes that once you get to market and start acquiring customers, you will get traction needed to invest in fancy things like building for the cloud.

    Everything else is premature optimization.

  15. Couple of items... by Hall · · Score: 2

    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 !

  16. Look at Azure by jesseck · · Score: 3, Informative

    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.

  17. Re:Haha by Khyber · · Score: 2, Interesting

    "Uh, he specifically wants to spend more time on developing and not worrying about the hosting part."

    Considering the problems cloud services have had this past year, he's sorely mistaken if he thinks he'll be spending more time developing.

    The cloud was not even viable for our small business - not reliable enough, and the people running the cloud are just about as clueless.

    Watching Reddit go down hardcore because of cloud failures was even more of an eye-opener.

    If you can't be responsible for every part of your business, you don't need to be in business, PERIOD.

    --
    Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
  18. Re:Google App Engine. by truthsearch · · Score: 2

    MS systems can scale as much as you like, if you have the money for licensing, hardware, MS support, and system administration. It's not ideal, but technically it can work.

  19. Google App Engine by swillden · · Score: 4, Informative

    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.)

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    1. Re:Google App Engine by hawguy · · Score: 3, Insightful

      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.

    2. Re:Google App Engine by swillden · · Score: 4, Interesting

      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.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  20. Cloud++ @Javaman59 by cfitkin · · Score: 4, Informative

    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.

  21. Sagely Advice for the One Person Company by ohnocitizen · · Score: 2

    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 skills in an interview is illegal, you can effectively screen for this by asking candidates if they prefer Harry Potter, Enders Game, or Twilight. PS If you are not already living in the US, considering you are a sentient one person company, you might consider relocating here. We've become the first nation to truly recognize the rights of corporations as people, and you would not be treated like a second class citizen (taxed, held liable for your mistakes). If your website takes off you could even wield massive influence over our electoral process, and how fun does that sound?

  22. Stick to what you know by rvw · · Score: 2

    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.

  23. It's too bad you're getting flamed so hard by ScuzzMonkey · · Score: 4, Interesting

    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.

    --
    No relation to Happy Monkey
    1. Re:It's too bad you're getting flamed so hard by PC+and+Sony+Fanboy · · Score: 2

      Re-format that VM server into a games machine and go rent time elsewhere.

      Why do you have a killer GPU in your VM server?

  24. Re:Haha by penguin_dance · · Score: 2

    "If you can't be responsible for every part of your business, you don't need to be in business, PERIOD."

    So a person making widgets should know how to run a server? Bullshit. He said he's creating a web site for his business, not that he's becoming a web site designer/host. He never said what his business was (presumably he thinks he's invented the next mousetrap.) That would have been helpful to give some sort of idea at least if this was a service or a widget you sell out of an online store.

    To the question: I don't think you need "the cloud" but I think you do need to find a reliable web site host where you can start small, but have room to grow. Yeah I know you think you have the next hot idea, but it still takes a while for things to catch on. Get someone with experience hosting e-commerce web sites and shops, especially if you're selling a widget. If you're selling a service you'll need something more basic but which can handle a large number of views and basics like email forms for inquires. Point is, if you're expecting "millions of hits" this is not a do-it-yourself project.

    Oh and btw make sure you not only pick a good .com .biz, etc. name, but take advantage of the email, i.e., Joe.Blow@mybusiness.com or sales@mybusiness.com. IOW, do not use Yahoo, Hotmail, Gmail, etc. I work with small suppliers every day and I still see a lot of those crop up--especially one person shops. Those emails are fine for someone looking for a job, but look damn unprofessional on a business.

    If you're not a web designer (and you know whether or not you are), either keep it really basic, or get someone (not just your unemployed brother) professional (someone with a portfolio you like) to design it. Doesn't have to be fancy and make sure you budget. Once you decide on a design, don't keep going back and expect them to make changes for free. Start making changes and you will blow your budget.

    Good luck.

    --
    If you've never been modded as "flamebait" or "troll," you've never tried to argue a minority viewpoint here!
  25. Bandwidth alone will push you to the cloud by hawguy · · Score: 3, Insightful

    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.

  26. Re:Your not qualified by awitod · · Score: 2

    This is just FUD. Microsoft has the BizSpark program and similar programs for exactly this type of start-up. He can run MS for five years and not pay a dime in license fees. If he has millions of users in 5 years, getting the money to run any stack will not be an issue.

    Stack overflow serves something like 100mm pages a month on 1 rack of Windows servers.

    That said, if he doesn't know how to set up a Web server and wants to focus on building a product, hosted and managed cloud is the way to go.

  27. Re:Hate to say it... by MoanNGroan · · Score: 2

    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 advice that speaks to your experience set, instead of somebody else's:

    1. First, talk to a professional entrepreneurial 'enabler'. Universities often have free resources and can answer a lot of your business questions first. My wife specializes in technology commercialization, and she was laughing herself silly at many of these comments ('lots of market analysis first" crap ... the only thing that's important is to *get* *it* *out* *there* and then refine over iterations as you get feedback)
    2. You don't need to start with the cloud, especially if you are inexperienced. That will just add a layer of complexity, and you don't need that level of service yet. Start with a hosted service. There are plenty of cheap ones, and you could get a couple of Windows-based dedicated servers for as little as $140-150/mo.
    3. Get two so you can set up some simple replication across them on top of your regular backups. It doesn't have to be elegant (for now), it just has to work. If/When you have extra income, hire somebody for the day to refine your setup and suggest improvements. You don't have to be the expert and even an occasional expert peeking in can help solidify your infrastructure.
    4. Ignore the malware/hacking FUD ... *nix sites get hacked into just as often and Windows systems. What it comes down to is the admin's experience in locking it down, and the shoddy advice of suggesting you switch to LAMP wouldn't give that to you. Again, bring in an expert for a day and have him lock things down for you and give you advice.

    As to platform, in 2003 I worked on a social-type site that had well over 10 million accounts (probably 50,000/day active) that ran on 6 Windows boxes using MS SQL and ColdFusion on the back-end (yep, ColdFusion). We had craploads of traffic and did just fine with only broad caching enabled and a really basic round-robin session distribution. It didn't cost us a fortune to set up, though it did earn one, and there wasn't a cloud in sight.

    The point is, just because this crowd is pushing their personal experience set as being the only one in town, and even if all the 'big' guys are now using LAMP-type setups, it doesn't mean their's is even remotely the best solution for you to start with. If and when you need this type of ultra-cheap/ultra-performant setup, there will be thousands of these guys willing to work for peanuts to move you over. Better to have the good idea launch and make money early on than to try and relearn your entire environment.

  28. Re:Your not qualified by Warlord88 · · Score: 2

    You're not qualified to write the response to that response to that response if you think that the response to that response is so grammatically incorrect as to invalidate his qualifications to make that response to the response in the first place.
    http://en.wikipedia.org/wiki/Quotation_mark#Punctuation

  29. Re:Your not qualified by whiteboy86 · · Score: 4, Insightful

    Zuckerberg also had no idea what he was doing technically, but was spot on with his idea about Facebook. You can always file a patent or trademark, talk to VC and hire a server engineer..

  30. Buy or Rent? by __aazsst3756 · · Score: 2

    So you are asking if you should buy your own server or rent space on someone elses?

  31. Re:I call shenanigans. His username is "javaman" by Anonymous Coward · · Score: 2, Informative

    So lots of 'helpful' people can tell him to use Azure obviously.
    I think the only people that read slashdot these days are Microsoft astroturfers..

  32. Re:Your not qualified by Ash+Vince · · Score: 4, Insightful

    I'm sorry, but if you need to ask Slashdot on something like this than your not qualified to do what you want to do.

    I get the impression you have never worked for a small startup. In small startup businesses often the best thing they have going for them is a single good idea. These good ideas do not often come from the best technical brains, who can implement something in the ideal way.

    Nothing personal but your only going to have hours to days before your website is hosting malware or gets turned into a spam relay.

    Not necessarily. If he goes with the cloud solution I would in fact be very surprised if this happened since Amazon or whoever would be responsible for protecting him from everything other than coding errors and those are very hard to find via automated means. That means it takes an actual human being to hear about his site and take an interest in hacking it, if you are not taking credit card or other personal details from people or doing anything to irk the hacker community this may never happen.

    None of this is to say that doing things badly is a good idea, but sometimes it is necessary in order to bring something to market quickly and test its commercial viability. Once an idea has proven itself you can invest the extra cash in doing it right. This is where the cloud really comes into its own since it scales up very easily to cope with a horrible mess of bloated, thrown together code.

    In version 2 of the product you then build it the way it should have been built originally but with the benefit of more planning time and learning from your previous mistakes. There is no point in trying to make version 1 perfect since you do not know everything you need to in order to accomplish that aim from a business perspective and never will without some experience. You just make sure you factor the short lifespan of the initial version into your costs.

    An excellent blog covering these sorts of issues is here: http://www.softwarebyrob.com/

    Disclaimer: I have nothing to do with Rob :)

    --
    I dont read /. to RTFA, I read /. to offend people in ignorance.
  33. Since when "web hosting" changed its name? by lsolano · · Score: 2

    I still remember when the service needed to move a website to the Internet was called web hosting.

    "The Cloud"... Give me a break.

  34. Licensing costs are nominal! by mcrbids · · Score: 2

    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't even register the increase in traffic meaningfully.

    It wouldn't have been much different had we gone with Windows Server vs Linux, both can be viable. Licensing costs are a small fraction of the total! There's administration overhead. Power. Bandwidth. Backups. and on, and on. Administration costs dwarf your licensing costs!

    Don't avoid Windows to avoid licensing costs, go with Linux because of the fairly significant reduction in Administration costs! Even with 20 nodes and hundreds of clients, thousands of users, we still have only a very part-time admin. (me)

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
  35. Re:Windows Server? by man_of_mr_e · · Score: 2

    Like many, you completely misunderstand the Netcraft numbers.

    Netcraft's survey does not represent market share. It represents how many hostnames (ie domain names) point to an Apache server, and how many point to IIS and a few others. Hostnames != servers. Hostnames != sites either. Netcraft does not say exactly what they consider a "host" to be. For example, take a site like SourceForge or CodePlex. Do each project.sourceforge.com or project.codeplex.com domain names count as seperate sites with Netcraft? We don't know.

    Second, there are lots of sites that have multiple names pointing to the same site. Each of those is counted as "hostname" in the survey.

    Third, massive domain squatting sites often use Apache (though some use IIS) and all of those sites are included as well.

    The choice of Microsoft or Windows is a buisness decision, not a capability decision.

  36. Yes, Start at the Cloud by CrankyFool · · Score: 4, Interesting

    (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.

  37. Author's response by Javaman59 · · Score: 4, Interesting

    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

    --
    I'm a software visionary. I don't code.
  38. Re:Your not qualified by syousef · · Score: 2

    Zuckerberg also had no idea what he was doing technically, but was spot on with his idea about Facebook. You can always file a patent or trademark, talk to VC and hire a server engineer..

    Actually Zuckerberg was technically competent and a geek. Most people's problem with him does not revolve around his social skills, but rather that he was perceived as an asshole who thinks Facebook users are morons.

    --
    These posts express my own personal views, not those of my employer
  39. Re:Your not qualified by Javaman59 · · Score: 2

    I'm sorry, but if you need to ask Slashdot on something like this than your not qualified to do what you want to do. Nothing personal but your only going to have hours to days before your website is hosting malware or gets turned into a spam relay.

    Thank you. I knew that I would get that exactly that response from at least one person, if not the first 10 responders!

    I had not expected though that the response would be based on a misinterpretation of my question. I am only talking about developmental infrastructure. I thought that was obvious, but it would have been better if I had added that word.

    I didn't think that anyone would even consider hosting a commercial web site from home in 2010. Of course I'm going to use commercial hosting. The reason that I thought "the cloud" was an interesting option is because it's a paradigm shift for development, especially for me who has programmed for 20 years in industry where the infrastructure is always in house, and managed by specialized, dedicated staff.

    --
    I'm a software visionary. I don't code.