Vale la pena passare da Microsoft Tech a Linux, NodeJS e altri framework open source per risparmiare denaro per una start-up? [chiuso]

32

Attualmente mi sto impegnando in una startup, sono l'unico sviluppatore coinvolto al momento, e gli altri ragazzi mi stanno lasciando tutte le decisioni tecniche al momento.

Per il mio giorno di lavoro lavoro in una software house che utilizza Microsoft tech su base giornaliera, utilizziamo .NET, SqlServer, Windows Server ecc. Tuttavia, mi rendo conto che come avvio dobbiamo mantenere bassi i costi, e dopo aver dato una breve occhiata al costo dell'hosting per Windows, sono rimasto scioccato nel vedere alcuni dei prezzi per un server dedicato. Il più economico che ho trovato era £ 100 al mese. Inoltre, se l'azienda ha bisogno di scalare in futuro e abbiamo bisogno di più server, potremmo finire per sborsare £ 10 di £ 000 all'anno in licenze SQL Server / Windows Server, ecc.

Ho quindi dato una rapida occhiata al prezzo dell'hosting Linux per un server dedicato e ho visto che il prezzo era waaaaaay inferiore a Windows Hosting. Un posto offriva una macchina con 2 core per meno di 20 sterline al mese.

Questo mi ha fatto pensare che forse la strada da percorrere è open source su Linux.

