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:
- Vous hébergez un site NodeJS / Express?
- Compiler des modules de nœuds C ++?
- 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
la source
Réponses:
£ 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.
la source
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:
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:
la source
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.
la source
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 :)
la source
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.
la source
"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.
la source
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.
la source
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.
la source
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).
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.
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.
la source
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.
la source