从微软技术转向Linux,NodeJS和其他开放源代码框架以节省启动资金是否值得?[关闭]


32

我目前正在参与一家初创公司,我是目前唯一参与其中的开发人员,其他人此刻将所有技术决定权交给我。

对于我的日常工作,我每天在使用Microsoft技术的软件公司工作,我们使用.NET,SqlServer,Windows Server等。但是,我意识到作为一家初创公司,我们需要降低成本,并且简要了解Windows托管的成本我很震惊地看到专用服务器的一些价格。我发现最便宜的是每月100英镑。另外,如果将来业务需要扩展,而我们最终需要多台服务器,则最终可能每年要花掉£000的£10的SQL Server / Windows Server许可费用。

然后,我快速查看了专用服务器的Linux托管价格,发现价格比Windows托管低waaaaaay。一个地方以每月不到20英镑的价格提供一台带有2核的机器。

这让我思考也许要走的路是在Linux上开源。

当我在工作中编写大量Javascript时(目前我正在开发一个单页面主干应用程序),我认为也许NodeJS和类似Express的Web框架可以使用。然后,我以为不是使用SQL,为什么不使用像MongoDB这样的开源NoSQL数据库,它对NodeJS有很好的支持?

我唯一关心的是,应用程序将要进行的一些工作将是动态地构建图像以及其他与图像相关的其他东西,例如,相当占用CPU的东西-所以我正在考虑也许可以用C ++编写任何CPU繁重的东西并将其作为Node中的模块使用。

这就是背景知识-但Linux基本上适合以下方面:

  1. 托管NodeJS / Express网站?
  2. 编译C ++节点模块?
  3. 使用像MongoDB这样的NoSQL DB?

转向这些不熟悉的技术以节省资金是一个好主意吗?


3个月更新

我在过去的几个月里一直在努力,所以我想如果有人感兴趣的话,我会进行更新。

最后,出于时间原因,我决定不使用NodeJS和Linux堆栈。我在一边进行启动,所以我每天工作9个小时,然后回家工作直到启动晚。以这种方式工作时,我显然需要尽可能提高效率,否则我将永远也不会最终交付产品。

在采纳了关于该线程的一些建议之后,我确实申请了Microsoft BizSpark,并被接受。这意味着我现在可以免费使用Visual Studio许可证,Windows Server许可证等。太棒了 希望在我们需要开始支付所有费用时,我们将交还足够多的款项,这将使其不成问题。

但是,不要以为我只是在使用Microsoft技术,因为我尝试了尽可能使用开放源代码的东西。我完成此操作的主要地方是我的数据层,在这里我决定使用PostgreSQL和MongoDB。我还在前端使用BackboneJS。

以下是我当前正在使用的技术/框架的摘要:

  • 标准数据库资料:PostreSQL
  • 日志记录和数据存储:MongoDB
  • ORM:实体框架5
  • 核心程式库:.NET(C#)
  • Web框架:ASP.NET MVC3
  • UI:Razor视图引擎/ BackboneJS

3
您调查过Mono吗?C#和大多数框架,在Linux上。我没有在愤怒中使用它,这只是一个想法。
TarkaDaal 2012年

5
在初始启动级别,没有可以满足您需求的免费服务。之后,您可以利用他们的BizSpark程序来促进启动,直到获得可观的收入为止。即使是使用开放产品的初创公司,一旦成长足够,您最终可能还会在某些时候获得诸如Oracle DB之类的付费产品。
钻机2012年

1
实际上,我今天一直在看BizSpark,您基本上可以免费获得他们的所有软件-直到您的公司每年收入100万美元。确实,这笔交易确实不错,我认为,如果它开始以每年100万的速度营业,那么每月要在服务器上花费数百quid将会是一个可爱的问题!
dormisher

2
@dormisher:Bizspark仅持续3年。然后,您可以确保MS会敲开门来“审查您的许可需求”。microsoft.com/bizspark/faqs.aspx#16
gbjbaanb 2012年

1
@gbjbaanb,“计算是造成温室气体的第二大原因(仅次于航空公司)”……您是否有可靠的垃圾来源?还是只是在重复别人告诉你的废话?多数来源,我在过去的看跌汽车交通在1号研究
riwalk

Answers:


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并不重要。我不认为在ASP.NET WebAPI vs Node的后端编写一组API会产生巨大的变化。而且我认为,如果我在MongoDB之上使用ORM,我实际上所做的只是使用JSON,没有什么复杂的事情。
dormisher 2012年

1
@dormisher如果只是一个REST服务器,是的,我想节点部分不会很麻烦(还有更好的工具,然后表达:-))。对于CPU较重的部分,您显然必须使用C ++来完成。取决于如何处理。
Florian Margaine


4
我真希望人们不要再说“ Mono在Linux上是.NET!”之类的话。不是。这是一个传真近似值。它接近但有很多学习曲线。再加上开发工具没有那么完善。
钻机2012年

4
“大多数业务逻辑实际上将在客户端上”,因此,大多数业务逻辑将以纯文本格式提供给查看您网站的任何人?可能想重新考虑一下。
Adrian J. Moreno

14

