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


32

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

Per il mio lavoro quotidiano lavoro in una software house che utilizza la tecnologia Microsoft quotidianamente, utilizziamo .NET, SqlServer, Windows Server ecc. Tuttavia, mi rendo conto che come startup dobbiamo ridurre i costi e dopo aver un breve sguardo 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 in futuro l'azienda dovesse ridimensionarsi e alla fine avessimo bisogno di più server, potremmo finire per sborsare £ 10 di £ 000 all'anno in licenze di 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 praticamente inferiore all'hosting di Windows. Un posto offriva una macchina con 2 core per meno di £ 20 al mese.

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

Mentre scrivo molto Javascript al lavoro (al momento sto lavorando su una backbone app a pagina singola), ho pensato che forse NodeJS e un framework web come Express sarebbero stati belli da usare. Ho quindi 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 eseguirà sta costruendo in modo dinamico immagini e varie altre cose relative alle immagini, cioè cose che sono abbastanza pesanti per la CPU - quindi sto pensando di scrivere qualcosa di pesantemente CPU in C ++ e consumandolo come modulo in Node.

Questo è lo sfondo, ma fondamentalmente Linux è una buona corrispondenza per:

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

Ed è una buona idea passare a queste tecnologie sconosciute per risparmiare denaro?


AGGIORNAMENTO DI 3 MESI

Ci sto lavorando da qualche mese, quindi ho pensato di dare un aggiornamento nel caso qualcuno fosse interessato.

Alla fine ho deciso di non utilizzare uno stack NodeJS e Linux per la semplice ragione del tempo. Faccio questa startup sul lato, quindi lavoro 9 ore al giorno, poi vado a casa e lavoro fino a tardi all'avvio. Lavorando 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 e sono stato accettato. Ciò significa che ora ho accesso gratuito alla licenza di Visual Studio, alla licenza di Windows Server, ecc. È fantastico. Speriamo che quando dovremo iniziare a pagare per tutto ciò che gireremo abbastanza da renderlo un problema.

Non pensare che sto usando solo la tecnologia Microsoft, tuttavia, poiché ho cercato di utilizzare roba open source ove possibile. Il posto principale in cui l'ho fatto è il mio livello dati, dove ho deciso di utilizzare PostgreSQL e MongoDB. Sto anche usando BackboneJS sul mio front-end.

Di seguito è riportato un riepilogo della tecnologia / framework che sto attualmente utilizzando:

  • Roba DB standard: PostreSQL
  • Registrazione e archiviazione dati: MongoDB
  • ORM: Entity Framework 5
  • Librerie di base: .NET (C #)
  • Web Framework: ASP.NET MVC3
  • UI: Razor view engine / BackboneJS

3
Hai studiato Mono? C # e gran parte del framework, su Linux. Non l'ho usato con rabbia, è solo un pensiero.
TarkaDaal,

5
Ai livelli di avvio iniziali non c'è nulla che non puoi ottenere gratuitamente da Microsoft che non soddisfi le tue esigenze. Successivamente è possibile utilizzare il loro programma BizSpark per facilitare l'avvio fino a quando non si ottengono entrate significative. Anche come startup che utilizza prodotti aperti, probabilmente a un certo punto finirai con un prodotto a costo come Oracle DB o qualunque cosa una volta cresciuta abbastanza.
Rig,

1
Oggi guardo BizSpark, puoi ottenere praticamente tutto il loro software gratuitamente / fino a quando la tua azienda non guadagna $ 1 milione all'anno. Davvero un buon affare, penso che se inizia a girare oltre 1 milione all'anno qualche centinaio di sterline al mese sui server sarà un bel problema!
Dormisher,

2
@dormisher: Bizspark dura solo 3 anni. Quindi puoi garantire che MS busserà alla porta per "rivedere le tue esigenze di licenza". microsoft.com/bizspark/faqs.aspx#16
gbjbaanb

1
@gbjbaanb, "L'informatica è la seconda causa più alta di gas a effetto serra (accanto alle compagnie aeree)" ... Hai una fonte affidabile per quella spazzatura? O stai solo ripetendo le sciocchezze che qualcun altro ti ha detto? La maggior parte delle fonti che ho studiato in passato hanno messo il traffico automobilistico al numero 1.
riwalk

Risposte:


35

£ 100 / mese? Quanto vi costa? Quanto costerà la tua formazione ?

Se è £ 100 / al mese ma puoi ottenere un'app .NET in un mese, mentre avrai bisogno di almeno 3-6 mesi per far funzionare l'app node.js / C ++, scegli .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 ci vorrà per costruire tutto questo (ad esempio mesi) soprattutto in una tecnologia che non conosci.

Ora non fraintendetemi, sono un grande fan di Node.js e simili (basta vedere il mio profilo github ...). Ho trascorso più del tempo sufficiente per sapere quando usarlo. Usarlo quando non lo si conosce in un ambiente di avvio (dove è necessario spedire ) non è davvero la soluzione migliore.

Inoltre, non sono davvero sicuro che funzioni, ma non dimenticare Mono.

PS: sapere come usare jQuery è un piccolo aiuto per node.js. Conoscere javascript è di grande aiuto. Non confondere entrambi.


Ho pensato a quanto ci vorrà e sono diviso tra .NET e Node. È davvero difficile sapere quanto tempo mi impiegherà a utilizzare Node. Vedi che il sito reale sarà principalmente seduto sul client, quindi la maggior parte della logica aziendale sarà effettivamente sul client. Quindi a questo proposito .NET o Node - non importa davvero. Non penso che scrivere un set di API sul back-end in ASP.NET WebAPI vs Node farà la differenza. E immagino che se uso un ORM sopra MongoDB tutto quello che sto facendo è giocare con JSON, niente di complicato.
Dormisher,

1
@dormisher Se è solo un server REST, allora sì, immagino che la parte del nodo non sarà un problema (e ci sono strumenti migliori quindi esprimere :-)). Per la parte pesante della CPU, devi chiaramente farlo in C ++. Dipende da come puoi gestirlo.
Florian Margaine,


