Стоит ли переходить от технологий Microsoft к Linux, NodeJS и другим средам с открытым исходным кодом, чтобы сэкономить деньги для стартапа? [закрыто]

32

В настоящее время я участвую в стартапе, на данный момент я являюсь единственным разработчиком, а остальные ребята оставляют все технические решения на мое усмотрение.

Для своей повседневной работы я работаю в доме разработчиков программного обеспечения, который использует технологии Microsoft на ежедневной основе, мы используем .NET, SqlServer, Windows Server и т. Д. Однако я понимаю, что в качестве стартапа нам нужно снижать расходы, и после Кратко рассмотрев стоимость хостинга для Windows, я был шокирован, увидев некоторые цены на выделенный сервер. Самый дешевый, который я нашел, составлял 100 фунтов в месяц. Кроме того, если бизнес нуждается в расширении в будущем, и нам в конечном итоге понадобится несколько серверов, мы могли бы в конечном итоге выделять 10 фунтов стерлингов в год по лицензиям SQL Server / Windows Server и т. Д.

Затем я быстро взглянул на цену Linux-хостинга для выделенного сервера и увидел, что цена была на порядок ниже, чем на Windows-хостинге. Одно место предлагало машину с 2 ядрами менее чем за 20 фунтов в месяц.

Это заставило меня задуматься, может быть, путь к Linux - это открытый исходный код.

Поскольку я пишу много Javascript на работе (сейчас я работаю над одностраничным магистральным приложением), я подумал, что, возможно, NodeJS и веб-фреймворк, такой как Express, было бы здорово использовать. Тогда я подумал, что вместо использования SQL, почему бы не использовать базу данных NoSQL с открытым исходным кодом, такую ​​как MongoDB, которая имеет большую поддержку для NodeJS?

Единственное, что меня беспокоит, это то, что часть работы, которую собирается выполнить приложение, будет заключаться в динамическом построении изображений и различных других вещей, связанных с изображениями, то есть вещей, которые сильно нагружают процессор - поэтому я подумываю написать что-нибудь нагруженное процессором на C ++ и использовать его в качестве модуля в узле.

Это фон, но в целом Linux подходит для:

  1. Хостинг сайта NodeJS / Express?
  2. Компиляция узловых модулей C ++?
  3. Используете NoSQL DB как MongoDB?

И стоит ли переходить на эти незнакомые технологии, чтобы сэкономить деньги?


3 МЕСЯЦА ОБНОВЛЕНИЕ

Я работал над этим последние несколько месяцев, поэтому подумал, что дам обновление, если кому-то будет интересно.

В конце концов я решил не использовать стек NodeJS & Linux по простой причине. Я делаю этот стартап на стороне, поэтому я работаю 9 часов в сутки, затем иду домой и работаю до старта до старта. Работая таким образом, я, очевидно, должен максимально эффективно использовать свое время, иначе я никогда не буду в конечном итоге отправлять продукт.

После получения некоторых советов по этой теме я подал заявку на Microsoft BizSpark и был принят. Это означает, что теперь у меня есть доступ к лицензии Visual Studio, лицензии Windows Server и т. Д., Все бесплатно. Который потрясающий. Надеемся, что к тому времени, когда мы начнем платить за все, что мы перевернем достаточно, это станет не проблемой.

Однако не думайте, что я использую только технологию Microsoft, поскольку я пытался использовать, где это возможно, материалы с открытым исходным кодом. Основное место, которое я сделал, это мой уровень данных, где я решил использовать PostgreSQL и MongoDB. Я также использую BackboneJS на своем интерфейсе.

