Vaut-il la peine de passer de la technologie Microsoft à Linux, NodeJS et autres frameworks open source pour économiser de l'argent pour une start-up? [fermé]

32

Je suis actuellement impliqué dans une startup, je suis le seul développeur impliqué en ce moment, et les autres gars me laissent toutes les décisions technologiques pour le moment.

Pour mon travail de jour, je travaille dans une maison de logiciels qui utilise la technologie Microsoft au jour le jour, nous utilisons .NET, SqlServer, Windows Server, etc. un bref regard sur le coût de l'hébergement pour Windows J'ai été choqué de voir certains des prix d'un serveur dédié. Le moins cher que j'ai trouvé était de 100 £ par mois. De plus, si l'entreprise doit évoluer à l'avenir et que nous finissons par avoir besoin de plusieurs serveurs, nous pourrions finir par débourser 10 £ de 000 £ par an en licences SQL Server / Windows Server, etc.

J'ai ensuite jeté un coup d'œil au prix de l'hébergement Linux pour un serveur dédié et j'ai vu que le prix était waaaaaay inférieur à l'hébergement Windows. Un endroit proposait une machine à 2 cœurs pour moins de 20 £ par mois.

Cela m'a fait penser que la voie à suivre est peut-être open source sur Linux.

Comme j'écris beaucoup de Javascript au travail (je travaille actuellement sur une application de backbone d'une seule page), j'ai pensé que peut-être NodeJS et un framework web comme Express seraient cool à utiliser. J'ai alors pensé qu'au lieu d'utiliser SQL, pourquoi ne pas utiliser une base de données NoSQL open source comme MongoDB, qui a un grand support sur NodeJS?

Ma seule préoccupation est qu'une partie du travail que l'application va faire consistera à créer dynamiquement des images et diverses autres choses liées à l'image, c'est-à-dire des choses qui sont assez lourdes en CPU - donc je pense peut-être à écrire quelque chose de lourd en CPU en C ++ et le consommer en tant que module dans Node.

C'est l'arrière-plan - mais fondamentalement, Linux est-il un bon match pour:

  1. Vous hébergez un site NodeJS / Express?
  2. Compiler des modules de nœuds C ++?
  3. Vous utilisez une base de données NoSQL comme MongoDB?

Et est-ce une bonne idée de passer à ces technologies inconnues pour économiser de l'argent?


MISE À JOUR DE 3 MOIS

J'y travaille depuis quelques mois maintenant, alors j'ai pensé donner une mise à jour au cas où quelqu'un serait intéressé.

Au final, j'ai décidé de ne pas utiliser une pile NodeJS & Linux pour la simple raison du temps. Je fais ce démarrage sur le côté, donc je travaille 9 heures par jour, puis je rentre chez moi et je travaille jusqu'à tard sur le démarrage. En travaillant de cette manière, je dois évidemment être aussi efficace que possible avec mon temps, sinon je ne finirai jamais par expédier le produit.

Après avoir pris quelques conseils sur ce sujet, j'ai postulé pour Microsoft BizSpark et j'ai été accepté. Cela signifie que j'ai maintenant accès à la licence Visual Studio, à la licence Windows Server, etc., le tout gratuitement. C'est génial. Avec un peu de chance, au moment où nous devrons commencer à payer pour tout ce que nous fournirons suffisamment pour que cela ne soit pas un problème.

Cependant, ne pensez pas que j'utilise uniquement la technologie Microsoft, car j'ai essayé d'utiliser des sources open source dans la mesure du possible. Le principal endroit où j'ai fait cela est ma couche de données, où j'ai décidé d'utiliser PostgreSQL et MongoDB. J'utilise également BackboneJS sur mon frontal.

