2012-09-15 1 views
2

Donc, nous sommes en 2012, le Web est partout, et avec une pléthore de plates-formes et de services, il n'a jamais été aussi facile de commencer. Maintenant, je suis un programmeur à moitié décent, je comprends les technologies Web (en grande partie frontale), et pour paraphraser un vieil adage, tout le monde a une application en eux. En effet, en tant que programmeur aspirant [et délirant], je pense aussi que mon application sera incroyable et changera le monde. Au risque de devenir incontrôlable devant moi et de mettre à l'échelle ma nouvelle application complètement hors de portée, disons que mon application aura très rapidement 100 millions d'utilisateurs, et à tout moment il y aura des millions d'utilisateurs simultanés .Server Side Architecture Conseils pour One-Man Web App Start-Up

MyNiceApp

Par souci de simplicité, MyNiceApp est une application Web d'une seule page (pas une application mobile native, réduit notre attention à tous) qui comprendra une interface utilisateur simple comprenant un bouton cliquable et une étiquette pour la réponse. Chaque fois que l'utilisateur clique sur le bouton, MyNiceApp notifie immédiatement le côté serveur de l'événement, un compteur de source de données numérique est ensuite incrémenté côté serveur et l'interface utilisateur reçoit une réponse qui est la dernière valeur/mise à jour. Comme Twitter, mais pas.

Tech

Employons HTML et Javascript côté client (JS pour gérer les requêtes AJAX/réponses), mais la mise en œuvre côté serveur est ouvert pour examen. Beaucoup a été dit et écrit sur les nouvelles technologies côté serveur (plus à la mode?) Comme NodeJS (pour gérer les E/S) et NoSQL (RDBMS est si ennuyeusement essayé et testé n'est-ce pas), mais plus que tout ce que MyNiceApp devrait être fiable et robuste, il s'agit vraiment d'identifier les bons outils, qu'ils soient «anciens» ou «nouveaux».

Questions de mise en œuvre

Et, enfin, au point (s): comme une opération d'un homme qui travaille d'abord (et inexplicablement) sur un petit budget (les VCs vont sûrement venir frapper bien), À quoi dois-je penser lors de la conception de mon architecture côté serveur? Quels services cloud, technologies côté serveur, plates-formes (PAAS), matériel et modèles/techniques de calcul distribué seront les plus adaptés pour gérer les millions de connexions à MyNiceApp (à chaque couche d'accès/de transfert de données)?

Je pense que ce que je demande vraiment est ceci: est-ce que je peux assembler une architecture côté serveur évolutive N-tier sérieuse avec seulement [actuellement] une compréhension large des composants? Ou dois-je mettre MyNiceApp à l'écart pendant un an alors que j'étudie pour un master en informatique distribuée et architecture de base de données?

Addendum: Je me rends compte que j'ai mélangé trivialité avec de vraies préoccupations, et même si je reconnais que derrière toute application/service Web sérieux/succès est bien sûr une équipe de personnes, je suis également intrigué par le défi/potentiel de maximisation de la technologie existante pour une vaste participation (avec un budget restreint). J'ai limité la complexité du frontal, mais je soupçonne que les véritables défis techniques se situeraient toujours dans l'architecture côté serveur.

Répondre

2

Au risque de faire de façon incontrôlable avant moi-même et l'extension de mon incroyable nouvelle application complètement hors de portée, laissez-nous dire que mon application va très rapidement des 100 millions d'utilisateurs, et à tout moment, il y aura des millions des utilisateurs simultanés.

Bien. Ce n'est rien que tu gères par toi-même. Alors ignorons cela pour un moment.

Par souci de simplicité, MyNiceApp est une application Web d'une seule page (pas une application mobile native, rétrécissant notre objectif à tous) qui comprendra une interface utilisateur simple comprenant un bouton cliquable et une étiquette pour la réponse . Chaque fois que l'utilisateur clique/tape sur le bouton, MyNiceApp notifie immédiatement le côté serveur de l'événement, un compteur de source de données numérique est ensuite incrémenté côté serveur et l'interface utilisateur reçoit une réponse qui est la dernière valeur mise à jour

Depuis l'application est aussi simple: Choisissez la technologie que vous connaissez. Concentrez-vous sur le faire fonctionner aussi vite que vous le pouvez. Peu importe ce que vous choisissez. Lorsque vous obtenez l'argent, il suffit de le réécrire en utilisant une approche plus robuste. Il est probable que vous avez une équipe qui peut le faire mieux que vous.