通常,值得将其迁移到开放源代码堆栈,但是它更有可能由多种因素共同驱动:

  • 费用 -是的,您将节省许可和托管费用。但是在大多数情况下,这可能不足以影响决策。如果您负担不起或筹集几千美元,那么您是否真的确定应该针对目标空间进行创业?您的时间值得的不只是少量的现金。
  • 避免平台锁定:如果您希望在不依赖单个供应商控制的平台的情况下灵活地进行扩展,则很重要。您不希望贵公司的技术命运与一个供应商的想法联系在一起(尤其是像Microsoft这样的供应商,因其技术的长期一致性而闻名于世)。
  • 特定技术 -开源世界提供了一些令人印象深刻的解决方案,与Microsoft的同类产品相比,您可能更喜欢(其他所有条件都相同)。看看一些基于Java的大数据解决方案,例如Hadoop或Cassandra。...
  • 生产力 - 一旦您熟悉了一些开源解决方案,它们就会产生令人印象深刻的生产力-Ruby on Rails,Clojure等。
  • 社区 -开源社区非常有帮助,通常可以通过论坛,在线文档,IRC会议室等帮助您免费解决许多问题。

当然,如果您当前主要掌握Microsoft技能,则必须与学习新的开放源代码平台和技术所需的时间保持平衡。

总的来说这是一个密切的电话:

  • 如果您已经具备多种技能,那么我通常建议您采用开源途径。我的经验是,从长远来看,效果会更好。
  • 如果您仅具有Microsoft技能,那么我认为您可能纯粹是出于对Microsoft的坚持,因为这样您会更快地启动和运行。初创企业需要快速发展,而学习全新的技术栈并不是您想要的额外问题。

3
如果您(按照他们的建议)使用C ++,他们仍将锁定平台,只是另一个平台...对于有用的社区,标准答案通常是“这是源头,请您自己弄清楚” ”或“如果您捐赠足够,我们将来可能会考虑”
jwenting 2012年

8

Microsoft产品的成本可能没有您想象的那么糟糕。Microsoft提供了各种可大大降低其软件成本的方案。它们中的大多数针对软件开发公司,但可能会有满足您需求的软件包。

例子:

BizSpark-用于启动的免费MS软件

TechNet-便宜的MS软件-每年大约$ 199-$ 599。

可能值得研究,您可能有资格获得一些优惠。


3
Bizspark-3年免费的东西。Technet / MSDN-免费,但不能用于生产。因此,尽管您可以使用它进行开发,但是除非您支付所有完整许可的费用,否则您就无法部署代码。
gbjbaanb 2012年

@gbjbaanb-3年的免费产品怎么了?Technet / MSDN不是免费的,这是他们正在做的事情。
Ramhound 2012年

1
@Ramhound:答案为他们建议Technet,他们想知道生产许可证的成本。太多的人认为MSND或Technet子公司为他们提供了免费软件(直到MS对其进行审核为止)。OP从来没有要求开发者许可证,只有SQLServer和Windows。3年的免费期非常棒,直到4年级,您必须弄清楚自己已经习惯了多少东西。
gbjbaanb 2012年

如果您不是一个赚钱的大国,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的很多好处,但也允许您使用关系数据库功能。Postgresql坚如磐石,我将其用作紧急服务系统的一部分,因此您可以信任它的可靠性(实际上比同一项目上的SQLServer停机时间少!)

对于Linux上的IDE,您需要eclipse。就像Visual Studio一样,尽管为CDT安装软件包(C开发工具)稍微复杂一些。

最后,学习新知识非常好,您可能会非常喜欢Linux体验,而讨厌上班了:)


8
“您想要日食。就像Visual Studio一样。”我在那儿举起主要的BS标志。Eclipse甚至不在同一级别的Visual Studio上。它落后了多年。也许十年。
钻机2012年

4
微软软件对初创企业是免费的。BizSpark。创业公司缺乏资金。他们应该花费最少的时间进行培训或学习。一旦您“开始扩展规模并要求加载更多服务器”并必须向微软付款,我希望您将获得可观的收入。您将能够负担得起。您个人而言,现在可能会在董事会会议室或什至是一百万美元的海滨别墅中,并且您将把这些问题委托给笨拙的人。不必太担心长期可伸缩性。担心尽快获得客户并赚钱。
MarkJ 2012年

4
@Rig Eclipse非常好,它看起来像VS,像VS一样进行调试,并具有像VS这样的许多功能。当您仔细观察时,相似之处就结束了,但是我在日常编码中并没有发现太多差异。
gbjbaanb 2012年

2
我认为大多数互联网都可以在Linux和OSS上运行是有原因的。大多数初创公司也不以80亿美元的价格卖给微软。因此,您实际上是在用短期收益(我也不认为这是那么多的成本)来折磨会消耗您现金流量的长期成本。现金流量对初创公司非常重要。
gbjbaanb 2012年

3
@gbjbaanb要说Eclipse就像“视觉工作室”,就是说青蛙像王子。
钻机2012年

4