Voici un résumé des technologies / cadres que j'utilise actuellement:

  • Trucs DB standard: PostreSQL
  • Enregistrement et magasin de données: MongoDB
  • ORM: Entity Framework 5
  • Bibliothèques principales: .NET (C #)
  • Cadre Web: ASP.NET MVC3
  • Interface utilisateur: moteur de vue Razor / BackboneJS
dormisher
la source
3
Avez-vous enquêté sur Mono? C # et la plupart du framework, sous Linux. Je ne l'ai pas utilisé avec colère, c'est juste une pensée.
TarkaDaal
5
Au niveau de démarrage initial, il n'y a rien que vous ne pouvez pas obtenir gratuitement de Microsoft qui ne répondra pas à vos besoins. Après cela, vous pouvez utiliser leur programme BizSpark pour faciliter le démarrage jusqu'à ce que vous ayez des revenus importants. Même en tant que startup utilisant des produits ouverts, vous vous retrouverez probablement à un moment donné avec un produit à prix abordable comme Oracle DB ou autre une fois que vous aurez suffisamment grandi.
Rig
1
En fait, je regarde BizSpark aujourd'hui, vous pouvez obtenir essentiellement tous leurs logiciels gratuitement / jusqu'à ce que votre entreprise gagne 1 million de dollars par an. C'est vraiment une bonne affaire, je pense que si cela commence à tourner plus de 1 mil par an, quelques centaines de livres par mois sur les serveurs seront un beau problème!
dormisher
2
@dormisher: Bizspark ne dure que 3 ans. Ensuite, vous pouvez garantir que MS frappera à la porte en proposant de "revoir vos besoins en matière de licences". microsoft.com/bizspark/faqs.aspx#16
gbjbaanb
1
@gbjbaanb, "L'informatique est la deuxième cause de gaz à effet de serre (après les compagnies aériennes)" ... Avez-vous une source fiable pour ces déchets? Ou répétez-vous simplement le non-sens que quelqu'un d'autre vous a dit? La plupart des sources sur lesquelles j'ai fait des recherches dans le passé placent le trafic automobile au numéro 1.
riwalk

Réponses:

35

£ 100 / mois? Combien coûte- tu ? Combien va coûter votre formation ?

Si c'est 100 £ / mois mais que vous pouvez obtenir une application .NET en un mois, alors que vous aurez besoin d'au moins 3 à 6 mois pour faire fonctionner votre application node.js / C ++, optez pour le .NET. Sérieusement. Votre temps est bien plus cher que ces 100 £ / mois.

Idéalement, oui, vous avez raison dans votre analyse. Ce que vous avez oublié, c'est le temps qu'il vous faudra pour construire tout cela (c'est-à-dire des mois), en particulier dans une technologie que vous ne connaissez pas.

Maintenant, ne vous méprenez pas, je suis un grand fan de Node.js et autres (juste voir mon profil github ...). J'ai passé plus que suffisamment de temps pour savoir quand l'utiliser. L'utiliser lorsque vous ne le savez pas dans un environnement de démarrage (où vous devez expédier ) n'est pas vraiment la meilleure solution.

De plus, je ne sais vraiment pas si cela pourrait fonctionner, mais n'oubliez pas Mono.

PS: savoir utiliser jQuery est une très petite aide pour node.js. Connaître javascript est d'une grande aide. Ne confondez pas les deux.

Florian Margaine
la source
J'ai réfléchi au temps que cela va me prendre et je suis partagé entre .NET et Node. Il est vraiment difficile de savoir combien de temps il me faudra encore pour utiliser Node. Vous voyez que le site réel sera principalement assis sur le client, donc la majorité de la logique métier sera en fait sur le client. Donc, à cet égard .NET ou Node - cela n'a pas vraiment d'importance. Je ne pense pas que l'écriture d'un ensemble d'API sur le back-end dans ASP.NET WebAPI vs Node va faire une énorme différence. Et je pense que si j'utilise un ORM au-dessus de MongoDB, tout ce que je fais, c'est vraiment jouer avec JSON, rien de compliqué.
dormisher
1
@dormisher Si c'est juste un serveur REST, alors oui, je suppose que la partie nœud ne sera pas un problème (et il y a de meilleurs outils que d'exprimer :-)). Pour la partie lourde du CPU, vous devez clairement le faire en C ++. Cela dépend de la façon dont vous pouvez gérer cela.
Florian Margaine
1
Restify par exemple
Florian Margaine
4
Je souhaite vraiment que les gens cessent de dire des choses comme "Mono est .NET sur Linux!" Ce n'est pas le cas. Il s'agit d'une approximation de télécopie. C'est proche mais il y a beaucoup de courbe d'apprentissage. De plus, les outils de développement ne sont pas aussi raffinés.
Rig
4
"la majorité de la logique métier sera en fait sur le client" Donc, la majorité de la logique métier sera disponible en texte brut pour quiconque consulte votre site? Je pourrais vouloir repenser cela.
Adrian J. Moreno
14