4
Vorrei davvero che la gente smettesse di dire cose come "Mono è .NET su Linux!" Non lo è. È un'approssimazione facsimile. È vicino ma c'è molta curva di apprendimento. Inoltre, gli strumenti di sviluppo non sono così raffinati.
Rig

4
"la maggior parte della logica aziendale sarà effettivamente sul client" Quindi la maggior parte della logica aziendale sarà disponibile in testo semplice a chiunque visualizzi il tuo sito? Potrebbe voler ripensarlo.
Adrian J. Moreno,

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 un po 'di denaro su licenze e 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 di dover fare una startup qualunque sia lo spazio che stai prendendo di mira? Il tuo tempo vale più di una piccola quantità di denaro.
  • Evitare il blocco della piattaforma : importante se si desidera avere la flessibilità di 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 potresti preferire (a parità di condizioni) rispetto agli equivalenti Microsoft. Guarda ad esempio alcune delle soluzioni di big data basate su Java come Hadoop o Cassandra ....
  • Produttività - alcune delle soluzioni open source sono straordinariamente produttive una volta che ti sei aggiornato con loro - Ruby on Rails, Clojure ecc.
  • Comunità : le comunità open source sono molto utili e di solito possono aiutarti a risolvere molti problemi gratuitamente tramite forum, documentazione online, sale IRC ecc.

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

Nel complesso è una chiamata ravvicinata:

  • Se hai già un mix di competenze, in genere consiglierei di seguire il percorso open source. La mia esperienza è che a lungo termine funziona meglio.
  • Se hai solo le competenze di Microsoft, penso che probabilmente vorrai rimanere con Microsoft solo per il motivo che sarai più veloce a metterti in funzione. Le start-up devono spostarsi rapidamente e l'apprendimento di uno stack tecnologico completamente nuovo non è un problema aggiuntivo che si desidera avere nel piatto.

3
Se vai (come stanno suggerendo) C ++ avranno ancora un blocco della piattaforma, solo un'altra piattaforma ... E per quanto riguarda le comunità utili, il più delle volte la risposta standard è "ecco la fonte, capisci tu stesso "o" se effettui una donazione sufficiente,
POSSIAMO

8

Il costo dei prodotti Microsoft potrebbe non essere così grave come si pensa. Microsoft ha a disposizione vari schemi che riducono notevolmente il costo del loro software. Molti di questi sono rivolti 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 esaminare, potresti semplicemente beneficiare di alcune delle offerte.


3
Bizspark - 3 anni di roba gratis. Technet / MSDN - gratuito, ma non per uso in produzione. Pertanto, sebbene sia possibile svilupparlo, non è possibile distribuire il codice se non si paga per tutte le licenze complete.
gbjbaanb,

@gbjbaanb - Cosa c'è di sbagliato in 3 anni di roba gratis? Technet / MSDN non è gratuito, è per lo sviluppo, che è quello che stanno facendo.
Ramhound,

1
@Ramhound: la risposta ha suggerito Technet per loro, volevano sapere quanto costavano le licenze di produzione. Troppe persone pensano che un sub MSND o Technet offra loro software gratuito (fino a quando MS non li controlla). L'OP non ha mai richiesto licenze di sviluppo, solo SQL Server e Windows. 3 anni gratuiti sono fantastici, fino al 4 ° anno e devi capire a quante cose ti sei abituato.
gbjbaanb,