Ниже приводится краткое описание технологий / фреймворков, которые я сейчас использую:

  • Стандартный материал БД: PostreSQL
  • Хранение журналов и данных: MongoDB
  • ORM: Entity Framework 5
  • Основные библиотеки: .NET (C #)
  • Веб-фреймворк: ASP.NET MVC3
  • Пользовательский интерфейс: Razor View Engine / BackboneJS
dormisher
источник
3
Вы исследовали Моно? C # и большая часть фреймворка, на Linux. Я не использовал это в гневе, это просто мысль.
TarkaDaal
5
На начальных уровнях запуска нет ничего, что вы не можете получить бесплатно от Microsoft, которое не отвечало бы вашим потребностям. После этого вы можете использовать их программу BizSpark для облегчения запуска, пока вы не получите значительный доход. Даже будучи стартапом, использующим открытые продукты, вы, вероятно, в какой-то момент будете получать продукт за плату, такой как Oracle DB или что-то еще, когда вырастете достаточно.
Рог
1
Сегодня я действительно смотрю на BizSpark, вы можете получить практически все их программное обеспечение бесплатно / пока ваш бизнес не зарабатывает 1 миллион долларов в год. Хорошая сделка на самом деле, я думаю, что если она начнет работать с 1 миллом в год, то несколько сотен фунтов в месяц на серверах будут прекрасной проблемой!
dormisher
2
@dormisher: Бизспарк длится всего 3 года. Тогда вы можете гарантировать, что MS постучит в дверь, предложив вам «пересмотреть ваши требования к лицензированию». microsoft.com/bizspark/faqs.aspx#16
gbjbaanb
1
@gbjbaanb, «Компьютерные вычисления являются второй по значимости причиной появления парниковых газов (после авиакомпаний)» ... У вас есть надежный источник этого мусора? Или ты просто повторяешь глупость, которую тебе сказал кто-то еще? Большинство источников, которые я исследовал в прошлом, ставят автомобильное движение под номером 1.
Rewalk

Ответы:

35

£ 100 / месяц? Сколько ты стоишь? Сколько будет стоить ваше обучение ?

Если это 100 фунтов стерлингов в месяц, но вы можете запустить приложение .NET через месяц, а для запуска приложения node.js / C ++ вам потребуется не менее 3–6 месяцев, перейдите на .NET. Шутки в сторону. Ваше время намного дороже, чем эти маленькие £ 100 / месяц.

В идеале да, вы правы в своем анализе. То, что вы забыли, это то, сколько времени вам понадобится, чтобы построить все это (то есть месяцы), особенно в технологии, которую вы не знаете.

Не поймите меня неправильно, я большой поклонник Node.js и подобных мне (просто посмотрите мой профиль на github ...). Я потратил более чем достаточно времени, чтобы узнать, когда его использовать. Использование его, когда вы не знаете об этом в среде запуска (где вам нужно отправить ), не является действительно лучшим решением.

Кроме того, я действительно не уверен, может ли это сработать, но не забывайте про Mono.

PS: знание того, как использовать jQuery, очень мало помогает для node.js. Знание JavaScript - большая помощь. Не путай обоих.

Флориан Маргейн
источник
Я думал о том, сколько времени это займет у меня, и я разрываюсь между .NET и Node. Просто очень трудно понять, сколько еще времени у меня займет использование Node. Вы видите, что фактический сайт будет в основном сидеть на клиенте, поэтому большая часть бизнес-логики будет на самом деле на клиенте. Так что в этом отношении .NET или Node - это не имеет значения. Я не думаю, что написание набора API на серверной части в ASP.NET WebAPI против Node будет иметь огромное значение. И я полагаю, что если я использую ORM поверх MongoDB, все, что я делаю, - это игра с JSON, ничего сложного.
dormisher
1
@dormisher Если это просто REST-сервер, то да, я думаю, что часть узла не будет проблемой (и есть более эффективные инструменты, чем выражения :-)). Что касается тяжелой части процессора, вам явно нужно сделать это на C ++. Зависит от того, как вы можете справиться с этим.
Флориан Маргэйн
1
Restify, например,
Florian Margaine
4
Мне бы очень хотелось, чтобы люди перестали говорить такие вещи, как «Mono - это .NET в Linux!» Это не так. Это факсимильное приближение. Это близко, но есть много кривой обучения. Плюс инструменты разработки не так совершенны.
Рог
4
«Большая часть бизнес-логики будет на самом деле на клиенте». Таким образом, большая часть бизнес-логики будет доступна в виде простого текста любому, кто просматривает ваш сайт? Возможно, стоит переосмыслить это.
Адриан Дж. Морено
14

