Thursday 5 October 2017

Ritter Upgrade Ausgelöst Alten Handelssystem


In Ihrem Trigger stehen Ihnen zwei Pseudotabellen zur Verfügung, Eingefügt und Gelöscht. Die diese Werte enthalten. Im Falle einer Aktualisierung werden die gelöschten Tabelle sind die alten Werte enthalten, während die eingefügten Tabelle sind die neuen Werte enthält. Also, wenn Sie die ID anmelden möchten, OldValue NewValue in Ihrem Trigger, youd Notwendigkeit, zu schreiben, so etwas wie: Grundsätzlich kommen Sie den inserted und deleted Pseudo-Tabellen, die ID greifen (was dasselbe ist, nehme ich an, in beiden Fällen ), Den alten Wert aus der Tabelle "Deleted", den neuen Wert aus der Tabelle "Eingefügt" und Sie speichern alles in der LogTable gefragt werden. In SQL Server 2008 können Sie Change Data verwenden Capture für diese. Details, wie man es auf einer Tabelle ist hier msdn. microsoften-uslibrarycc627369.aspx antwortete am 22. September um 9:46 Uhr Ihre Antwort 2017 Stack Exchange, IncI sprach auf einer Konferenz im vergangenen Jahr auf Die Themen "DevOps", "Konfiguration als Code" und "Kontinuierliche Bereitstellung" und verwendeten die folgende Geschichte, um zu zeigen, wie wichtig es ist, Bereitstellungen vollständig automatisiert und wiederholbar im Rahmen einer DevOpsContinuous Delivery-Initiative durchzuführen. Seit dieser Konferenz wurde ich von mehreren Personen gefragt, die Geschichte mit meinem Blog zu teilen. Diese Geschichte ist wahr, dass dies wirklich passiert ist. Dies ist meine Erzählung von der Geschichte auf, was ich gelesen habe (ich war nicht beteiligt). Dies ist die Geschichte, wie ein Unternehmen mit fast 400 Millionen an Vermögenswerten in Konkurs ging in 45 Minuten wegen einer fehlgeschlagenen Bereitstellung. Hintergrund Knight Capital Group ist ein amerikanisches globales Finanzdienstleistungsunternehmen, das sich auf Marktmacherei spezialisiert hat. Elektronische Ausführung und institutioneller Vertrieb und Handel. Im Jahr 2012 war Knight der größte Händler in US-Aktien mit Marktanteil von rund 17 auf jedem der NYSE und NASDAQ. Knights Electronic Trading Group (ETG) verwaltet ein durchschnittliches tägliches Handelsvolumen von mehr als 3,3 Milliarden Trades täglich, Handel über 21 Milliarden Dollar täglich. Thats kein Witz Am 31. Juli 2012 Knight hatte etwa 365 Millionen in bar und Äquivalente. Die NYSE beabsichtigte, am 1. August 2012 ein neues Retail Liquidity Programm zu starten (ein Programm, das den Privatanlegern durch Retail-Broker wie Knight eine verbesserte Preisgestaltung ermöglicht). In Vorbereitung auf dieses Ereignis verbesserte Knight ihren automatisierten, schnellen, algorithmischen Ansatz Router, die Aufträge in den Markt für die Ausführung als SMARS bekannt senden. Eine der Kernaufgaben von SMARS ist es, Aufträge von anderen Komponenten der Ritterhandelsplattform (Stammbestellungen) zu erhalten und dann eine oder mehrere Nachbestellungen zur Ausführung zu schicken. In anderen Worten, SMARS würde große Aufträge von der Handelsplattform erhalten und brechen sie in mehrere kleinere Aufträge, um ein Buyerseller Match für das Volumen der Aktien zu finden. Je größer der übergeordnete Auftrag ist, desto mehr Kindaufträge werden generiert. Das Update zu SMARS sollte den alten, unbenutzten Code ersetzen, der als Power Peg-Funktionalität bezeichnet wird, die Knight in 8 Jahren nicht benutzt hatte (warum Code, der für 8 Jahre gestorben war, noch in der Codebasis vorhanden war, ist ein Rätsel Nicht der Punkt). Der Code, der aktualisiert wurde, ersetzte ein altes Flag, das verwendet wurde, um die Power-Peg-Funktionalität zu aktivieren. Der Code wurde sorgfältig getestet und nachweislich korrekt und zuverlässig funktionieren. Was könnte möglicherweise falsch gehen Was könnte möglicherweise falsch gehen In der Tat zwischen 27. Juli 2012 und 31. Juli 2012 Knight manuell eingesetzt die neue Software auf eine begrenzte Anzahl von Servern pro Tag acht (8) Servern in allen. Dies ist, was die SEC-Einreichung sagt über die manuelle Bereitstellung (BTW, wenn es eine SEC-Datei über Ihre Bereitstellung etwas kann schrecklich falsch gegangen). Während des Einsatzes des neuen Codes jedoch, einer der Ritter Techniker nicht kopieren Sie den neuen Code auf einen der acht SMARS-Computer-Servern. Ritter hatte nicht einen zweiten Techniker überprüfen diese Bereitstellung und niemand bei Knight erkannte, dass der Power Peg-Code nicht aus dem achten Server entfernt wurde, noch der neue RLP-Code hinzugefügt. Ritter hatte keine schriftlichen Verfahren, die eine solche Überprüfung erforderlich. SEC Filing Release Nr. 70694 16. Oktober 2013 Um 9.30 Uhr Eastern Time am 1. August 2012 öffneten sich die Märkte und Knight begann mit Aufträgen von Broker-Händlern im Auftrag ihrer Kunden für das neue Retail Liquidity Program. Die sieben (7) Server, die die richtige SMARS-Bereitstellung hatten, begannen, diese Aufträge ordnungsgemäß zu verarbeiten. Aufträge, die an den achten Server gesendet wurden, lösten die vermeintliche repurposed Flagge aus und brachten von den Toten den alten Power-Peg-Code zurück. Angriff der Killer Code Zombies Es ist wichtig zu verstehen, was der tote Power Peg Code zu tun war. Diese Funktionalität sollte die Aktien boughtsold gegen einen übergeordneten Auftrag zählen, da untergeordnete Aufträge ausgeführt wurden. Power Peg würde das System anweisen, Routing-Unterordnungen zu beenden, sobald der übergeordnete Auftrag erfüllt wurde. Grundsätzlich würde Power Peg verfolgen die Reihenfolge der Kinder und stoppen sie, sobald die übergeordnete Reihenfolge abgeschlossen wurde. 2005 wechselte Ritter diese kumulative Tracking-Funktionalität zu einem früheren Zeitpunkt in der Codeausführung (wodurch die Zählverfolgung von der Power Peg-Funktionalität entfernt wurde). Wenn das Power Peg-Flag auf dem achten Server aktiviert wurde, begann die Power-Peg-Funktionalität, untergeordnete Aufträge zur Ausführung weiterzuleiten, aber die Verfolgung der Menge von Anteilen gegen die übergeordnete Anordnung war nicht wie eine Endlosschleife. 45 Minuten der Hölle Stellen Sie sich vor, was passieren würde, wenn Sie ein System, das in der Lage, automatisierte, High-Speed-Aufträge in den Markt ohne Tracking, um zu sehen, wenn genug Aufträge ausgeführt worden war. Ja, es war so schlimm. Als der Markt um 9:30 Uhr eröffnet wurde, wussten die Leute schnell, dass etwas nicht stimmte. Um 9.31 Uhr war es für viele Leute an der Wall Street offensichtlich, dass etwas Ernstes passierte. Der Markt wurde überflutet mit Aufträgen aus dem normalen für reguläre Handelsvolumen auf bestimmte Bestände. Um 9:32 Uhr fragten sich viele Leute an der Wall Street, warum es nicht aufgehört hatte. Dies war eine Ewigkeit in High-Speed-Handelsbedingungen. Warum hatte nicht jemand den Kill-Schalter auf, was System tat dies tun Wie es sich herausstellt, gab es keine Kill-Schalter. Während der ersten 45 Minuten des Handels waren Ritterausführungen mehr als 50 des Handelsvolumens und trieb bestimmte Bestände über 10 ihres Wertes. Infolgedessen verringerten sich andere Bestände im Wert als Antwort auf die fehlerhaften Geschäfte. Um es noch schlimmer zu machen, begann das System von Knights, bereits um 8:01 Uhr automatisierte E-Mails zu senden, nachdem SMARS Aufträge für den Pre-Market-Handel bearbeitet hatte. Die E-Mail-Nachrichten verweisen auf SMARS und haben einen Fehler erkannt, da der Power Peg deaktiviert ist. Zwischen 8:01 und 9:30 Uhr waren 97 dieser E-Mails an das Ritterpersonal geschickt worden. Natürlich waren diese E-Mails nicht als Systemwarnungen entworfen worden und deshalb sah niemand sie sofort an. Hoppla. Während der 45 Minuten der Hölle, die Ritter erlebten, versuchten sie mehrere Gegenmaßnahmen, um zu versuchen, die irrigen Trades zu stoppen. Es gab keinen Kill-Switch (und keine dokumentierten Verfahren, wie zu reagieren), so dass sie links zu versuchen, das Problem in einem Live-Trading-Umfeld zu diagnostizieren, wo 8 Millionen Aktien gehandelt wurden jede Minute. Da sie nicht feststellen konnten, was die fehlerhaften Aufträge verursachte, reagierten sie durch Deinstallieren des neuen Codes von den Servern, die es korrekt bereitgestellt wurde. Mit anderen Worten, sie entfernten den Arbeitscode und verließen den gebrochenen Code. Dies verstärkte nur die Probleme, die zusätzliche übergeordnete Aufträge verursachen, um den Power-Peg-Code auf allen Servern zu aktivieren, nicht nur die, die nicht ordnungsgemäß bereitgestellt wurde. Schließlich konnten sie das System nach 45 Minuten des Handels stoppen. In den ersten 45 Minuten war der Markt geöffnet wurde der Power Peg-Code empfangen und verarbeitet 212 Eltern Bestellungen. Als Ergebnis SMARS geschickt Millionen von Bestellungen auf dem Markt in 4 Millionen Transaktionen gegen 154 Aktien für mehr als 397 Millionen Aktien. Für Sie Aktienmarkt Junkies das bedeutete, dass der Ritter etwa 3,5 Milliarden Netto-Long-Positionen in 80 Aktien und 3,15 Milliarden Netto-Short-Positionen in 74 Aktien angenommen. In laymen8217s Begriffe, Knight Capital Group realisiert einen 460 Millionen Verlust in 45-Minuten. Denken Sie daran, Ritter hat nur 365 Millionen in bar und Äquivalente. In 45 Minuten Ritter ging von der größte Händler in US-Aktien und ein bedeutender Market Maker in der NYSE und NASDAQ zu Bankrott. Sie hatten 48 Stunden, um das notwendige Kapital zur Deckung ihrer Verluste aufzubringen (was sie mit einer 400-Millionen-Investition von rund einem halben Dutzend Investoren zu tun schafften). Knight Capital Group wurde schließlich von Getco LLC (Dezember 2012) erworben und das fusionierte Unternehmen heißt jetzt KCG Holdings. Eine Lektion zu lernen Die Ereignisse vom 1. August 2012 sollten eine Lehre für alle Entwicklungs-und Operations-Teams sein. Es ist nicht genug, um große Software zu bauen und es zu testen, müssen Sie auch sicherstellen, dass es geliefert wird, um richtig zu vermarkten, damit Ihre Kunden den Wert erhalten, den Sie liefern (und so Sie nicht Ihre Firma bankrott). Die Ingenieure, die SMARS eingesetzt haben, sind nicht allein an der Schuld des Prozesses, den Knight eingerichtet hatte, nicht geeignet für das Risiko, dem sie ausgesetzt waren. Zusätzlich war ihr Verfahren (oder ihr Fehlen) anfällig für Fehler. Jedes Mal, wenn der Bereitstellungsprozess auf dem Lesen von Menschen und den folgenden Anweisungen beruht, stellen Sie sich dem Risiko aus. Menschen machen Fehler. Die Fehler könnten in den Anweisungen, in der Auslegung der Anweisungen oder in der Ausführung der Anweisungen liegen. Die Implementierungen müssen automatisiert und wiederholbar sein und möglichst frei von möglichen menschlichen Fehlern sein. Had Knight implementiert ein automatisiertes Bereitstellungssystem mit Konfigurations-, Bereitstellungs - und Testautomatisierung, die den Fehler verursachen würde, der das Knightmare vermieden hätte. Ein paar Prinzipien für Continuous Delivery finden Sie hier (auch wenn Sie keinen vollständigen Continuous Delivery-Prozess implementieren): Freigeben von Software sollte ein wiederholbarer, zuverlässiger Prozess sein. Automatisieren Sie so viel wie angemessen ist. Ein Szenario: Nehmen wir an, sie hatten sehr gute DevOps. Also alle Server würden synchron sein. Aber 8211 nehmen an, dass der neue Code einen Bug hatte. Also alle Server sind synchron, haben aber den selben Buggy Code. Was, wenn zwei Versionen des Codes, d. H. Die letzten 2 Bereitstellungen diesen Fehler hatten. So, sobald sie erkennen, dass etwas falsch ist, they8217d Roll-back den Code, der Bug noch stays8230 Precious Minuten vergangen sind. Vielleicht 20 Minuten statt der 45 Minuten in Ihrem Artikel. So in kurzen 8211 ihre Katastrophe Kill-Switch ist ein Code-Rollback-Einsatz in einer Live-Umgebung. Das wäre noch ein defektes Design. Was sie brauchen, wäre ein großer roter Schalter (fast wörtlich, irgendwo in ihrem Armaturenbrett) sofort aufhören. Wo ist die Geschäftsregel, die sagt 8220first tun no harm8221. VJ, wenn die Bereitstellung auf alle Server gearbeitet hatte, wäre es ok gewesen. In diesem Fall wurden jedoch 7 von 8 für ein Subsystem korrekt eingesetzt. Weil das schlechte Verhalten, rollten sie zurück die anderen 7 denken, dass der neue Code in diesem Subsystem war das Problem. Das multiplizierte das Problem bis zum eventuellen Kill Switch. Katastrophen sind fast immer komplex. In diesem Fall war es schlechte Kodierung Praktiken, plus fragwürdige Prüfung Code Inspektion Praktiken, sowie ein Fehler in der Bereitstellung, sowie ein Rollback auf die Granularität des Subsystems und nicht auf das gesamte System. Wenn Sie eines dieser Probleme lösen, erhalten Sie eine Katastrophe. Eines der Dinge, die in Unternehmen gesehen werden, die die wahre Bedeutung und den Einfluss ihrer IT-Systeme nicht anerkennen, ist, dass sie kein Budget für Legacy-Code-Updates bereitstellen. Zum Beispiel: Ich habe Situationen gesehen, in denen IT kein Budget hat. Es muss alles rechtfertigen, was es gegen einen Unternehmensaufwand macht. Das bedeutet ständig Scrambling, um neue Projekte aufzustellen. Geschäft sieht selten die Notwendigkeit, alte Software zu aktualisieren, die zZ arbeitet, also sie ablehnen, dafür zu zahlen. Das Ergebnis ist ein konstanter neuer Code, der von den preiswertesten Codern möglich gemacht wird, während nicht in Technologien investiert wird, die letztlich die Performance verbessern und das Risiko mindern. Warum, weil diese als 8220IT-Probleme8221 gesehen werden und nicht das Ziel des Projekts, an dem die IT-Leute arbeiten, so dass niemand dafür bezahlen wird. Ein großes Lesen über diese Praxis ist das Phoenix-Projekt von Gene Kim, Kevin Behr und George Spafford. Vielen Dank für die Anwendung Gehirn auf die Hype. Vermutlich sollte man fragen, warum die beteiligten Techniker die Schuld auf sich genommen haben, aber nicht die Befugnis bekamen, den Schalter selbst zu töten. Oh, richtig, dass8217s, warum Sie setzen OpsSRE an Ort und Stelle trotzdem. 8220R8221 ist für verantwortlich, alias Flammenköder. Ich habe ein wenig über dieses Ereignis geschrieben, und ich würde jemanden, der den SEC-Bericht als alles andere als für das, was die SEC brauchte, für sie zu warnen. Kitchensoap20131029counterfactuals-knight-capital Faszinierend lesen. Ich arbeitete in einem großen Auktionshaus für Obst und Gemüse einmal, wo eine neue Software-Version installiert wurde und nicht, was zu großen Verlusten für die Händler (wenn auch nicht so massiv wie diese). Dies war auch ein Fall von unsachgemäßen Einsatz und kein Rückfall. Die zu erlernende Lehre ist, dass es Gebiete gibt, in denen Computer keine Entscheidung ohne menschliche Validierung treffen sollte. Was ist mit den Menschen, die ihre Arbeit verloren, weil, oops, gab es einen Bug Was ist mit den anderen Unternehmen, die vielleicht in Trubble wegen der plötzlichen Veränderung der Aktienwert Automatisierung von 8220high level Entscheidungen8221 ist sorgfältig behandelt werden soll8230 Nizza und pädagogische Post Btw. Die Verwendung des Cynefin-Frameworks bietet eine bessere Charakterisierung dieses 8216DevOps8217-Fehlers Dieser Beitrag scheint aus einer DevOps-Perspektive geschrieben worden zu sein. Die vorgeschlagenen Lösungen stimmen mit einer DevOps-Perspektive überein 8211 untersuchen den Freigabeprozess, automatisieren mehr und erarbeiten einen Kill-Switch mit Rollback-Fähigkeiten. Jemand kann die Post lesen und zu viel Wert auf den Ritter Techniker legen, der den alten Code nicht auf einen der acht Server kopiert hat. Jemand kann eine Ursache-Wirkungs-Beziehung zu stark vereinfachen. Jemand kann auf neue Regeln reagieren, um dies zu verhindern, was immer wieder geschieht.8217 Ein stärkerer Ansatz kann investieren: 8211 Größere Diversität, um die Situation zu analysieren und bessere Möglichkeiten zu schaffen 8211 Verbessern Sie die Kommunikation zwischen Spezialitäten 8211 Verbessern Sie implizite Koordination zwischen Spezialitäten 8211 Rekrutieren Sie Einzelpersonen mit mehr Know-how zu schreiben und zu überprüfen Code Ein wichtiger Faktor, der begrenzte Verbesserung der Fähigkeit des Teams aus neun Jahren vor dem signifikanten Fehler Veranstaltung war mis-Charakterisierung des Systems. In einem Cynefin-Framework beschränkt dieser Fehler auf ein DevOps-Problem das System mit der 8220Obvious8221-Domäne, wo es einfache Ursache-Wirkungs-Beziehungen gibt, die von 8216professionals erkannt werden.8217 Der Fehler sollte nicht mit der Cynefin 8220Complicated8221 Domäne verknüpft werden, wo eine signifikante Analyse Von 8216specialists8217 hätte den Misserfolg verhindert. Das System sollte mit der Cynefin 8220Complex8221 Domäne 8211 ein komplexes adaptives System verbunden sein. Das System ist dispositional. Die gleichen Anfangsbedingungen erzeugen nicht denselben Ausfall (außer durch Zufall). Für weitere Informationen über Cynefin, besuchen Sie en. wikipedia. orgwikiCynefin und CognitiveEdge. Ich schätze Ihre Hervorhebung der tacit Faktoren in einer solchen Katastrophe. Wie der Autor, ich arbeite auch in Operationen, und es ist leicht, in die gleichen alten Denkmuster auf Ursachen und Lösungen fallen. Ich genieße besonders Ihren Punkt in Bezug auf Vielfalt (die in allen Formen kommt: Erfahrungsniveau, kulturelle und pädagogische Hintergründe, Fähigkeiten, Alter, etc.), wie ich denke, das ist ein starker Treiber hinter dem Erfolg von DevOps selbst. Mit einer Vielzahl von Perspektiven, sowohl innerhalb als auch ohne Ihr Team, Blick auf Ihr Projekt hat starke, nachweisbare Potenzial und kann helfen, Bordstein Versehen wie die, die in diesem Artikel. Gt, warum Code, der tot für 8-Jahre war noch in der Code-Basis vorhanden ist ein Geheimnis, aber das ist nicht der Punkt Im Gegenteil, dass8217s genau der Punkt. Code mit unbenutzten, und daher ungetestet, Konfigurationsmöglichkeiten ist eine Katastrophe zu erwarten. Dies ist, warum I8217m sehr skeptisch über Merkmal-basierte Ansätze im Allgemeinen. Konfiguration ist so viel ein Teil Ihres Programms wie Code ist, und Konfigurationsänderungen sollten durch die gleiche Lifecycle 8211 ziehen Anforderung, Code-Überprüfung, Release, Bereitstellung zu Staging 8211 als jede andere Änderung zu gehen. Wenn Ihr Freigabeprozess zu schwer ist und Sie schnelle Konfigurationsänderungen an der Produktion vornehmen müssen, beheben Sie den Freigabeprozess. Es gab zu viele Fehler, um das epische Misserfolg nur DevOps zuzuschreiben (obwohl ich voll und ganz einverstanden bin, dass Automatisierung und Testing der einzige Weg sind): 8211 Keine Teamarbeit und Checklisten bei einem Update auf Produktionsservern. Jede Aktualisierung auf Produktion sollte ein Team aufpassen über einander, und durch eine Checkliste. 8211 8 Jahre unbenutzter alter Code in Produktion. Das sagt Ihnen viel über das Fehlen von Verständnis über die Risiken baumeln 8220unused8221-Code. 8211 Unzureichende Protokollierung aus dem Code und unzureichende Echtzeit-Protokollüberwachung, Korrelation und Analyse. Das hätte genügend Anhaltspunkte für die Ingenieure und OPS-Leute ausgelöst. 8211 Kein Hot-Hot-Failover zu einem Cluster mit der vorherigen Version. Das hätte alles nach 1 oder 2 Minuten gestoppt. (That8217s die Bug rote Taste, die der Artikel erwähnt) Wenn Sie auch schon seit Jahren Architekten Software, Systeme und Unternehmen für eine lange Zeit, Sie wissen, Katastrophe geschieht, wissen Sie, einige Bugs sind nur in der Wildnis gefangen und nicht während der Simulationen, genau wie Sie Wissen Maschinen gehen wird. Sie müssen für den schlimmsten Fall in beiden Szenarien vorzubereiten. Murphy8217s Gesetz ist so wahr in unserer Welt I8217w wurden in dem, was jetzt die 8220DevOps8221 Raum für fast 20 Jahre, mehr als die Hälfte der in der Finanzwelt. Ritter war sowohl ein Verkäufer und ein Konkurrent des Unternehmens, für das ich derzeit arbeite. Bereitstellung Automatisierung könnte dazu beigetragen haben. Könnte sein. Aber nur wenige Unternehmen können sich genau doppelte Umgebungen leisten, was im Wesentlichen auf Umweltunterschiede zurückzuführen ist. Selbst die automatisierte Validierung der Bereitstellung hätte in diesem Fall nicht geholfen, wenn die Automatisierung über die Umweltdifferenz keine Kenntnis hatte. Automatisierung ist nur so gut wie das Wissen der Menschen, die es aufstellen. Wenn eine manuelle Installation wasn8217t bewusst das alte System, dann there8217s eine gute Chance, die das automatisierte System wouldn8217t bekannt haben, um es entweder zu überprüfen. Die Automatisierung eines Rollbacks ist auch nur so gut wie die Entscheidung, ob der Roll-back erfolgen soll. Und wenn die Automatisierung versehentlich das alte System gestartet hat, gibt es auch keine Garantie, dass das Umschalten des zeitgenössischen Systems wieder das alte System 8211 gestoppt hätte, hätten Sie das gleiche Problem auch nach einem automatischen Rollback des modernen Systems haben können. Das bringt mich zum letzten Punkt: Automatisierung ist eine Voraussetzung in großen, modernen Umgebungen. Aber über-Abhängigkeit auf es kann dazu führen, dass die Menschen, die das System nicht bewusst, was es tun. Automatisierung ist am nützlichsten für Validierungen, weil Validierung Dinge richtig gemacht werden, ist mühsam und leicht zu skimp on, wenn manuell durchgeführt. Selbst wenn die Automatisierung, mit menschlichen Breakpoints oder von Menschen getriebenen Schritten hilft sicherzustellen, dass diejenigen, die das System kennen das System kennen und wie es funktioniert, erheblich verbessern ihre Fähigkeit, Probleme zu beheben, Probleme zu diagnostizieren und geeignete Vorschläge, welche Schritte zu ergreifen Stoppen oder mildern ein Problem. Automatisierung ist ein Werkzeug, aber es ist nur ein Werkzeug und es erfordert immer noch ein Handwerker, um es angemessen zu nutzen. Know-how ist, was macht und hält große Systeme groß. Hat diesen Eintrag von Garrett S. Y. Hampton gerebloggt und das kommentiert: Incredible. DevOps immer beobachten, dokumentieren und überprüfen Sie Ihre deploymentsKnight Rifles Knight Rifles, die nur 100 wasserdichte Muzzleloader Pionier der In-Line Muzzleloader Es begann in einem Geschäft von einem Büchsenmacher bekannt für Meilen herum als Meister Handwerker, Erfinder und ein Jäger, der hatte Die Felder seit Jahrzehnten. Sein Name war Tony Knight, und in seiner Werkstatt in Putnam County, Missouri, hörte er die Geschichten der Jäger mit ihren Maulkörbengewehren. Er studierte die Geschichte, die Stärken und die Probleme des Frontladers von den primitivsten Flintlocks bis zu den Mündungsrädern von heute. Diese Waffen hatten sich in wenig mehr als einem Jahrhundert verändert, was ihn dazu veranlasste, zur Arbeit zu kommen, um einen wirklich modernen Mazzloader zu schaffen. Als Ergebnis wurde Knight Rifles geboren. Innerhalb weniger Jahre begann eine Vision, die zu dem feinsten, sichersten und vielseitigsten schwarzen Pulvergewehr führte, das je geschmiedet wurde. Ein handgemachter, leichter Muzzleloader, der alle anderen in der Genauigkeit, im reibungslosen Betrieb und in der tödlichen Unterbrechungsleistung übertrifft. Ein Fass - und Abfeuerungssystem, das in der Lage ist, jede Art von Munition mit hoher Zuverlässigkeit und tödlicher Genauigkeit an sein Ziel zu liefern. Das gilt auch heute noch, da die Knight Rifles weiterhin die Besten in jeder Hinsicht sind. Reich an Geschichte und Leistung, schaffen wir die Zukunft der Mündungsladung auf der Grundlage der soliden Grundlage von denen, die vor uns gelegt. In den kommenden Jahren können Sie nur das Beste von Knight Muzzleloaders erwarten. Field Amp Stream fügt den Ritter MK-85 zu den 50 besten Gewehre Ever Made Liste Tony Knight ist ein anderer Land Büchsenmacher, die die Art und Weise, wie die Dinge sind getan. Im Jahr 1985 baute er einen Mazzloader mit dem Nippel an der Hinterseite des Fasses, direkt hinter der Pulverladung statt an der Seite. Dies machte die Zündung viel zuverlässiger und begann die große Blackpowder-Revolution, die zu Mündungslöchern geführt hat, die praktisch so genau, zuverlässig und schnell wie die Patronenbrandarme zu laden sind. All dies treibt Traditionalisten verrückt. Aber gewöhnliche Jäger lieben es. 8211 Field amp Stream Empfohlene Muzzleloader Rittergewehre im Web

No comments:

Post a Comment