Microsoft offrirà licenze di sconto dopo 3 anni se non sei un grande produttore di soldi .. se stai facendo soldi .. devo pagare il fisco
hanzolo

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 si sommano considerevolmente se lo fai senza ricorrere alla pirateria software. E una volta che inizi a ridimensionare e richiedere molti più server e replicare SQL Server, ridondanza e tutto il resto ... beh, ricorda che MS non guadagna miliardi di dollari dalla loro divisione Server e Strumenti perché lo distribuiscono. Mentre il costo del tuo tempo mentre ti metti al passo sarà maggiore rispetto all'utilizzo di ciò che già conosci, a lungo termine, i vantaggi del costo OSS supereranno di gran lunga l'investimento iniziale nel tempo.

In linea di massima, mentre potresti essere cauto nel provare questo utilizzando una tecnologia sconosciuta, devi capire che lavorerai sempre con la nuova tecnologia in ogni caso. L'uso di node.js non è particolarmente difficile, specialmente se conosci già javascript, quindi i tuoi costi aggiuntivi per familiarizzarti un po 'verranno misurati in giorni anziché mesi. Ci sono molti tutorial ed esempi che ti metteranno in funzione con il prototipo di codice in pochissimo tempo, e probabilmente avrai un muro di riscrittura una volta che l'avvio avrà successo, indipendentemente dalla lingua in cui scrivi tutto il tuo codice.

Quindi, 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 è un'ottima scelta, a quanto pare il supporto di 10gen è abbastanza buono. Anche Node.js è buono, anche se potresti finire per scrivere la maggior parte del tuo server nel nodo o usarlo come un semplice wrapper pass-through nel tuo codice C ++, a seconda di come ti senti a tuo agio con una di queste lingue.

E si ridimensiona bene. Suggerirei di tenere d'occhio Postgresql poiché ora ha un tipo di colonna JSON che ti darà molti dei vantaggi dei DB NoSQL, ma ti consente anche le funzionalità di DB relazionale. Postgresql è solido come una roccia, l'ho usato come parte di un sistema per i servizi di emergenza in modo da poterti fidare per l'affidabilità (in realtà meno tempo di inattività del server SQL sullo stesso progetto!)

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

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


8
"vuoi eclissi. È proprio come Visual Studio" Alzo qui la bandiera principale di BS. Eclipse non è nemmeno allo stesso livello di Visual Studio. Sono passati anni. Forse un decennio.
Rig,

4
Il software Microsoft è gratuito per le startup. BizSpark . Le start-up sono a corto di soldi. Dovrebbero dedicare tempo minimo all'addestramento o all'apprendimento. Una volta che "inizi a ridimensionare e richiedi un numero maggiore di server" e devi pagare Microsoft, spero che guadagnerai notevoli entrate. Sarai in grado di permettertelo. Tu, personalmente, probabilmente ora sarai in una sala del consiglio o addirittura in una casa al mare da un milione di dollari, e delegherai questi problemi ai tuoi flunkies. Non preoccuparti troppo della scalabilità a lungo termine. Preoccupati di ottenere clienti e guadagnare denaro al più presto.
MarkJ,

4
@Rig Eclipse è molto buono, sembra VS, debug come VS e ha molte funzionalità come VS. Le somiglianze finiscono quando guardi da vicino, ma non ho trovato molta differenza nella codifica quotidiana.
gbjbaanb,

2
Penso che ci sia un motivo per cui la maggior parte di Internet funziona su Linux e OSS. La maggior parte delle startup non vende a Microsoft nemmeno per $ 8 miliardi. Quindi stai davvero negoziando un guadagno a breve termine (che non credo sia tanto costo) per i costi a lungo termine che si esauriranno nei tuoi flussi di cassa. Il flusso di cassa è molto importante per le startup.
gbjbaanb,

3
@gbjbaanb Dire Eclipse è "come" Visual Studio significa dire che una rana è come un principe.
Rig,

4

Non ho davvero un'opinione sulla parte del 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 lo adoro assolutamente. Per quanto riguarda la compilazione dei moduli C ++, consiglierei di collegare il lavoro intensivo della CPU in JavaScript. Dopo averlo fatto funzionare e decidere che è lento, quindi scalare la collina del modulo C ++. Nella mia esperienza, avendo manipolato le immagini in codice, il nodo potrebbe finire per funzionare bene per le tue esigenze della CPU.


1
Credo che l'unico database in cui mi sono imbattuto che non funzioni bene con i server Linux sia MS SQL Server.
TMN,

2

"Prima, fallo. Poi, fallo bene. Poi, fallo bene ."