Mentre scrivo un sacco di Javascript al lavoro (sto lavorando a un'app di backbone di una sola pagina al momento), ho pensato che forse NodeJS e un framework web come Express sarebbero stati fantastici da usare. Allora ho pensato che invece di usare SQL perché non usare un database NoSQL open source come MongoDB, che ha un grande supporto su NodeJS?

La mia unica preoccupazione è che parte del lavoro che l'applicazione sta andando a fare sarà costruire dinamicamente le immagini e varie altre cose relative alle immagini, cioè cose che sono piuttosto pesanti per la CPU - quindi sto pensando di scrivere qualcosa su CPU pesante in C ++ e consumo come un modulo nel nodo.

Questo è lo sfondo - ma fondamentalmente Linux è una buona combinazione per:

  1. Ospitare un sito NodeJS / Express?
  2. Compilazione dei moduli di nodo C ++?
  3. Usare un DB NoSQL come MongoDB?

Ed è una buona idea passare a queste tecnologie non familiari per risparmiare?

AGGIORNAMENTO DI 3 MESI

Ho lavorato su questo negli ultimi mesi, quindi ho pensato di dare un aggiornamento nel caso qualcuno fosse interessato.

Alla fine ho deciso di non usare un NodeJS & Stack Linux per la semplice ragione del tempo. Sto facendo questa startup sul lato, quindi lavoro 9 ore al giorno, poi a casa e lavoro fino a tardi all'avvio. Mentre lavoro in questo modo, ovviamente, devo essere il più efficiente possibile con il mio tempo, altrimenti non finirò mai per spedire il prodotto.

Dopo aver preso alcuni dei consigli su questo thread ho fatto domanda per Microsoft BizSpark, ed è stato accettato. Ciò significa che ora ho accesso alla licenza di Visual Studio, alla licenza di Windows Server, ecc. Tutto gratis. Che è fantastico Speriamo che prima che sia necessario iniziare a pagare tutto ciò che gireremo sarà sufficiente a renderlo un non-problema.

Non credo di utilizzare solo la tecnologia Microsoft, tuttavia, poiché ho cercato di utilizzare le risorse open source laddove possibile. Il posto principale che ho fatto è il mio livello dati, in cui ho deciso di usare PostgreSQL e MongoDB. Sto anche usando BackboneJS sul mio front-end.

Di seguito è riportato un riepilogo delle tecnologie / framework attualmente in uso:

  • Materiale DB standard: PostreSQL
  • Registrazione e amp; Data Store: MongoDB
  • ORM: Entity Framework 5
  • Librerie principali: .NET (C #)
  • Framework Web: ASP.NET MVC3
  • UI: Razor view engine / BackboneJS
posta dormisher 17.07.2012 - 16:31
fonte

10 risposte

35

100 £ / mese? Quanto costa tu ? Quanto costerà il tuo allenamento ?

Se è £ 100 al mese, ma è possibile ottenere un'app .NET in un mese, mentre occorrono almeno dai 3 ai 6 mesi per eseguire l'app node.js / C ++, andare su .NET. Sul serio. Il tuo tempo è molto più costoso di questi piccoli £ 100 al mese.

Idealmente, sì, hai ragione nella tua analisi. Quello che hai dimenticato è quanto tempo ti porterà a costruire tutto questo (cioè mesi) specialmente in una tecnologia che non conosci.

Ora non fraintendermi, sono un grande fan di Node.js e simili (basta vedere il mio profilo github ...). Ho trascorso più che abbastanza tempo per sapere quando usarlo. Usarlo quando non lo sai in un ambiente di avvio (dove è necessario ship ) non è davvero la soluzione migliore.

Inoltre, non sono sicuro se questo potrebbe funzionare, ma non dimenticare di Mono.

PS: sapere come usare jQuery è una pochissima guida per node.js. Conoscere javascript è di grande aiuto. Non confondere entrambi.

    
risposta data 17.07.2012 - 16:41
fonte
14

Spesso vale la pena passare a uno stack open source, ma è più probabile che sia guidato da una combinazione di fattori:

  • Costo : sì, risparmierai denaro per le licenze e l'hosting. Ma probabilmente non è abbastanza per influenzare la decisione nella maggior parte dei casi. Se non puoi permetterti o raccogliere qualche migliaio di dollari, sei davvero sicuro che dovresti fare una startup qualunque sia lo spazio che stai cercando? Il tuo tempo vale più di una piccola somma di denaro.
  • Evitare il lock-in della piattaforma : importante se si desidera avere la flessibilità necessaria per scalare senza fare affidamento su una singola piattaforma controllata dal fornitore. Non vuoi che il destino tecnologico della tua azienda sia legato al capriccio di un fornitore (in particolare uno come Microsoft, che non è il più noto per la coerenza a lungo termine nelle sue tecnologie).
  • Tecnologie specifiche : il mondo open source ha alcune soluzioni impressionanti che puoi preferire (a parità di tutti gli altri) rispetto agli equivalenti di Microsoft. Guarda ad esempio alcune soluzioni di Big Data basate su Java come Hadoop o Cassandra ....
  • Produttività : alcune delle soluzioni open source sono estremamente produttive una volta che ti senti al passo con loro - Ruby on Rails, Clojure, ecc.
  • Comunità : le community open source sono molto utili e in genere possono aiutarti a risolvere molti problemi gratuitamente tramite forum, documentazione online, sale IRC, ecc.

Devi bilanciare questo, ovviamente, con il tempo che ci vorrà per imparare nuove piattaforme e tecnologie open source se al momento hai principalmente competenze Microsoft.

Si tratta di una chiusura generale generale:

  • Se hai già un mix di abilità, in genere ti consiglio di seguire il percorso open source. La mia esperienza è che funziona meglio a lungo termine.
  • Se possiedi solo competenze Microsoft, penso che probabilmente vorrai restare con Microsoft puramente per il motivo che sarai più veloce e attivo. Le startup devono muoversi velocemente e imparare un nuovo stack tecnologico non è un problema in più che vuoi avere nel tuo piatto.
risposta data 18.07.2012 - 18:30
fonte
8

Il costo dei prodotti Microsoft potrebbe non essere così brutto come pensi. Microsoft ha diversi schemi disponibili che riducono notevolmente il costo del loro software. La maggior parte di essi è rivolta a società di sviluppo software, ma potrebbe esserci un pacchetto che soddisfa le tue esigenze.

Esempi:

BizSpark - Software MS gratuito per le startup

TechNet - Software MS economico - circa $ 199 - $ 599 all'anno.

Potrebbe valere la pena di esaminarlo, potresti qualificarti solo per alcune delle offerte.

    
risposta data 18.07.2012 - 17:52
fonte
6

Non è solo il costo di quel server da £ 100 / mese, avrai bisogno di una copia con licenza di Windows, Visual Studio, ecc. ecc. con cui lavorare. Questi aumentano considerevolmente se lo fai senza ricorrere alla pirateria del software. E una volta che inizi a scalare e richiedi molti più server, replicando SQLServer, ridondanza e tutto il resto ... beh, ricorda che MS non guadagna miliardi di dollari dalla propria divisione Server e Tools perché li distribuiscono. Mentre il costo del tuo tempo mentre ti alzi alla velocità sarà maggiore di quello che sai già, a lungo termine, i benefici del costo dell'OSS supereranno di gran lunga il tuo investimento iniziale nel tempo.

Nel complesso, mentre si può essere cauti nel provare questo utilizzando una tecnologia sconosciuta, è necessario rendersi conto che lavorerai comunque con la nuova tecnologia in ogni caso. L'uso di node.js non è particolarmente difficile, specialmente se conosci già javascript, quindi il tuo costo aggiuntivo di familiarizzarti con esso sarà misurato in giorni anziché in mesi. Ci sono un sacco di tutorial ed esempi che ti consentiranno di iniziare a lavorare con il codice del prototipo in pochissimo tempo, e ci sono possibilità che tu possa colpire un muro di riscrittura una volta che l'avvio avrà successo, indipendentemente dalla lingua in cui scrivi tutto il codice.

Comunque, Linux è perfettamente adatto alla codifica C / C ++, troverai il suo uno dei sistemi più popolari per Linux, se non il più popolare. Anche MongoDB è una buona scelta, apparentemente il supporto di 10gen è piuttosto buono. Anche Node.js è buono, anche se potresti finire a scrivere la maggior parte del tuo server nel nodo, o usarlo come un semplice pass-through wrapper per il tuo codice C ++, a seconda di quanto sei comodo con una di quelle lingue.

E scala bene. Ti suggerirei di tenere d'occhio Postgresql dato che ora ha un tipo di colonna JSON che ti darà molti dei vantaggi dei DB NoSQL, ma ti consente anche le funzionalità di DB relazionali. Postgresql è solido, l'ho usato come parte di un sistema per i servizi di emergenza, quindi puoi fidarti di esso per l'affidabilità (meno tempi di inattività rispetto allo SQLServer sullo stesso progetto!)

Per gli IDE su Linux, vuoi eclissi. È proprio come Visual Studio, anche se l'installazione dei pacchetti per il CDT (strumenti di sviluppo C) è leggermente più complicata.

Infine, è bello imparare cose nuove, potresti goderti l'esperienza di Linux così tanto che odierai andando a lavorare:)

    
risposta data 18.07.2012 - 16:24
fonte
4

Non ho davvero un'opinione sulla parte server della tua domanda, (il nodo funziona bene secondo me, supponendo che tu sappia javascript). Comunque dirò che i database noSQL funzionano molto bene con i server Linux. Attualmente sto usando un'implementazione di CouchDB, (facile replica whooo!), Su un server Linux e assolutamente adoro. Per quanto riguarda la compilazione dei moduli C ++, consiglierei di legare il lavoro intensivo della cpu in javascript. Dopo averlo fatto funzionare e aver deciso di rallentarlo, quindi arrampicarsi sulla collina del modulo C ++. Nella mia esperienza, avendo manipolato la manipolazione delle immagini, il nodo potrebbe finire a funzionare bene per le esigenze della CPU.

    
risposta data 17.07.2012 - 23:32
fonte
2

"Prima, fallo. Quindi, fallo bene. Quindi, rendilo buono ."

Suggerirei di lanciarmi il prima possibile, su una tecnologia che lo renda possibile. Se sei preoccupato di non avere opzioni in un secondo momento, codifica in modo tale che sia possibile scambiare moduli e migrare lentamente a qualcos'altro. Ricorda che il business deve diventare abbastanza popolare da meritarlo e devi avere presto un prodotto funzionante.

    
risposta data 19.07.2012 - 10:18
fonte
2

Come piccola start-up non hai ancora bisogno di server dedicati. Puoi scegliere il cloud, che è più economico e include già le licenze MS. E useresti lo stesso stack del momento.

Ci sono molti motivi per passare alla piattaforma Open Source, ma il salvataggio di pochi dollari sull'hosting non è uno di questi.

Inoltre, tieni presente che la piattaforma SysOps per Unix / Linux di solito viene pagata più di SysOps per Windows. Così il tuo "risparmio" potrebbe finire per costarti di più.

    
risposta data 03.10.2012 - 14:27
fonte
1

Stai davvero osservando i principali cambiamenti di paradigma qui con le tecnologie non familiari. Ho avuto un buon successo con la conversione di app ASP.NET 2.0 e il loro esecuzione su mono con librerie di terze parti. Il link offre hosting mono a basso costo. MySql e Postgres supportano entrambi i connettori ADO.NET, consentendo di risparmiare molto tempo di sviluppo. Generalmente sviluppo tutti i miei database in SQL Server Management Studio, quindi apporto modifiche minori all'output del comando generate sql scripts per farli funzionare in mysql \ postgres. Immagino che funzionerebbe in modo simile per gli ORM come l'NHibernate.

Per quanto riguarda un'applicazione C ++, puoi sempre ospitare alcuni boxen se il back-end funziona in modo pesante e non richiede larghezza di banda per mantenere bassi i costi evitando server dedicati. Le macchine triple core con da 2 a 4 GB di RAM sono economiche con Linux in esecuzione su di esse.

Infine, è meglio concentrare maggiormente gli sforzi sulle funzionalità, sull'interfaccia utente, sull'interfaccia grafica e sulla pubblicità che venderanno la tua app piuttosto che sullo stack tecnologico sottostante. Se inizi a ricevere molto traffico subito, puoi sempre passare a Azure o Amazon per gestire meglio il carico.

    
risposta data 18.07.2012 - 21:29
fonte
1

For my day job I work at a software house that uses Microsoft tech on a day to day basis, we utilise .NET, SqlServer, Windows Server etc. However, I realise that as a startup we need to keep costs down, and after having a brief look at the cost of hosting for Windows I was shocked to see some of the prices for a dedicated server. The cheapest I found was £100 a month. Also if the business needs to scale in the future and we end up needing multiple servers, we could end up shelling out £10's of £000's a year in SQL Server / Windows Server licenses etc.

Se raggiungi il tipo di scala che richiede quel tipo di denaro, in teoria il tuo reddito corrisponderà a tali spese e sarai in grado di ottenere offerte migliori e di ospitare materiale con il tuo hardware. Uno dei motivi per cui le tue quotazioni sono così alte, è perché il tuo hardware in affitto, non comprandolo e ospitandolo tu stesso (cerca su Facebook, Amazon, Microsoft).

I then had a quick look at the price of Linux hosting for a dedicated server and saw the price was waaaaaay lower than windows hosting. One place was offering a machine with 2 cores for less than £20 a month.

La mia prima domanda è "cosa c'è di sbagliato nella società che offre questo tipo di prezzi", e quanto costava il server Linux alla stessa azienda del server Windows? So che sto facendo una domanda in una risposta, ma la domanda in sé è la risposta.

As I write a lot of Javascript at work (I'm working on a single page backbone app at the moment), I thought maybe NodeJS and a web framework like Express would be cool to use. I then thought that instead of using SQL why not use an open source NoSQL database like MongoDB, which has great support on NodeJS?

My only concern is that some of the work the application is going to do is going to be dynamically building images and various other image related stuff, i.e. stuff that is quite CPU heavy - so I'm thinking of maybe writing anything CPU heavy in C++ and consuming it as a module in Node.

Il mio unico suggerimento è usare ciò di cui sei familiare. Usa i programmi esistenti per aiutare le aziende come la tua ad avere successo, una volta che hai successo, puoi implementare e fare praticamente qualsiasi cambiamento tu voglia. Se ottieni questo successo e sei in grado di permettervi i prezzi più alti, potresti decidere che in realtà non è un problema.

Come ho detto che le tue preoccupazioni sono solide, ma la stai guardando dalla scala corretta, hai guardato le proiezioni aziendali per aiutarti a decidere cosa fare? Mi rendo conto che hai già deciso (entro un breve lasso di tempo) cosa farai fondamentalmente.

Prova solo a guardare il quadro più ampio, non pagherai a una singola azienda quei soldi per ospitare i tuoi server, probabilmente lo faresti tu stesso.

    
risposta data 18.07.2012 - 20:35
fonte
0

Quasi 10 anni fa, ero nella stessa situazione. Tuttavia, tutto il mio software Microsoft mi è stato consegnato e ho avuto un parente che era un manager in un grande negozio Microsoft mi ha aiutato con lo sviluppo. Un anno e $ 50K in spese successive, Microsoft ha apportato modifiche a .NET che ha gettato tutto in un ciclo e abbiamo dovuto ricominciare da capo (per farla breve, non chiedere).

Su consiglio del mio parente, passammo a FreeBSD e Linux e, tre mesi dopo, ricostruimmo tutto praticamente per niente usando le stesse persone. Siamo una fiorente attività di sviluppo di piccoli Web e non abbiamo dovuto comprare alcun software (o hardware) da allora.

    
risposta data 03.10.2012 - 14:13
fonte

Leggi altre domande sui tag