Fréquemment, il vaut la peine de passer à une pile open source, mais il est plus susceptible d'être motivé par une combinaison de facteurs:

  • Coût - oui, vous économiserez de l'argent sur les licences et l'hébergement. Mais ce n'est probablement pas suffisant pour influencer la décision dans la plupart des cas. Si vous ne pouvez pas vous permettre ou collecter quelques milliers de dollars, êtes-vous vraiment sûr que vous devriez faire un démarrage quel que soit l'espace que vous visez? Votre temps vaut plus qu'une petite somme d'argent.
  • Éviter le verrouillage de la plate-forme : important si vous voulez avoir la flexibilité d'évoluer sans dépendre d'une seule plate-forme contrôlée par le fournisseur. Vous ne voulez pas que le destin technologique de votre entreprise soit lié au caprice d'un fournisseur (en particulier un fournisseur comme Microsoft, qui n'est pas le plus connu pour la cohérence à long terme de ses technologies).
  • Technologies spécifiques - le monde open source propose des solutions impressionnantes que vous pouvez préférer (toutes choses étant égales par ailleurs) par rapport aux équivalents Microsoft. Regardez certaines des solutions de Big Data basées sur Java comme Hadoop ou Cassandra par exemple ....
  • Productivité - certaines des solutions open source sont incroyablement productives une fois que vous les maîtrisez - Ruby on Rails, Clojure etc.
  • Communauté - les communautés open source sont très utiles et peuvent généralement vous aider à résoudre de nombreux problèmes gratuitement, que ce soit par le biais de forums, de documentation en ligne, de salles IRC, etc.

Vous devez bien sûr équilibrer cela avec le temps qu'il faudra pour apprendre de nouvelles plateformes et technologies open source si vous avez actuellement principalement des compétences Microsoft.

C'est un appel global proche:

  • Si vous avez déjà un mélange de compétences, je recommanderais généralement d'opter pour la voie open source. D'après mon expérience, cela fonctionne mieux à long terme.
  • Si vous n'avez que des compétences en Microsoft, je pense que vous voudrez probablement rester avec Microsoft uniquement parce que vous serez plus rapide à démarrer et à fonctionner. Les startups doivent évoluer rapidement et apprendre une pile technologique entièrement nouvelle n'est pas un problème supplémentaire que vous souhaitez avoir dans votre assiette.
Mikera
la source
3
Si vous allez (comme ils le suggèrent) en C ++, ils auront toujours un verrouillage de plate-forme, juste une autre plate-forme ... Et en ce qui concerne les communautés utiles, le plus souvent la réponse standard est "voici la source, découvrez-la vous-même "ou" si vous en donnez assez, nous pourrons le regarder dans le futur "
jwenting
8

Le coût des produits Microsoft n'est peut-être pas aussi mauvais que vous le pensez. Microsoft propose différents schémas qui réduisent considérablement le coût de leurs logiciels. La plupart d'entre eux s'adressent aux sociétés de développement de logiciels, mais il peut exister un package répondant à vos besoins.

Exemples:

BizSpark - Logiciel MS gratuit pour les startups

TechNet - Logiciel MS bon marché - environ 199 $ - 599 $ par an.

Cela vaut peut-être la peine d'être examiné, vous pourriez peut-être vous qualifier pour certaines des offres.

Gavin Coates
la source
3
Bizspark - 3 ans de trucs gratuits. Technet / MSDN - gratuit, mais pas pour une utilisation en production. Ainsi, bien que vous puissiez le développer, vous ne pouvez pas déployer votre code à moins de payer pour toutes les licences complètes.
gbjbaanb le
@gbjbaanb - Quel est le problème avec 3 ans de trucs gratuits? Technet / MSDN n'est pas gratuit, c'est pour le développement, c'est ce qu'ils font.
Ramhound
1
@Ramhound: la réponse leur a suggéré Technet, ils voulaient savoir combien coûtent les licences de production. Trop de gens pensent qu'un sous-MSND ou Technet leur donne un logiciel gratuit (jusqu'à ce que MS les vérifie). L'OP n'a jamais demandé de licences de développement, seulement SQLServer et Windows. 3 ans gratuits, c'est génial, jusqu'à la quatrième année et vous devez savoir à quel point vous êtes habitué.
gbjbaanb
Microsoft offrira des licences de réduction après les 3 ans si vous n'êtes pas un gros faiseur d'argent .. si vous gagnez de l'argent .. dois payer le
contribuable
6