Часто стоит перейти к стеку с открытым исходным кодом, но это, скорее всего, обусловлено сочетанием следующих факторов:

  • Стоимость - да, вы сэкономите немного денег на лицензировании и хостинге. Но этого, вероятно, недостаточно, чтобы повлиять на решение в большинстве случаев. Если вы не можете позволить себе или собрать несколько тысяч долларов, то действительно ли вы уверены, что должны делать стартап в любом месте, на которое вы нацелены? Ваше время стоит больше, чем небольшое количество денег.
  • Предотвращение блокировки платформы : важно, если вы хотите иметь возможность масштабирования без использования единой платформы, контролируемой поставщиком. Вы не хотите, чтобы технологическая судьба вашей компании была связана с прихотью одного поставщика (особенно такого, как Microsoft, который не самый известный за долгосрочную последовательность в своих технологиях).
  • Особые технологии - в мире открытого исходного кода есть несколько впечатляющих решений, которые вы можете предпочесть (при прочих равных условиях) аналогам Microsoft. Посмотрите на некоторые решения для больших данных на основе Java, такие как Hadoop или Cassandra, например ...
  • Производительность - некоторые решения с открытым исходным кодом впечатляюще продуктивны, когда вы освоите их - Ruby on Rails, Clojure и т. Д.
  • Сообщество - сообщества с открытым исходным кодом очень полезны и обычно могут помочь вам бесплатно решить множество вопросов, будь то форумы, онлайн-документация, комнаты IRC и т. Д.

Конечно, вы должны уравновесить это со временем, которое потребуется для изучения новых платформ и технологий с открытым исходным кодом, если у вас в настоящее время есть в основном навыки Microsoft.

В целом это близкий вызов:

  • Если у вас уже есть сочетание навыков, я бы порекомендовал пойти по пути с открытым исходным кодом. Мой опыт показывает, что в конечном итоге это работает лучше.
  • Если у вас есть только навыки Microsoft, то я думаю, что вы, вероятно, захотите придерживаться Microsoft исключительно по той причине, что вы быстрее начнете работать. Стартапы должны двигаться быстро, и изучение совершенно нового технологического стека не является дополнительной проблемой, которую вы хотите иметь на своей тарелке.
mikera
источник
3
Если вы пойдете (как они предполагают) на C ++, у них все еще будет блокировка платформы, просто еще одна платформа ... А что касается полезных сообществ, чаще всего стандартный ответ таков: «вот источник, разберитесь сами» "или„если вы пожертвуете достаточно, мы можем смотреть на него в будущем“
jwenting
8

Стоимость продуктов Microsoft может быть не такой плохой, как вы думаете. У Microsoft есть различные схемы, которые значительно снижают стоимость их программного обеспечения. Большинство из них предназначены для компаний-разработчиков программного обеспечения, но может быть пакет, который соответствует вашим потребностям.

Примеры:

BizSpark - бесплатное программное обеспечение MS для стартапов

TechNet - дешевое программное обеспечение MS - около 199 - 599 долларов в год.

Это может стоить изучить, вы просто можете претендовать на некоторые из предложений.

Гэвин Коутс
источник
3
Бизспарк - 3 года бесплатных вещей. Technet / MSDN - бесплатно, но не для производственного использования. Таким образом, хотя вы можете разрабатывать его, вы не сможете развернуть свой код, если не заплатите за все полные лицензии.
gbjbaanb
@gbjbaanb - Что не так с бесплатными 3 годами? Technet / MSDN не бесплатен, он предназначен для разработки, что они и делают.
Ramhound
1
@Ramhound: ответ предложил Technet для них, они хотели знать, сколько стоят лицензии на производство. Слишком много людей думают, что подпрограмма MSND или Technet предоставляет им бесплатное программное обеспечение (пока MS не проведет их аудит). ОП никогда не запрашивал лицензии dev, только SQLServer и Windows. 3 года бесплатно - это здорово, пока не наступит четвертый год, и вы должны выяснить, сколько вещей вы привыкли.
gbjbaanb
Microsoft предложит дисконтное лицензирование через 3 года, если вы не очень зарабатываете деньги ... если вы зарабатываете деньги ... должен заплатить
налогоплательщику
6

