FTTH (Fibre to the Holzhaus); die Aufnahme der Verlegearbeiten Northwestels im dünn besiedelten Yukon ist vom August 2022. Beleuchtet wurde das Kabel erst im Mai 2024.
(Bild: Daniel AJ Sokolov)
Bell Canada verkauft sein Festnetz im Norden des Landes an Ureinwohner. Northwestel wird der weltweit größte Netzbetreiber im Eigentum Indigener.
Der Telecomkonzern Bell Canada verkauft seine Tochter Northwestel um ungefähr eine Milliarde kanadische Dollar (rund 680 Millionen Euro) an ein Konsortium aus Ureinwohnervölkern. Es handelt sich also um eine Art Verstaatlichung durch dutzende Völker. Das Unternehmen versorgt die drei Territorien Kanadas sowie den Norden der Pazifikprovinz Britisch-Kolumbien und einen Teil des Nordens Albertas mit ortsgebundenem Internetzugang, Festnetztelefonie und teilweise Kabelfernsehen, außerdem vertreibt es Satellitenanbindungen über Oneweb. Laut den neuen Eigentümern wird Northwestel (NWTel) damit zum weltweit größten Netzbetreiber im Eigentum Indigener - das stimmt zumindest bezogen auf die zu versorgende Fläche.
Denn das Versorgungsgebiet ist riesig: Rund vier Millionen Quadratkilometer sind mehr als die elffache Fläche Deutschlands. Dafür ist das Gebiet sehr dünn besiedelt. In den drei Territorien Kanadas (Nunavut im Osten, Nordwest-Territorien im Zentrum und Yukon im Westen) leben insgesamt nur rund 125.000 Menschen. Hinzu kommen weniger als zehntausend Einwohner im Norden Britisch-Kolumbiens und Albertas. Die Betriebsbedingungen sind extrem, mit sehr kalten, langen Wintern, Waldbränden im Sommer, Permafrostboden, enormen Entfernungen und generell bescheiden ausgebauter Infrastruktur. Fast die Hälfte der knapp hundert angeschlossenen Siedlungen ist nicht durchgehend auf dem Landweg erreichbar. Entsprechend hoch sind die Kosten für Netzerrichtung und -betrieb.
NWTel betreibt die jeweils einzige Glasfaser-Verbindung, die die zentral gelegenen Nordwest-Territorien und das westlich gelegenen Yukon-Territorium mit der Außenwelt verbinden. Das Nunavut-Territorium im Osten hat bislang keinen Anschluss an Glasfaser und ist auf Satelliten angewiesen. Auch in den beiden anderen Territorien gibt es Siedlungen, die die Glasfaser nicht erreicht. Bis zum Markteintritt des Satellitendienstes Starlink Ende 2022 hatte NWTel im Großteil seines Gebietes kaum nennenswerte Konkurrenz. Im östlich gelegenen Territorium Nunavut sowie in Teilen der Nordwest-Territorien gibt es mit SSi Canada zwar einen drahtlosen Mitbewerber, der aber ebenfalls auf den Northwestel-Backbone angewiesen ist und seit jeher über Apothekerpreise für dessen Nutzung klagt.
Für die Ureinwohner ist der Kauf sowohl eine wirtschaftliche als auch eine strategische Entscheidung: "Als indigene Völker waren wir schon lange der Auffassung, dass wir die Besten sind, um notwendige Entscheidungen zu treffen, die Dienstleistungen in unseren Siedlungen betreffen", sagte Tiffany Eckert-Maret, eine für die beteiligten Völker des Yukon tätige Managerin, "Der Kauf Northwestels wird uns die Autonomie geben, in Zukunft diese Investitionen und Entscheidungen zu treffen, um unsere Telecom-Berdürfnisse zu erfüllen." Trotz alledem erwarten die Ureinwohnerregierungen laufende Gewinne: "Der Kauf (NWTels wird Indigenen) Zugang zu langfristig stabilem Cashflow gewähren, den sie in wichtige Infrastruktur wie Wohnraum, Sozialleistungen, Gesundheitsversorgung und Bildungsprogramme" reinvestieren können, steht in der Pressemitteilung [1] zu lesen.
Nur teilweise ist geklärt, wie sich das neue Eigentümerkonsortium zusammensetzen wird. Die neu gegründete Holding heißt Sixty North Unity – ein Bezug auf den sechzigsten Breitengrad, der die Grenze zwischen Kanadas Territorien und Provinzen bildet. Bislang sind drei Eigentümergruppen Sixty North Unitys bekannt: Aus dem Yukon sind 13 der 14 Ureinwohnervölker mit dabei, in den Nordwest-Territorien der Großteil der First Nations (im US-Englisch Indians genannt), offenbar aber keine Inuit (US-Englisch: Eskimos) oder Métis. In Nunavut ist eine Organisation Teilhaber, die den Inuit-Regierungen in Kitikmeot, einer von drei Regionen des Territoriums, repräsentiert. Eingeladen sind auch die übrigen Ureinwohner im Norden Kanadas, teilweise sollen bereits Gespräche stattfinden.
Auch sonst lässt die Ankündigung des Verkaufs viele Fragen offen. Auch auf Nachfrage heise onlines bei allen Beteiligten war beispielsweise nicht zu erfahren, welche Teile der Infrastruktur bei dem Verkauf an die Ureinwohner gehen, und was bei Bell bleibt und fortan an Northwestel vermietet wird. Bells nördliches Mobilfunknetz und -frequenzrechte bleiben sicher bei Bell; aber wer den Glasfaser-Backbone und Satellitenbodenstationen erhält, ist unbekannt. Gleiches gilt für den Verbleib der Markenrechte sowie des Eigentumanteils am noch immer in Bau befindlichen Canada North Fibre Loop, der ersten Glasfaser in Permafrost [2].
Keine Auskunft gibt es außerdem zu etwaigen Übernahmen von Schulden oder andere Verbindlichkeiten, beispielsweise Pensionsansprüchen. Die wettbewerbsrechtliche Genehmigung stehen noch aus; doch da Northwestel schon jetzt keine nennenswerten Konkurrenz hat, dürfte die Wettbewerbsbehörde keine Steine in den Weg legen. Das Closing ist für das vierte Quartal geplant. Das gegenwärtige Northwestel-Management soll auch danach im Amt bleiben.
NWTel ist kein Mobilfunkanbieter; das Geschäft mit Kabelfernsehen schrumpft, und – wie aus Preisregulierungsverfahren hervorgeht – ist die Festnetztelefonie seit langem defizitär. In den Dörfern läuft Internet entweder über Satelliten, die NWTel nicht selbst betreibt sondern nur vermarktet, oder über alte DSL-Einrichtungen, die auch Verluste schreiben. Manche Siedlungen haben inzwischen auch Glasfaser.
Für die Dörfer des Yukon hat NWTel dutzende Millionen Dollar Subventionen erhalten, mit denen es Glasfaser zu den einzelnen Häusern gebracht hat. Die letzten Meilen dieses Glasfasernetzes im Yukon hat NWTel bereits vor zwei Jahren an die 13 Ureinwohnervölker verkauft und umgehend exklusiv zurückgemietet. Dieses Tafelsilber ist also schon verkauft. Jedenfalls dürfte die Glasfaser günstiger zu betreiben sein als DSL, zumindest gemessen pro übertragenem Gigabyte; aufgrund der Ringstruktur der Kupferkabel kann NWTel die DSLAMs aber nicht abschalten, solange auch nur ein Kunde am jeweiligen Ring noch DSL nutzt. Der Umstieg wird Jahre dauern.
Gewachsen ist das Unternehmen zuletzt nur bei Internetanschlüssen, weil die Bevölkerung der Region stark zugenommen hat. Den Yukon ausgenommen ist das Bevölkerungswachstum im Servicegebiet allerdings jüngst zum Erliegen gekommen. Kein Wunder; zwar gibt es zahlreiche unbesetzte und gut bezahlte Arbeitsplätze, doch herrscht im Norden Kanadas großer Mangel an Wohnraum, der vom Mangel an Gewerbeimmobilien noch übertroffen wird. Und seit eineinhalb Jahren wildert Starlink im NWTel-Revier. Starlink hat nicht nur seltener Totalausfälle aufgrund von Kabelbrüchen, auch die monatliche Gebühr lag bis vor kurzem unter der günstigsten Internet-Flatrate NWTels (die nur über Kabel und Glasfaser verfügbar ist, nicht über DSL, wo zusätzliche Datenmengen ordentlich ins Geld gehen).
Erst vor einigen Tagen hat NWTel eine Flatratetarif eingeführt (50/10 Mbit/s über Kabel, 50/50 Mbit/s über Glasfaser), dessen monatlicher Tarif leicht unter dem Starlink-Preis liegt. Ob das reicht, den Verlust an Marktanteilen zu bremsen, bleibt abzuwarten.
Laut heise online vorliegenden Angaben aus Bankenkreisen macht NWTel etwa 275 Millionen Dollar Jahresumsatz, davon zirka 75 Millionen mit anderen Bell-Gesellschaften. Der Gewinn vor Steuern, Zinsen und Abschreibungen (EBITDA) liegt demnach bei ungefähr 135 Millionen Dollar, was eine EBITDA-Marge von erstaunlichen 49 Prozent ergibt. Selbst im hochpreisigen Telecom-Markt Kanada ist das für einen Festnetzbetreiber richtig stark.
Von den 31.000 Internetkunden NWTels beziehen etwa 8.500 auch Kabelfernsehen. Das (großteils bereits 2022 verkaufte) Glasfasernetz verläuft zu oder nahe bei 17.000 Gebäuden, 11.000 Haushalte nutzen noch aktiven Kupferdraht. Auch diese Daten sind nicht offiziell, kursieren aber unter Bankiers.
Unklar ist, wie so wenige Kunden den Kaufpreis von rund einer Milliarde Dollar finanzieren sollen. Der Zinsfuß dürfte bei acht bis zehn Prozent liegen. Selbst bei nur sechs Prozent Zinsen macht alleine die Zinslast 60 Millionen Dollar jährlich aus. Umgelegt auf 31.000 Internetkunden wären das 161 Dollar Zinsen pro Anschluss und Monat, die Tilgung der Schulden nicht eingerechnet.
(Bild: Daniel AJ Sokolov)
Gleichzeitig steigen die Kosten, denn NWTel muss Arbeitsplätze vor Ort schaffen, um bislang von Bells Konzernzentrale mitbetreute Aufgaben erledigen zu können, beispielsweise Rechts- und Finanzabteilung. Zudem haben die neuen Eigentümer vor, Ureinwohner durch Kurse und Mentorships zu Fachkräften heranzubilden, die dann bei NWTel beschäftigt werden können. Auch das kostet. Und der Einkauf, von Kugelschreibern über Netzausrüstung bis zu Softwarelizenzen, wird teurer werden, sobald die von Bell ausgehandelten Mengenrabatte wegfallen.
Nicht zuletzt versprechen die neuen Eigentümer zusätzliche Investitionen. Dazu gehören Gigabit-Anschlüsse für Haushalte (eventuell auch für Kabel-Internet), zusätzliche Infrastruktur für erdnahe Satellitennetze, sowie ein Unterseekabel im Großen Sklavensee, um Yellowknife, der Hauptstadt der Nordwestterritorien, eine zweite Glasfaseranbindung zu verschaffen. Der See ist ungefähr so groß wie Albanien, oder fast so groß wie das deutsche Bundesland Brandenburg. Durch ein Unterseekabel (zusätzlich zur bestehenden Anbindung über Land) werden die häufigen Telecom-Ausfälle aufgrund beschädigter Glasfasern, so die Hoffnung, der Vergangenheit angehören.
Trotz alledem erwarten die Ureinwohnerregierungen "langfristig stabilen Cashflow". Eine Wette mit ungewissem Ausgang. Bell jedenfalls darf sich über eine Milliarde Dollar freuen, die es zur Schuldentilgung nutzen wird. Es muss sich nicht länger mit den besonders schwierigen Bedingungen des kanadischen Nordens herumschlagen und kann Gewinn verbuchen. Der Verkaufspreis soll geschätzt beim zweieinhalbfachen Buchwert liegen.
Northwestel besteht im Yukon und den Nordwestterritorien seit 1979 und war damals eine Tochterfirma der staatlichen Canadian National Railways, die so hoch im Norden aber gar keine Schienen hatte. 1988 übernahm Bell Canada den Netzbetreiber und verschmolz ihn 1992 mit dem Bell-Betrieb im heutigen Nunavut. Mangels Konkurrenz ist NWTel der einzige Internetprovider Kanadas, dessen Endkundenpreise reguliert sind. Die schrittweise Einführung von Internet-Flatrates für Kabel- und Glasfaserkunden erfolgte ab Ende 2020, im inoffiziellen Austausch gegen Millionensubventionen für den Ausbau von Fibre to the Home (FTTH). Der günstigste Flatrate-Tarif im Yukon kostet heute 130 Dollar pro Monat netto, umgerechnet 89 Euro zuzüglich Steuer; Businesskunden zahlen mindestens 300 Dollar monatlich (205 Euro).
Die Geschichte der Telekommunikation beginnt im Norden Kanadas 1865. An regionaler Telecom-Geschichte Interessierten sei das Büchlein "In Direct Touch with the Wide World, Telecommunications in the North 1865-1992" von Dianne Green empfohlen, das Northwestel 1992 aufgelegt hat (ISBN-10: 096961280X).
URL dieses Artikels:
https://www.heise.de/-9781701
Links in diesem Artikel:
[1] https://www.nwtel.ca/sixty-north-unity-northwestel-and-bell-canada-announce-transformative-partnership-advance-economic
[2] https://www.heise.de/news/Kanada-Erste-Glasfaser-im-Permafrost-hilft-deutschen-Satelliten-4258742.html
[3] mailto:ds@heise.de
Copyright © 2024 Heise Medien
(Bild: Shutterstock.com/calimedia)
In der JSON-Bibliothek können Entwicklerinnen und Entwickler nun neben CamelCasing auch andere Namenskonventionen wählen.
Der JSON-Serializer System.Text.Json (NuGet-Paket [1]) erhielt in Version 8.0 einige Erweiterungen.
Im Gegensatz zu anderen Teilen von .NET 8.0 wie Entity Framework Core 8.0 läuft System.Text.Json nicht nur auf .NET 8.0, sondern auch älteren .NET-Versionen. System.Text.Json funktioniert mit dem klassischen .NET Framework ab Version 4.6.2 und dem modernen .NET ab Version 2.0.
Version 8.0 verwendet für die Serialisierung von Objekteigenschaften nach JSON und die Deserialisierung aus JSON die Namenskonventionen KebabCaseLower, KebabCaseUpper, SnakeCaseLower und SnakeCaseUpper in der Enumeration JsonNamingPolicy als Alternative zum bisher fest gesetzten CamelCasing.
Beispiele für diese Namenskonventionen sind:
PascalCase: FullNameCamelCase: fullNameKebabCaseLower: full-nameKebabCaseUpper: FULL-NAMESnakeCaseLower: full_nameSnakeCaseUpper: FULL_NAMEIm folgenden Listing kommt KebabCaseUpper beim Serialisieren und Deserialisieren einer Instanz der Klasse Consultant zum Einsatz:
var options = new JsonSerializerOptions
{
// NEU: Enumeration JsonNamingPolicy mit Namenskonventionen KebabCaseLower, KebabCaseUpper, SnakeCaseLower und SnakeCaseUppter als Alternative zum bisher fest gesetzten CamelCase
PropertyNamingPolicy = JsonNamingPolicy.KebabCaseUpper, // Standard ist CamelCase
};
…
var consultant = new Consultant() { ID = 42, FullName = "Holger Schwichtenberg", Salutation = "Dr.", PersonalWebsite = "www.dotnet-doktor.de" };
consultant.Languages.AddRange(["C#", "JavaScript", "TypeScript"]);
consultant.Address = new Address() { City = "Essen", Country = "Germany" };
Console.WriteLine("Objekt im RAM:");
Console.WriteLine(consultant);
Console.WriteLine();
CUI.H3("Serialisierung (KebabCaseUpper):");
string json1 = JsonSerializer.Serialize(consultant, options);
Console.WriteLine(json1); // {"ID":42,"FULL-NAME":"Holger Schwichtenberg","SALUTATION":"Dr.","PERSONAL-WEBSITE":"www.dotnet-doktor.de"}
…
CUI.H3("\nDeserialisierung: (vollständig)");
try
{
var jsonString = """
{"ID":42,"FULL-NAME":"Holger Schwichtenberg","SALUTATION":"Dr.",
"PERSONAL-WEBSITE":"www.dotnet-doktor.de",
"ADDRESS":{"COUNTRY":"Germany","CITY":"Essen"}}
""";
Console.WriteLine(jsonString);
var obj = JsonSerializer.Deserialize<Consultant>(jsonString, options);
if (obj != null) CUI.Success(obj.ToString());
}
catch (Exception ex)
{
CUI.PrintError(ex.Message);
}
Das nachstehende Listing 2 zeigt die Datenobjekte Person und Consultant sowie deren Schnittstellen:
using System.Text.Json.Serialization;
namespace FCL_JSON;
public interface IBusinessObject
{
UInt128 ID { get; init; }
}
public interface IPerson : IBusinessObject
{
string? Salutation { get; set; }
string? FullName { get; set; }
public Address Address { get; set; }
}
public interface IConsultant : IPerson
{
string? PersonalWebsite { get; set; }
public List<string> Languages { get; }
}
public class Address
{
public string Country { get; set; }
public string City { get; set; }
}
public class Person : IPerson
{
public Person() { }
public required UInt128 ID { get; init; }
public required string FullName { get; set; }
public string? Salutation { get; set; }
public Address Address { get; set; }
public override string ToString()
{
return $"Person {ID}: {(!String.IsNullOrEmpty(Salutation) ? Salutation + " " : "")}{FullName} wohnt in {Address?.City ?? "UNBEKANNT"} ";
}
}
public class Consultant : Person, IConsultant
{
public Consultant() { }
public List<string> Languages { get; } = new();
public string? PersonalWebsite { get; set; }
public override string ToString()
{
return $"Consultant {ID}: {(!String.IsNullOrEmpty(Salutation) ? Salutation + " " : "")}{FullName} wohnt in {Address.City} -> {PersonalWebsite} Sprachen: {String.Join('+', Languages)}";
}
}
URL dieses Artikels:
https://www.heise.de/-9784360
Links in diesem Artikel:
[1] https://www.nuget.org/packages/System.Text.Json
[2] https://www.heise.de/blog/Neu-in-NET-8-0-1-Start-der-neuen-Blogserie-9574680.html
[3] https://www.heise.de/blog/Neu-in-NET-8-0-2-Neue-Anwendungsarten-9581213.html
[4] https://www.heise.de/blog/Neu-in-NET-8-0-3-Primaerkonstruktoren-in-C-12-0-9581346.html
[5] https://www.heise.de/blog/Neu-in-NET-8-0-4-Collection-Expressions-in-C-12-0-9581392.html
[6] https://www.heise.de/blog/Neu-in-NET-8-0-5-Typaliasse-in-C-12-0-9594693.html
[7] https://www.heise.de/blog/Neu-in-NET-8-0-6-ref-readonly-in-C-12-0-9602188.html
[8] https://www.heise.de/blog/Neu-in-NET-8-0-7-Optionale-Parameter-in-Lambda-Ausdruecken-in-C-12-0-9609780.html
[9] https://www.heise.de/blog/Neu-in-NET-8-0-8-Verbesserungen-fuer-nameof-in-C-12-0-9616685.html
[10] https://www.heise.de/blog/Neu-in-NET-8-0-9-Neue-und-erweiterte-Datenannotationen-9623061.html
[11] https://www.heise.de/blog/Neu-in-NET-8-0-10-Plattformneutrale-Abfrage-der-Privilegien-9630577.html
[12] https://www.heise.de/blog/Neu-in-NET-8-0-11-Neue-Zufallsfunktionen-9637003.html
[13] https://www.heise.de/blog/Neu-in-NET-8-0-12-Eingefrorene-Objektmengen-9643310.html
[14] https://www.heise.de/blog/Neu-in-NET-8-0-12-Leistung-von-FrozenSet-9649523.html
[15] https://www.heise.de/blog/Neu-in-NET-8-0-14-Neue-Waechtermethoden-fuer-Parameter-9656153.html
[16] https://www.heise.de/blog/Neu-in-NET-8-0-15-Geschluesselte-Dienste-bei-der-Dependency-Injection-9662004.html
[17] https://www.heise.de/blog/Neu-in-NET-8-0-16-Neue-Methoden-fuer-IP-Adressen-9670497.html
[18] https://www.heise.de/blog/Neu-in-NET-8-0-17-Zeitabstraktion-fuer-Tests-mit-Zeitangaben-9675891.html
[19] https://www.heise.de/blog/Neu-in-NET-8-0-18-Ein-Zeitraffer-mit-eigenem-FakeTimeProvider-9683197.html
[20] https://www.heise.de/blog/Neu-in-NET-8-0-19-Razor-HTML-Rendering-in-beliebigen-NET-Anwendungen-9691146.html
[21] https://www.heise.de/blog/Neu-in-NET-8-0-20-Neue-Code-Analyzer-fuer-NET-Basisklassen-9706875.html
[22] https://www.heise.de/blog/Neu-in-NET-8-0-20-Neue-Code-Analyzer-fuer-ASP-NET-Core-9710151.html
[23] https://www.heise.de/blog/Neu-in-NET-8-0-22-Neues-Steuerelement-OpenFolderDialog-fuer-WPF-9722901.html
[24] https://www.heise.de/blog/Neu-in-NET-8-0-25-Resilienz-im-HTTP-Client-9763586.html
[25] https://www.heise.de/blog/Neu-in-NET-8-0-26-Anpassung-der-Resilienz-im-HTTP-Client-9773126.html
[26] https://www.heise.de/blog/Neu-in-NET-8-0-27-Konfigurierbare-Namenskonventionen-in-System-Text-Json-8-0-9784360.html
[27] https://net.bettercode.eu/
[28] https://net.bettercode.eu/index.php#programm
[29] https://net.bettercode.eu/tickets.php
[30] mailto:rme@ix.de
Copyright © 2024 Heise Medien
(Bild: Lamyai / Shutterstock.com)
Softwareentwicklung ähnelt mehr der Arbeit im Garten als einer Ingenieurswissenschaft – meint zumindest Chris Aitchison. Was ist an dieser These dran?
Vergangene Woche ging es um die Frage, was Softwareentwicklung eigentlich ist: Kunst oder doch eher eine Ingenieurswissenschaft? [1] Meine These war, dass Softwareentwicklung etwas von beidem hat, aber dass wir den künstlerischen Aspekt im Alltag zu oft vergessen und uns häufig gar nicht im Klaren darüber sind, wo wir selbst eigentlich auf dieser Skala stehen: Sind wir Künstler oder Ingenieure?
Zu diesem Blogpost gab es zahlreiche Kommentare, nicht nur hier im Developer-Kanal, sondern auch unter dem zugehörigen Video auf YouTube [2]. Ein Kommentar ist mir dabei besonders aufgefallen: Der Verfasser stimmte meiner Aussage grundsätzlich zu, sah aber einen Punkt anders. Ich hatte nämlich erwähnt, Kunst sei nicht schätzbar, doch seiner Meinung nach könne man alles schätzen: Entwicklerinnen und Entwickler hätten nur zu oft Angst, bei Unsicherheiten oder Unwissen einfach eine große Zahl zu nennen.
Das hat mich nachdenklich gestimmt, denn wenn ich unsicher bin oder mir grundlegendes Wissen fehlt, dann kann ich nicht deshalb nicht schätzen, weil ich mich nicht traue, eine große Zahl zu nennen. Das Schätzen ist vielmehr unmöglich. Würde ich in einer solchen Situation einfach eine große Zahl nennen, dann wäre das nicht geschätzt, sondern einfach nur geraten.
Wenn Sie mich fragen, wie lange ich persönlich brauche, um ein Space-Shuttle von Grund aufzubauen, dann habe ich absolut keine Ahnung, was ich antworten soll. Dabei hilft mir auch nicht der Mut, eine große Zahl zu äußern, denn das macht die Schätzung nicht solider: Ob ich nun fünf, zehn oder zwanzig Jahre sage – alles hat die gleiche Aussagekraft, nämlich praktisch gar keine. Und deshalb ist es meiner Meinung nach auch keine Schätzung, sondern wie gesagt nur (schlecht) geraten.
Trotzdem hat mich diese Frage nicht losgelassen, und ein befreundeter Unternehmer hat mich vor ein paar Tagen auf den sehr spannenden Blogpost "Are you a Software Gardener? [4]" von Chris Aitchison aufmerksam gemacht. Seine Kernaussage ist, dass wir als Entwicklerinnen und Entwickler keine Ingenieure seien, sondern viel eher Gärtner.
Als ich diesen Vergleich zum ersten Mal gelesen habe, fand ich ihn zugegebenermaßen doch ein wenig schräg, aber der Blogpost kommt auf einen sehr guten Punkt zu sprechen: Darin heißt es nämlich, dass Ingenieursprojekte im Wesentlichen vorhersagbar seien und dass es deshalb möglich sei, die Planung und auch den Bau zum Beispiel einer Brücke oder eines Wolkenkratzers zeitlich recht genau vorherzusagen. Denn wie man eine Brücke oder einen Wolkenkratzer baut, sei inzwischen hinreichend bekannt, und unterscheide sich nicht allzu sehr von Instanz zu Instanz und sei außerdem in den meisten Fällen unabhängig von der jeweiligen Umgebung. Natürlich gibt es Unterschiede im Preis, aber das Grundprinzip, wie eine Brücke oder ein Wolkenkratzer gebaut wird, sei im Großen und Ganzen eben immer dasselbe.
Ganz anders sehe es hingegen aus, wenn man einen Garten anlegen möchte. Natürlich hätte man auch dann einen groben Plan und könne sagen, wo welcher Baum, welcher Strauch, welche Blumen und so weiter gepflanzt werden sollen. Aber anders als bei einem Bauwerk, bei dem man in der Regel im Vorfeld schon sehr genau wisse, wo welcher Stein oder welcher Träger zum Einsatz kommen werde, könne man bei einem Garten eben nicht jedes einzelne Blatt oder jede einzelne Blüte im Detail vorhersagen. Und es sei doch auch ziemlich abstrus, wenn man das versuchen würde.
Tatsächlich dürfte auf der Hand liegen, dass nicht vorhersagbar ist, wie viele Blüten ein paar heute gepflanzte Narzissenzwiebeln im kommenden Frühjahr haben werden. Je nach Wetter, Klima, Bodenbeschaffenheit und so weiter kann man noch nicht einmal genau vorhersagen, ob sie überhaupt den nächsten Winter überleben werden. Natürlich hat man als erfahrene Gärtnerin oder als erfahrener Gärtner hier ein gewisses Gefühl und eine gewisse Erfahrung, aber garantieren kann man es eben nicht.
Und genauso verhält es sich auch bei Software: Auch Software ist einzigartig und hängt maßgeblich von ihrer jeweiligen Umgebung ab. Außerdem ist Software nie fertig, sondern es lässt sich immer noch etwas daran weiterentwickeln, genauso wie man auch in einem Garten niemals fertig sein wird. Das liegt allein schon daran, dass sich die Umgebung wandelt: Die Hardware verändert sich, das zugrunde liegende Betriebssystem ändert sich, Bibliotheken und APIs wandeln sich, und so weiter.
All diesem Wandel muss ich mit meiner Software im Laufe der Zeit immer wieder Rechnung tragen. Klar: Software altert per se nicht, aber sie wird eben eher selten heute noch unter den gleichen Bedingungen ausgeführt wie vor fünf oder zehn Jahren. Damit das funktioniert, muss man proaktiv etwas dafür machen.
Das funktioniert natürlich dann deutlich besser, wenn die Gärtnerinnen und Gärtner der Software (also die Entwicklerinnen und Entwickler) eine gewisse Erfahrung mitbringen, ihre Werkzeuge kennen und ein Händchen für geschickte Softwareentwicklung haben. Genauso wie man bei Pflanzen davon spricht, dass jemand einen "grünen Daumen" habe, gibt es auch in der Softwareentwicklung Menschen, die ein besseres Geschick bei der Gestaltung von Algorithmen und Datenstrukturen haben als andere.
Diese Fähigkeit lässt sich nicht gut quantifizieren, es gibt keine besonders geeignete Metrik dafür. Aber erfahrene und geschickte Entwicklerinnen und Entwickler erkennen ihresgleichen innerhalb kürzester Zeit aus dem Gefühl heraus. Anders formuliert: Wer selbst nicht Software entwickelt, wird es schwer haben, die wirklich guten Entwicklerinnen und Entwickler zu identifizieren. Oft entscheidet dabei dann letztlich das Bauchgefühl, gefolgt von der Hoffnung, dass die Entscheidung nicht katastrophal schlecht war.
Übrigens, wenn Ihnen die Metapher mit dem Garten nicht zusagt, gibt es noch andere vergleichbare Disziplinen, wie zum Beispiel das Kochen oder das Spielen eines Instruments. Auch diese beiden Beispiele erfordern den Einsatz von Technik, aber beides geht, wenn es wirklich gut werden soll, weit über reine Technik hinaus. Das Beherrschen der Technik ist also eine notwendige, aber keine hinreichende Vorbedingung.
Deshalb, und damit komme ich auf den ursprünglichen Punkt zurück, ist das Schätzen in der Softwareentwicklung meiner Meinung nach kaum sinnvoll.
Klar, wenn Sie mich fragen, wie lange ich brauche, um in Go einen Webserver zu schreiben, der ein paar API-Routen anbietet, die mit einer Datenbank kommunizieren und JSON zurückgeben oder entgegennehmen, dann kann ich Ihnen das ungefähr beantworten, weil ich das schon etliche Male gemacht habe. Aber selbst bei diesem trivialen Beispiel gibt es Unsicherheiten, die einen massiven Einfluss haben können:
Je nachdem, wie diese Fragen beantwortet werden, reden wir unter Umständen über Schwankungen in der Schätzung von mehreren hundert, wenn nicht gar tausend Prozent. Und das wohlgemerkt bei einem grundsätzlich bekannten Problem!
Wenn ich nun aber schon das nicht exakt vorhersagen kann, ohne zunächst alle möglichen Details im Vorfeld durchzusprechen, wie soll ich dann eine Aufwandsschätzung für etwas geben, was ich fachlich und inhaltlich noch nie gemacht habe, was für mich also komplett unbekanntes Terrain ist?
Natürlich kann ich dann den ursprünglichen Hinweis aus dem Kommentar nehmen und sagen: "Na ja, also mehr als eine Milliarde Euro wird’s wohl nicht kosten". Und höchstwahrscheinlich werde ich mit dieser Einschätzung sogar auch richtig liegen – nur nützt die eben niemandem etwas.
Die Frage ist, was man daraus macht. Denn das Business möchte manchmal einfach Zahlen haben, um abschätzen zu können, ob sich eine Entwicklung überhaupt rentiert und ob sich der Aufwand am Ende voraussichtlich lohnen wird. Und auch, wenn es aus unserer Sicht als Entwicklerinnen und Entwickler oftmals nicht möglich ist, eine sinnvolle Schätzung abzugeben, heißt das nicht, dass die Frage nach der Schätzung nicht grundsätzlich berechtigt wäre. Sich einfach nur hinzustellen und zu sagen "sorry, das kann ich nicht schätzen" nützt wenig und bringt niemandem das eigentliche Ziel näher.
Deshalb glaube ich (und das ist auch das Verfahren, das wir in meinem Unternehmen the native web [5] anwenden): Wenn wir etwas nicht schätzen können, weil es zu viele Unbekannte gibt, muss dem Entwicklungs- zunächst ein Forschungsprojekt vorangestellt werden, in dem man die wichtigsten Probleme zu lösen versucht. Das Ziel ist also zunächst, einen "Proof of Concept" zu entwickeln, einen "Durchstich", einen "Prototypen", oder wie auch immer man das Ganze nennen will. Dabei geht es jedoch zunächst nur darum, mehr Wissen zu erlangen und erste Erfahrungen zu sammeln, um sich selbst in eine bessere Ausgangslage für eine vernünftige Schätzung zu bringen.
Und diese Forschung, die wird nicht geschätzt, sondern durch eine Timebox begrenzt. Man nimmt sich zum Beispiel vier Wochen Zeit, um herauszufinden, wie bestimmte Dinge funktionieren, ob sie überhaupt funktionieren, und so weiter. Was diese vier Wochen kosten werden, ist vorher bekannt, denn sie können nach zeitlichem Aufwand abgerechnet werden. Und danach schaut man sich das Ergebnis an: Wenn es vielversprechend ist, macht man weiter und kommt einer verlässlichen Schätzung auf dem Weg nach und nach näher. Wenn das Ergebnis jedoch nicht vielversprechend ist, kann man sich entscheiden, ob man weiter forschen und noch einmal in eine Timebox investieren möchte, oder ob man es lieber bleiben lässt.
Das ist meines Erachtens der deutlich bessere Weg, als einfach irgendeine große Zahl zu sagen, um eine Zahl gesagt zu haben. Natürlich muss auch das Business am Ende des Tages mitspielen. Aber ich glaube, dass man gut vermitteln kann, dass wenn eine Schätzung benötigt wird, man dann auch zunächst eine vernünftige Grundlage schaffen muss, auf deren Basis man eine solide Schätzung überhaupt durchführen kann.
Meine Erfahrung ist, dass man das verständlich erklären kann und das Business es häufig sogar zu schätzen weiß, wenn man das offen und transparent kommuniziert. Denn das zeigt, dass man gerade nicht einfach irgendetwas sagt, sondern dass man die Anfrage ernst nimmt, dass man vertrauenswürdig ist, und dass man versucht, das Problem konstruktiv und vor allem gemeinsam anzugehen. Und das ist es, worauf es letztlich in der Softwareentwicklung ohnehin ankommt: Dass alle Beteiligten gemeinsam an einem Strang ziehen. Warum also damit nicht schon bei der Aufwandsschätzung starten?
URL dieses Artikels:
https://www.heise.de/-9774439
Links in diesem Artikel:
[1] https://www.heise.de/blog/Meinung-Softwareentwicklung-ist-keine-Kunst-9755000.html
[2] https://www.youtube.com/watch?v=tQXfbhXExog
[3] https://www.heise.de/Datenschutzerklaerung-der-Heise-Medien-GmbH-Co-KG-4860.html
[4] https://medium.com/@cmaitchison/are-you-a-software-gardener-f79eba5b7fb7
[5] https://www.thenativeweb.io/
[6] mailto:rme@ix.de
Copyright © 2024 Heise Medien
(Bild: JHVEPhoto/Shutterstock.com)
Oracles fragwürdige Mittel, Lizenzen für ihre OpenJDK-Distribution einzutreiben, gefährden im schlimmsten Fall Java, meinen Hendrik Ebbers und Falk Sippach.
Sicherlich ist es für viele nichts Neues, dass Oracles Lizenzpolitik nicht gerade nutzerorientiert ist. House of Brick ist ein international tätiger Dienstleister, der Firmen bezüglich der verschiedenen Lizenzmodelle von Oracle berät. Dass es dafür ein Geschäftsmodell gibt, sagt schon einiges darüber aus. Genau diese Firma hat nun Informationen darüber veröffentlicht, dass sich eine immer größer werdende Zahl Kunden im Bereich Java-Lizenzen beraten lässt. Diese Unternehmen wurden offenbar von Oracle kontaktiert, da sie Java SE nicht konform nutzen und einen Lizenzvertrag mit Oracle abschließen müssen.
Aber der Reihe nach: Warum benötigt es so einen Vertrag und wie kam Oracle überhaupt an die Informationen zu diesen Firmen?
Oracle hat im April 2019 zwei neue Lizenzmodelle für die Nutzung des Oracle JDK (ihre kommerzielle Java Distribution) eingeführt. Die bis dahin freie Distribution wurde damit kostenpflichtig. Mit dem Release von Java 20 [1] wurde das Lizenzmodell noch einmal angepasst. Oracle führte nach eigener Aussage ein "einfaches, kostengünstiges, monatliches" Java SE-Universal-Abonnement ein. In diesem neuen Modell müssen Nutzer der Java Distribution von Oracle Lizenzgebühren pro Mitarbeiter des Unternehmens bezahlen. Die Unternehmensberatung Gartner schätzte [2] im letzten Jahr, dass das neue Lizenzmodell pro Mitarbeiter zwei- bis fünfmal teurer sein wird, als das bisherige.
Auf Basis dieses neuen Lizenzmodells "klappert" Oracle nun Firmen ab, um möglichst viele Lizenzverträge abzuschließen. Laut House of Brick hat Oracle ein ganzes Team von Mitarbeitern in Indien eingesetzt, welche Organisationen auf der ganzen Welt kontaktieren. Die Firmeninformationen haben sie hierbei über die letzten Monate gesammelt, indem sie die Downloads ihrer eigenen Java Distribution getrackt haben. Unternehmen, die noch nie mit Oracle zusammengearbeitet haben, sind mit dieser plötzlichen Kontaktaufnahme oft überfordert und wenden sich Hilfe suchend an House of Brick. Laut dessen CEO unterbreitet Oracle diesen "Neukunden" ein Angebot, das sie nicht ablehnen können: Wenn diese Firmen direkt das Abo-Modell abschließen, hat der frühere Einsatz nicht lizenzierter Software keine Folgen. Das bedeutet im Grunde, dass eine Firma entscheiden muss: gehen sie einen Vertrag mit Oracle ein oder nehmen sie das Risiko in Kauf, dass sie gerichtlich zur Nachzahlung von einem solchen Abonnement gezwungen werden.
Soweit die Fakten, welche man auch bei The Register [3] oder im Blog von House of Brick [4] nachlesen kann. Bedeutet das aber nun, dass die Nutzung von Java in Zukunft an ein Abo-Modell bei Oracle geknüpft ist? Natürlich nicht und im Folgenden möchten wir unsere persönliche Sicht der Dinge darlegen. Wir sind sehr besorgt über die jüngsten Entwicklungen hinsichtlich der Lizenzierungspraxis von Oracle für ihre kommerzielle Java Distribution. Dieses Vorgehen kann ein nachhaltig negatives Licht auf die Programmiersprache Java und ihre Laufzeitumgebung werfen. Auch wenn die meisten Entwickler verstehen, dass es sich hier nur um die von Oracle bereitgestellte Distribution von Java handelt, haben Manager und Entscheider oft nicht diesen tiefen Einblick. Anstelle Geld mit Java zu verdienen, kann Oracles Taktik im schlimmsten Fall dazu führen, dass sich Firmen in Zukunft ganz von Java verabschieden.
Diese Geschichte zeigt auch, wie verzweifelt Oracle versucht, mit Java Geld zu machen. Mit der Übernahme von Sun Microsystems im Jahr 2009 haben sie Java erworben und sie sind heute der größte Contributor des OpenJDK. Auch die Namensrechte für das OpenJDK und Java liegen bei Oracle. Basierend auf den aktuellen Ereignissen fragen wir uns nun, was Oracle als Nächstes probieren wird, falls die aktuellen Bemühungen nicht den ausreichenden Erfolg bringen. Wir gehen stark davon aus, dass sie durch diese Vorgehensweise keine nachhaltigen und aus Kundensicht sinnvollen Lizenzverträge für Java abschließen werden. Und vielleicht beschließt ein Manager bei Oracle dann, die Mittel für das OpenJDK zu kürzen. Das wäre etwas, das die ganze Java Community betreffen würde. Am Beispiel von JavaScript sieht man [5], wie Oracle als Besitzer des Trademarks auch auf sein Markenrecht pocht, obwohl sie keinerlei Entwicklungsaktivitäten in dieser Sprache betreiben.
Und nein, wir haben kein Problem damit, wenn Oracle Geld mit dem OpenJDK, Java oder der kommerziellen Java Distribution verdient. Aber wir stellen die Frage, ob dieses Vorgehen wirklich gesund und nachhaltig für das Produkt und die Community ist. Daher wünschen wir uns von Oracle, Transparenz und Fairness bei ihren Lizenzierungsprozessen zu gewährleisten. Unternehmen, die die Java Distribution von Oracle nutzen, sollten klar und deutlich über die Lizenzforderungen informiert werden, bevor sie zu kostenpflichtigen Modellen wechseln müssen.
An alle Entscheider: Es gibt mehrere hochqualitative und kostenfreie Open-Source-Alternativen [6] zur kommerziellen Java Distribution von Oracle, wie beispielsweise Temurin von Eclipse Adoptium, Corretto von Amazon [7] und andere. Diese Alternativen bieten ähnliche Funktionen und langfristige Unterstützung ohne kommerzielle Lizenzgebühren. Verantwortliche können hier die Unterstützung und Ressourcen der Java-Community nutzen und auf Experten in diesem Bereich (z. B. Open Elements [8]) zurückgreifen.
Das Ziel von Adoptium ist es beispielsweise, zertifizierte und für alle Arten von Anwendungen geeignete Java-Builds zu entwickeln und zu verteilen, ohne dass zusätzliche Lizenzgebühren anfallen. Da alle Arbeiten bei Adoptium in der Eclipse Foundation [9] durchgeführt werden, ist Temurin nicht nur herstellerunabhängig, sondern auch deutlich transparenter in der Entwicklung und Bereitstellung als die meisten anderen Distributionen. Unternehmen sollten daher eine Migration zu Temurin in Erwägung ziehen. Hierdurch entsteht nicht nur eine hohe Kostenersparnis. Im Bereich Security erhält man durch transparente Prozesse und Audits ein klareres Bild der genutzten Laufzeitumgebung. Temurin hat sich erst neulich Security Audits unterzogen und die Ergebnisse öffentlich bereitgestellt [10].
Korrektur bezüglich der Arbeit von Oracle im JavaScript-Ökosystem: Seit 2020 unterstützt Oracle die ECMA-Arbeitsgruppe zur Spezifizierung der Sprache JavaScript durch eine Mitgliedschaft finanziell und hat mit GraalJS eine eigene Implementierung von Ecma-Script auf Basis der GraalVM.
URL dieses Artikels:
https://www.heise.de/-9781727
Links in diesem Artikel:
[1] https://www.heise.de/news/Java-20-erweitert-die-Nebenlaeufigkeit-mit-Scoped-Values-7549078.html
[2] https://www.theregister.com/2023/07/24/oracle_java_license_terms/
[3] https://www.theregister.com/2024/06/20/oracle_java_licence_teams/
[4] https://houseofbrick.com/blog/oracle-java-licensing-risks-2024/
[5] https://www.heise.de/news/Node-js-Entwickler-Ryan-Dahl-bittet-Oracle-Gebt-die-Marke-JavaScript-frei-7254391.html
[6] https://www.heise.de/blog/Java-ohne-Kopfschmerzen-Distributionen-und-Support-jenseits-von-Oracle-9232113.html
[7] https://www.heise.de/news/Java-Amazons-OpenJDK-Variante-Corretto-ist-allgemein-verfuegbar-4295845.html
[8] https://open-elements.com/temurin-support/
[9] https://www.heise.de/news/AdoptOpenJDK-landet-bei-der-Eclipse-Foundation-4789835.html
[10] https://adoptium.net/de/blog/2024/06/external_audit/
[11] mailto:rme@ix.de
Copyright © 2024 Heise Medien
(Bild: iX / generiert mit ChatGPT)
Was sind Softwareentwicklung und Informatik? Kunst oder Ingenieurswissenschaften? Ein Kommentar.
Ich gebe zu, dass ich ein großer Fanboy bin – und zwar von dem US-amerikanischen Informatiker Donald E. Knuth. Er wurde bereits 1938 geboren und arbeitet seit Jahrzehnten an einem der, wenn nicht gar an dem größten literarischen Werk der Informatik schlechthin, nämlich: "The Art of Computer Programming [1]". Vielleicht kennen Sie ihn aber auch aufgrund eines der zahlreichen Zitate, die auf ihn zurückgehen, beispielsweise:
„Hüten Sie sich vor Fehlern in oben stehendem Code. Ich habe nur bewiesen, dass er korrekt ist, aber ich habe ihn nicht getestet.“
Solche Sätze, die zugleich lustig, tiefgründig und intelligent sind, gibt es einige von ihm. Eine Frage, mit der er sich dabei intensiv und immer wieder beschäftigt, lautet: Was zeichnet Softwareentwicklung eigentlich letztlich aus? Handelt es sich um eine Kunst oder eher um eine Ingenieurswissenschaft?
Ein Zitat von Donald E. Knuth habe ich gerade bereits erwähnt, aber es gibt noch ein anderes, das für mich persönlich das mit Abstand schönste ist, nämlich:
"Wann haben Sie es sich das letzte Mal vor dem Kamin gemütlich gemacht und ein gutes Stück Code gelesen?"
Ich vermute, dass Sie das wahrscheinlich noch nie gemacht haben – ja, dass Sie wahrscheinlich noch nicht einmal jemals darüber nachgedacht haben, dass man das eigentlich einmal machen könnte. Da stellt sich doch die Frage: Wo wir als Entwicklerinnen und Entwickler jeden Tag von morgens bis abends mit Code hantieren, wo Code für viele von uns eine Sprache wie Englisch oder Französisch ist, und wo wir dermaßen viel Zeit damit verbringen, Code zu schreiben, warum nehmen wir uns nicht die Zeit, ihn mit der angemessenen Aufmerksamkeit und wohlwollender Wertschätzung zu lesen?
Und zugegeben: Es klingt zunächst reichlich seltsam, das zu machen. Aber, wenn Sie Informatik studiert haben, dann werden Sie sich vielleicht daran erinnern, dass im Studium immer wieder einmal die Rede davon war, man solle nach eleganten und schönen Lösungen suchen. Und das kennen wir auch aus anderen wissenschaftlichen Disziplinen, wie zum Beispiel der Mathematik: Auch dort ist immer wieder von schönen und eleganten Beweisen die Rede. Wenn also Algorithmen oder Beweisen eine Ästhetik innewohnt, warum nehmen wir uns dann nicht die Zeit, sie einmal ganz bewusst wahrzunehmen und sie gegebenenfalls auch, wenn sie besonders gelungen sind, entsprechend zu bewundern?
Vielleicht sagen Sie nun, dass Ihnen das zu akademisch und zu abgehoben ist, aber denken Sie doch einmal kurz über das Wort "Hacker" nach. Heute bezeichnen wir damit jemanden, der mit bösen Absichten in Computer einbricht und Daten stiehlt oder zerstört. Ein Hacker ist heute ein Vandale, ein Verbrecher. Aber das war nicht immer so. Als das Wort in den 1980er- und frühen 1990er-Jahren aufkam, bezeichnete es jemanden, die oder der komplizierte und komplexe Probleme auf intelligente, schlaue und einfache Art lösen und elegante und schöne Lösungen in Code zaubern konnte. Mit anderen Worten: Es gab eine Zeit, in der wir Ehrfurcht vor Codekünstlern hatten.
Und wenn man sich noch einmal den Titel des monumentalen Werks von Knuth vor Augen führt, dann fällt auf: Es heißt "The Art of Computer Programming", nicht einfach nur "Computer Programming" oder ähnlich. Es geht um "the art", also um die Kunst der Programmierung. Und Knuth will das auch tatsächlich genau so verstanden wissen, denn er hat Programmieren verschiedentlich zum Beispiel mit dem Komponieren von Musik oder dem Dichten verglichen, dass das alles ästhetische Erfahrungen seien, bei denen Schönheit geschaffen werde. Ich persönlich empfinde es als bemerkenswert, einmal aus dieser Perspektive über das Schreiben von Code nachzudenken.
Wenn wir das nun einmal damit vergleichen, was im Alltag und im Job der meisten Entwicklerinnen und Entwickler passiert, dann ist das üblicherweise weit von Kunst entfernt. Das merkt man unter anderem sehr rasch an den Begriffen, mit denen wir uns umgeben: Da geht es um Software-Engineering, da geht es um Software-Factories, da wird Informatik als Ingenieurswissenschaft gesehen, die vorhersagbar, planbar und deterministisch sein soll. Mit anderen Worten: Das ist dermaßen weit weg von einer künstlerischkreativen Sichtweise, dass es schon erstaunlich (oder, je nach Sichtweise, erschreckend) ist.
Ganz automatisch stellt sich dann die Frage: Wer hat denn nun recht? Was ist Informatik denn eigentlich tatsächlich? Was ist das Wesen und was ist der Kern des Ganzen?
Ein Blick in die Industrie zeigt, wohin die Reise geht: Tests? Werden oft weggelassen, kosten unnötig Geld und sind nicht so wichtig. Man weiß ja: Man bekommt günstigere Software durch weniger Tests [3]. Dokumentation? Auch die braucht nicht unbedingt jemand, auch sie kostet nur Geld und vor allem Zeit. Clean Code? Naja, wenn es unbedingt sein muss, dann können wir vielleicht einmal eine Woche einen Refactoring-Sprint machen, aber danach muss man dann bitte wieder neue Features schreiben, denn der Kunde zahlt schließlich nicht für Clean Code. Der Kunde zahlt nämlich generell nicht für den Code, der ist ihm nämlich komplett egal. In Wahrheit zahlt der Kunde stattdessen dafür, dass wir ein Problem pragmatisch und effizient lösen. Und dass wir das mit Code und nicht mit einem Schraubenzieher machen, ist dabei bestenfalls ein drittrangiger Seitenaspekt.
Das Erstaunliche an alldem ist, dass es funktioniert. Ich habe vor etlichen Jahren jemanden in einem großen Konzern kennengelernt, der alleine an einer Analyse-Software für den Vorstand gearbeitet hat. Sein Code (und diese Geschichte ist tatsächlich wahr und kein Scherz) bestand aus 70.000 Zeilen PHP-Code in einer einzigen (!) Datei. Es gab keinen einzigen automatisierten Test, kein automatisiertes Deployment, keine CI/CD-Pipeline oder Ähnliches. Er hat nicht einmal mit einer Versionsverwaltung gearbeitet, sondern mit VI direkt die eine einzige PHP-Datei auf dem Produktivserver editiert.
Und tatsächlich fand er das gut so, denn: Wenn er diese eine Datei dann nach Stunden des Editierens endlich gespeichert hat, war die Anwendung sofort neu deployed. Das Schlimmste daran war, dass er in dem Team, zu dem er gehörte, derjenige war, der die mit Abstand stabilste und verlässlichste Software geschrieben hat. Das Sahnehäubchen an alldem: Das PHP-Skript war über mehrere Symlinks erreichbar, und je nachdem, wie es aufgerufen wurde, hat es sich anders verhalten. Der Vorstand hat ihn geliebt, aber alle anderen im Team haben ihn verflucht und jedes Mal gezittert, wenn er in den Urlaub gegangen ist oder krank war.
Als externer Berater, als der ich damals für dieses Team fungiert habe, steht man dann da, mit all den Best Practices, die man für gute Codequalität vermitteln möchte, wie Unit-Tests, Integration-Tests, statischer Code-Analyse, Versionsverwaltung, Containerisierung, Continuous-Integration, Continuous-Deployment und so weiter, und es wird einem gesagt, das sei ja alles schön und gut, aber es würde alles hervorragend funktionieren, und es bringe nur Unruhe hinein, am bestehenden Vorgehen etwas zu ändern.
Und so sehr mich diese Sichtweise aus der einen Perspektive ärgert, muss ich auf der anderen Seite doch zugeben: Ja, er hat mit seinen 70.000 Zeilen PHP-Code auf dem Produktiv-Server das zugrunde liegende Problem gelöst und dem Vorstand verlässlich und termingerecht die gewünschten Zahlen geliefert. Das war das, was (zumindest aus einer gewissen Perspektive) wichtig war. Dennoch habe ich noch nie, wenn ich diese Geschichte erzähle, jemanden getroffen (und zwar völlig egal ob Entwickler oder Managerin), die oder der gesagt hätte: "Wow, super! So machen wir das ab sofort auch!"
Denn irgendwie wollen dann am Ende doch alle mehr Verlässlichkeit im Hinblick auf Qualität & Co. haben, zumal das auch das ist, was auf jeder Konferenz, auf jedem Meetup, in jedem Blog oder auf YouTube erzählt wird, unter anderem auch von Leuten wie mir. Aber auch ich muss zugeben, dass der Pragmatismus und die rein auf das Lösen des Problems ausgerichtete Entwicklung nicht von der Hand zu weisen ist. Es ist effizient. Aber warum empfiehlt das trotzdem niemand? Woher kommt diese Diskrepanz?
Letztlich glaube ich, dass das daher kommt, dass hier zwei gegensätzliche Sichtweisen aufeinanderprallen: Hier trifft nämlich Kunst auf Business. Und Informatik ist am Ende beides zugleich, Informatik ist eine Dualität. Die Auswirkungen dieser Dualität erleben wir im Alltag ständig, denn es gibt tagtäglich Reibungspunkte, wo diese beiden Welten und diese beiden Perspektiven in Konflikt miteinander geraten. Das fängt schon damit an, wenn man eine Aufwandsschätzung abliefern soll. Ich persönlich denke mir da immer: "Was weiß denn ich, wie lange ich für XY brauchen werde?"
Es heißt schließlich Softwareentwicklung und nicht Softwareproduktion, und ich könnte den Aufwand genau dann vorhersagen, wenn ich die Aufgabe vorher schon einmal so oder zumindest so ähnlich bewerkstelligt hätte, aber dann könnte ich den Code von der vorherigen Implementierung auch einfach kopieren und müsste ihn nicht neu entwickeln. Und das geht nicht nur mir so, das geht ganz vielen Entwicklerinnen und Entwicklern so, weshalb ich persönlich das Schätzen von Aufwand für relativ sinnfrei halte.
Denn letztlich ist es, wenn man eine Entwicklerin oder einen Entwickler nach einer Aufwandsschätzung fragt, wie wenn man Picasso fragen würde, ob er bitte mal schätzen könne, wie lange er für das Bild von einem Krokodil brauchen würde, immerhin sei das von seinem Dackel ja auch nur ein einziger Strich gewesen und könne höchstens fünf Minuten gedauert haben. Die Wahrheit ist aber: Kunst lässt sich nicht schätzen. Umgekehrt kann ich aber auch verstehen, dass man im Business planen können und Ergebnisse sehen möchte: Wenn ich ein Haus baue, will ich auch nicht hören, dass der Rauputz noch nicht fertig ist, weil "die Hand des Maestros seit einer Woche nicht den richtigen Schwung und die richtige Eingebung finde, um die Kelle zu führen".
Allerdings sind diese beiden Sichtweisen zugleich auch die beiden Extreme, und wie immer, wenn es zwei Extreme gibt, gibt es auch etwas zwischen den Polen. Das heißt, am Ende sprechen wir bei der ganzen Angelegenheit über eine Skala. An deren einem Ende steht die reine Kunst, die Software und Code als Selbstzweck ansieht, quasi "l’art pour l’art". Am anderen Ende der Skala steht das rein pragmatische Business, wo es nur darum geht, Probleme möglichst effizient und kostengünstig zu lösen und sich (Achtung, Wortwitz) nicht zu verkünsteln. Code und Software sind hier ein reines Mittel zum Zweck.
Die Wahrheit liegt, vermute ich, irgendwo dazwischen, denn Kunst ohne Anwendung kommt nicht aus ihrem Elfenbeinturm heraus. Aber Anwendung ohne Kunst hat keine Seele. Und die alles entscheidende Frage lautet: Wo stehen Sie auf dieser Skala?
Ich glaube, wenn sich mehr Entwicklerinnen und Entwickler über diese Frage Gedanken machen und für sich einen Standpunkt definieren würden, und wenn Unternehmen dasselbe tun würden, und wenn man dann über das jeweilige Wertesystem sprechen würde, dann würde Entwicklung deutlich besser und reibungsloser verlaufen, weil es weniger Konflikte und Missverständnisse über die Natur der Entwicklung an sich gäbe.
Und dann wäre Softwareentwicklung am Ende vielleicht tatsächlich genau das: keine Kunst.
URL dieses Artikels:
https://www.heise.de/-9755000
Links in diesem Artikel:
[1] https://de.wikipedia.org/wiki/The_Art_of_Computer_Programming
[2] https://www.heise.de/Datenschutzerklaerung-der-Heise-Medien-GmbH-Co-KG-4860.html
[3] https://www.youtube.com/watch?v=Eqec4dNgqeQ
[4] mailto:rme@ix.de
Copyright © 2024 Heise Medien
(Bild: sirtravelalot/Shutterstock.com)
Entwicklerinnen und Entwickler können eigene Polly-Pipelines zur Handhabung von Fehlersituationen definieren.
Die vorherige Ausgabe dieser Blogserie zu .NET 8.0 [1] hat AddStandardResilienceHandler() vorgestellt. In diesem Beitrag geht es um die Anpassung der Standardeinstellungen.
Alternativ zu AddStandardResilienceHandler() kann man via AddResilienceHandler() eine komplett eigene Polly-Pipeline definieren. Abbildung 1 zeigt die standardmäßige Pipeline.
(Bild: Microsoft [2])
Die folgende selbstdefinierte Pipeline verwendet nur die Aufträge 2 bis 5 aus obiger Tabelle mit folgenden Einstellungen:
services.AddHttpClient<WeatherServiceClient>(
// Timeout insgesamt: Hier 10 Sekunden
client => { client.Timeout = new TimeSpan(0,0,10); })
.AddResilienceHandler(
"CustomPipeline",
static builder =>
{
// Wiederholungen bei Fehlern
// Hier: Der Aufruf wird bis zu fünf Mal wiederholt. Der Abstand zwischen den Versuchen ist konstant 1 Sekunde. Bei dem Versuch gibt es eine Bildschirmausgabe.
// https://www.pollydocs.org/strategies/retry.html
builder.AddRetry(new HttpRetryStrategyOptions
{
// Customize and configure the retry logic.
BackoffType = DelayBackoffType.Constant, // oder Linear oder Exponential
Delay = TimeSpan.FromSeconds(1),
MaxRetryAttempts = 10,
OnRetry = static (args) =>
{
CUI.Cyan($"{DateTime.Now.ToLongTimeString()} Versuch #{args.AttemptNumber} Zeit seit letztem Versuch:{(int)(DateTime.Now - lastTry).TotalMilliseconds} ms Dauer:{args.Duration} Grund:{args.Outcome.Result} \n");
lastTry = DateTime.Now;
return ValueTask.CompletedTask;
},
});
// Trennschalter, wenn zu viele Fehler passieren
// Hier: Abbruch wenn in 10 Sekunden 50% der Anfragen fehlschlagen, frühestens aber nach 5 Anfragen
// https://www.pollydocs.org/strategies/circuit-breaker.html
builder.AddCircuitBreaker(new HttpCircuitBreakerStrategyOptions
{
// Customize and configure the circuit breaker logic.
SamplingDuration = TimeSpan.FromSeconds(10),
FailureRatio = 0.5,
MinimumThroughput = 5,
ShouldHandle = static args =>
{
return ValueTask.FromResult(args is
{
Outcome.Result.StatusCode: HttpStatusCode.RequestTimeout or HttpStatusCode.TooManyRequests or HttpStatusCode.InternalServerError
});
}
});
// Timeout für einzelne Versuche
// hier: 2 Sekunden
// https://www.pollydocs.org/strategies/timeout.html
builder.AddTimeout(TimeSpan.FromSeconds(2));
});
URL dieses Artikels:
https://www.heise.de/-9773126
Links in diesem Artikel:
[1] https://www.heise.de/blog/Neu-in-NET-8-0-25-Resilienz-im-HTTP-Client-9763586.html
[2] https://learn.microsoft.com/de-de/dotnet/core/resilience/http-resilience
[3] mailto:rme@ix.de
Copyright © 2024 Heise Medien
(Bild: asharkyu/Shutterstock.com)
.NET 8.0 enthält die etablierte Bibliothek Polly für Ausfallsicherheit und den Umgang mit temporären Fehlersituationen.
Microsoft hat die etablierte .NET-Bibliothek Polly [1] für Ausfallsicherheit und den Umgang mit temporären Fehlersituationen in .NET 8.0 integriert. Dazu gibt seit .NET 8.0 die neue NuGet-Pakete Microsoft.Extensions.Resilience und Microsoft.Extensions.Http.Resilience.
Die Verwendung in Verbindung mit einem WebAPI-Aufruf ist einfach: Man verwendet AddStandardResilienceHandler() beim Injizieren einer HttpClient-Instanz.
// Erzeuge einen Service Builder
IServiceCollection services = new ServiceCollection();
// Ergänze HTTP Client für Wetterdienst
// NEU in .NET 8.0:
.AddStandardResilienceHandler(); // basiert auf Polly !
services.AddHttpClient<WeatherServiceClient>().AddStandardResilienceHandler();
IServiceProvider serviceProvider = services.BuildServiceProvider();
for (int i = 0; i < 10000; i++)
{
var client = serviceProvider.GetService<WeatherServiceClient>();
try
{
var daten = client.GetWeather();
#region Ausgabe der Wetterdaten
foreach (var item in daten.Result)
{
Console.WriteLine(item.Date + " " +
item.TemperatureC + " " + item.Summary);
}
#endregion
System.Threading.Thread.Sleep(500);
}
catch (Exception ex)
{
CUI.Error(DateTime.Now + ": " + ex.Message);
}
}
(Bild: Microsoft [2])
Hinweis: Die Strategien des Standard-Handlers lassen sich per Programmcode oder per Anwendungskonfigurationsdatei appsettings.json anpassen. Die Dokumentation dazu finden Sie nicht bei Microsoft, sondern bei Polly [3]. Die bei dem Standardhandler geltenden Standardeinstellungen findet man dabei jeweils bei den einzelnen Strategien, beispielsweise sieht man [4], dass ein Aufruf maximal dreimal versucht wird mit einer konstanten Verzögerung von zwei Sekunden.
Durch Übergabe einer Funktion, die ein Objekt vom Typ HttpStandardResilienceOptions liefert, kann man die Polly-Pipeline umkonfigurieren. Das nächste Beispiel zeigt: Der Aufruf wird bis zu fünf Mal wiederholt. Der Abstand zwischen den Versuchen ist konstant eine Sekunde. Bei dem Versuch gibt es eine Bildschirmausgabe.
services.AddHttpClient<WeatherServiceClient>().AddStandardResilienceHandler(options =>
{
options.Retry.BackoffType =
DelayBackoffType.Constant; // oder Linear oder Exponential
options.Retry.Delay = TimeSpan.FromSeconds(1);
options.Retry.MaxRetryAttempts = 5;
options.Retry.OnRetry = static (args) =>
{
CUI.Cyan($"Versuch #{args.AttemptNumber} Zeit seit letztem Versuch:{(int)(DateTime.Now - lastTry).TotalMilliseconds} ms Dauer:{args.Duration} Grund:{args.Outcome.Result} \n");
lastTry = DateTime.Now;
return ValueTask.CompletedTask;
};
}
);
URL dieses Artikels:
https://www.heise.de/-9763586
Links in diesem Artikel:
[1] https://github.com/App-vNext/Polly
[2] https://learn.microsoft.com/de-de/dotnet/core/resilience/http-resilience
[3] https://www.pollydocs.org/strategie
[4] https://www.pollydocs.org/strategies/retry.html#defaults
[5] mailto:rme@ix.de
Copyright © 2024 Heise Medien
(Bild: Cisco)
Im Rahmen der Hausmesse Live hat Cisco mehrere neue Firewall-Serien vorgestellt. Neben dem neuen Topmodell gab es auch einen GenAI-Assistenten zu sehen.
Cisco kümmert sich um die Auffrischung des Desktop-Firewall-Portfolios für Zweigstellen und kleine Unternehmen. Die neue Cisco Secure Firewall der 1200er-Serie soll für die performante und sichere Anbindung kleiner Zweigstellen dienen. Für die Cloud-verwalteten Meraki-MX-Firewalls gibt es ein neues Topmodell namens MX650. Gleichzeitig bringt Cisco einen KI-Assistenten für Firewalls.
Es soll ab Oktober 2024 drei neue Modelle [1] geben: Die kleinste 1210 CE bringt 3 Gbit/s Firewall- und 2 Gbit/s IPSec-VPN-Durchsatz. Sie besitzt 8*1000BASE-T Kupferports. Die 1210 CP liefert auf vier der acht Ports zusätzlich noch UPoE+, um beispielsweise WLAN Access-Points oder Telefone mit Strom zu versorgen. Falls es etwas mehr Durchsatz braucht oder der Internet-Uplink oder eine Verbindung zu einem Switch per Lichtwellenleiter erfolgen soll, liefert die 1220 CX zusätzlich zu 8*1000BASE-T Kupferports noch 2*SFP+-Slots und bis zu 6 Gbit/s Firewall- und 4 Gbit/s IPSec-VPN-Durchsatz. Alle drei Varianten kommen mit einem externen Netzteil daher.
Der Hersteller benennt im iX-Interview ein bis zu dreimal besseres Preis-/Durchsatzverhältnis im Vergleich zu Mitbewerbern. Konkrete Preise nannte Cisco auf der Live jedoch nicht, wodurch sich die Angaben nicht überprüfen lassen.
Cisco hat darüber hinaus die neue Software-Version 7.6 von Firewall Threat Defense (FTD) angekündigt, die für alle physischen und virtuellen Firewalls von Cisco verfügbar ist. Sie soll den Rollout von Zweigstellennetzwerken mit vorgefertigten SD-WAN- und Firewall-Vorlagen sowie Zero-Touch-Provisioning unterstützen.
Das neue Topmodell der cloud-verwalteten Meraki-MX-Firewall stellt die nun frisch vorgestellte MX650 [2] dar. Sie bietet einen SFP28-Einschub für bis zu 25G dediziert auf WAN-Seite sowie konfigurierbar auf LAN-Seite einen 25G SFP28- und zwei 10G SFP+- sowie acht 1G SFP-Einschübe. Sie soll mit bis zu 25 Gbit/s über 5-fachen maximalen IPSec-Durchsatz und mit 16 Gbit/s Durchsatz für erweiterte Sicherheitsfunktionen mehr als doppelte Performance im Vergleich zur MX450 bieten. Auch die maximale empfohlene Client-Anzahl steigt von 10.000 bei der MX450 auf 50.000 Clients bei der MX650. Das Ganze kommt auf Basis einer Höheneinheit daher.
Zudem gab es auf der Cisco Live in Las Vegas auch einige Informationen zum sogenannten AI Assistant for Security [3]. Er baut auf dem Firewall Management Center (FMC) oder dem Cisco Defense Orchestrator (CDO) aus der Cloud auf. Mit dieser Kombination sollen Administratoren ihre Firewalls verwalten, Richtlinien konfigurieren und bei Bedarf auf Referenzmaterialien zugreifen, um effizienter zu werden. Dabei handelt es sich nach Angaben des Herstellers um ein generatives KI-Tool auf Basis eines LLMs mit Natural Language Processing (NLP). Auch bei Fehlverhalten, wie unkontrollierten Neustarts, soll der Assistent Empfehlungen geben, beispielsweise Softwareupdates mit entsprechenden Hinweisen.
URL dieses Artikels:
https://www.heise.de/-9759186
Links in diesem Artikel:
[1] https://www.cisco.com/site/us/en/products/security/firewalls/secure-firewall-1200-series/index.html
[2] https://documentation.meraki.com/MX/MX_Overviews_and_Specifications/MX650_Datasheet
[3] https://blogs.cisco.com/security/give-your-firewall-admins-superpowers-with-cisco-ai-assistant-for-security
[4] https://www.heise.de/ix/
[5] mailto:fo@heise.de
Copyright © 2024 Heise Medien
Das Aachener Start-up Black Semiconductor sichert sich eine Viertelmilliarde Euro für die Fertigung von Graphen-Optelektronik.
Die Europäische Union (EU) sowie private Investoren stecken insgesamt 254,4 Millionen Euro in das junge Aachener Unternehmen Black Semiconductor. Dessen Name bezieht sich auf die schwarze Farbe von Kohle, denn das superdünne Material Graphen mit besonderen elektrischen und optischen Eigenschaften ist eine Modifikation von Kohlenstoff.
Black Semi will eine Pilot-Fertigungsanlage für schnelle optoelektronische Komponenten aus Graphen [1] auf 300-Millimeter-Wafern bauen. Ziel ist es, optische Interconnects mit Graphen-Technik in "normale" CMOS-Logikchips wie Prozessoren, Systems-on-Chip (SoCs) und Rechenbeschleuniger zu integrieren: Co-integrated Optics (CIO). Das soll sehr leistungsfähige und energetisch effiziente Chip-zu-Chip-Kommunikation auch über längere Distanzen ermöglichen.
Der Mitgründer Dr. Daniel Schall forscht seit Jahren an Graphen-Optoelektronik [2] und war auch für die Gesellschaft für Angewandte Mikro- und Optoelektronik mbH (AMO GmbH) tätig, die das Advanced Microelectronic Center Aachen (AMICA) betreibt [3]. Black Semiconductor [4] wurde 2019 aus der AMO GmbH ausgegründet.
Auch andere Firmen tüfteln daran, CMOS-Logikchips und optische Interconnects eng zu koppeln. Intel meldet seit rund 20 Jahren immer wieder Fortschritte [5] bei Silicon Photonics, also bei in Siliziumtechnik umgesetzter Optoelektronik.
Nvidia-CEO Jensen Huang wies vor wenigen Monaten auf die Nachteile der Umwandlung von elektrischen in optische Signale [6] hin und erklärte, dass man für die schnelle Vernetzung von KI-Clustern per NVLink daher bisher auf Kupferkabel setze. Die Integration optischer Interconnects direkt in Logikchips könnte die Energieeffizienz optischer Interconnects in der Praxis erheblich steigern.
Ein weiterer Ansatz zur Anbindung optischer Transceiver an CMOS-Chips sind Chiplets. Außerdem arbeiten einige Firmen an optischen Prozessoren [7].
URL dieses Artikels:
https://www.heise.de/-9751925
Links in diesem Artikel:
[1] https://www.heise.de/hintergrund/Graphen-Vom-Hype-zur-Anwendung-2792052.html
[2] https://scholar.google.de/citations?user=K6795lYAAAAJ&hl=de
[3] https://www.amo.de/de/ueber-amo/geschichte/
[4] https://blacksemi.com/
[5] https://www.heise.de/news/Intel-plant-Prozessoren-mit-optischen-Schnittstellen-4978154.html
[6] https://www.semianalysis.com/p/nvidias-optical-boogeyman-nvl72-infiniband
[7] https://www.heise.de/hintergrund/Optische-Prozessoren-Aufbau-und-Entwicklungsstand-7446679.html
[8] https://www.heise.de/ct/
[9] mailto:ciw@ct.de
Copyright © 2024 Heise Medien
(Bild: swissdrone / Shutterstock.com)
Wer mit dem Handy durch Deutschland fährt, hat mancherorts noch immer schlechtes Netz. Doch alles in allem werden die Verbindungen besser - auch bei Vodafone.
Der Telekommunikationsanbieter Vodafone will sein 5G-Handynetz in Deutschland weiter ausbauen. Derzeit seien rund 92 Prozent der deutschen Haushalte in Reichweite von 5G-Antennen von Vodafone und bis spätestens März 2025 sollen es 95 Prozent sein, sagte der Vodafone-Deutschlandchef Marcel de Groot der dpa in Düsseldorf. "Zeitgleich statten wir unsere bestehenden Mobilfunkstationen mit zusätzlichen Kapazitäten aus."
Dies geschieht auch mit Blick auf die anstehende Zubuchung (Migration) von Handykunden des Wettbewerbers 1&1. Der hat nur wenige eigene Antennen – dort, wo er nicht selbst funkt, werden dessen Kunden derzeit noch mit dem O2-Netz verbunden. Im Sommer wechselt 1&1 beim "National Roaming" zu Vodafone, rund 12 Millionen 1&1-Kunden müssen dann schrittweise in das Vodafone-Netz übergeführt werden. Das beschert Vodafone Mieteinnahmen und die Auslastung des Netzes steigt, zuletzt hatte die Firma in Deutschland nach eigenen Angaben rund 31 Millionen Mobilfunk-Kunden.
Beim 5G-Handynetz-Ausbau sind die Konkurrenten weiter, die Deutsche Telekom liegt derzeit nach eigenen Angaben bei einer Haushaltsabdeckung von 96 Prozent und O2 Telefónica bei 95 Prozent, beide Firmen peilen bis Ende 2025 einen Wert von nahezu 100 Prozent an.
Dieses Jahr sollte ursprünglich eine Auktion von Mobilfunk-Frequenzen stattfinden, doch dieses Mal will die Bundesnetzagentur darauf verzichten und stattdessen bestimmte Nutzungsrechte um fünf Jahre verlängern [1]. Im Gegenzug dazu müssen sich die Firmen zu einem verstärkten Netzausbau bis 2030 verpflichten. Dann sollen 99,5 Prozent der Fläche Deutschlands mit mindestens 50 Megabit pro Sekunde versorgt sein.
Vodafone-Deutschlandchef de Groot findet den neuen Kurs der Netzagentur – also den Verzicht auf die Auktion – "grundsätzlich gut für die Handynutzer in Deutschland". Schließlich hätten die Netzbetreiber dadurch mehr Geld für den Ausbau. "Jeder Euro, der in Masten statt in Lizenzscheine fließt, ist ein gut investierter Euro", sagte der Manager.
Die vorgeschlagenen Ausbauziele in der Fläche wären aber nur erreichbar, "wenn die Politik den Mobilfunkausbau bundesweit beschleunigt, indem sie gesetzlich festlegt, dass er von überragendem öffentlichen Interesse ist", sagt de Groot. "Und klar ist auch: Wenn der Rückbau von Mobilfunkantennen im ganzen Land angeordnet wird, sind die vorgeschlagenen Versorgungsziele nicht erreichbar."
Mit dieser Bemerkung bezieht er sich auf Überlegungen in der Bundespolitik [2], chinesische Komponenten aus dem deutschen Antennen-Netz entfernen zu lassen. Das würde die drei etablierten Handynetzbetreiber Deutsche Telekom, Vodafone und Telefónica O2 vor Probleme stellen. Schließlich setzen sie im Antennen-Netz alle auch auf den chinesischen Anbieter Huawei, dessen hohe Qualität sie schätzen.
URL dieses Artikels:
https://www.heise.de/-9758840
Links in diesem Artikel:
[1] https://www.heise.de/news/Regulierer-Mobilfunkfrequenzen-fuenf-Jahre-verlaengern-gegen-Flaechenabdeckung-9716578.html
[2] https://www.heise.de/news/Ministertreffen-Deutscher-Umgang-mit-Huawei-bleibt-unklar-9730661.html
[3] mailto:fds@heise.de
Copyright © 2024 Heise Medien
(Bild: iX / generiert mit ChatGPT)
DuckDB ist in Version 1.0 erschienen. Was hat es mit dieser Datenbank auf sich, die einiges anders macht als andere Datenbanken?
Vor kurzem bin ich auf eine Software gestoßen, bei der ich mir gewünscht hätte, ich hätte sie schon viel früher kennengelernt. Aber, wie es so schön heißt: besser spät als nie. Bei dieser Software handelt es sich um eine etwas ausgefallene Datenbank, die ein paar Dinge anders macht als die üblichen Verdächtigen. Die Rede ist, und das lässt sich am Titel dieses Blogposts bereits erahnen, natürlich von DuckDB [1], deren finale Version 1.0 am Montag vor einer Woche veröffentlicht wurde. Das ist ein Grund mehr, einmal einen Blick auf diese Datenbank zu werfen.
DuckDB stammt aus den Niederlanden und war ursprünglich ein Uniprojekt. Entwickelt wird die Datenbank seit 2018, also seit inzwischen sechs Jahren. Nun ist es nicht so, als ob es nicht grundsätzlich schon mehr als genug Datenbanken auf dem Markt gäbe, aber bei DuckDB gibt es einige nennenswerte Besonderheiten. Das fängt damit an, dass DuckDB im Vergleich zu vielen anderen Datenbanken (wie PostgreSQL, MariaDB, SQL Server oder Oracle) nicht als Client-Server-System angelegt ist, sondern die Datenbank läuft Embedded und In-Process.
Das heißt, sie lässt sich nahtlos in eine eigene Anwendung integrieren, sodass die Anwendung die Datenbank-Engine nachher mitbringt: Startet man die Anwendung, ist die Datenbank da. Beendet man die Anwendung, wird auch die Datenbank beendet. Vielleicht erinnert Sie das ein wenig an eine andere In-Process-Datenbank, nämlich an SQLite [2]. Diese extrem verbreitete Datenbank funktioniert grundsätzlich genauso, aber es gibt einen ganz gravierenden Unterschied zwischen den beiden. Dazu aber später mehr.
DuckDB, und das ist ebenfalls eine Besonderheit, läuft dabei aber nicht nur In-Process mit der eigentlichen Anwendung, sondern sie kennt auch noch zwei Betriebsmodi: Sie kann die Daten nämlich entweder ganz klassisch auf Disk persistieren oder, und das ist ungewöhnlich, sie kann komplett In-Memory ausgeführt werden, also komplett ohne Persistenz. Das klingt vielleicht im ersten Augenblick etwas widersinnig, aber in einigen Szenarien ist das unglaublich praktisch und hilfreich. Und (das ist natürlich auch noch ein ganz gravierender Punkt) im Fall dieses In-Memory-Betriebs ist DuckDB rasend schnell.
Und damit kommen wir nun zur eigentlichen Spezialität von DuckDB, die sie auch als eingebettete In-Process-Datenbank von zum Beispiel SQLite abhebt: SQLite ist nämlich grundsätzlich eine SQL-basierte, relationale Datenbank, die Tabellen kennt, und in diesen Tabellen die Daten zeilenweise speichert. Für viele Anwendungsfälle ist das praktisch, denn häufig werden Daten auch entsprechend Datensatz für Datensatz gelesen und verarbeitet. Aber: Das muss nicht so sein.
Es gibt nämlich auch Anwendungsfälle, in denen es deutlich praktischer wäre, wenn man effizient die Spalten statt der Zeilen lesen (beziehungsweise schreiben) könnte. Das ist immer dann der Fall, wenn es um die Aggregation von Daten geht, also zum Beispiel bei Statistiken, Analysen, Reports und so weiter. Also im Prinzip bei allem, was eher in den Bereich OLAP statt OLTP [4] fällt.
Hier wird es spannend: DuckDB ist nämlich eine spaltenorientierte Datenbank, das heißt, sie ist nicht so sehr auf das tagtägliche operative Geschäft ausgelegt, sondern sie adressiert den Datenanalyse-Bereich. Mit anderen Worten: Mit DuckDB hat man eine In-Process- und, wenn man das möchte, auch eine In-Memory-Engine, die sich mit SQL ansteuern lässt, und die auf Datenanalyse und OLAP ausgelegt ist. Also im Prinzip so etwas wie Apache Spark, nur halt in klein, schnuckelig, leichtgewichtig und gefühlt zigmal einfacher.
Und das ist tatsächlich ein ziemliches Alleinstellungsmerkmal. So eine Datenbank gibt (oder besser gesagt: gab) es zumindest meines Wissens nach bisher noch nicht.
Vor einigen Tagen habe ich mich mit einem Freund unterhalten, der in ebendiesem Bereich tätig ist, und wir kamen durch Zufall auf Spark zu sprechen. Ich fragte, ob sie denn wirklich derart umfangreiche Datenmengen hätten, dass sich der Aufwand für ein Spark-Cluster lohnen würde. Und seine ganz klare Antwort war Nein, das ließe sich auch problemlos auf einem einzelnen Server komplett im RAM bewerkstelligen. Das bedeutet natürlich nicht, dass es keinen Anwendungsfall für Spark gäbe, aber allzu oft wird Spark mangels Alternativen auch ohne Notwendigkeit genutzt.
Viele denken nun vielleicht, dass sich das alles in der Theorie ganz nett anhört, aber in der Realität ging es um mehr, wie beispielsweise die Integration mit diversen anderen Datenquellen. Schlagwörter wie Apache Arrow, Parquet-Files, CSV, JSON, Excel und S3 stehen vielleicht im Raum. Das Schöne ist: DuckDB kann das alles. DuckDB versteht Parquet-Dateien ebenso wie CSV, JSON und Excel. DuckDB kann sogar andere Datenbanken als Datenquelle integrieren. Das heißt, mit DuckDB lässt sich etwa direkt eine PostgreSQL oder eine MariaDB anbinden, ohne dafür einen gesonderten Adapter zu benötigen.
Die Liste der interessanten Features geht jedoch noch deutlich weiter: DuckDB unterstützt wie gesagt SQL, und zwar nicht (wie so oft) nur eine Schmalspurvariante, sondern vollumfänglich nahezu alles, was SQL heutzutage zu bieten hat: von Indizes über Transaktionen, Common Table Expressions, Snapshot-Isolation, CUBE-Funktionen, As-Of-Joins und vieles mehr. Als ich das alles nach und nach herausgefunden habe, war ich doch sehr beeindruckt.
Und weil DuckDB in C++ geschrieben ist, kann man die Datenbank zum einen auf so ziemlich jeder gängigen Plattform (macOS, Linux, Windows) und Architektur (x86, ARM) nutzen. Zum anderen lässt sich DuckDB auch in nahezu jede beliebige andere Technologie integrieren. Es gibt von Haus aus schon eine ganze Reihe von Adaptern, unter anderem für Go, Node.js, Python, R, Rust, Java, Julia, Swift und noch einige mehr [5]. Es gibt sogar einen WebAssembly-Build [6], sodass man DuckDB komplett im Browser laufen lassen kann! Und das alles mit mehr oder weniger ein paar Zeilen Code, denn die Installation und auch die Anbindung sind wirklich simpel.
Apropos Installation: Wer einfach mal so ein bisschen mit DuckDB experimentieren und dafür nicht direkt eine Anwendung erstellen möchte, kann DuckDB auch über die Paketverwaltung des jeweiligen Betriebssystems [7] installieren und als eigenständiges Werkzeug über ein CLI starten. Gleichzeitig heißt das übrigens auch, dass jede Anwendung natürlich ihre eigene lokale Version von DuckDB haben kann, weil es keine systemweite Installation als Server gibt, die sich alle teilen müssten. Im Prinzip ist das einfach nur eine ganz normale weitere Abhängigkeit, die man zu der eigenen Codebase dazu installiert.
Ich habe geschrieben, dass vergangene Woche die Version 1.0 erschienen ist. Diese trägt den Codenamen "Snow Duck". Tatsächlich ist das eine Anspielung an macOS 10.6 "Snow Leopard", was Apple damals mit dem Slogan "Zero Features" beworben hat, weil Snow Leopard den Fokus ausschließlich auf Stabilität gelegt hat. Genau das ist laut den Entwicklerinnen und Entwicklern von DuckDB auch das Hauptziel der 1.0 [8] gewesen: Einen wirklich stabilen Unterbau zu liefern. Wer DuckDB schon ein bisschen länger verfolgt, weiß, dass es im Laufe der Zeit den einen oder anderen Breaking Change im Dateiformat gab. Aber auch das ist jetzt behoben und final festgelegt. Die Entwicklerinnen und Entwickler geben an, dass DuckDB 1.0 nun wirklich als stabile Version anzusehen sei.
Apropos Entwicklerinnen und Entwickler: Ich habe auch erwähnt, dass DuckDB ursprünglich ein Uniprojekt war. Die Entwicklung obliegt inzwischen aber einem Unternehmen, das sich daraus gebildet hat, nämlich DuckDB Labs [9]. Dieses wiederum hängt nicht von externen Investoren ab, sondern ist komplett selbst gebootstrappt. Das finde ich persönlich immer ein sehr gutes Zeichen, weil das bedeutet, dass ein Unternehmen technologisch sinnvolle Entscheidungen treffen kann und nicht zahlengetrieben Irgendetwas machen muss, um Investoren zufriedenzustellen. Von daher gehe ich persönlich davon aus, dass DuckDB eine gute Zukunft bevorsteht.
Apropos Zukunft: Falls das alles an Argumenten noch nicht genügt, um mal einen Blick auf DuckDB zu werfen, sei noch erwähnt, dass es auch eine ganze Reihe von Extensions gibt, mit denen man den Funktionsumfang erweitern kann – zum Beispiel für eine Volltextsuche oder für den Umgang mit Geo-Spatial-Daten.
Denjenigen, die neugierig geworden sind, kann ich abschließend noch ein Buch empfehlen, das zwar noch nicht final erschienen ist (das wird voraussichtlich noch zwei Monate dauern), aber das man trotzdem vorab schon lesen kann, und zwar: "DuckDB in Action [10]" von Manning Publishing. Der Vorab-Zugriff ist über deren MEAP-Programm (das "Manning Early Access Program" möglich). Ich habe das, was von dem Buch bislang zur Verfügung steht (und das ist zugegebenermaßen bereits fast alles), schon gelesen, und wie gesagt: Ich kann es wärmstens empfehlen! Mehr zu dem Buch finden Sie in der Buchbesprechung von Thorben Janssen [11].
Am Ende stellt sich trotz allem natürlich die Frage nach der passenden Anwendung. DuckDB ist auf Datenanalyse ausgelegt. Das heißt, wer eher eine klassische SQL-Datenbank sucht, wird mit DuckDB wahrscheinlich nicht übermäßig glücklich werden. Für diejenigen, die sich aber ohnehin mit OLAP & Co. beschäftigen und für die Spark & Co. zu groß und zu komplex sind, ist DuckDB sicherlich mehr als nur einen Blick wert.
URL dieses Artikels:
https://www.heise.de/-9753854
Links in diesem Artikel:
[1] https://duckdb.org/
[2] https://www.sqlite.org/
[3] https://www.heise.de/Datenschutzerklaerung-der-Heise-Medien-GmbH-Co-KG-4860.html
[4] https://www.youtube.com/watch?v=mmPkqSR7eXE
[5] https://duckdb.org/docs/api/overview
[6] https://duckdb.org/docs/api/wasm/overview
[7] https://duckdb.org/docs/installation/index
[8] https://duckdb.org/2024/06/03/announcing-duckdb-100.html
[9] https://duckdblabs.com/
[10] https://www.manning.com/books/duckdb-in-action
[11] https://www.heise.de/hintergrund/Buchbesprechung-DuckDB-in-Action-9736958.html
[12] mailto:rme@ix.de
Copyright © 2024 Heise Medien
(Bild: FlashMovie / shutterstock.com)
Die Klasse HttpClient bietet seit .NET 8.0 auch Unterstützung für Proxies mit gesicherter Verbindung.
Die Klasse HttpClient kann seit .NET 8.0 auch HTTPS-basierte Proxies verwenden. Es geht nicht um die Angabe einer TLS-gesicherten Verbindung der Operationen der Klasse HttpClient (GetAsync(), PostAsync(), etc) – das war bisher schon möglich.
Neu ist, dass man bei WebProxy eine TLS-gesicherte Verbindung angeben kann.
URL dieses Artikels:
https://www.heise.de/-9722968
Links in diesem Artikel:
[1] https://www.heise.de/blog/Neu-in-NET-8-0-1-Start-der-neuen-Blogserie-9574680.html
[2] https://www.heise.de/blog/Neu-in-NET-8-0-2-Neue-Anwendungsarten-9581213.html
[3] https://www.heise.de/blog/Neu-in-NET-8-0-3-Primaerkonstruktoren-in-C-12-0-9581346.html
[4] https://www.heise.de/blog/Neu-in-NET-8-0-4-Collection-Expressions-in-C-12-0-9581392.html
[5] https://www.heise.de/blog/Neu-in-NET-8-0-5-Typaliasse-in-C-12-0-9594693.html
[6] https://www.heise.de/blog/Neu-in-NET-8-0-6-ref-readonly-in-C-12-0-9602188.html
[7] https://www.heise.de/blog/Neu-in-NET-8-0-7-Optionale-Parameter-in-Lambda-Ausdruecken-in-C-12-0-9609780.html
[8] https://www.heise.de/blog/Neu-in-NET-8-0-8-Verbesserungen-fuer-nameof-in-C-12-0-9616685.html
[9] https://www.heise.de/blog/Neu-in-NET-8-0-9-Neue-und-erweiterte-Datenannotationen-9623061.html
[10] https://www.heise.de/blog/Neu-in-NET-8-0-10-Plattformneutrale-Abfrage-der-Privilegien-9630577.html
[11] https://www.heise.de/blog/Neu-in-NET-8-0-11-Neue-Zufallsfunktionen-9637003.html
[12] https://www.heise.de/blog/Neu-in-NET-8-0-12-Eingefrorene-Objektmengen-9643310.html
[13] https://www.heise.de/blog/Neu-in-NET-8-0-12-Leistung-von-FrozenSet-9649523.html
[14] https://www.heise.de/blog/Neu-in-NET-8-0-14-Neue-Waechtermethoden-fuer-Parameter-9656153.html
[15] https://www.heise.de/blog/Neu-in-NET-8-0-15-Geschluesselte-Dienste-bei-der-Dependency-Injection-9662004.html
[16] https://www.heise.de/blog/Neu-in-NET-8-0-16-Neue-Methoden-fuer-IP-Adressen-9670497.html
[17] https://www.heise.de/blog/Neu-in-NET-8-0-17-Zeitabstraktion-fuer-Tests-mit-Zeitangaben-9675891.html
[18] https://www.heise.de/blog/Neu-in-NET-8-0-18-Ein-Zeitraffer-mit-eigenem-FakeTimeProvider-9683197.html
[19] https://www.heise.de/blog/Neu-in-NET-8-0-19-Razor-HTML-Rendering-in-beliebigen-NET-Anwendungen-9691146.html
[20] https://www.heise.de/blog/Neu-in-NET-8-0-20-Neue-Code-Analyzer-fuer-NET-Basisklassen-9706875.html
[21] https://www.heise.de/blog/Neu-in-NET-8-0-20-Neue-Code-Analyzer-fuer-ASP-NET-Core-9710151.html
[22] https://www.heise.de/blog/Neu-in-NET-8-0-22-Neues-Steuerelement-OpenFolderDialog-fuer-WPF-9722901.html
[23] mailto:rme@ix.de
Copyright © 2024 Heise Medien
(Bild: asharkyu/Shutterstock.com)
Die Routingtabellen des Internet (BGP) sind anfällig für Manipulation. Daher sollen US-Provider zu Sicherungsmaßnahmen verpflichtet werden.
Internet Service Provider in den USA sollen rechtlich dazu verpflichtet werden, ihre Border Gateways kryptografisch abzusichern, damit sie weniger anfällig gegen falsche oder manipulierte Datenroutings werden. Das hat die Regulierungsbehörde FCC (Federal Communications Commission) am Donnerstag einstimmig beschlossen. Grund ist, dass die Routingtabellen des Internet (Border Gateway Protocol, BGP) anfällig sind für Fehler und absichtliche Manipulation. Durch "BGP-Hijacking" wird Datenverkehr böswillig umgeleitet, untergeschoben oder zum Erliegen gebracht.
"BGP hat Netzbetreibern ermöglicht, zu wachsen und das moderne Internet hervorzubringen, aber es wurde nicht mit ausdrücklichen Sicherheitsfunktionen designt, um Vertrauen in die ausgetauschten Informationen sicherzustellen", sagte FCC-Vorsitzende Jessica Rosenworcel anlässlich des FCC-Beschlusses. "Ich möchte dem Verteidigungsministerium und dem Justizministerium dafür danken, dass sie öffentlich gemacht haben, dass China Telecom BGP genutzt hat, um US-Internetverkehr bei mindestens sechs Gelegenheiten umzuleiten. Diese BGP-Highjackings können personenbezogene Daten offenlegen und Diebstahl, Erpressung und staatliche Spionage ermöglichen." Diese Offenlegung hat Rosenworcel sicherlich dabei geholfen, auch die Unterstützung ihrer FCC-Kollegen aus der Republikanischen Reichshälfte zu bekommen. Denn die Sicherungspflicht für das BGP ist eine Initiative der FCC-Chefin [1], die Demokratin ist.
Die FCC möchte US-Breitbandanbieter zunächst dazu verpflichten, ihre Datenrouten mit RPKI (Resource Public Key Infrastructure) abzusichern. Das hilft gegen irrtümlich falsche Routen. Mindestens jährlich sollen Provider vertrauliche BGP security risk management plans mit Umsetzungsstand und -plänen einreichen. Erst wenn RPKI ausgerollt ist, kann die nächste Sicherheitsmaßnahme BGPsec greifen, die besseren Schutz gegen absichtliches BGP-Hijacking bietet.
Die neun größten ISP des Landes sollen ihre Berichte sogar quartalsweise erstatten, bis sie ein annehmbares Sicherheitsniveau erreicht haben. Zusätzlich sollen sie bestimmte Informationen quartalsweise öffentlich machen müssen. Kleine Betreiber würden von regelmäßiger Berichtspflicht ausgenommen, müssten der FCC allerdings auf Anfrage einschlägige Informationen geben. Die entsprechende FCC-Verordnung geht nun in Begutachtung (Notice of Proposed Rulemaking FCC 24-62), bei der Interessierte Stellungnahmen einreichen können.
Das BG-Protokoll (RFC 1105) spezifiziert den Austausch von Informationen zwischen Routern, auf deren Basis sie die beste Route für die zwischen ihren Netzen – den Autonomen Systemen (AS) – übermittelten Datenpaketen identifizieren können. In Routing-Tabellen halten die Border-Router die besten Pfade fest. Das Border Gateway Protocol krankt daran, dass es aus einer Zeit stammt, als man einander im Netz vertraut hat. Jeder darf beliebige Routen verlautbaren, automatische Kontrollen sind nicht vorgesehen.
Beim sogenannten Präfix-Hijacking gibt ein Angreifer die Präfixe seiner Opfer als eigene aus. Beispielsweise kann das angreifende Netz spezifischere Adressen aus dem Netz des Opfers ankündigen oder behaupten, eine Abkürzung zu bestimmten IP-Adressblöcken zu bieten. Router ohne RPKI müssen das einfach glauben.
Mit RPKI (RFC 6840 plus über 40 weitere RFCs [2]) kann mittels Route Origin Authorisations (ROA )festgelegt werden, für welche IP-Präfixe ein Autonomes System verantwortlich ist. Kündigt es plötzlich andere IP-Präfixe an, löst das Alarm aus. Damit sollen in erster Linie die häufig vorkommenden Fehler bei der Ankündigung von Routen verhindert werden. Das vielleicht bekannteste Beispiel dafür ist die Umleitung von YouTube-Verkehr zur Pakistan Telecom.
Theoretisch gibt es seit 2017 auch eine Waffe gegen absichtliches BGP-Hijacking: BGPsec (RFC 8204) [3]. Es sichert die Routing-Informationen auf dem Weg durch das Netz ab. Statt allein die Authentizität des Ursprungs einer Routenankündigung zu prüfen, soll so sichergestellt werden, dass entlang des Pfades keine Manipulationen passieren. Es hülfe aber nur, wenn erstens RPKI ausgerollt ist und zweitens alle Netzbetreiber gleichzeitig auf BGPsec umstellten, sodass unsignierte Informationen ignoriert werden dürften. Eine solche Umstellung ist nicht in Sicht, weil dafür viele Router ausgetauscht werden müssen und die Netzbetreiber erheblichen Mehraufwand für die Verwaltung all der BGPsec-Schlüssel hätten, die für jeden Routing-Hop notwendig sind.
Außerdem setzt BGPsec voraus, dass man den Ausstellern der kryptografischen Zertifikate vertraut. Stehen diese Stellen jedoch unter staatlicher Kontrolle, ist vielleicht nicht viel gewonnen. Denn die meisten Manipulationen gehen auf Täter aus korrupten Ländern oder gar auf staatliche Akteure, die ihre eigenen Interessen verfolgen, zurück. Sie könnten auch Zertifikate ausstellen, die ihren Attacken den Anschein von Legitimität verleihen.
Berühmt ist ein Fall aus 2013; damals wurde 21 Mal Datenverkehr aus anderen Ländern, darunter Deutschland, Iran, Südkorea und die USA, über Weißrussland geroutet -- manchmal für einige Minuten, manchmal aber auch stundenlang. Aufgefallen ist das erst nach Wochen. Um solche Vorfälle schnell aufzudecken, hat eine Gruppe an der Informatik-Fakultät der Universität Indiana in Bloomington vor sieben Jahren ein Programm namens Bongo veröffentlicht.
Bongo ist für lokale Netze gedacht, die BGP-Routing-Daten [4] von ihrem Internetprovider erhalten, beispielsweise Firmen und Universitäten. Der Administrator kann für jedes Autonome System einstellen, welche Länder im Routing (nicht) auftauchen dürfen. Erspäht die Software eine nicht akzeptable Route, kann sie, je nach Konfiguration, den Administrator alarmieren oder selbst die Firewall anweisen, den Datenstrom zum entsprechenden Autonomen System zu unterbinden.
URL dieses Artikels:
https://www.heise.de/-9751340
Links in diesem Artikel:
[1] https://www.heise.de/news/FCC-Chefin-will-das-Border-Gateway-Protocol-absichern-9721893.html
[2] https://blog.apnic.net/2021/03/15/which-rpki-related-rfcs-should-you-read/
[3] https://datatracker.ietf.org/doc/html/rfc8205
[4] https://www.heise.de/news/Bongo-gegen-BGP-Hijacking-Wohin-lassen-Sie-Ihre-Daten-fliessen-4647808.html
[5] mailto:ds@heise.de
Copyright © 2024 Heise Medien
This is a bug-fix release for the 1.24.0 release, addressing several regressions.
A few highlights ✨:
This release has been made by @Alkarex, @math-GH, and newcomers @ramazansancar, @robinmetral
Full changelog:
(Bild: Michael Vi/Shutterstock.com)
In Kooperation mit Nvidia will Cisco auch im Bereich der Infrastruktur vom KI-Boom profitieren. Nexus HyperFabric AI Cluster heißt das neue Gesamtpaket.
Cisco möchte künftig die Basisinfrastruktur für KI-Projekte als Gesamtpaket anbieten. Dazu zeigte der Hersteller auf der Hausmesse Cisco Live in Las Vegas sein Konzept Nexus HyperFabric AI Cluster. Das soll die Bereitstellung der Basisinfrastruktur vereinfachen, mit der sich generative KI-Modelle und -Anwendungen implementieren, verwalten und überwachen lassen. Das soll sogar ohne tiefgreifende IT-Kenntnisse und Fähigkeiten machbar sein, verspricht Cisco. Parallel zur Kooperation hat Cisco einen Milliarden-Fonds für KI-Startups aufgelegt.
Dazu setzt sich die Infrastruktur aus unterschiedlichen Bestandteilen zusammen. Als modulare Server-Architektur für KI greift Cisco auf Nvidia MGX zurück. Zur Optimierung der Entwicklung und des Einsatzes von generischen KI-Workloads soll Nvidias AI-Enterprise-Software gepaart mit deren NIM-Microservices zur beschleunigten Bereitstellung der grundlegenden Modelle genutzt werden. Als GPU kommen Nvidias Tensor-Core-GPUs beginnend mit dem Nvidia H200 NVL zum Einsatz. Um Zugriffsgeschwindigkeiten zu optimieren und gleichzeitig Sicherheitsrichtlinien anwenden zu können, setzt man auf Nvidia BlueField-3 DPUs und BlueField-3 SuperNICs als funktionserweiterte Netzwerkkarten. Mit Nvidia arbeitet Cisco bereits auch schon in anderen Bereichen zusammen [1].
Für das Management mit den entsprechenden Workflows stellt Cisco eine Cloud-Anwendung bereit. Die zugrunde liegende Netzwerkinfrastruktur fußt auf Ciscos Nexus-6000-Rechenzentrumsswitchen für eine Leaf-Spine-Architektur. Diese soll eine 400G- und 800G-Fabric bereitstellen, wofür Cisco auch entsprechende QSFP-DD-Optiken bereitstellt. Zur Datenspeicherung und als zugrunde liegende Datenbank setzt Cisco auf die VAST Data Plattform.
Ausgewählte Kunden können das Gesamtpaket ab dem vierten Quartal 2024 testen. Die allgemeine Verfügbarkeit soll laut Cisco kurz darauf folgen.
Parallel dazu hat Cisco einen Investitionsfonds in Höhe von einer Milliarde US-Dollar aufgelegt. Er soll strategische Investitionen in Start-ups tätigen, um die Basis für sichere, zuverlässige und vertrauenswürdige KI-Lösungen zu schaffen. Erste Investments für generative KI flossen bereits in die Start-ups Cohere, Mistral AI und Scale AI. Sie sollen das KI-Ökosystem vervollständigen.
URL dieses Artikels:
https://www.heise.de/-9748560
Links in diesem Artikel:
[1] https://www.heise.de/news/InfiniBand-oder-Ethernet-fuer-den-KI-Cluster-Cisco-und-Nvidia-lassen-die-Wahl-9627166.html
[2] https://www.heise.de/ix/
[3] mailto:axk@heise.de
Copyright © 2024 Heise Medien
CDU-Parteizentrale in Berlin
(Bild: Shutterstock/Electric Egg)
Eine kürzlich geschlossene Schwachstelle in Netzwerksicherheits-Produkten des Anbieters Check Point soll laut Insidern den Angriff auf CDU ermöglicht haben.
Der am Freitag bekanntgewordene Cyber-Angriff auf die CDU-Parteizentrale erfolgte laut gut unterrichteten Kreisen unter Ausnutzung einer Schwachstelle in Check Point Network Security Gateways. Die CDU äußerte sich auf Anfrage von heise online am Montag nicht zum Stand der Untersuchung.
Check Point hatte Ende Mai einen Fix für die als CVE-2024-24919 benannte, als kritisch eingestufte Sicherheitslücke [1] veröffentlicht. Laut Check Point wurden dabei Remote-Zugänge genutzt, die ausschließlich passwortgeschützt waren, um Zugriff auf die Security Gateways zu erlangen und von dort aus weiter ins Netz der Attackierten vorzudringen. Die Schwachstelle wurde bereits aktiv ausgenutzt.
Unter den davon betroffenen Nutzern von Check-Point-Software ist laut mit der Materie vertrauten Personen die Parteizentrale der CDU. In Kombination mit einem Phishing-Angriff habe die Ausnutzung der Lücken zu den am Samstag berichteten Vorfällen bei der CDU [2] geführt.
Auch das Bundesamt für Verfassungsschutz, das einbezogen wurde, äußert sich vorerst nicht weiter zum Geschehen. Die Parteien, der Bundestag sowie die Fraktionsspitzen wurden von der für Spionageabwehr zuständigen Behörde über mögliche zusätzliche Sicherheitsvorkehrungen in Kenntnis gesetzt.
Wie das Bundesinnenministerium am Mittag in Berlin erklärte, handele es sich um einen "schwerwiegenden Angriff". Die Art und Weise des Vorgehens deute auf einen professionellen Akteur hin. Angriffsversuche nach dem Muster der Attacke auf die CDU soll es auch bei Bundestagsfraktionen und anderen Parteien gegeben haben – allerdings wohl ohne Erfolg.
Der Vorfall hatte auch deshalb für große Unruhe gesorgt, weil der Hack nur eine Woche vor den Europawahlen bekannt wurde. Vor kurzfristigen "Hack and Leak"-Aktionen hatten Sicherheitsfachleute im Vorfeld der Europawahlen immer wieder gewarnt: Dadurch erlangte Informationen könnten neu kontextualisiert und für Propaganda gezielt gestreut werden. Sie seien dann bis zum Wahltermin kaum mehr wirksam zu entkräften.
Ob das ein Ziel der Angreifer auf die Systeme der CDU war, ist derzeit unbekannt – genau wie die Urheberschaft. Eine sprachlich misslungene Spear-Phishing-Attacke auf die CDU im Februar war der Gruppe APT29 zugerechnet worden, die zum Umfeld des russischen Militärgeheimdiensts GRU zählt. Dazu gehört auch die Gruppe APT28, der die Attacke auf die SPD über den Jahreswechsel 2022/23 offiziell durch die Bundesregierung zugeschrieben wurde [3].
URL dieses Artikels:
https://www.heise.de/-9745917
Links in diesem Artikel:
[1] https://www.heise.de/news/Notfallpatch-Angreifer-attackieren-VPN-Verbindungen-von-Check-Point-Gateways-9741056.html
[2] https://www.heise.de/news/Notfallpatch-Angreifer-attackieren-VPN-Verbindungen-von-Check-Point-Gateways-9741056.html
[3] https://www.heise.de/news/Bundesregierung-Russland-fuer-Cyber-Angriff-auf-SPD-verantwortlich-9706578.html
[4] mailto:vbr@heise.de
Copyright © 2024 Heise Medien
(Bild: Bild erstellt mit KI in Bing Designer durch heise online / dmk)
KI spielt eine viel größere Rolle im Alltag, als die meisten Menschen annehmen. Doch sind wir als Gesellschaft wirklich bereit dafür?
Im Allgemeinen bin ich ein sehr optimistischer Mensch, aber es gibt Entwicklungen in der Gesellschaft, die mir ernsthafte Sorgen bereiten. Dabei meine ich nicht speziell die aktuellen politischen Entwicklungen in Deutschland oder das allgemeine Weltgeschehen an sich, obwohl es in beiden Fällen sicherlich einiges gäbe, worüber man sich sorgen könnte. Stattdessen geht es mir heute um ein Thema, das einerseits zwar sehr konkret ist und annähernd alle Menschen betrifft, das andererseits aber vielen nicht greifbar erscheint, da es sehr abstrakt und weit weg von dem Alltag der meisten Menschen ist – oder zumindest glauben die meisten Menschen, dass dem so sei.
Worum es mir heute geht, ist der Einfluss von Künstlicher Intelligenz auf unsere Gesellschaft. Dazu habe ich drei Thesen, die ich gerne teilen und sachlich in den Kommentaren diskutieren möchte. Warum gerade jetzt? Weil OpenAI, das Unternehmen hinter ChatGPT, am vergangenen Donnerstag ein neues Angebot veröffentlicht hat, nämlich ChatGPT EDU [1] (also ChatGPT for Education). Das bedeutet im Wesentlichen, dass OpenAI nun aktiv versucht, ChatGPT im Bildungsbereich zu etablieren. Dazu wurden spezielle Angebote für Universitäten, Hochschulen und, was besonders wichtig ist, auch für normale Schulen ins Leben gerufen.
Das ist zugegebenermaßen ein Schritt, der in gewissem Sinne längst überfällig ist. Denn wenn man sich mit Schülerinnen und Schülern oder auch mit Studentinnen und Studenten unterhält, dann gehört der Einsatz von KI für diese längst zum Alltag. Das sehen vielleicht die Eltern und die Lehrkräfte nicht so gerne und es wird häufig mit Verboten gedroht, aber seien wir mal ehrlich: Das ändert die Realität nicht. Man kann sich dann zwar einreden, man hätte etwas gegen den vermeintlichen drohenden Bildungsverfall getan, aber man vergisst oder ignoriert dabei ganz bewusst, dass Verbote den technischen Fortschritt noch nie nennenswert aufgehalten haben.
Und damit komme ich auf meinen Ausgangspunkt für den heutigen Blogpost: Natürlich können wir den Einsatz von Künstlicher Intelligenz verbieten, wir können ihn reglementieren und begrenzen und wir können natürlich vor allem auch hoffen, dass das irgendetwas nützen wird. Aber zum einen ist das unrealistisch, zum anderen wird irgendjemand auf dieser Welt einen Weg finden, Künstliche Intelligenz konstruktiv in der Bildung einzusetzen. Ich möchte jetzt nicht in das übliche Gejammer über Deutschland oder Europa als Standort einstimmen, aber ich denke, es ist nicht verkehrt zu sagen, dass Europa und insbesondere Deutschland bislang keine allzu gute Figur machen [3], was den Umgang mit der digitalen Welt im Unterricht und in der Lehre angeht.
Tatsächlich war das in den vergangenen Jahrzehnten schon ein Problem, aber das wird jetzt mit der immer höheren Entwicklungsgeschwindigkeit ein immer schwerwiegenderes Problem werden. Wenn wir den Anschluss an die Welt nicht verpassen wollen, haben wir einen ganz dringenden Nach- und Aufholbedarf.
Nun ist nicht per se alles schlecht, was aus Europa kommt oder was Europa macht. Meiner persönlichen Meinung nach haben wir auch durchaus eine große Stärke, beispielsweise im Vergleich zu den USA: Wir springen nicht wahllos auf jede neue Technologie auf, sondern tendieren dazu, erst einmal abzuwarten, zu beobachten, über die Konsequenzen bestimmter Dinge nachzudenken, uns Gedanken zu machen und dann einen wohlüberlegten Pfad einzuschlagen. Das ist etwas, das mir Hoffnung gibt. Aber wir dürfen uns nicht zu lange Zeit lassen mit diesem "wohlüberlegten Pfad", denn die Zeit spielt gegen uns.
Bis hierhin also zusammengefasst: Wir müssen uns Gedanken über den richtigen Einsatz von Künstlicher Intelligenz machen, insbesondere in der Bildung, aber auch im gesamtgesellschaftlichen Kontext. Wenn wir nur das Schlechte sehen, laufen wir Gefahr, den Anschluss zu verpassen. Man darf aber auch nicht nur die Chancen sehen, denn dann verrennt man sich und vergisst, über einige Dinge nachzudenken, über die man vielleicht besser nachgedacht hätte und die man später eventuell bereuen wird.
Vor diesem Hintergrund möchte ich heute gerne drei Thesen aufstellen. Erstens: "Künstliche Intelligenz schadet der Bildung, ist zugleich aber unerlässlich für die Bildung". Was meine ich damit? KI schadet der Bildung, weil sie dazu verführt und verleitet, nicht mehr selbst zu denken. Anders als bei einem Taschenrechner, bei dem ich grundsätzlich noch wissen muss, wie ich eine gestellte Aufgabe vom Lösungsweg her bearbeite, kann ich einer KI einfach sagen: "Das hier ist die Aufgabenstellung, löse das für mich!" – und die KI wird das machen. Ob sie das nun gut oder schlecht macht, ob das Ergebnis nachher richtig oder falsch ist, das steht dabei auf einem anderen Blatt. Fakt ist aber auf jeden Fall: Die Antwort, die ich von der KI erhalte, wird so oder so sehr eloquent und überzeugend formuliert sein.
Und einerseits ist das ein enormer Produktivitäts- und Effizienz-Boost. Ich kann um Welten schneller Texte schreiben, Daten auswerten, Übersetzungen anfertigen, komplexe Zusammenhänge analysieren und vieles mehr. Deshalb ist KI unerlässlich für die Bildung. Denn Bildung bedeutet stets auch Forschung, und KI ist ein unglaublich mächtiges Instrument, um Forschung zu beschleunigen und Dinge zu ermöglichen, von denen man vorher nicht einmal zu träumen gewagt hätte. Der Punkt ist jedoch, dass die Ergebnisse der KI kritisch hinterfragt werden müssen. Eben weil sie mit derselben Eloquenz eine korrekte und wahre Aussage formulieren kann, wie sie das auch mit dem größten Blödsinn machen kann. Das heißt, einer Künstlichen Intelligenz darf nicht blind vertraut werden, sondern es ist notwendig, die Ergebnisse zu überprüfen und zu validieren.
Eigentlich ist das auch gar nichts Neues. In der Bildung und Forschung sollte generell jegliche Quelle überprüft werden, doch genau dieser Punkt, wie man das macht, kommt in der Lehre viel zu kurz. In der Schule lernt man zwar, Argumentationen zu schreiben und Zeitschriftenartikel zu lesen, aber man lernt nicht, wie man ebensolche Zeitschriftenartikel oder sonstige Quellen auf ihre Vertrauenswürdigkeit oder ihren Wahrheitsgehalt überprüft. Es wird zwar in der Schule gefordert, dass Schülerinnen und Schüler beispielsweise bei Referaten Quellennachweise liefern, aber wie es um die Qualität der Quellen steht, das wird im Unterricht nicht behandelt.
Im jugendlichen Alter kann man langfristig froh sein, wenn man ein Elternhaus hat, das in der Lage ist, eine gewisse Medienkompetenz zu vermitteln. Das ist nämlich einer der Aspekte, an denen das Schulwesen seit Jahren und Jahrzehnten krankt: Und was in der analogen Welt schon nicht gut funktioniert hat, funktioniert nun im Digitalen erst recht nicht.
Das heißt, um Künstliche Intelligenz in der Bildung effektiv und effizient nutzen zu können, brauchen wir ein kritisches Denken und Hinterfragen der KI. Dieses kritische Denken und Hinterfragen muss jedoch außerhalb der KI erlernt werden. Und das muss schleunigst beginnen, denn wenn das nicht passiert, dann wächst eine Generation heran, die zwar nie dagewesene technische Möglichkeiten zur Verfügung hat, diesen aber blind vertraut, dadurch ihre Eigenständigkeit verliert und in eine Abhängigkeit zur KI beziehungsweise zur Technologie im Allgemeinen gerät. Und das wäre nicht gut.
Die zweite These, auf die mich ein befreundeter Unternehmer gebracht hat, lautet: "KI braucht Erfahrung". Was bedeutet das? Im Prinzip setzt es genau das fort, wo wir gerade aufgehört haben: Um KI nämlich effektiv und effizient nutzen zu können, brauchen wir ein kritisches Denken und Hinterfragen der Ergebnisse, die die Künstliche Intelligenz liefert. Und was braucht es, um das machen zu können? Nun, Menschen sind immer dann gut darin, Dinge zu hinterfragen und skeptisch zu durchleuchten, wenn sie selbst über Wissen und vor allem über Erfahrung in dem jeweiligen Bereich verfügen.
Der Haken ist nun aber: Um Erfahrung zu sammeln, muss man selbst bestimmte Wege beschreiten und scheitern. Denn die Fehler, die man gemacht hat, sind das, woraus man am Ende am meisten lernt. Es heißt ja nicht umsonst: "Aus Fehlern wird man klug."
Der Punkt ist aber, dass dafür viele Wiederholungen des Weges erforderlich sind, und die KI uns jedoch genau diese Wiederholungen abnimmt, indem sie bereits beim ersten Anlauf ein passabel klingendes Ergebnis liefert. Ist das Ergebnis auch faktisch halbwegs korrekt, dann machen wir nach und nach die Erfahrung, dass wir der KI blind vertrauen können. Das funktioniert natürlich nur so lange, bis die KI einmal kein vernünftiges Ergebnis liefert, nur das kann man dann eventuell gar nicht mehr im Vorfeld von einem guten Ergebnis unterscheiden, weil dafür die Erfahrung fehlt. Es handelt sich also um einen Teufelskreis: KI nimmt uns das Üben ab, deshalb sammeln wir keine Erfahrung mehr, aber genau diese Erfahrung bräuchten wir, um die Ergebnisse der KI überprüfen und hinterfragen zu können.
Das heißt, je länger das so läuft, desto schlechter wird die eigene, vom Menschen gelebte Fehlerkultur, und desto schlechter werden die Fähigkeiten, Behauptungen und Konsequenzen überblicken und abschätzen zu können. Das wiederum hat langfristige Auswirkungen auf die Resilienz und führt zur Erosion wichtiger geistiger Fähigkeiten.
Das wiederum bringt mich zu meiner dritten These, denn das wirft die Frage auf, wem oder was wir dann überhaupt noch vertrauen. Die These lautet: "Künstliche Intelligenz führt zu einem dramatischen Vertrauensverlust und letztlich zum Zusammenbruch der Globalisierung". Denn wenn wir nicht mehr in der Lage sind, die Ergebnisse von Künstlicher Intelligenz zu bewerten, und Künstliche Intelligenz zugleich eine immer größere Rolle in unserem gesellschaftlichen Alltag spielt, führt das über kurz oder lang zu einem Szenario, in dem wir nicht mehr wissen, wem wir überhaupt noch vertrauen können. Je stärker Fake News werden und je besser generative KI wird, desto leichter wird es, der Gesellschaft ein Weltgeschehen vorzuspielen, das in der Realität vielleicht gar nicht passiert.
Und das führt dann zu einem massiven Rückzug ins Lokale. Das, was ich selbst erlebe, das glaube ich. Das, was mir meine Familie berichtet, nehme ich auch mit sehr hoher Wahrscheinlichkeit als wahr an. Bei meinen Nachbarn bin ich schon ein wenig skeptischer, aber ihnen vertraue ich immer noch mehr als der Verkäuferin beim Bäcker oder meinem Friseur. Und denen wiederum vertraue ich eher als irgendjemandem, dem ich auf der Straße begegne. Auch das ist im Grunde nichts anderes als heute, aber: Der allgemeine Vertrauensverlust außerhalb des selbst Erfahrbaren führt dazu, dass wir auch den großen Medien nicht mehr vertrauen (und das sieht man in manchen Teilen der Bevölkerung auch heute schon). Und damit wird auf einmal infrage gestellt, was auf der anderen Seite der Welt passiert: Denn, ob dort wirklich Krieg herrscht, ob wirklich ein Erdbeben stattgefunden hat, ob wirklich dies und jenes passiert ist, lässt sich für mich als Einzelner nicht mehr nachprüfen. Und wem vertraue ich dann noch?
Ich persönlich glaube an der Stelle, dass wenn man diese drei Thesen zusammennimmt (also erstens: "KI schadet der Bildung, ist aber zugleich unerlässlich für die Bildung", zweitens: "KI braucht Erfahrung" und drittens: "KI führt zu einem dramatischen Vertrauensverlust und letztlich zum Zusammenbruch der Globalisierung"), dann sind das nicht sonderlich rosige Aussichten, die wir vor uns haben. Ich habe zu Beginn dieses Blogposts geschrieben, man dürfe nicht alles nur pessimistisch sehen und nicht alles von vornherein ablehnen, aber eines dürfte vor diesem Hintergrund wohl überhaupt keine Frage mehr sein: Nämlich, dass wir äußerst dringend einen grundlegend anderen Umgang mit KI benötigen, eine gesellschaftliche Awareness für diese Themen, und nachhaltige Ansätze für die Bildung der nachkommenden Generationen. Denn damit legen wir den Grundstein für den Fortbestand unserer Gesellschaft und, wenn man so will, sogar der gesamten Menschheit.
Sollten wir das nicht hinbekommen und wenn wir nicht aufpassen, dann steuern wir auf eine Gesellschaft zu, die zwar technologisch hoch entwickelt ist, aber soziologisch und emotional immer mehr verkümmert. Das führt zu einem Paradoxon, das allerdings gar nicht so neu ist: Je höher die Technologie entwickelt ist, desto stärker degeneriert eine Zivilisation. Irgendwann, wenn eine solche Entwicklung erst einmal ins Rollen gekommen ist, entsteht auf diesem Weg eine Gesellschaft, die kraft- und schwunglos geworden ist, obwohl sie (im übertragenen Sinne) die Fähigkeiten hätte, nach den Sternen zu greifen.
Übrigens, auch da bin ich nicht der Erste, der sich solche Gedanken macht: Bereits 1961, in der Science-Fiction-Serie "Perry Rhodan", ist genau dies das Schicksal, das die Arkoniden ereilt hat, die erste außerirdische Zivilisation, mit der die Menschheit in Kontakt tritt. Die wenigen Arkoniden, die es noch gibt, berichten von genau diesem Verfall der Gesellschaft, und zwar aufgrund einer technologisch immer weiter voranschreitenden Entwicklung, die irgendwann dazu geführt hat, dass das Verhältnis von Technologie und dem eigenen Streben nach Mehr ins Wanken geraten und schließlich gekippt ist.
Zugegebenermaßen ist das keine sonderlich erstrebenswerte Zukunft, die ich da skizziert habe, und wie ich zu Beginn dieses Blogposts geschrieben habe, scheint ein solches Szenario für viele Menschen noch sehr weit entfernt zu sein. Aber: Wenn ich überlege, wie unglaublich viel sich in der verhältnismäßig kurzen Zeit, die ich persönlich auf diesem Planeten miterlebt habe, getan hat, und wenn ich mir überlege, was unsere Kinder und Enkelkinder für eine Welt vorfinden werden, in welche Welt sie ungefragt hineingeboren werden, dann glaube ich, dass wir doch irgendwo in der Verpflichtung stehen, uns über solche Themen Gedanken zu machen. Darin muss meiner Meinung nach deutlich mehr sein als: "Wir statten Schulen jetzt mit iPads aus und tun dann so, als wäre das der Gipfel der Digitalisierung".
Der kritische Umgang mit digitalen Medien ist das A und O, um zukünftig eine stabile Gesellschaft bilden zu können. Und daran scheitern wir aktuell grandios. Wirklich jede und jeder hat heute ein Smartphone, und die IT ist die sich am stärksten verbreitende und im wahrsten Sinne des Wortes die am stärksten durchdringende Technologie des vergangenen Jahrtausends. Aber wir haben heute kaum mehr Menschen, die sich fundiert mit diesen Themen beschäftigen als in den 90er-Jahren, als ich selbst angefangen habe, mich für Programmierung zu interessieren. Wir können keine Gesellschaft auf Technologien aufbauen, die wir zunehmend nicht mehr verstehen. Denn wenn wir das tun, ist das der Anfang vom Ende. Dann haben wir die Hoch-Zeit unserer Gesellschaft hinter uns. Und wenn wir das nicht wollen, dann sollten wir dem, wie gesagt, ganz dringend entgegenwirken – nur ist das keine technologische Herausforderung. Annehmen sollten wir sie trotzdem.
URL dieses Artikels:
https://www.heise.de/-9744682
Links in diesem Artikel:
[1] https://openai.com/index/introducing-chatgpt-edu/
[2] https://www.heise.de/Datenschutzerklaerung-der-Heise-Medien-GmbH-Co-KG-4860.html
[3] https://www.heise.de/meinung/KI-Navigator-3-Deutschland-und-Europa-haben-bei-KI-den-Anschluss-verloren-9721507.html
[4] mailto:rme@ix.de
Copyright © 2024 Heise Medien
Chinesische Netzausrüster, Ampel-Versprechen und eine KI-Aufsichtsbehörde: c't hat Volker Wissing zur Digitalpolitik befragt.
Wie erfolgreich ist die Digitalpolitik der Bundesregierung? c't hat Volker Wissing, Bundesminister für Digitales und Verkehr, in Berlin getroffen, um nach drei Jahren Ampelkoalition ein Zwischenfazit zu ziehen. Im Interview betont Wissing den Fortschritt beim Netzausbau, während er sich beim möglichen Ausschluss chinesischer Ausrüster alle Optionen offen hält. Außer Zweifel steht für Wissing der Stellenwert, den KI in unserem Leben einnehmen wird. Er will Aufsicht haben und ein Zertifizierungssystem aufbauen – und hat bereits seinen Favoriten für eine KI-Aufsichtsbehörde ausgewählt.
(Bild: c't/Nadja Wohlleben)
Herr Wissing, das Fortschrittsversprechen der Ampel wurde auch für die Digitalisierung gegeben. Wie viel davon ist eingelöst worden?
Wir haben große Fortschritte bei der digitalen Infrastruktur. 97 Prozent Abdeckung mit 4G, gut 91 Prozent mit 5G, 50 Prozent mehr Glasfaseranschlüsse innerhalb eines Jahres. Die Gigabit-Strategie fliegt. Wir haben Fortschritte bei der Umsetzung der Digitalstrategie: in der Gesundheitspolitik das E-Rezept, die elektronische Patientenakte, das Gesundheitsdatennutzungsgesetz und damit die Zukunftssicherung für den Pharma- und Medizin-Forschungsstandort Deutschland. Wir haben i-KFZ und den Einstieg in die digitale Zulassung, die e-ID, die der Schlüssel ist, um digital mit dem Bürger zu kommunizieren.
Überall sieht man, dass sich etwas tut. Bei der Bahn, der Modernisierung des ÖPNV, haben wir die Digitalisierung ebenfalls vorangetrieben, aber noch nicht in allen Strukturen nachvollzogen.
Die e-ID ist ein sogenanntes Hebelprojekt der Digitalstrategie: Voraussetzung für erfolgreiche Digitalisierung. Passiert ist dabei wenig. Heißt das, die Digitalstrategie kann nun nicht mehr funktionieren?
Nein. Das Innenministerium steht in der Verantwortung, dass eine anwenderfreundliche digitale Identität kommt – und das BMI arbeitet daran, auch was die Einbindung in ein gesamteuropäisches Konzept angeht. Die e-ID ist ein ganz wichtiger Hebel: Wenn der Staat Identität nicht digital feststellen kann, gibt es immer nur eine teildigitale Verwaltung.
Als Mittel knapp wurden, wurde hier zuerst gespart. Digitalisierung sollte zu Beginn der Legislatur prioritär sein, die Idee war ein Digitalbudget als Garantie, dass zentrale Vorhaben garantiert sind – könnte das nun doch noch kommen?
Wir haben bisher gezeigt, dass es ohne Digitalbudget geht, weil einzelne Ressorts umgeschichtet und ausreichend Haushaltsmittel für ihre Digitalprojekte zur Verfügung gestellt haben.
Bei der e-ID gibt es einen größeren Finanzbedarf, aber auch das kann man lösen, indem man nochmal priorisiert. Ob ein Digitalbudget zur Umsetzung der e-ID notwendig ist, kann man erst nach Ende der Haushaltsberatungen sagen.
(Bild: c't/Nadja Wohlleben)
Die KI-Verordnung ist verabschiedet, wird in Kraft treten. Kritik daran gibt es aus vielen Richtungen. Ist Deutschland für das KI-Zeitalter gerüstet?
Künstliche Intelligenz wird unseren Alltag, unsere Wettbewerbsfähigkeit und Sicherheit in einem Maße bestimmen, dass wir diese Technologie selbst in den Händen halten müssen. Wir dürfen hier keine Fehler machen und dadurch Souveränität verlieren.
Deswegen dürfen wir bei der Regulierung die Entwicklung von KI nicht behindern, sondern müssen durch innovationsfreundliche Regelungen unterstützen. Das erfordert Mut. Weil wir heute nicht alles wissen, was KI kann oder in naher Zukunft können wird. Die Entwickler selbst stehen ja mit Demut vor den Möglichkeiten. Wenn aber der Staat bremsend eingreift, suchen sich kreative Köpfe andere Standorte. Es muss experimentiert werden, Entwickler brauchen Freiräume.
Sehen Sie dafür Bereitschaft bei den Unternehmen in Deutschland?
Ja! Ich sehe mit großer Freude, dass Mittelständler in Deutschland investieren. Und ich finde das sehr gut, weil es auch unsere Werte absichert. Für deutsche Unternehmer ist das nicht nur ein reines Geschäft, sie verfolgen auch ethische Ziele.
Trotzdem müssen wir als Staat darauf achten, nachvollziehen zu können, was passiert. Ich nenne das Beispiel Bankenkrise. Da hieß es: Der Staat muss nicht eingreifen, die Banken regulieren sich selbst im Wettbewerb. Im Ergebnis haben sich die Finanzmärkte ein System geschaffen, in dem niemand mehr zur Verantwortung gezwungen wurde.
Das befürchten Sie bei KI auch?
Nein, aber wir müssen aus der damaligen Zeit lernen. Nach der Finanzkrise wurde gefragt: Warum hat der Staat das nicht bemerkt? Es war so ziemlich alles mit Triple-A-Ratings versehen, man hat sich in falscher Sicherheit gewähnt und meinte, da sei kein Risiko. Das System war dem Staat entglitten. Die Geschwindigkeit, mit der die Finanzmärkte sich entfesselt haben, und das Tempo, mit dem Aufsichts- und Kontrollstrukturen aufgebaut wurden, waren völlig asymmetrisch. Dann hieß es: Wie soll der Jurist bei der Bundesanstalt für Finanzdienstleistungen denn Goldman Sachs kontrollieren? Aber genau das war die Aufgabe – und der Öffentlichkeit wurde suggeriert, dass das stattfinde.
Wie kann sichergestellt werden, dass sich das bei KI nicht wiederholt?
Indem wir nicht nur zuschauen, sondern selbst mitmachen. Und sagen: Wir wollen nachvollziehen, wir wollen Aufsicht haben, ein Zertifizierungssystem aufbauen. Aber es gibt einen großen Unterschied zur Bankenkrise: Der Staat ist diesmal nicht nur Aufseher, sondern selbst Nutzer der Technologie.
Derzeit wird die deutsche KI-Aufsichtsbehörde gesucht. Wer soll es werden?
Die Bundesnetzagentur.
Auch in der Ampel setzen sich alte Streitigkeiten fort, Chatkontrolle, Vorratsdatenspeicherung oder Recht auf Verschlüsselung. Letzteres ist ein Vorschlag Ihres Hauses. Hat das eine Chance in dieser Legislaturperiode?
Ja. Eine arbeitsteilige Gesellschaft kann nur mit guter Vertrauenskultur erfolgreich sein. Dazu gehört, dass Kommunikation vertraulich sein kann. Verschlüsselte Kommunikation wird für die gesamte Wirtschaft immer wichtiger. Durch geopolitische Veränderungen gibt es immer mehr Risiken, während zugleich die Abhängigkeit von Daten und digitaler Kommunikation fortschreitet. Es ist aber nicht nur eine wirtschaftliche Frage. Wenn wir unsere private Kommunikation einschränken, verlieren wir, was den größten Wert unserer Gesellschaft ausmacht: die Freiheit.
(Bild: c't/Nadja Wohlleben)
Damit hängt auch die Debatte um chinesische Telekommunikations-Ausrüster zusammen. Wie sehen Sie die aktuell?
Ich habe von Anfang an gesagt: Wenn wir eine solche Frage besprechen, müssen wir Fakten haben. Was konkret sind eigentlich die Sicherheitsrisiken? Ich meine...
Liegen Ihnen denn die Fakten jetzt vor?
Wir haben einen klaren Einblick in das, was im Netz an Technik verbaut ist. Und können einschätzen, ob und in welchem Maße wann Handlungsbedarf besteht. Am Ende ist Politik eine Abwägung: zwischen konkreten Risiken, Risikoszenarien und dem, was an sonstigen Interessen zu berücksichtigen ist. Die Bundesregierung wird weiter beraten und zu einer gemeinsamen Meinung kommen. Das ist aber kein Thema für eine öffentliche Diskussion. Die Abwägung kann aus nationalen Sicherheitsinteressen nicht transparent gemacht werden – das Ergebnis am Ende schon.
Es geht aber nicht nur um 5G-Netze. Komponenten aus Ländern zweifelhafter Verlässlichkeit stecken in vielen Bereichen. Wird das bei allen kritischen Infrastrukturen jetzt jedes Mal diskutiert?
Wir müssen permanent Sicherheitsfragen im Blick haben. Ein 5G-Netz mit Echtzeit-Anwendungen zum Beispiel beim autonomen Fahren hat ganz andere Anforderungen an die Sicherheit als das bisherige Netz.
Deswegen muss man immer in die Zukunft blicken: Sind die heutigen Netze gewappnet für künftige Risiken? Wenn nicht, muss man reagieren und die Dinge anpassen.
Und das gilt von Antennen über die Cloud Services bis…
Aber ja! Unternehmen tun das auch. Wenn Geschäftsmodelle zunehmend datenbasiert sind, bedingt das, sich stärker mit Fragen der Cybersicherheit zu beschäftigen. Kann unser Geschäftsmodell gehackt werden? Was bedeutet Datenabfluss für uns? Welche Auswirkungen hat es, wenn unser System eine Stunde stillsteht? Diesen Fragen stellen sich Unternehmen, schaffen eigene Clouds und eigene Cybersecurity-Systeme. Für uns gilt das Gleiche: Wir müssen uns damit beschäftigen.
Wenn wir das digitale europäische Zugsteuerungssystem ETCS bei der Bahn implementiert haben, sind das ganz andere Sicherheitsanforderungen als heute, wo wir im Grunde genommen noch die Signalsteuerung aus dem letzten Jahrhundert nutzen. Selbstverständlich muss man die Frage stellen: Genügt unser Netz dann? Mit all seinen Komponenten? Da geht es auch um die Supply Chain. Und zwar nicht nur um die Frage: Ist ein Lieferant vertrauenswürdig? Sondern auch darum, ob die Nachlieferung gesichert ist.
Wir haben gesehen, was es heißt, wenn Lieferketten gestört sind. Auch das sind Sicherheitsfragen. Wir können ja nicht sagen: Leider können wir in den nächsten Wochen keine Zugfahrten anbieten, wir bekommen die Ersatzteile nicht. Das darf nicht passieren.
(Bild: c't/Nadja Wohlleben)
Also ist Souveränität die Lösung?
Bei dem, was wir brauchen, etwa Halbleitern, sind wir immer auch auf Souveränität fokussiert und wollen Unabhängigkeit. Aber zur Wahrheit gehört: in einer arbeitsteiligen Welt kann die vollständige Souveränität einer Gesellschaft nicht gewährleistet werden. Weil wir nicht alles, was wir brauchen, selbst herstellen können.
Deswegen müssen wir Risikomanagement betreiben und dürfen uns nicht von Einzelnen abhängig machen. Das ist unsere Aufgabe und die ist groß genug.
URL dieses Artikels:
https://www.heise.de/-9742953
Links in diesem Artikel:
[1] https://www.heise.de/ct/
[2] mailto:dahe@heise.de
Copyright © 2024 Heise Medien
(Bild: rawf8/Shutterstock.com)
Die Klasse ZipFile besitzt nun Methoden, um ein ZIP-Archiv aus einem Dateisystemordner zu erstellen und Dateien in einen Zielordner zu entpacken.
Die Klasse System.IO.Compression.ZipFile, die es seit dem klassischen .NET Framework 4.5 und im modernen .NET seit Version .NET Core 1.0 gibt, erhält zwei neue statische Methoden CreateFromDirectory() und ExtractToDirectory().
Sie ermöglichen es, ein ZIP-Archiv aus einem Dateisystemordner zu erstellen und Dateien in einen Zielordner zu entpacken.
var quelle = @"t:\dev\";
var ziel = @"t:\dev.zip";
var ziel2 = @"t:\dev2";
Console.WriteLine("Komprimiere Ordner: " + quelle);
var file = new FileInfo(ziel);
if (file.Exists)
{
Console.WriteLine("Zieldatei existiert schon und wird gelöscht: " + ziel);
file.Delete();
}
System.IO.Compression.ZipFile.CreateFromDirectory(quelle, ziel,
System.IO.Compression.CompressionLevel.Optimal,
includeBaseDirectory: true,
entryNameEncoding: Encoding.UTF8);
Console.WriteLine("Datei erzeugt: " + ziel);
file = new FileInfo(ziel);
Console.WriteLine(Math.Round((decimal)file.Length / 1024 / 1024, 2)
+ " MB1");
Console.WriteLine("Extrahiere ZIP-Datei " + ziel + " nach " + ziel2);
System.IO.Compression.ZipFile.ExtractToDirectory(ziel, ziel2,
overwriteFiles: true);
Console.WriteLine("Fertig!");
URL dieses Artikels:
https://www.heise.de/-9722920
Links in diesem Artikel:
[1] https://www.heise.de/blog/Neu-in-NET-8-0-1-Start-der-neuen-Blogserie-9574680.html
[2] https://www.heise.de/blog/Neu-in-NET-8-0-2-Neue-Anwendungsarten-9581213.html
[3] https://www.heise.de/blog/Neu-in-NET-8-0-3-Primaerkonstruktoren-in-C-12-0-9581346.html
[4] https://www.heise.de/blog/Neu-in-NET-8-0-4-Collection-Expressions-in-C-12-0-9581392.html
[5] https://www.heise.de/blog/Neu-in-NET-8-0-5-Typaliasse-in-C-12-0-9594693.html
[6] https://www.heise.de/blog/Neu-in-NET-8-0-6-ref-readonly-in-C-12-0-9602188.html
[7] https://www.heise.de/blog/Neu-in-NET-8-0-7-Optionale-Parameter-in-Lambda-Ausdruecken-in-C-12-0-9609780.html
[8] https://www.heise.de/blog/Neu-in-NET-8-0-8-Verbesserungen-fuer-nameof-in-C-12-0-9616685.html
[9] https://www.heise.de/blog/Neu-in-NET-8-0-9-Neue-und-erweiterte-Datenannotationen-9623061.html
[10] https://www.heise.de/blog/Neu-in-NET-8-0-10-Plattformneutrale-Abfrage-der-Privilegien-9630577.html
[11] https://www.heise.de/blog/Neu-in-NET-8-0-11-Neue-Zufallsfunktionen-9637003.html
[12] https://www.heise.de/blog/Neu-in-NET-8-0-12-Eingefrorene-Objektmengen-9643310.html
[13] https://www.heise.de/blog/Neu-in-NET-8-0-12-Leistung-von-FrozenSet-9649523.html
[14] https://www.heise.de/blog/Neu-in-NET-8-0-14-Neue-Waechtermethoden-fuer-Parameter-9656153.html
[15] https://www.heise.de/blog/Neu-in-NET-8-0-15-Geschluesselte-Dienste-bei-der-Dependency-Injection-9662004.html
[16] https://www.heise.de/blog/Neu-in-NET-8-0-16-Neue-Methoden-fuer-IP-Adressen-9670497.html
[17] https://www.heise.de/blog/Neu-in-NET-8-0-17-Zeitabstraktion-fuer-Tests-mit-Zeitangaben-9675891.html
[18] https://www.heise.de/blog/Neu-in-NET-8-0-18-Ein-Zeitraffer-mit-eigenem-FakeTimeProvider-9683197.html
[19] https://www.heise.de/blog/Neu-in-NET-8-0-19-Razor-HTML-Rendering-in-beliebigen-NET-Anwendungen-9691146.html
[20] https://www.heise.de/blog/Neu-in-NET-8-0-20-Neue-Code-Analyzer-fuer-NET-Basisklassen-9706875.html
[21] https://www.heise.de/blog/Neu-in-NET-8-0-20-Neue-Code-Analyzer-fuer-ASP-NET-Core-9710151.html
[22] https://www.heise.de/blog/Neu-in-NET-8-0-22-Neues-Steuerelement-OpenFolderDialog-fuer-WPF-9722901.html
[23] mailto:rme@ix.de
Copyright © 2024 Heise Medien
Symbolbild, das keines der betroffenen Geräte zeigt.
(Bild: c't)
In nur 72 Stunden ging beim US-Provider Windstream die Hälfte aller Kunden offline. Hunderttausende Router mussten ausgetauscht werden. Der ISP schweigt.
Ende Oktober sind beim US-Internetserviceprovider Windstream Hunderttausende Router offline gegangen. Binnen dreier Tage verlor etwa die Hälfte der Kunden ihren Internetzugang. Ihre Router waren plötzlich nutzlos und mussten ausgetauscht werden. Zurücksetzungen funktionierten nicht. Der ISP versorgt nicht ganz 1,2 Millionen Haushalte und einige zehntausend Unternehmen in 18 US-Staaten, vorwiegend in ländlichen Regionen. Schuld war laut Sicherheitsforschern Lumens ein schädliches Update der Router-Firmware, eingeschleust mit Malware namens Chalubo.
Merkwürdig an dem alarmierenden Vorfall sind mehrere Dinge: Betroffen waren ausschließlich Router dieses einen ISP, dann aber gleich Modelle zweier verschiedener Hersteller: Actiontec T3200s und Actiontec T3260s sowie Sagemcom-Router, Lumen vermutet das Modell F5380. Ein Scan der Lumen-Sicherheitsforschungsabteilung Black Lotus Labs zeigt für 24. Oktober 875.000 Router Sagemcom, 230.000 von ActionTec und 136.000 anderer Hersteller bei Windstream. Drei Tage später sind alle Actiontec-Geräte offline, und von der Sagemcom-Flotte sind weniger als 90.000 übrig. Dafür ist die Gruppe der Sonstigen um gut 360.000 angewachsen.
Black Lotus schätzt die Zahl der betroffenen Windstream-Kunden konservativ auf 600.000, wahrscheinlich waren es aber um eine Million. Hat sich ein (ehemaliger) Mitarbeiter rächen wollen? Haben Verbrecher versucht, Windstream zu erpressen? War es ein Angriff eines anderen Staates auf US-Infrastruktur? War es ein Zusammentreffen zweier zentral ausgespielter, fehlerhafter Updates?
Hat der Angreifer versucht, die Router zu übernehmen, um sie missbrauchen zu können, sie dabei aber irrtümlich ruiniert? Black Lotus berichtet [1], eingehende Befehle für DDoS-Attacken beobachtet zu haben, die von den Geräten aber nicht ausgeführt wurden. Doch warum würde so ein Täter sich auf einen einzelnen ISP konzentrieren und nicht die gleichen Modelle in verschiedenen Netzen angreifen?
Und wie konnte Windstream in Windeseile 360.000 neue Router anschließen? Das Unternehmen schweigt eisern. Auch gegenüber heise security hieß es lapidar "We don't have a comment." Da die Firma nicht mehr börsennotiert ist, muss sie sich nicht öffentlich erklären. Und weil die Republikanische Partei in ihrem Kampf gegen die Netzneutralität der Telecom-Regulierungsbehörde FCC die Zuständigkeit für ISP-Regulierung entzogen hat, fehlt auch behördliche Aufsicht – obwohl ein Vorfall solchen Ausmaßes die nationale Sicherheit betrifft.
(Bild: Black Lotus Labs by Lumen)
Erst im April hat sich die FCC die Zuständigkeit zurückgeholt [2] und kann jetzt daran gehen, Sicherheitsvorgaben zu machen. Den Anfang sollen Maßnahmen zur Absicherung des Border Gateway Protocol [3] machen, die hier nicht helfen würden.
Wie genau die Täter in die Windstream-Router gekommen sind, konnte Black Lotus nicht eruieren. Die bei der Kommunikation mit Kontrollservern eingesetzten Schlüssel sind bereits seit 2018 bekannt. Die Täter haben sie unverändert weitergenutzt. Schlussendlich sind die Empfehlungen der Forscher allgemeiner Natur: Updates einspielen, Router regelmäßig neu starten, und voreingestellte Passwörter ändern. Administratoren von Routerflotten müssen darauf achten, dass ihre Managementsysteme gut abgesichert und aus dem Internet nicht zugänglich sind.
Ein solch massiver, erfolgreicher Angriff auf einen ISP ist bislang nicht überliefert. Vergleichbar ist lediglich die russische Sabotage des Satellitennetzwerks KA-Sat [4] am 24. Februar 2022, eine Stunde vor dem Überfall auf die Ukraine. Davon betroffen waren auch Fernsteuerungen von Windkraftanlagen in anderen europäischen Ländern. Gerechnet nach Zahl der Anschlüsse war dieses Verbrechen aber um ein bis zwei Größenordnungen kleiner als die bei Windstream angerichtete Zerstörung.
Windstream ist 2006 entstanden; damals wurden die Festnetzteile des Netzbetreibers Alltel mit jenen der Valor Communications Group in Windstream zusammengeführt. Im Jahr davor hatte Alltel Western Wireless übernommen [5]. Aus Western Wireless ist 1999 Voicestream Wireless hervorgegangen, heute bekannt als T-Mobile USA [6]. In gewisser Weise sind Windstream und T-Mobile USA also Basen.
In Österreich besaß Western Wireless den Preisbrecher-Mobilfunker tele.ring, der 2006 ebenfalls von T-Mobile übernommen [7] wurde. Windstream wurde 2019 zahlungsunfähig, reduzierte in einem Insolvenzverfahren seinen Schuldenstand um mehrere Milliarden Dollar und ist seit 2020 in privater Hand.
URL dieses Artikels:
https://www.heise.de/-9742582
Links in diesem Artikel:
[1] https://blog.lumen.com/the-pumpkin-eclipse/
[2] https://www.heise.de/news/Sommer-besiegelt-VoiceStream-uebernahme-38032.html
[3] https://www.heise.de/news/FCC-Chefin-will-das-Border-Gateway-Protocol-absichern-9721893.html
[4] https://www.heise.de/news/EU-und-USA-Russland-fuer-Ausfall-des-Satellitennetzwerks-KA-Sat-verantwortlich-7080650.html
[5] https://www.heise.de/news/Alltel-uebernimmt-Western-Wireless-fuer-sechs-Milliarden-Dollar-126010.html
[6] https://www.heise.de/news/Sommer-besiegelt-VoiceStream-uebernahme-38032.html
[7] https://www.heise.de/news/EU-Kommission-genehmigt-uebernahme-von-tele-ring-durch-T-Mobile-Austria-119879.html
[8] mailto:ds@heise.de
Copyright © 2024 Heise Medien