Ce n'est pas seulement le coût de ce serveur de 100 £ / mois, vous aurez besoin d'une copie sous licence appropriée de Windows, Visual Studio, etc. pour travailler. Ceux-ci s'additionnent considérablement si vous le faites sans recourir au piratage de logiciels. Et une fois que vous commencez à évoluer et à nécessiter beaucoup plus de serveurs, et à répliquer SQLServer, la redondance et tout le reste. Alors que le coût de votre temps pendant que vous serez à jour sera plus important que d'utiliser ce que vous savez déjà, à long terme, les avantages du coût OSS dépasseront de loin votre investissement initial dans le temps.

Dans l'ensemble, même si vous pouvez hésiter à essayer cela en utilisant une technologie inconnue, vous devez vous rendre compte que vous travaillerez toujours avec de nouvelles technologies de toute façon. L'utilisation de node.js n'est pas particulièrement difficile, surtout si vous connaissez déjà le javascript, donc votre coût supplémentaire pour vous familiariser un peu avec lui sera mesuré en jours plutôt qu'en mois. Il existe de nombreux didacticiels et exemples qui vous permettront de devenir opérationnel avec le code prototype en un rien de temps, et il est probable que vous atteindrez un mur de réécriture une fois que votre démarrage réussira, quelle que soit la langue dans laquelle vous écrivez tout votre code.

Donc, de toute façon, Linux est parfaitement adapté au codage C / C ++, vous trouverez que c'est l'un des systèmes les plus populaires pour Linux, sinon le plus populaire. MongoDB est également un bon choix, apparemment le support de 10gen est assez bon. Node.js est également bon, bien que vous puissiez finir par écrire la majorité de votre serveur dans le nœud, ou l'utiliser comme un simple wrapper pass-through dans votre code C ++, selon la façon dont vous vous familiarisez avec l'un ou l'autre de ces langages.

Et ça évolue bien. Je vous suggère de garder un œil sur Postgresql car il a maintenant un type de colonne JSON qui vous donnera beaucoup d'avantages des bases de données NoSQL, mais vous permettra également des fonctionnalités de bases de données relationnelles. Postgresql est solide comme le roc, je l'ai utilisé dans le cadre d'un système pour les services d'urgence afin que vous puissiez lui faire confiance pour sa fiabilité (moins de temps d'arrêt que le SQLServer sur le même projet en fait!)

Pour les IDE sous Linux, vous voulez l'éclipse. C'est comme Visual Studio, bien que l'installation des packages pour le CDT (outils de développement C) soit légèrement plus compliquée.

Enfin, il est bon d'apprendre de nouvelles choses, vous aimerez peut-être tellement l'expérience Linux que vous détesterez aller travailler :)

