Momentan bin ich in ein Startup involviert, im Moment bin ich der einzige involvierte Entwickler, und die anderen Jungs überlassen mir alle technischen Entscheidungen im Moment.
Für meine tägliche Arbeit arbeite ich in einem Softwarehaus, das täglich Microsoft-Technologie einsetzt. Wir verwenden .NET, SqlServer, Windows Server usw. Mir ist jedoch klar, dass wir als Startup die Kosten niedrig halten müssen und nachdem wir dies getan haben Ein kurzer Blick auf die Kosten für das Hosting für Windows Ich war schockiert, als ich einige der Preise für einen dedizierten Server sah. Das billigste, das ich gefunden habe, war £ 100 pro Monat. Auch wenn das Unternehmen in Zukunft skalieren muss und wir letztendlich mehrere Server benötigen, könnten wir am Ende 10 bis 1000 Pfund pro Jahr an SQL Server- / Windows Server-Lizenzen usw. sparen.
Ich hatte dann einen kurzen Blick auf den Preis von Linux-Hosting für einen dedizierten Server und sah, dass der Preis waaaaaay niedriger war als Windows-Hosting. Ein Standort bot eine Maschine mit zwei Kernen für weniger als 20 GBP pro Monat an.
Das brachte mich auf die Idee, dass der Weg dahin Open Source unter Linux ist.
Da ich bei der Arbeit viel Javascript schreibe (im Moment arbeite ich an einer Backbone-App für eine einzelne Seite), dachte ich, NodeJS und ein Webframework wie Express wären möglicherweise cool. Ich dachte dann, dass anstelle von SQL eine Open-Source-NoSQL-Datenbank wie MongoDB verwendet werden sollte, die eine hervorragende Unterstützung für NodeJS bietet.
Meine einzige Sorge ist, dass einige der Aufgaben, die die Anwendung erledigen wird, darin bestehen werden, Bilder und verschiedene andere bildbezogene Dinge dynamisch zu erstellen, dh Dinge, die sehr CPU-lastig sind und verbrauchen es als Modul in Node.
Das ist der Hintergrund - aber im Grunde passt Linux gut zu:
- Hosting einer NodeJS / Express-Site?
- C ++ - Knotenmodule kompilieren?
- Verwenden Sie eine NoSQL-Datenbank wie MongoDB?
Und ist es eine gute Idee, auf diese ungewohnten Technologien umzusteigen, um Geld zu sparen?
3 MONATE UPDATE
Ich arbeite jetzt seit ein paar Monaten daran und dachte, ich würde ein Update geben, falls sich jemand dafür interessiert.
Am Ende habe ich mich aus Zeitgründen gegen einen NodeJS- & Linux-Stack entschieden. Ich mache dieses Startup nebenbei, also arbeite ich 9 Stunden am Tag, dann gehe ich nach Hause und arbeite bis spät am Startup. Während ich auf diese Weise arbeite, muss ich natürlich so effizient wie möglich mit meiner Zeit umgehen, sonst werde ich das Produkt niemals ausliefern.
Nachdem ich einige Ratschläge zu diesem Thread erhalten hatte, bewarb ich mich für Microsoft BizSpark und wurde angenommen. Das bedeutet, dass ich jetzt kostenlos auf die Visual Studio-Lizenz, die Windows Server-Lizenz usw. zugreifen kann. Welches ist genial. Hoffentlich werden wir bis zu dem Zeitpunkt, an dem wir für alles bezahlen müssen, so viel Umsatz machen, dass es kein Problem darstellt.
Denken Sie jedoch nicht, dass ich nur Microsoft-Technologie verwende, da ich versucht habe, Open Source-Inhalte zu verwenden, wo dies möglich ist. Der wichtigste Ort, an dem ich dies getan habe, ist meine Datenschicht, auf der ich mich für PostgreSQL und MongoDB entschieden habe. Ich benutze auch BackboneJS auf meinem Frontend.
Unten finden Sie eine Zusammenfassung der Technologien / Frameworks, die ich derzeit verwende:
- Standard DB Zeug: PostreSQL
- Protokollierung und Datenspeicher: MongoDB
- ORM: Entity Framework 5
- Kernbibliotheken: .NET (C #)
- Web Framework: ASP.NET MVC3
- Benutzeroberfläche: Razor View Engine / BackboneJS
quelle
Antworten:
£ 100 / Monat? Wie viel Sie kosten? Was kostet dein Training ?
Wenn es 100 GBP / Monat ist, Sie aber eine .NET-App in einem Monat installieren können, während Sie mindestens 3 bis 6 Monate benötigen, um Ihre node.js / C ++ - App zum Laufen zu bringen, entscheiden Sie sich für .NET. Ernst. Ihre Zeit ist viel teurer als diese kleinen £ 100 / Monat.
Im Idealfall haben Sie in Ihrer Analyse Recht. Was Sie vergessen haben, ist, wie lange Sie brauchen, um all dies (dh Monate) in einer Technologie aufzubauen, die Sie nicht kennen.
Versteht mich jetzt nicht falsch, ich bin ein großer Fan von Node.js und ähnlichen Dingen (siehe mein Github-Profil ...). Ich habe mehr als genug Zeit aufgewendet, um zu wissen, wann ich es verwenden soll. Verwenden, wenn Sie nicht über sie in einer Startumgebung wissen (wo Sie brauchen Schiff ) ist nicht wirklich die beste Lösung.
Ich bin mir auch nicht sicher, ob das funktionieren könnte, aber vergiss Mono nicht.
PS: Zu wissen, wie man jQuery benutzt, ist eine sehr kleine Hilfe für node.js. Javascript zu kennen ist eine große Hilfe. Verwechseln Sie nicht beide.
quelle
Häufig lohnt es sich, auf einen Open-Source-Stack umzusteigen, doch es ist wahrscheinlicher, dass dies auf einer Kombination von Faktoren beruht:
Sie müssen dies natürlich gegen die Zeit abwägen, die zum Erlernen neuer Open Source-Plattformen und -Technologien benötigt wird, wenn Sie derzeit hauptsächlich Microsoft-Kenntnisse haben.
Es ist insgesamt ein enger Aufruf:
quelle
Die Kosten für Microsoft-Produkte sind möglicherweise nicht so hoch wie Sie denken. Microsoft bietet verschiedene Schemata an, mit denen die Kosten für ihre Software erheblich gesenkt werden. Die meisten von ihnen richten sich an Softwareentwicklungsunternehmen, es gibt jedoch möglicherweise ein Paket, das Ihren Anforderungen entspricht.
Beispiele:
BizSpark - Kostenlose MS-Software für Startups
TechNet - Günstige MS-Software - rund 199 bis 599 US-Dollar pro Jahr.
Es kann sich lohnen, einen Blick darauf zu werfen, vielleicht qualifizieren Sie sich für einige der Angebote.
quelle
Es kostet nicht nur 100 Euro pro Monat, Sie benötigen auch eine ordnungsgemäß lizenzierte Kopie von Windows, Visual Studio usw., um damit arbeiten zu können. Diese summieren sich erheblich, wenn Sie dies tun, ohne auf Softwarepiraterie zurückzugreifen. Und sobald Sie anfangen zu skalieren und viel mehr Server zu benötigen und SQLServer, Redundanz und den Rest zu replizieren, denken Sie daran, dass MS nicht Milliarden von Dollar durch die Server- und Tools-Abteilung verdient, weil sie es verschenken. Während die Kosten für Ihre Zeit, während Sie sich auf dem Laufenden halten, höher sind als für das, was Sie bereits kennen. Langfristig werden die Vorteile der OSS-Kosten Ihre anfänglichen Investitionen in die Zeit bei weitem überwiegen.
In der Hauptsache müssen Sie sich bewusst sein, dass Sie ohnehin die ganze Zeit mit neuer Technologie arbeiten, auch wenn Sie dies nicht unbedingt mit unbekannter Technologie ausprobieren möchten. Die Verwendung von node.js ist nicht besonders schwierig, insbesondere wenn Sie bereits mit Javascript vertraut sind. Daher werden Ihre zusätzlichen Kosten für die Einarbeitung in die Datei eher in Tagen als in Monaten gemessen. Es gibt eine Vielzahl von Tutorials und Beispielen, mit denen Sie in kürzester Zeit mit dem Prototyp-Code arbeiten können. Sobald Ihr Startvorgang erfolgreich ist, werden Sie wahrscheinlich an eine neue Schreibmauer stoßen, unabhängig davon, in welcher Sprache Sie den gesamten Code schreiben.
Trotzdem eignet sich Linux perfekt für die C / C ++ - Codierung. Es ist eines der beliebtesten Systeme für Linux, wenn nicht sogar das beliebteste. MongoDB ist auch eine gute Wahl, anscheinend ist die Unterstützung von 10gen ziemlich gut. Node.js ist auch gut, obwohl Sie möglicherweise den größten Teil Ihres Servers in Node schreiben oder es als einfachen Passthrough-Wrapper für Ihren C ++ - Code verwenden, je nachdem, wie gut Sie mit einer dieser Sprachen umgehen können.
Und es skaliert gut. Ich würde vorschlagen, dass Sie Postgresql im Auge behalten, da es jetzt einen JSON-Spaltentyp hat, der Ihnen viele Vorteile der NoSQL-DBs bietet, aber auch relationale DB-Funktionen ermöglicht. Postgresql ist von Grund auf solide. Ich habe es als Teil eines Systems für den Rettungsdienst verwendet, damit Sie ihm für seine Zuverlässigkeit vertrauen können (weniger Ausfallzeiten als der SQLServer im selben Projekt!).
Für IDEs unter Linux möchten Sie Eclipse. Es ist genau wie Visual Studio, obwohl die Installation der Pakete für das CDT (C dev tools) etwas komplizierter ist.
Schließlich ist es gut, neue Dinge zu lernen, und Sie werden vielleicht die Linux-Erfahrung so sehr genießen, dass Sie es hassen, zur Arbeit zu gehen :)
quelle
Ich habe keine wirkliche Meinung zu dem Serverteil Ihrer Frage (der Knoten funktioniert meiner Meinung nach einwandfrei, vorausgesetzt, Sie kennen Javascript). Allerdings werde ich sagen, dass noSQL-Datenbanken sehr gut mit Linux-Servern funktionieren. Ich verwende derzeit eine Implementierung von CouchDB (einfache Replikation whooo!) Auf einem Linux-Server und liebe es absolut. Was das Kompilieren der C ++ - Module angeht, würde ich empfehlen, die CPU-intensive Arbeit in Javascript zu binden. Nachdem Sie es zum Laufen gebracht haben und sich für langsam entschieden haben, erklimmen Sie den C ++ - Modulberg. Nach meiner Erfahrung funktioniert der Knoten nach der Codierung der Bildbearbeitung möglicherweise einwandfrei für Ihre CPU-Anforderungen.
quelle
"Mach es zuerst. Dann mach es richtig. Dann mach es gut ."
Ich würde vorschlagen, so früh wie möglich mit der Technologie zu beginnen, die dies ermöglicht. Wenn Sie befürchten, dass Sie später keine Optionen haben, codieren Sie so, dass das Austauschen von Modulen und die langsame Migration auf etwas anderes möglich ist. Denken Sie daran, dass das Geschäft populär genug sein muss, um es zu rechtfertigen, und dass Sie bald ein funktionierendes Produkt haben müssen.
quelle
Als kleines Start-up benötigen Sie noch keine dedizierten Server. Sie können Cloud wählen, die billiger ist und bereits MS-Lizenzen enthält. Und Sie würden den gleichen Stapel wie derzeit verwenden.
Es gibt viele Gründe, auf die Open Source-Plattform umzusteigen, aber das Sparen von wenig Geld für das Hosting gehört nicht dazu.
Bedenken Sie auch, dass SysOps für Unix / Linux-Plattformen normalerweise mehr kosten als SysOps für Windows. So könnte Ihre "Ersparnis" Sie mehr kosten.
quelle
Sie sehen hier wirklich große Paradigmenwechsel mit den unbekannten Technologien. Ich hatte gute Erfolge bei der Konvertierung von ASP.NET 2.0-Apps und deren Ausführung in Mono mit Bibliotheken von Drittanbietern. http://www.ubiquityhosting.com/ bietet günstiges Mono-Hosting. Sowohl MySQL als auch Postgres unterstützen ADO.NET-Konnektoren, wodurch Sie viel Entwicklungszeit sparen. Normalerweise entwickle ich alle meine Datenbanken in SQL Server Management Studio und ändere dann geringfügig die Aufgabenausgabe zum Generieren von SQL-Skripten, damit sie in mysql \ postgres funktionieren. Ich kann mir vorstellen, dass dies bei ORMs wie NHibernate auf ähnliche Weise funktionieren würde.
Wie bei einer C ++ - Anwendung könnten Sie immer ein paar Boxen selbst hosten, wenn die Back-End-Arbeit CPU-lastig und nicht bandbreitenlastig ist, um die Kosten gering zu halten und dedizierte Server zu vermeiden. Triple-Core-Rechner mit 2 bis 4 GB RAM sind billig, wenn Linux darauf läuft.
Schließlich ist es am besten, sich mehr auf die Funktionen, die Benutzeroberfläche, die grafische Oberfläche und die Werbung zu konzentrieren, die Ihre App verkaufen, anstatt auf den zugrunde liegenden Technologie-Stack. Wenn Sie sofort viel Verkehr haben, können Sie jederzeit zu azurblau oder amazon wechseln, um die Last besser zu bewältigen.
quelle
Wenn Sie die Größenordnung erreichen, die diese Art von Geld erfordert, werden Ihre Einnahmen theoretisch mit diesen Ausgaben übereinstimmen und Sie werden in der Lage sein, bessere Deals zu erzielen und Sachen mit Ihrer eigenen Hardware zu hosten. Einer der Gründe, warum Ihre Angebote so hoch sind, ist, dass Sie Hardware mieten und nicht kaufen und selbst hosten (Cerca Facebook, Amazon, Microsoft).
Meine erste Frage lautet: "Was ist los mit dem Unternehmen, das diese Art von Preisen anbietet?" Ich weiß, dass ich eine Frage in einer Antwort stelle, aber die Frage selbst ist die Antwort.
Mein einziger Vorschlag ist, das zu verwenden, mit dem Sie vertraut sind. Verwenden Sie die vorhandenen Programme, um Unternehmen wie Ihrem zum Erfolg zu verhelfen. Sobald Sie diesen Erfolg erzielt haben, können Sie praktisch JEDE gewünschte Änderung implementieren und vornehmen. Wenn Sie diesen Erfolg erzielen und sich die höheren Preise leisten können, ist dies möglicherweise kein Problem.
Wie ich schon sagte, Ihre Sorgen sind gut, aber sehen Sie sie von der richtigen Skala aus? Haben Sie sich Geschäftsprognosen angesehen, um zu entscheiden, was Sie tun sollen? Mir ist klar, dass Sie bereits (innerhalb kurzer Zeit) entschieden haben, was Sie im Grunde tun werden.
Versuchen Sie einfach, das Gesamtbild zu betrachten. Sie werden nicht ein einziges Unternehmen bezahlen, das diese Art von Geld für das Hosting Ihrer Server verdient, sondern Sie würden es wahrscheinlich selbst tun.
quelle
Vor fast 10 Jahren war ich in der gleichen Situation. Die gesamte Microsoft-Software wurde mir jedoch übergeben, und ein Verwandter, der Manager in einem großen Microsoft-Shop war, half mir bei der Entwicklung. Ein Jahr und 50.000 US-Dollar später nahm Microsoft Änderungen an .NET vor, wodurch alles in eine Schleife geriet und wir von vorne anfangen mussten (Um es kurz zu machen. Fragen Sie nicht.).
Auf Anraten meiner Verwandten sind wir auf FreeBSD und Linux umgestiegen und haben drei Monate später alles für so gut wie nichts mit denselben Leuten neu aufgebaut. Wir sind jetzt ein florierendes kleines Webentwicklungsunternehmen und mussten seitdem keine Software (oder Hardware) mehr kaufen.
quelle