2008-09-10 12 views
16

(Comenzaré dejando en claro que no soy un desarrollador de .NET y no estoy vinculado a ningún otro entorno).¿Qué tan bien escala .NET?

Recientemente me enteré de que la Bolsa de Londres cayó durante todo un día. También escuché que el software fue escrito en .NET. Hasta este punto, experimentarían éxitos de rendimiento en días ocupados. La gente parece estar culpando a .NET.

No quiero debatir la historia, pero me trajo a la mente la pregunta de ¿cómo escala .NET? ¿Qué tan grande es demasiado grande para .NET?

+2

HELL-OH todo el mundo! HI DR * NIX! (Lo siento, no pude resistir - buen nombre): D –

+1

¿Es este cebo de llama? –

+0

Hablé recientemente con una empresa ... cambiaron a Java, no debido a la escalabilidad insuficiente de .NET, sino a una escalabilidad excesiva ... de los derechos de licencia. Este pequeño emprendimiento iba a sufrir más de un millón de dólares para lograr una redundancia sin punto de falla para su aplicación de misión crítica. :( –

Respuesta

13

Desafortunadamente, hay muchos otros problemas que pueden causar que un proyecto disminuya a medida que aumenta, que tiene mucho que pasar antes de que pueda llegar a un marco al que culpar. Y a menos que pueda ver y analizar minuciosamente el código fuente, sería difícil decir cuál fue la causa raíz. Estaría dispuesto a apostar que no era el marco.

Y no, no trabajo con .NET todos los días.

0

¿Por qué .NET tendría alguna limitación de tamaño que otras plataformas no tendrían? No me puedo imaginar ninguna situación en la que te vayas a "hacer demasiado grande" para .NET. Sin embargo, realmente debe especificar si está hablando de una aplicación .NET winforms o ASP.NET, así como de otros factores relevantes. Esta pregunta es demasiado vaga como para responderla en detalle.

El hecho de que su nombre sea 'Dr Unix' implica algún sesgo, por cierto.

+0

El hecho de que su nombre sea 'Dr Unix' debería implicar, si acaso, que tiene mucha experiencia en Unix, pero es difícil pensar que eso implique un sesgo a favor o en contra de .NET. Solo mis 2 centavos. –

+0

Dr.UNix preguntando por la escalabilidad de .NET que proporciona un ejemplo negativo es algo parcial. No importa cómo lo pongas, Brian. –

+0

@Andrei: De acuerdo. Gracias. – GEOCHET

7

Muchos sitios grandes como MySpace, Dell.com se ejecuta en asp.net. Además, consulte este MSDN article, que ofrece una buena perspectiva de los expertos.

0

Hecho bien, la arquitectura descarga la mayor parte del estado transitorio en el cliente, lo que hace que la agrupación sea más fácil, lo que la hace sorprendentemente escalable. Por lo tanto, es un problema del sistema como un todo, en oposición a ASP.NET directamente en ese punto.

Mis 2 centavos.

0

Bueno, creo que este sitio está en un .NET Framework. Además, los sitios de Microsoft están basados ​​en él. Entonces, creo que si se hace correctamente, entonces un sitio .net escalará. Vea algunos de los comentarios que Jeff hizo sobre este sitio y los problemas tienden a llegar a problemas de codificación o arquitectura.

25

Honestamente, creo que se reduce a la optimización del código, además de la infraestructura.

En StackOverflow Podcast 19, Jeff comentó sobre cómo tuvieron que ajustar SQL Server para manejar los tipos de cargas que tiene StackOverflow; observe que no era .NET lo que necesitaba ajustes aquí.

También hay que tener en cuenta que MySpace.com, one of the most massive social networks out there, runs on ASP.NET.

El uso de MySpace de ASP.NET solo es un testimonio de su escalabilidad. Se reducirá a cómo los desarrolladores escribirán sus aplicaciones de tal manera que aproveche mejor esa capacidad.

+3

* Tos * No estoy seguro de que defienda algo usando MySpace como ejemplo. – GEOCHET

+4

* Tos * MySpace puede apestar como un lugar para las redes sociales (como dicen, es el parque de casas rodantes de las redes sociales), pero * sí * tiene mucho tráfico y parece manejarlo bastante bien , independientemente de lo que pienses de él. –

+7

@RichB, estoy usando MySpace solo por el puro tráfico, y nada más: p ¡Obtén un jarabe para la tos! –

1

Quizás fue el volumen de transacciones lo que provocó el cambio.

Si bien muchos ejemplos dados hasta ahora son buenos, son solo grandes sitios web. (Me odias por decir "solo") Distribuyen las páginas y la aplicación ocasional (es decir, escandalosa) a los usuarios. Los procesos de una bolsa de valores compra/vende y combina compradores/vendedores. Eso sería unos pocos órdenes de magnitud más de trabajo para los servidores de aplicaciones.

Pude ver la (s) base (s) de datos cayendo.

+0

MySpace tiene gente agregando y leyendo rápidamente todo el día. No es solo una aplicación de "servir páginas y scrabulous". –

+0

Bueno,.NET es muy adecuado para entornos HTP. No se debe culpar a .NET por la razón por la que se produjo el intercambio ... sino más bien culpar a la arquitectura. Sin embargo, por lo que sé, la arquitectura está basada en mensajes, por lo que debería escalarse bien al agregar más nodos. – flalar

2

Dot Net escalas bien. Tenemos grupos de servidores que ejecutan el servidor IIS y las aplicaciones y sitios web asp.net y cuando aumenta la carga de nuestros usuarios, podemos agregar servidores (fácilmente) para aumentar la capacidad. Esto ocurre durante ciertos eventos y la escalabilidad de la arquitectura .net no nos decepcionó.

Me atrevería a adivinar (como los otros) que esto no era un problema de .net.

6

Puede escribir código malo que no pueda escalar en cualquier idioma.

.Net es bastante capaz de escalar a cualquier tamaño de sistema, pero, al igual que con cualquier otra pila de tecnología, debe tener en cuenta el sistema de escalamiento.

La LSE cayó en el peor día posible, pero cualquiera que sea la razón por la que dudo que fuera la pila subyacente, ese era el problema. Sospecho que este es un caso de trabajadores pobres culpando a sus herramientas.

5

En realidad, el tiempo de inactividad en la LSE no tenía absolutamente nada que ver con su plataforma de comercio .NET:

El LSE dijo que el sistema había sido alcanzado por un "problema de conectividad" e insistió en que el problema no radicaba con su plataforma comercial emblemática TradElect.

http://www.itworld.com/networking/54760/london-stock-exchange-trading-stops-network-fails

+0

Entonces, ¿alguien literalmente sacó un cable? En ese caso, cualquier tecnología habría "fallado". –

1

Todo se reduce a 3 cosas:

  • ¿Qué tan bien está la aplicación planeada
  • Cuál era el objetivo inicial de la escala de la persona que lo construyó
  • curso trabajar en los pozos para mejorar y escalar una solución.

MySpace fue mencionado anteriormente, es un hecho conocido que han reescrito su aplicación unas cuantas veces cuando alcanzan un nuevo paso de escala (n. ° de usuarios/páginas vistas/etc). Si han elegido construir la última versión para empezar, habría sido demasiado costoso de mantener y no fue rentable: la escalabilidad debe basarse en la posición actual y el siguiente objetivo de escala.

Una última cosa: aunque a menudo se considera evasiva, la prueba de esfuerzo sólido puede darle una buena idea de cómo su aplicación trata con la carga que pretende antes de que los usuarios la experimenten y ocurra un desastre.

1

Como dijeron otras personas, no es una cuestión de plataforma.

Lo que importa es la arquitectura de su aplicación: equilibrio de carga, administración de estado, partición, etc. ... No son específicos de la plataforma.

-3

Realmente me molesta cuando la gente dice que .NET es una plataforma de elección porque 'es escalable', no es más o menos escalable que cualquier otra plataforma: PHP, ColdFusion, JSP o aplicaciones nativas compiladas con C++/Delphi, etc. ..La escalabilidad no es una característica del marco, es una característica del diseño de la aplicación.

MySpace ciertamente no es partidario de la escalabilidad, en su lugar mira la tecnología detrás de la búsqueda de Google, o el proyecto SETI @ home.

.NET es en realidad mi plataforma menos favorita para trabajar porque ha ido demasiado lejos al tratar de simplificar el software, tanto que hay cosas que quiero hacer que no puedo, y por lo tanto intentar superarlas. Las limitaciones de NET pierden tiempo donde se habría logrado de manera fácil y rápida con C++ o PHP. .NET es para el desarrollo de software lo que los bloques duplo son para la ingeniería mecánica: ningún ingeniero mecánico que se precie se verá obligado a utilizar bloques cuadrados de una pulgada de ancho.

Si una aplicación necesita ser escalable, debe pensar en qué datos se deben compartir entre los servidores, y cuáles son los datos mínimos requeridos para que la aplicación se ejecute y cumpla con su propósito. La necesidad de escalar una aplicación a menudo puede evitarse al tener un código supereficiente en primer lugar (por ejemplo, no .NET o Java), pero esto generalmente requiere una comprensión básica del ensamblaje y cómo se traduce a la máquina el idioma elegido. código.

+1

No estoy de acuerdo en que la escalabilidad sea una característica del marco frente a una característica del diseño de la aplicación. Un lenguaje compilado va a escalar mejor (bueno, al menos usar menos recursos) que un lenguaje de scripting, como PHP. Ruby es súper popular en este momento, pero también tiene algunos * posibles * problemas de escalabilidad, ya que tiene un solo subproceso. Estoy seguro de que me darán un salto en este caso, ya que hay, por supuesto, maneras de lidiar con esto. – ChickenMilkBomb

+0

Un marco puede proporcionar características que permitan el desarrollo de aplicaciones escalables, o puede omitir tales características, y evitar que tales aplicaciones se desarrollen. –

+0

Creo que encontrará que PHP (a pesar de tener secuencias de comandos) puede superar a ASP.NET logrando el mismo resultado porque ASP.NET tiene una costosa sobrecarga de generar un DOM en el servidor para cada página procesada. Los puntos de referencia imparciales son difíciles de encontrar, así que solo puedo sugerir que lo pruebes por sí mismo en busca de pruebas contundentes, lo hice. No me malinterpreten, mi lenguaje de elección es siempre C++ para el rendimiento, PHP tiene su lugar y también .NET. El punto es que muchas personas defienden .NET sobre creencias falsas; que .NET es más escalable, o de mejor rendimiento que cualquier otra cosa. –

0

Tengo un sitio web asp.net relativamente grande, y he descubierto que escala de manera excelente. Por supuesto, gran parte de esto lo atribuyo a tener algunas excelentes herramientas para diagnosticar y corregir los cuellos de botella en el código. Me atrevo a adivinar que los problemas de codificación causan el 99,99% de los problemas que las personas tienen en cualquier marco.

1

Posteriormente noticias ...

"TradElect, tecnología de la plataforma comercial del grupo que se fija para ser reemplazado más tarde este año por el software desarrollado por MillenniumIT, el proveedor de tecnología de Sri Lanka propiedad de la LSE." ...

http://www.efinancialnews.com/story/2010-09-13/ex-lse-tech-chief-joins-green-investment-company

“Esta operación permite al Grupo para implementar una nueva, más ágil, innovadora y eficiente capacidad de TI para nuestro desarrollo futuro del negocio, así como la ejecución de una nueva plataforma de operaciones en efectivo que proporcionará sustancialmente menor latencia, significativamente mayor capacidad y escalabilidad mejorada.”...

http://www.computerworlduk.com/news/it-business/16590/london-stock-exchange-buys-millennium-it-trading-platform-supplier/

Cuestiones relacionadas