В настоящее время я участвую в стартапе, на данный момент я являюсь единственным разработчиком, а остальные ребята оставляют все технические решения на мое усмотрение.
Для своей повседневной работы я работаю в доме разработчиков программного обеспечения, который использует технологии 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 подходит для:
- Хостинг сайта NodeJS / Express?
- Компиляция узловых модулей C ++?
- Используете 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
источник
Ответы:
£ 100 / месяц? Сколько ты стоишь? Сколько будет стоить ваше обучение ?
Если это 100 фунтов стерлингов в месяц, но вы можете запустить приложение .NET через месяц, а для запуска приложения node.js / C ++ вам потребуется не менее 3–6 месяцев, перейдите на .NET. Шутки в сторону. Ваше время намного дороже, чем эти маленькие £ 100 / месяц.
В идеале да, вы правы в своем анализе. То, что вы забыли, это то, сколько времени вам понадобится, чтобы построить все это (то есть месяцы), особенно в технологии, которую вы не знаете.
Не поймите меня неправильно, я большой поклонник Node.js и подобных мне (просто посмотрите мой профиль на github ...). Я потратил более чем достаточно времени, чтобы узнать, когда его использовать. Использование его, когда вы не знаете об этом в среде запуска (где вам нужно отправить ), не является действительно лучшим решением.
Кроме того, я действительно не уверен, может ли это сработать, но не забывайте про Mono.
PS: знание того, как использовать jQuery, очень мало помогает для node.js. Знание JavaScript - большая помощь. Не путай обоих.
источник
Часто стоит перейти к стеку с открытым исходным кодом, но это, скорее всего, обусловлено сочетанием следующих факторов:
Конечно, вы должны уравновесить это со временем, которое потребуется для изучения новых платформ и технологий с открытым исходным кодом, если у вас в настоящее время есть в основном навыки Microsoft.
В целом это близкий вызов:
источник
Стоимость продуктов Microsoft может быть не такой плохой, как вы думаете. У Microsoft есть различные схемы, которые значительно снижают стоимость их программного обеспечения. Большинство из них предназначены для компаний-разработчиков программного обеспечения, но может быть пакет, который соответствует вашим потребностям.
Примеры:
BizSpark - бесплатное программное обеспечение MS для стартапов
TechNet - дешевое программное обеспечение MS - около 199 - 599 долларов в год.
Это может стоить изучить, вы просто можете претендовать на некоторые из предложений.
источник
Это не просто стоимость сервера стоимостью 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 так сильно, что вам не понравится ходить на работу :)
источник
У меня нет мнения относительно серверной части вашего вопроса (по моему мнению, узел работает нормально, если вы знаете javascript). Однако я скажу, что базы данных noSQL очень хорошо работают с серверами Linux. В настоящее время я использую реализацию CouchDB (легкая репликация!) На сервере Linux, и мне это очень нравится. Что касается компиляции модулей C ++, я бы порекомендовал связать интенсивную работу процессора с javascript. После того, как он заработает и решит, что он медленный, поднимитесь на холм модуля C ++. По моему опыту, имея закодированные манипуляции с изображениями, узел может в итоге работать просто отлично для ваших потребностей процессора.
источник
«Сначала сделай это. Затем сделай это правильно. Тогда сделай это хорошо ».
Я бы посоветовал запустить как можно раньше тех технологий, которые делают это возможным. Если вы беспокоитесь о том, что в дальнейшем у вас не будет опций, создайте код таким образом, чтобы можно было заменить модули и медленно перейти на что-то другое. Просто помните, что бизнес должен стать достаточно популярным, чтобы на него можно было положиться, и у вас скоро должен быть работающий продукт.
источник
В качестве небольшого стартапа вам пока не нужны выделенные серверы. Вы можете выбрать облако, которое дешевле и уже включает лицензии MS. И вы будете использовать тот же стек, что и сейчас.
Есть много причин для перехода на платформу с открытым исходным кодом, но экономия нескольких долларов на хостинге не является одной из них.
Также имейте в виду, что SysOps для платформы Unix / Linux обычно платят больше, чем SysOps для Windows. Таким образом, ваша «экономия» может в конечном итоге стоить вам дороже.
источник
Вы действительно смотрите на основные изменения парадигмы здесь с незнакомыми технологиями. У меня был хороший успех в преобразовании приложений ASP.NET 2.0 и запуске их поверх моно с сторонними библиотеками. http://www.ubiquityhosting.com/ предоставляет дешевый моно хостинг. И MySql, и Postgres поддерживают ADO.NET-коннекторы, что экономит много времени на разработку. Обычно я разрабатываю все свои базы данных в студии управления серверами SQL, а затем вносю незначительные изменения в вывод задачи создания сценариев SQL, чтобы заставить их работать в mysql \ postgres. Я предполагаю, что это будет работать аналогичным образом для ORM, таких как NHibernate.
Что касается приложения на C ++, вы всегда можете разместить несколько ящиков самостоятельно, если работа бэкэнда требует большой вычислительной мощности и не требует большой пропускной способности, чтобы избежать затрат на выделение серверов. Трехъядерные машины с 2–4 ГБ оперативной памяти дешевы, а поверх них работает linux.
Наконец, лучше сосредоточить больше усилий на функциях, UI \ UX, графическом интерфейсе и рекламе, которые будут продавать ваше приложение, а не на базовом технологическом стеке. Если вы сразу начинаете получать много трафика, вы всегда можете перейти к лазури или амазонке, чтобы лучше справляться с нагрузкой.
источник
Если вы достигнете масштаба, который требует таких денег, то теоретически ваш доход будет соответствовать этим расходам, и вы сможете получать более выгодные предложения и размещать вещи на своем собственном оборудовании. Одна из причин, по которой ваши кавычки так высоки, заключается в том, что вы арендуете оборудование, а не покупаете его и размещаете сами (cerca facebook, Amazon, Microsoft).
Мой первый вопрос: «что не так с компанией, предлагающей такие цены», и сколько будет стоить сервер Linux той же компании, что и сервер Windows? Я знаю, что задаю вопрос в ответе, но сам вопрос является ответом.
Мое единственное предложение - использовать то, с чем вы знакомы. Используйте программы, которые существуют для того, чтобы помочь таким компаниям, как ваш, добиться успеха. Как только вы добьетесь этого успеха, вы сможете реализовать и внести ЛЮБОЕ изменение, которое хотите. Если вы добьетесь этого успеха и сможете позволить себе более высокие цены, вы можете решить, что это на самом деле не проблема.
Как я уже говорил, ваши опасения серьезны, но вы смотрите на это с правильной шкалы, смотрели ли вы на бизнес-прогнозы, чтобы помочь вам решить, что делать? Я понимаю, что вы уже решили (в течение короткого времени), что вы в основном собираетесь делать.
Просто попробуйте взглянуть на более широкую картину: вы не будете платить ни одной компании за такие деньги за размещение ваших серверов, скорее всего, вы сделаете это сами.
источник
Почти 10 лет назад я был в такой же ситуации. Однако все мое программное обеспечение Microsoft было передано мне, и у меня был родственник, который был менеджером в крупном магазине Microsoft, который помог мне с разработкой. Через год и с расходами в 50 тыс. Долл. Microsoft внесла изменения в .NET, которые бросили все в цикл, и нам пришлось начинать все сначала (Короче говоря, не спрашивайте.).
По совету моего родственника мы перешли на FreeBSD и Linux и через три месяца восстановили практически все, используя одни и те же люди. Сейчас мы являемся процветающим небольшим веб-разработчиком, и с тех пор нам не нужно было покупать какое-либо программное обеспечение (или оборудование).
источник