Obecnie biorę udział w starcie, jestem obecnie jedynym zaangażowanym programistą, a pozostali faceci w tej chwili pozostawiają mi decyzje techniczne.
Do mojej codziennej pracy pracuję w domu oprogramowania, w którym codziennie korzystamy z technologii Microsoft, korzystamy z .NET, SqlServer, Windows Server itp. Zdaję sobie jednak sprawę, że jako startup musimy obniżyć koszty, a po krótkie spojrzenie na koszt hostingu dla systemu Windows Byłem zszokowany, widząc niektóre ceny serwera dedykowanego. Najtańszy, jaki znalazłem, to 100 funtów miesięcznie. Ponadto, jeśli firma będzie musiała skalować się w przyszłości, a my będziemy potrzebować wielu serwerów, moglibyśmy skończyć na 10 000 funtów rocznie na licencjach SQL Server / Windows Server itp.
Potem rzuciłem okiem na cenę hostingu Linuxa na dedykowany serwer i zobaczyłem, że cena była o wiele niższa niż na Windows Hostingu. Jedno miejsce oferowało maszynę z 2 rdzeniami za mniej niż 20 funtów miesięcznie.
To sprawiło, że pomyślałem, że najlepszą drogą może być open source w systemie Linux.
Gdy piszę dużo Javascript w pracy (pracuję obecnie nad jednostronną aplikacją szkieletową), pomyślałem, że może NodeJS i frameworki takie jak Express byłyby fajne w użyciu. Pomyślałem wtedy, że zamiast używać SQL, dlaczego nie skorzystać z otwartej bazy danych NoSQL, takiej jak MongoDB, która ma świetne wsparcie dla NodeJS?
Moją jedyną obawą jest to, że część pracy, którą wykona aplikacja, będzie dynamicznie budować obrazy i różne inne rzeczy związane z obrazami, tj. Rzeczy, które są dość obciążone procesorem - więc myślę, że może napiszę coś obciążającego procesor w C ++ i zużywa go jako moduł w węźle.
To jest tło - ale w zasadzie Linux jest dobrym wyborem dla:
- Prowadzisz witrynę NodeJS / Express?
- Kompilujesz moduły węzłów C ++?
- Korzystasz z bazy danych NoSQL, takiej jak MongoDB?
I czy warto przejść na te nieznane technologie, aby zaoszczędzić pieniądze?
AKTUALIZACJA 3 MIESIĘCZNA
Pracuję nad tym od kilku miesięcy, więc pomyślałem, że dam aktualizację na wypadek, gdyby ktoś był zainteresowany.
W końcu zdecydowałem się nie używać stosu NodeJS i Linux z prostego powodu. Robię to startup z boku, więc pracuję 9 godzin, potem wracam do domu i pracuję do późna przy starcie. Pracując w ten sposób, oczywiście muszę być maksymalnie wydajny z moim czasem, inaczej nigdy nie skończę z wysyłką produktu.
Po skorzystaniu z niektórych rad dotyczących tego wątku zgłosiłem się do Microsoft BizSpark i zostałem przyjęty. Oznacza to, że mam teraz dostęp do licencji Visual Studio, licencji Windows Server itp. - wszystko za darmo. Co jest niesamowite. Mamy nadzieję, że do czasu, gdy będziemy musieli zacząć płacić za wszystko, na co się zwrócimy, co sprawi, że nie będzie problemu.
Nie sądzę jednak, że używam tylko technologii Microsoft, ponieważ starałem się używać tam, gdzie to możliwe, rozwiązań typu open source. Głównym miejscem, w którym to zrobiłem, jest moja warstwa danych, w której zdecydowałem się na użycie PostgreSQL i MongoDB. Używam również BackboneJS na moim interfejsie.
Poniżej znajduje się podsumowanie technologii / frameworków, których obecnie używam:
- Standardowe rzeczy DB: PostreSQL
- Rejestrowanie i przechowywanie danych: MongoDB
- ORM: Entity Framework 5
- Biblioteki podstawowe: .NET (C #)
- Web Framework: ASP.NET MVC3
- Interfejs użytkownika: silnik widoku Razor / BackboneJS
źródło
Odpowiedzi:
100 £ / miesiąc? Ile ty kosztować? Ile będzie kosztowało twoje szkolenie ?
Jeśli kosztuje to 100 GBP / miesiąc, ale możesz uruchomić aplikację .NET w ciągu miesiąca, a do uruchomienia aplikacji node.js / C ++ potrzeba będzie co najmniej 3 do 6 miesięcy, wybierz platformę .NET. Poważnie. Twój czas jest znacznie droższy niż te małe 100 £ miesięcznie.
Idealnie, masz rację w swojej analizie. To, o czym zapomniałeś, to ile czasu zajmie ci zbudowanie tego wszystkiego (tj. Miesięcy), zwłaszcza w technologii, której nie znasz.
Nie zrozum mnie źle, jestem wielkim fanem Node.js i podobnych (zobacz mój profil github ...). Spędziłem ponad wystarczająco dużo czasu, aby wiedzieć, kiedy go użyć. Używanie go, gdy nie wiesz o tym w środowisku startowym (gdzie musisz wysłać ), nie jest naprawdę najlepszym rozwiązaniem.
Poza tym naprawdę nie jestem pewien, czy to może zadziałać, ale nie zapomnij o Mono.
PS: umiejętność korzystania z jQuery jest bardzo małą pomocą dla node.js. Znajomość javascript jest dużą pomocą. Nie myl obu.
źródło
Często warto przejść na stos open source, ale bardziej prawdopodobne jest, że będzie to wynikało z kombinacji czynników:
Musisz to oczywiście zrównoważyć z czasem, jaki zajmuje nauka nowych platform i technologii open source, jeśli obecnie posiadasz głównie umiejętności Microsoft.
Ogólnie rzecz biorąc, połączenie jest bliskie:
źródło
Koszt produktów Microsoft może nie być tak zły, jak myślisz. Microsoft udostępnia różne programy, które znacznie obniżają koszty ich oprogramowania. Większość z nich jest skierowana do firm tworzących oprogramowanie, ale może istnieć pakiet spełniający Twoje potrzeby.
Przykłady:
BizSpark - bezpłatne oprogramowanie MS dla startupów
TechNet - Tanie oprogramowanie MS - około 199 USD - 599 USD rocznie.
Może warto się przyjrzeć, możesz po prostu zakwalifikować się do niektórych ofert.
źródło
Koszt tego serwera to nie tylko 100 funtów miesięcznie, ale do pracy potrzebujesz odpowiednio licencjonowanej kopii systemu Windows, Visual Studio itp. Te sumy znacznie się sumują, jeśli robisz to bez uciekania się do piractwa komputerowego. A kiedy zaczniesz skalować i wymagać o wiele więcej serwerów, i replikować SQLServer, redundancję i całą resztę… pamiętaj, że MS nie zarabia miliardów dolarów z działu Serwerów i Narzędzi, ponieważ je rozdają. Podczas gdy koszt twojego czasu na przyspieszenie będzie większy niż wykorzystanie tego, co już wiesz, w perspektywie długoterminowej korzyści z kosztu OSS znacznie przewyższą początkową inwestycję w czasie.
Ogólnie rzecz biorąc, chociaż możesz być ostrożny w wypróbowywaniu tego przy użyciu nieznanej technologii, musisz zdać sobie sprawę, że i tak będziesz cały czas pracować z nową technologią. Korzystanie z node.js nie jest szczególnie trudne, szczególnie jeśli znasz już javascript, więc twój dodatkowy koszt zapoznania się z nim będzie mierzony w dniach, a nie miesiącach. Istnieje wiele samouczków i przykładów, które pozwolą Ci szybko uruchomić prototypowy kod, a są szanse, że trafisz na ścianę przepisywania, gdy uruchomienie zakończy się sukcesem, bez względu na język, w którym piszesz cały kod.
Tak czy inaczej, Linux doskonale nadaje się do kodowania C / C ++, znajdziesz jego jeden z najpopularniejszych systemów dla Linuksa, jeśli nie najpopularniejszy. MongoDB jest również dobrym wyborem, najwyraźniej wsparcie z 10gen jest całkiem dobre. Node.js też jest dobry, chociaż możesz skończyć albo pisaniem większości twojego serwera w węźle, albo używaniem go jako prostego opakowania tranzytowego do twojego kodu C ++, w zależności od tego, jak wygodnie czujesz się w jednym z tych języków.
I dobrze się skaluje. Sugeruję, abyś miał oko na Postgresql, ponieważ ma on teraz typ kolumny JSON, który zapewni wiele korzyści z baz danych NoSQL, ale pozwoli również na funkcje relacyjnej bazy danych. Postgresql jest solidny, wykorzystałem go jako część systemu dla służb ratowniczych, więc możesz zaufać jego niezawodności (mniej przestojów niż SQLServer w tym samym projekcie!)
W przypadku IDE w systemie Linux chcesz zaćmienie. To jest tak jak Visual Studio, chociaż instalacja pakietów dla CDT (narzędzia C dev) jest nieco bardziej skomplikowana.
Wreszcie, dobrze jest uczyć się nowych rzeczy, możesz cieszyć się Linuksem tak bardzo, że nie znosisz pracy :)
źródło
Naprawdę nie mam zdania na temat części twojego pytania dotyczącej serwera (węzeł działa moim zdaniem dobrze, zakładając, że znasz javascript). Powiem jednak, że bazy danych noSQL działają bardzo dobrze z serwerami Linux. Obecnie używam implementacji CouchDB (łatwa replika whooo!) Na serwerze linux i absolutnie to uwielbiam. Jeśli chodzi o kompilowanie modułów C ++, polecam wiązanie intensywnej pracy procesora w javascript. Po uruchomieniu go i podjęciu decyzji o jego powolności wejdź na wzgórze modułu C ++. Z mojego doświadczenia wynika, że po zakodowaniu manipulacji obrazem, węzeł może w końcu działać dobrze dla twoich potrzeb procesora.
źródło
„Najpierw, zrób to. Następnie, zrób to dobrze. Następnie, zrób to dobrze .”
Proponuję jak najwcześniej uruchomić technologię, która to umożliwia. Jeśli obawiasz się, że później nie będziesz mieć żadnych opcji, koduj w taki sposób, aby możliwa była wymiana modułów i powolna migracja do czegoś innego. Pamiętaj tylko, że firma musi stać się na tyle popularna, aby to uzasadnić, a wkrótce musisz mieć działający produkt.
źródło
Jako mały start-up nie potrzebujesz jeszcze serwerów dedykowanych. Możesz wybrać chmurę, która jest tańsza i zawiera już licencje MS. I używałbyś tego samego stosu co obecnie.
Istnieje wiele powodów, aby przejść na platformę Open Source, ale oszczędzanie kilku dolarów na hostingu nie jest jednym z nich.
Należy również pamiętać, że SysOps dla platformy Unix / Linux są zwykle opłacane więcej niż SysOps dla Windows. W ten sposób Twoje „oszczędności” mogą w końcu kosztować Cię więcej.
źródło
Naprawdę patrzysz na główne zmiany paradygmatu tutaj z nieznanymi technologiami. Miałem dobry sukces, konwertując aplikacje ASP.NET 2.0 i uruchamiając je na mono z bibliotekami stron trzecich. http://www.ubiquityhosting.com/ zapewnia tani hosting mono. Zarówno MySql, jak i Postgres obsługują konektory ADO.NET, co pozwala zaoszczędzić dużo czasu na programowanie. Zwykle tworzę wszystkie bazy danych w studiu zarządzania serwerem sql, a następnie wprowadzam drobne zmiany w danych wyjściowych zadania generowania skryptów sql, aby umożliwić im pracę w mysql \ postgres. Wyobrażam sobie, że działałoby to w podobny sposób dla ORM, takich jak NHibernate.
Jeśli chodzi o aplikację C ++, zawsze możesz sam hostować kilka urządzeń typu boxen, jeśli backend jest obciążony procesorem, a nie przepustowością, aby utrzymać niskie koszty związane z unikaniem serwerów dedykowanych. Maszyny z trzema rdzeniami z 2 do 4 GB pamięci RAM są tanie, a na nich działa Linux.
Wreszcie najlepiej skoncentrować się na funkcjach, interfejsie użytkownika, interfejsie graficznym i reklamach, które będą sprzedawać Twoją aplikację, a nie stos technologii. Jeśli od razu zaczniesz otrzymywać duży ruch, zawsze możesz przejść na lazur lub amazon, aby lepiej obsłużyć ładunek.
źródło
Jeśli osiągniesz skalę, która wymaga tego rodzaju pieniędzy, teoretycznie twój dochód będzie odpowiadał tym wydatkom i będziesz mógł uzyskać lepsze oferty i hostować rzeczy z własnym sprzętem. Jednym z powodów, dla których twoje cytaty są tak wysokie, jest to, że wypożyczasz sprzęt, a nie kupujesz go i nie sam go hostujesz (cerca facebook, Amazon, Microsoft).
Moje pierwsze pytanie brzmi: „co jest nie tak z firmą oferującą tego rodzaju ceny” i ile kosztowałby serwer Linux w tej samej firmie, co serwer Windows? Wiem, że zadaję pytanie w odpowiedzi, ale samo pytanie jest odpowiedzią.
Moją jedyną propozycją jest użycie tego, co znasz. Skorzystaj z istniejących programów, aby pomóc firmom takim jak Twój, odnieść sukces, a kiedy już odniesiesz sukces, możesz wprowadzić i dokonać DOWOLNEJ zmiany, którą chcesz. Jeśli odniesiesz taki sukces i jesteś w stanie pozwolić sobie na wyższe ceny, możesz zdecydować, że to nie jest problem.
Jak powiedziałem, twoje obawy są słuszne, ale czy patrzysz na to z właściwej skali, czy spojrzałeś na prognozy biznesowe, które pomogą ci zdecydować, co robić? Zdaję sobie sprawę, że już zdecydowałeś (w krótkim czasie), co właściwie zamierzasz zrobić.
Spójrz tylko na szerszy obraz, nie zapłacisz ani jednej firmie, która mogłaby hostować twoje serwery, prawdopodobnie zrobiłbyś to sam.
źródło
Prawie 10 lat temu byłem w tej samej sytuacji. Jednak całe moje oprogramowanie Microsoft zostało mi przekazane i miałem krewnego, który był menedżerem w dużym sklepie Microsoft, który pomógł mi w rozwoju. Po roku i 50 000 USD wydatków Microsoft wprowadził zmiany w .NET, które zmieniły wszystko w pętlę i musieliśmy zacząć od nowa (Krótko mówiąc. Nie pytaj.).
Za radą mojego krewnego przeszliśmy na FreeBSD i Linux, a trzy miesiące później przebudowaliśmy wszystko praktycznie za darmo, używając tych samych ludzi. Jesteśmy prężnie rozwijającą się małą firmą zajmującą się tworzeniem stron internetowych i od tego czasu nie musieliśmy kupować żadnego oprogramowania (ani sprzętu).
źródło