Это не просто стоимость сервера стоимостью 100 фунтов стерлингов в месяц, для работы вам потребуется правильно лицензированная копия Windows, Visual Studio и т. Д. Они значительно увеличиваются, если вы делаете это, не прибегая к компьютерному пиратству. И как только вы начнете масштабировать и потребовать гораздо больше серверов, а также репликации SQLServer, избыточности и всего остального ... ну, просто помните, что MS не зарабатывает миллиарды долларов от своего подразделения Server and Tools, потому что они отдают его. В то время как стоимость вашего времени, пока вы набираете скорость, будет больше, чем использование того, что вы уже знаете, в долгосрочной перспективе преимущества стоимости OSS значительно перевесят ваши первоначальные инвестиции во времени.

В основном, хотя вы можете быть осторожны при использовании незнакомой технологии, вы должны понимать, что в любом случае вы будете работать с новой технологией все время. Использование node.js не представляет особой сложности, особенно если вы уже знаете javascript, поэтому ваши дополнительные затраты на ознакомление с ним будут измеряться днями, а не месяцами. Существует множество учебных пособий и примеров, которые помогут вам быстро приступить к работе с прототипом кода, и есть вероятность, что вы достигнете переписывающей стены, как только ваш запуск станет успешным, независимо от того, на каком языке вы пишете весь свой код.

Так или иначе, Linux идеально подходит для кодирования C / C ++, вы найдете его одной из самых популярных систем для Linux, если не самой популярной. MongoDB также является хорошим выбором, очевидно, поддержка от 10gen довольно хорошая. Node.js тоже хорош, хотя в конечном итоге вы можете либо написать большую часть своего сервера в узле, либо использовать его как простую сквозную оболочку для своего кода C ++, в зависимости от того, насколько вам удобно с любым из этих языков.

И это хорошо масштабируется. Я бы посоветовал вам следить за Postgresql, поскольку он теперь имеет тип столбца JSON, который даст вам большую часть преимуществ NoSQL DB, но также предоставит вам возможности реляционных DB. Postgresql отлично работает, я использовал его как часть системы для служб экстренной помощи, так что вы можете доверять ему по надежности (на самом деле меньше простоев, чем у SQLServer в том же проекте!)

Для IDE в Linux вы хотите затмение. Это так же, как Visual Studio, хотя установка пакетов для CDT (инструменты C dev) немного сложнее.

И наконец, это полезно для изучения новых вещей, вы можете наслаждаться опытом Linux так сильно, что вам не понравится ходить на работу :)

gbjbaanb
источник
8
«Вы хотите затмение. Это так же, как Visual Studio» Я поднимаю основной флаг BS там. Eclipse даже не на том же уровне Visual Studio. Его годы позади. Может быть, десятилетие
Рог
4
Программное обеспечение Microsoft бесплатно для стартапов. BizSpark . Стартапы не хватает денег. Они должны тратить минимум времени на обучение или обучение. Как только вы «начнете масштабироваться и потребуете загрузки большего количества серверов», и вам придется платить Microsoft, я надеюсь, вы получите существенный доход. Вы сможете себе это позволить. Лично вы, вероятно, теперь будете в зале заседаний или даже в пляжном домике за миллион долларов, и вы передадите эти проблемы своим лакеям. Не стоит слишком беспокоиться о долгосрочной масштабируемости. Беспокойство о получении клиентов и зарабатывать деньги как можно скорее.
MarkJ
4
@Rig Eclipse очень хорош, выглядит как VS, отлаживает как VS и имеет множество функций, таких как VS. Сходство заканчивается, когда вы внимательно присматриваетесь, но я не обнаружил большой разницы в повседневном кодировании.
gbjbaanb
2
Я думаю, что есть причина, по которой большая часть интернета работает на Linux и OSS. Большинство стартапов также не продаются Microsoft за 8 миллиардов долларов. Таким образом, вы действительно торгуете краткосрочными выгодами (которые я не буду убежден в том, что это слишком дорого) ради долгосрочных затрат, которые будут поглощать ваши денежные потоки. Денежный поток очень важен для стартапов.
gbjbaanb
3
@gbjbaanb Сказать, что «Затмение» похоже на визуальную студию, значит сказать, что лягушка похожа на принца.
Rig
4