Suggerirei di lanciare il prima possibile, sulla tecnologia che lo rende possibile. Se sei preoccupato di non avere più opzioni in un secondo momento, codifica in modo tale che sia possibile scambiare moduli e migrare lentamente verso qualcos'altro. Ricorda solo che l'azienda deve diventare abbastanza popolare da giustificarlo e devi avere presto un prodotto funzionante.


2

Come piccolo 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 attualmente.

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

Inoltre, tieni presente che le piattaforme SysOps per Unix / Linux sono generalmente pagate più di SysOps per Windows. Quindi il tuo "risparmio" potrebbe costarti di più.


1

Stai davvero guardando i principali cambiamenti di paradigma qui con le tecnologie sconosciute. Ho avuto un buon successo con la conversione di app ASP.NET 2.0 e con l'esecuzione su librerie mono con librerie di terze parti. http://www.ubiquityhosting.com/ fornisce hosting mono economico. Sia MySql che Postgres supportano i connettori ADO.NET che ti fanno risparmiare molto tempo di sviluppo. Generalmente sviluppo tutti i miei database in SQL Server Server Studio Studio, quindi apporto piccole modifiche all'output dell'attività di generazione di script sql per farli funzionare in mysql \ postgres. Immagino che funzionerebbe in modo simile per ORM come NHibernate.

Per quanto riguarda un'applicazione C ++, potresti sempre ospitare tu stesso alcune caselle se il lavoro di back-end è pesante per la CPU e non per la larghezza di banda per mantenere bassi i costi evitando server dedicati. Le macchine triple core con 2-4 GB di RAM sono economiche con Linux in esecuzione su di esse.

Infine, è meglio concentrarsi maggiormente sulle funzionalità, UI \ UX, l'interfaccia grafica e la pubblicità che venderanno la tua app piuttosto che lo stack tecnologico sottostante. Se inizi subito a ricevere molto traffico, puoi sempre spostarti su azzurro o amazon per gestire meglio il carico.


1

Per il mio lavoro quotidiano lavoro in una software house che utilizza la tecnologia Microsoft quotidianamente, utilizziamo .NET, SqlServer, Windows Server ecc. Tuttavia, mi rendo conto che come startup dobbiamo ridurre i costi e dopo aver un breve sguardo 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 in futuro l'azienda dovesse ridimensionarsi e alla fine avessimo bisogno di più server, potremmo finire per sborsare £ 10 di £ 000 all'anno in licenze di SQL Server / Windows Server ecc.

Se raggiungi il tipo di scala che richiede quel tipo di denaro, in teoria le tue entrate corrisponderanno a quelle spese e sarai in grado di ottenere affari migliori e ospitare cose con il tuo hardware. Uno dei motivi per cui le tue citazioni sono così alte, è perché il tuo hardware a noleggio, e non lo acquisti e l'hosting da solo (cerca Facebook, Amazon, Microsoft).

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

La mia prima domanda è "cosa c'è che non va nell'azienda che offre quel tipo di prezzi" e quanto costerebbe il server linux nella stessa azienda del server windows? So di porre una domanda in una risposta, ma la domanda stessa è la risposta.

Mentre scrivo molto Javascript al lavoro (al momento sto lavorando su una backbone app a pagina singola), ho pensato che forse NodeJS e un framework web come Express sarebbero stati belli da usare. Ho quindi 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 eseguirà sta costruendo in modo dinamico immagini e varie altre cose relative alle immagini, cioè cose che sono abbastanza pesanti per la CPU - quindi sto pensando di scrivere qualcosa di pesantemente CPU in C ++ e consumandolo come modulo in Node.

Il mio unico suggerimento è usare ciò di cui sei familiare. Utilizza i programmi esistenti per aiutare le aziende come la tua ad avere successo, una volta ottenuto questo successo, puoi implementare e apportare praticamente TUTTE le modifiche che desideri. Se si ottiene questo successo e si è in grado di permettersi i prezzi più alti, è possibile decidere che in realtà non è un problema.

Come ho detto, le tue preoccupazioni sono solide, ma le stai guardando dalla scala corretta, hai esaminato le proiezioni aziendali per aiutarti a decidere cosa fare? Mi rendo conto che hai già deciso (in breve tempo) cosa farai sostanzialmente.

Prova a guardare l'immagine più grande, non pagherai a una singola azienda quel tipo di denaro per ospitare i tuoi server, probabilmente lo faresti tu stesso.


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 che mi ha aiutato con lo sviluppo. Un anno e $ 50K di spese in seguito, 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, siamo passati a FreeBSD e Linux e, tre mesi dopo, abbiamo ricostruito tutto praticamente per nulla usando le stesse persone. Siamo una fiorente attività di sviluppo di piccoli Web ora e da allora non abbiamo più dovuto acquistare alcun software (o hardware).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.