gbjbaanb
la source
8
"vous voulez une éclipse. C'est comme Visual Studio" J'y lève le drapeau BS majeur. Eclipse n'est même pas au même niveau que Visual Studio. Ses années derrière. Peut-être une décennie.
Rig
4
Le logiciel Microsoft est gratuit pour les startups. BizSpark . Les startups manquent d'argent. Ils devraient consacrer un minimum de temps à la formation ou à l'apprentissage. Une fois que vous "commencez à évoluer et avez besoin de beaucoup plus de serveurs" et que vous devez payer Microsoft, j'espère que vous gagnerez des revenus substantiels. Vous pourrez vous le permettre. Personnellement, vous serez probablement maintenant dans une salle de réunion ou même dans une maison de plage à un million de dollars, et vous déléguerez ces problèmes à vos larbins. Ne vous inquiétez pas trop de l'évolutivité à long terme. Inquiétez-vous d'obtenir des clients et de gagner de l'argent dès que possible.
MarkJ
4
@Rig Eclipse est très bon, il ressemble à VS, débogue comme VS et possède de nombreuses fonctionnalités comme VS. Les similitudes s'arrêtent quand on regarde de près, mais je n'ai pas trouvé beaucoup de différence dans le codage au jour le jour.
gbjbaanb
2
Je pense qu'il y a une raison pour laquelle la plupart d'Internet fonctionne sous Linux et OSS. La plupart des startups ne vendent pas non plus à Microsoft pour 8 milliards de dollars. Donc, vous échangez vraiment des gains à court terme (que je ne suis pas convaincu que cela coûte trop cher) pour des coûts à long terme qui rongeront vos flux de trésorerie. La trésorerie est très importante pour les startups.
gbjbaanb
3
@gbjbaanb Dire qu'Eclipse est "comme" un studio visuel, c'est dire qu'une grenouille est comme un prince.
Rig
4

Je n'ai pas vraiment d'opinion sur la partie serveur de votre question, (le nœud fonctionne très bien à mon avis, en supposant que vous connaissez le javascript). Cependant, je dirai que les bases de données noSQL fonctionnent très bien avec les serveurs Linux. J'utilise actuellement une implémentation de CouchDB, (réplication facile whooo!), Sur un serveur Linux et j'adore ça. En ce qui concerne la compilation des modules C ++, je recommanderais de lier le travail intensif du processeur en javascript. Après l'avoir fait fonctionner et décidé de sa lenteur, montez ensuite la colline du module C ++. D'après mon expérience, ayant codé la manipulation d'image, le nœud peut finir par fonctionner très bien pour vos besoins en CPU.

Jlange
la source
1
Je pense que la seule base de données que j'ai rencontrée qui ne fonctionne pas bien avec les serveurs Linux est MS SQL Server.
TMN
2

"D'abord, faites-le. Ensuite, faites-le bien. Ensuite, faites-le bien ."

Je suggère de lancer le plus tôt possible une technologie qui rend cela possible. Si vous ne souhaitez pas avoir d'options plus tard, codez de manière à ce que l'échange de modules et la migration lente vers quelque chose d'autre soient possibles. N'oubliez pas que l'entreprise doit devenir suffisamment populaire pour le justifier et que vous devez bientôt avoir un produit fonctionnel.

TarkaDaal
la source
2

En tant que petite start-up, vous n'avez pas encore besoin de serveurs dédiés. Vous pouvez choisir le cloud, qui est moins cher et inclut déjà des licences MS. Et vous utiliseriez la même pile qu'actuellement.

Il existe de nombreuses raisons de passer à la plate-forme Open Source, mais économiser quelques dollars sur l'hébergement n'en fait pas partie.

Gardez également à l'esprit que SysOps pour la plate-forme Unix / Linux sont généralement payés plus que SysOps pour Windows. Ainsi, votre «économie» pourrait finir par vous coûter plus cher.

vartec
la source
1

Vous regardez vraiment les changements de paradigme majeurs ici avec les technologies inconnues. J'ai réussi à convertir des applications ASP.NET 2.0 et à les exécuter en mono avec des bibliothèques tierces. http://www.ubiquityhosting.com/ fournit un hébergement mono bon marché. MySql et Postgres prennent en charge les connecteurs ADO.NET, ce qui vous fait gagner beaucoup de temps de développement. Je développe généralement toutes mes bases de données dans SQL Server Management Studio, puis j'apporte des modifications mineures à la sortie de la tâche de génération de scripts SQL pour les faire fonctionner dans mysql \ postgres. J'imagine que cela fonctionnerait d'une manière similaire pour les ORM comme NHibernate.

En ce qui concerne une application C ++, vous pouvez toujours héberger quelques box vous-même si le travail du backend est lourd en CPU et non en bande passante pour éviter que les coûts ne soient évités. Les machines à triple cœur avec 2 à 4 Go de RAM sont bon marché avec Linux fonctionnant dessus.