У меня нет мнения относительно серверной части вашего вопроса (по моему мнению, узел работает нормально, если вы знаете javascript). Однако я скажу, что базы данных noSQL очень хорошо работают с серверами Linux. В настоящее время я использую реализацию CouchDB (легкая репликация!) На сервере Linux, и мне это очень нравится. Что касается компиляции модулей C ++, я бы порекомендовал связать интенсивную работу процессора с javascript. После того, как он заработает и решит, что он медленный, поднимитесь на холм модуля C ++. По моему опыту, имея закодированные манипуляции с изображениями, узел может в итоге работать просто отлично для ваших потребностей процессора.

Jlange
источник
1
Я считаю, что единственная база данных, с которой я столкнулся, не очень хорошо работает с серверами Linux - это MS SQL Server.
TMN
2

«Сначала сделай это. Затем сделай это правильно. Тогда сделай это хорошо ».

Я бы посоветовал запустить как можно раньше тех технологий, которые делают это возможным. Если вы беспокоитесь о том, что в дальнейшем у вас не будет опций, создайте код таким образом, чтобы можно было заменить модули и медленно перейти на что-то другое. Просто помните, что бизнес должен стать достаточно популярным, чтобы на него можно было положиться, и у вас скоро должен быть работающий продукт.

TarkaDaal
источник
2

В качестве небольшого стартапа вам пока не нужны выделенные серверы. Вы можете выбрать облако, которое дешевле и уже включает лицензии MS. И вы будете использовать тот же стек, что и сейчас.

Есть много причин для перехода на платформу с открытым исходным кодом, но экономия нескольких долларов на хостинге не является одной из них.

Также имейте в виду, что SysOps для платформы Unix / Linux обычно платят больше, чем SysOps для Windows. Таким образом, ваша «экономия» может в конечном итоге стоить вам дороже.

Vartec
источник
1

Вы действительно смотрите на основные изменения парадигмы здесь с незнакомыми технологиями. У меня был хороший успех в преобразовании приложений ASP.NET 2.0 и запуске их поверх моно с сторонними библиотеками. http://www.ubiquityhosting.com/ предоставляет дешевый моно хостинг. И MySql, и Postgres поддерживают ADO.NET-коннекторы, что экономит много времени на разработку. Обычно я разрабатываю все свои базы данных в студии управления серверами SQL, а затем вносю незначительные изменения в вывод задачи создания сценариев SQL, чтобы заставить их работать в mysql \ postgres. Я предполагаю, что это будет работать аналогичным образом для ORM, таких как NHibernate.

Что касается приложения на C ++, вы всегда можете разместить несколько ящиков самостоятельно, если работа бэкэнда требует большой вычислительной мощности и не требует большой пропускной способности, чтобы избежать затрат на выделение серверов. Трехъядерные машины с 2–4 ГБ оперативной памяти дешевы, а поверх них работает linux.

Наконец, лучше сосредоточить больше усилий на функциях, UI \ UX, графическом интерфейсе и рекламе, которые будут продавать ваше приложение, а не на базовом технологическом стеке. Если вы сразу начинаете получать много трафика, вы всегда можете перейти к лазури или амазонке, чтобы лучше справляться с нагрузкой.