对于您问题的服务器部分,我真的没有意见(假设您知道javascript,node就可以了)。但是我要说的是,noSQL数据库与linux服务器可以很好地协同工作。我目前在Linux服务器上使用CouchDB的实现(轻松复制,哇!),绝对喜欢它。至于编译C ++模块,我建议在javascript中绑紧CPU密集型工作。在使其正常工作并确定其运行速度之后,请爬C ++模块。以我的经验,对图像进行编码后,节点可能最终可以满足您的cpu需求。


1
我认为我遇到的唯一不能在Linux服务器上正常运行的数据库是MS SQL Server。
TMN 2012年

2

“首先,将其制造。然后,将其制造正确。然后,将其制造。”

我建议尽早启动使之成为可能的技术。如果您担心以后没有选项,请以这样的方式进行编码:交换模块并缓慢迁移到其他对象。只需记住,该业务必须得到足够的普及才能保证它,并且您必须尽快拥有一个有效的产品。


2

作为一家小型创业公司,您不需要专用服务器。您可以选择更便宜的云,并且已经包含MS许可证。而且您将使用与当前相同的堆栈。

切换到开放源代码平台的原因很多,但是节省少量托管费用并不是其中之一。

另外,请记住,用于Unix / Linux平台的SysOps通常比用于Windows的SysOps收入更高。因此,您的“储蓄”可能最终使您付出更多。


1

您实际上是在通过不熟悉的技术查看主要的范式转换。我在转换ASP.NET 2.0应用程序以及在具有第三方库的mono之上运行它们方面取得了成功。 http://www.ubiquityhosting.com/提供廉价的单声道托管。MySql和Postgres都支持ADO.NET连接器,从而节省了很多开发时间。我通常在sql服务器管理工​​作室中开发所有数据库,然后对生成sql脚本任务输出进行较小的更改,以使其在mysql \ postgres中工作。我想它可以像NHibernate这样的ORM以类似的方式工作。

对于C ++应用程序,如果后端工作占用大量CPU而不占用大量带宽,则始终可以自己托管一些Boxen,从而避免通过避免使用专用服务器来降低成本。带有2到4 GB内存的三核计算机便宜,在它们之上运行linux。

最后,最好将更多的精力放在可以销售应用程序的功能,UI \ UX,图形界面和广告上,而不是基础技术堆栈上。如果您立即开始获得大量流量,则始终可以移至天蓝色或亚马逊以更好地处理负载。


1

对于我的日常工作,我每天在使用Microsoft技术的软件公司工作,我们使用.NET,SqlServer,Windows Server等。但是,我意识到作为一家初创公司,我们需要降低成本,并且简要了解Windows托管的成本我很震惊地看到专用服务器的一些价格。我发现最便宜的是每月100英镑。另外,如果将来业务需要扩展,而我们最终需要多台服务器,则最终可能每年要花掉£000的£10的SQL Server / Windows Server许可费用。

如果您达到了需要这种资金的规模,那么理论上您的收入将与这些费用相匹配,并且您将能够获得更好的交易,并使用自己的硬件托管东西。您的报价如此之高的原因之一是因为您租用了硬件,而不是自己购买和托管(cerca facebook,Amazon,Microsoft)。

然后,我快速查看了专用服务器的Linux托管价格,发现价格比Windows托管低waaaaaay。一个地方以每月不到20英镑的价格提供一台带有2核的机器。

我的第一个问题是“提供这种价格的公司怎么了?”,和Windows服务器在同一家公司的linux服务器要花多少钱?我知道我在回答问题,但问题本身就是答案。

当我在工作中编写大量Javascript时(目前我正在开发一个单页面主干应用程序),我认为也许NodeJS和类似Express的Web框架可以使用。然后,我以为不是使用SQL,为什么不使用像MongoDB这样的开源NoSQL数据库,它对NodeJS有很好的支持?

我唯一关心的是,应用程序将要进行的一些工作将是动态地构建图像以及其他与图像相关的其他东西,例如,相当占用CPU的东西-所以我正在考虑也许可以用C ++编写任何CPU繁重的东西并将其作为Node中的模块使用。

我唯一的建议是使用您熟悉的东西。使用现有的程序可以帮助像您这样的企业获得成功,一旦获得成功,就可以实施并做出几乎想要的任何更改。如果您确实获得了成功,并且您能够负担得起更高的价格,那么您可能会认为这实际上不是问题。

就像我说的那样,您的担心是合理的,但是您是否以正确的角度来看待它,是否查看了业务预测以帮助您决定要做什么?我知道您已经(在短时间内)决定了您的基本操作。

只是尝试从更大的角度看,您不会向一家公司支付那样的钱来托管服务器,您可能会自己做。


0

大约10年前,我处于同样的情况。但是,我所有的Microsoft软件都交给了我,我有一个亲戚,他是一家大型Microsoft商店的经理,可以帮助我进行开发。一年后,花了5万美元,微软对.NET进行了更改,使所有内容陷入了循环,我们不得不重新开始(长话短说。不要问。)。

在我亲戚的建议下,我们改用了FreeBSD和Linux,三个月后,使用同一个人,几乎一无所有地重建了一切。我们现在是一家蓬勃发展的小型网络开发公司,此后就无需购买任何软件(或硬件)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.