Enfin, il est préférable de concentrer plus d'efforts sur les fonctionnalités, l'interface utilisateur \ UX, l'interface graphique et la publicité qui vendront votre application plutôt que la pile technologique sous-jacente. Si vous commencez à recevoir beaucoup de trafic immédiatement, vous pouvez toujours passer à l'azur ou à l'amazone pour mieux gérer la charge.

Peter Smith
la source
1

Pour mon travail de jour, je travaille dans une maison de logiciels qui utilise la technologie Microsoft au jour le jour, nous utilisons .NET, SqlServer, Windows Server, etc. un bref aperçu du coût de l'hébergement pour Windows J'ai été choqué de voir certains des prix d'un serveur dédié. Le moins cher que j'ai trouvé était de 100 £ par mois. De plus, si l'entreprise doit évoluer à l'avenir et que nous finissons par avoir besoin de plusieurs serveurs, nous pourrions finir par débourser 10 £ de 000 £ par an en licences SQL Server / Windows Server, etc.

Si vous atteignez le genre d'échelle qui nécessite ce type d'argent, alors en théorie, votre revenu correspondra à ces dépenses et vous pourrez obtenir de meilleures offres et héberger des choses avec votre propre matériel. L'une des raisons pour lesquelles vos devis sont si élevés, c'est parce que vous louez du matériel et ne l'achetez pas et ne l'hébergez pas vous-même (cerca facebook, Amazon, Microsoft).

J'ai ensuite jeté un coup d'œil au prix de l'hébergement Linux pour un serveur dédié et j'ai vu que le prix était waaaaaay inférieur à l'hébergement Windows. Un endroit proposait une machine à 2 cœurs pour moins de 20 £ par mois.

Ma première question est "qu'est-ce qui ne va pas avec l'entreprise qui offre ce genre de prix", et combien coûterait le serveur linux à la même entreprise que le serveur Windows? Je sais que je pose une question dans une réponse, mais la question elle-même est la réponse.

Comme j'écris beaucoup de Javascript au travail (je travaille actuellement sur une application de backbone d'une seule page), j'ai pensé que peut-être NodeJS et un framework web comme Express seraient cool à utiliser. J'ai alors pensé qu'au lieu d'utiliser SQL, pourquoi ne pas utiliser une base de données NoSQL open source comme MongoDB, qui a un grand support sur NodeJS?

Ma seule préoccupation est qu'une partie du travail que l'application va faire consistera à créer dynamiquement des images et diverses autres choses liées à l'image, c'est-à-dire des choses qui sont assez lourdes en CPU - donc je pense peut-être à écrire quelque chose de lourd en CPU en C ++ et le consommer en tant que module dans Node.

Ma seule suggestion est d'utiliser ce que vous connaissez. Utilisez les programmes qui existent pour aider les entreprises comme la vôtre à réussir, une fois que vous avez réussi, vous pouvez mettre en œuvre et effectuer à peu près TOUT changement que vous souhaitez. Si vous obtenez ce succès et que vous pouvez vous permettre des prix plus élevés, vous pourriez décider que ce n'est pas vraiment un problème.

Comme je l'ai dit, vos inquiétudes sont sérieuses, mais regardez-vous à la bonne échelle, avez-vous examiné les projections commerciales pour vous aider à décider quoi faire? Je me rends compte que vous avez déjà décidé (dans un court laps de temps) ce que vous allez faire.

Essayez simplement de voir la situation dans son ensemble, vous n'allez pas payer une seule entreprise avec ce type d'argent pour héberger vos serveurs, vous le feriez probablement vous-même.

Ramhound
la source
0

Il y a près de 10 ans, j'étais dans la même situation. Cependant, tous mes logiciels Microsoft m'ont été remis et j'avais un parent qui était directeur dans une grande boutique Microsoft pour m'aider avec le développement. Un an et 50 000 $ de dépenses plus tard, Microsoft a apporté des modifications à .NET, ce qui a tout mis en boucle et nous avons dû recommencer (Bref, ne demandez pas.).

Sur les conseils de mon parent, nous sommes passés à FreeBSD et Linux et, trois mois plus tard, nous avons tout reconstruit pour pratiquement rien en utilisant les mêmes personnes. Nous sommes maintenant une petite entreprise de développement Web florissante et nous n'avons pas eu à acheter de logiciel (ou matériel) depuis.

Rob
la source