Питер Смит
источник
1

Для своей повседневной работы я работаю в доме разработчиков программного обеспечения, который использует технологии Microsoft на ежедневной основе, мы используем .NET, SqlServer, Windows Server и т. Д. Однако я понимаю, что в качестве стартапа нам нужно снижать расходы, и после Кратко рассмотрев стоимость хостинга для Windows, я был шокирован, увидев некоторые цены на выделенный сервер. Самый дешевый, который я нашел, составлял 100 фунтов в месяц. Кроме того, если бизнес нуждается в расширении в будущем, и нам в конечном итоге потребуется несколько серверов, мы могли бы в конечном итоге выделять 10 фунтов стерлингов в год по лицензиям SQL Server / Windows Server и т. Д.

Если вы достигнете масштаба, который требует таких денег, то теоретически ваш доход будет соответствовать этим расходам, и вы сможете получать более выгодные предложения и размещать вещи на своем собственном оборудовании. Одна из причин, по которой ваши кавычки так высоки, заключается в том, что вы арендуете оборудование, а не покупаете его и размещаете сами (cerca facebook, Amazon, Microsoft).

Затем я быстро взглянул на цену Linux-хостинга для выделенного сервера и увидел, что цена была на порядок ниже, чем на Windows-хостинге. Одно место предлагало машину с 2 ядрами менее чем за 20 фунтов в месяц.

Мой первый вопрос: «что не так с компанией, предлагающей такие цены», и сколько будет стоить сервер Linux той же компании, что и сервер Windows? Я знаю, что задаю вопрос в ответе, но сам вопрос является ответом.

Поскольку я пишу много Javascript на работе (сейчас я работаю над одностраничным магистральным приложением), я подумал, что, возможно, NodeJS и веб-фреймворк, такой как Express, было бы здорово использовать. Тогда я подумал, что вместо использования SQL, почему бы не использовать базу данных NoSQL с открытым исходным кодом, такую ​​как MongoDB, которая имеет большую поддержку для NodeJS?

Единственное, что меня беспокоит, это то, что часть работы, которую собирается выполнить приложение, будет заключаться в динамическом построении изображений и различных других вещей, связанных с изображениями, то есть вещей, которые сильно нагружают процессор - поэтому я подумываю написать что-нибудь нагруженное процессором на C ++ и использовать его в качестве модуля в узле.

Мое единственное предложение - использовать то, с чем вы знакомы. Используйте программы, которые существуют для того, чтобы помочь таким компаниям, как ваш, добиться успеха. Как только вы добьетесь этого успеха, вы сможете реализовать и внести ЛЮБОЕ изменение, которое хотите. Если вы добьетесь этого успеха и сможете позволить себе более высокие цены, вы можете решить, что это на самом деле не проблема.

Как я уже говорил, ваши опасения серьезны, но вы смотрите на это с правильной шкалы, смотрели ли вы на бизнес-прогнозы, чтобы помочь вам решить, что делать? Я понимаю, что вы уже решили (в течение короткого времени), что вы в основном собираетесь делать.

Просто попробуйте взглянуть на более широкую картину: вы не будете платить ни одной компании за такие деньги за размещение ваших серверов, скорее всего, вы сделаете это сами.

Ramhound
источник
0

Почти 10 лет назад я был в такой же ситуации. Однако все мое программное обеспечение Microsoft было передано мне, и у меня был родственник, который был менеджером в крупном магазине Microsoft, который помог мне с разработкой. Через год и с расходами в 50 тыс. Долл. Microsoft внесла изменения в .NET, которые бросили все в цикл, и нам пришлось начинать все сначала (Короче говоря, не спрашивайте.).

По совету моего родственника мы перешли на FreeBSD и Linux и через три месяца восстановили практически все, используя одни и те же люди. Сейчас мы являемся процветающим небольшим веб-разработчиком, и с тех пор нам не нужно было покупать какое-либо программное обеспечение (или оборудование).

обкрадывать
источник