Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer
När du pratar om banksystem som flyttas till .NET så är det inte kritiska system. De kritiska banksystemen (de som hanterar alla våra pengar i Sverige) körs på stordatorer. Ingen bank skulle vara dum nog att flytta såna till .NET och Windows.
Fullt möjligt att storbankerna inte migrerar sina kritiska system till .NET och Windows, men flera av de något mindre bankerna som t.ex. Ica banken och SBAB kör sina banksystem på just Windows och .NET.
Jag var lite otydlig (Verkar vara min grej) detta gäller prestanda av domain. (UDP-biten var bortstubbad när vi fick sådana siffror). Jag har tyvärr inga bra siffror då jag inte gjorde testerna för transport, några andra i teamet som stog för det. Men det var bra tryck på den
Ah, missade ditt inlägg till saddam om detta. Så vad du säger är att 2M per sekund siffran är mätt på något som är nära nog irrelevant för det slutgiltiga systemet då en extremt kritiskt del, hur ni hanterar spridningen av inkommande trafik mellan CPU-kärnor, saknas.
Det man kan konstatera är att trots att ni tagit bort delen som hanterar I/O så lägger er kod på minst 4-8µs latens och ni spenderar runt 10k cykler per meddelande (gissar att ni körde på Xeon-baserade servers med relativt hög klockfrekvens då dessa ger låg latens). Knappast något som visar att .NET duger till högprestandasystem, man kan uppnå detta med JavaScript. Faktum är att JS ihop med node.js är ett ruggigt bra ramverk för att utveckla skalbara www-servers. Sättet node.js hanterar I/O och sättet det delar upp jobb via sin standard klustermodul är betydligt mycket mer lämpad för NUMA-system (som alla multi CPU-sockel system är idag) än vad både .NET och Java är.
Säger inte att .NET är inte kan användas för back-end, i många fall har man långt värre flaskhalsar än affärslogiken och i dessa lägen är inte ens skriptspråk en flaskhals. Bygger man däremot riktigt prestandakritiska system på .NET så har man gjort fel då moderna JVMer (Oracles, IBMs eller OpenJDK7) är en betydligt mycket mer effektiv runtime-miljö än vad CLR är. Det är faktiskt imponerade att Java7 har en prestanda helt i nivå med program skrivna i C eller C++ i de flesta fall. Med Java har man också möjlighet att välja bland fler OS, t.ex. så skulle kapaciteten för att ta emot UDP-paket stiga rätt kraftigt om ni bytt ut Windows till Linux, fast nu är de meddelandefrekvenser man faktiskt har i HFT-system (tusentals per sekund) inte ett problem för Windows att hantera.
Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer
Sluta nu för fan, en av många definitioner av Backends är ett system som föder andra system med data.
Visst är det sant. Men min poäng är att de stora servrarna, aktiebörser, etc dvs själva ryggraden, som alla börsmäklare etc accessar - körs inte på Windows. De stora Enterprise system körs alla på Mainframes/OpenVMS/Unix/Linux. Men visst är det så att många klienter till dessa stora servrar, är uppbyggda som klient/server och feedar andra system med data, ute hos klienten. Men de stora bank/aktiesystemen, etc - körs inte på Windows.
Så, nej, det kryllar inte av såna system på Windows. London Stock Exchange försökte med Windows, och bytte efter något år. Jag känner inte till någon börs som kör på Windows. LSE och Johannesburg körde båda på Tradelect (Windows) och LSE bytte till Linux. Strax efter gjorde Johannesburg detsamma.
http://www.h-online.com/open/news/item/Johannesburg-Stock-Exc...
Så det finns ingen börs som körs på Windows.
visst jag kan förstå varför en bank inte skulle lägga sina coretjänster på en windows server, men jag tror garanterat att det skulle gå. Om jag och mitt team designa det
Det tror inte jag. Jag tvivlar inte på er kompetens, jag säger bara att det finns faktorer som ni inte kontrollerar, t..ex hur instabilt Windows är vid stora laster, det kan ni inte göra något åt, oavsett hur duktiga ni är. Däremot tror jag att om ni valde Unix/Linux så skulle ni nog lyckas. Ni väljer fel verktyg helt enkelt. Ingen kör stora Enterprise system på Windows, de som försökt, har misslyckats. Om ni väljer ett seriöst OS, så tror jag absolut på ditt påstående.
Fullt möjligt att storbankerna inte migrerar sina kritiska system till .NET och Windows, men flera av de något mindre bankerna som t.ex. Ica banken och SBAB kör sina banksystem på just Windows och .NET.
Jag har också hört att de kör Windows, men de har inte lika stor last som storbankerna.
Banker kör typiskt saker batchvis, de har inte enorma krav på latency eller throughput som finanssystemen har. Banker gör typiskt lite uppdateringar (t.ex. ränteberäkningar) på massa konton över natten. Eller typ, drar ifrån lite pengar från ett konto. Ganska enkla saker.
Finanssystemen har ofta stora krav på prestanda, och om det laggar en halv sekund så kan det vara oacceptabelt och förstöra aktieaffärerna för många banker.
Kraschar en liten bank så kanske det tar någon timma innan pengarna registreras på kontot, men det gör inte så mycket. Kraschar en stor aktiebörs så blir det rubriker över hela världen. Mao, det är möjligt att köra små banksystem på instabila OS, såsom t.ex. ICA gör. Det är inte katastrof när systemen kraschar (vilket händer då och då, om man tittar på tidigare Windows track record) eftersom det drabbar så få kunder. Det är inte kritiskt.
Däremot går det inte att köra ett stort finanssystem på Windows. Ingen gör det. Och inte heller kör Storbankerna på Windows. Möjligen kan man migrera storbankerna till OpenVMS, för OpenVMS kluster har grym RAS, bättre än Unix/Linux. Men man har ju låst in sig på stordatorer, och går inte att komma därifrån billigt.
Spelnyheter från FZ
Copyright © 1999–2024 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.