19 hoveder af hydra. Stor gennemgang af programmet

Den 11.-12. juli finder konferencen sted i Sankt Petersborg Hydra, der omhandler udviklingen af parallelle og distribuerede systemer. Hydra's styrke ligger i at samle dygtige forskere (som man normalt kun finder på internationale videnskabelige konferencer) og anerkendte praktiserende ingeniører i et stort program på grænsen mellem videnskab og praksis.

Hydra er en af de vigtigste konferencer, vi har haft de seneste år. Forud for den var der en meget grundig forberedelse, udvælgelse af talere og præsentationer. I sidste uge blev der udgivet et interview på Habr med direktøren for JUG.ru Group, Aleksej Fedorov (23derevo).

Vi allerede fortalt ) om tre vigtige personer, grundlæggerne af teorien om distribuerede systemer — Leslie Lamport, Maurice Herlihy og Michael Scott. Det er tid til at tale mere detaljeret om hele programmet!

19 hoveder af hydra. Stor gennemgang af programmet

Motivation

Hvis du arbejder med programmering, så har du på en eller anden måde med multitrådning og distribuerede beregninger at gøre. Specialister inden for de relevante områder arbejder direkte med dem, men implicit ser vi distributionen overalt: i enhver multicore-computer eller distribueret service vil der være noget, der udfører beregninger parallelt.

Der findes mange konferencer, der dækker forskellige aspekter af anvendt programmering. På den anden side har vi specialiserede videnskabelige skoler, der i form af forelæsninger afslører enorme mængder kompleks teori. For eksempel finder der parallelt med Hydra i Skt. Petersborg en SPTDC-skole sted. På Hydra-konferencen har vi forsøgt at samle både hård praksis og videnskab samt alt det, der ligger på deres grænse.

Tænk over dette: vi lever i en bemærkelsesværdig tid, hvor det er muligt at møde grundlæggerne inden for det område af videnskab og ingeniørkunst, som vi arbejder med. Fysikere vil ikke møde hverken Newton eller Einstein — det tog afsted. Men blandt os lever der stadig mennesker, der har skabt grundlag for teorien om distribuerede systemer, opfundet populære programmeringssprog og første gang realiseret alt dette i fungerende prototyper. Disse mennesker har ikke forladt deres arbejde halvmådig, de beskæftiger sig stadig med aktuelle opgaver på verdensberømte universiteter og virksomheder og er de største kilder til viden og erfaring den dag i dag.

På den anden side forbliver muligheden for at mødes med dem ofte ren teori: få af os kan konstant overvåge offentlige arrangementer på et universitet i Rochester for derefter at skynde os til USA og tilbage til en forelæsning med Michael Scott. At besøge alle deltagerne i Hydra ville koste en mindre formue, uden at nævne det enorme tidsspilde (selvom det lyder som en interessant quest).

På den anden side har vi mange fremragende ingeniører, der lige nu arbejder på relevante problemer inden for distribuerede systemer, og de har bestemt noget at fortælle. Men problemet er — de arbejder, og deres tid er kostbar. Ja, hvis du er medarbejder i Microsoft, Google eller JetBrains, stiger chancen for at møde en af de kendte talere til et internt arrangement drastisk, men generelt — nej, det sker ikke hver dag.

Dermed udfører konferencen Hydra en vigtig opgave, som de fleste af os ikke kan gøre selv — at samle mennesker på ét sted og på ét tidspunkt, hvis ideer eller interaktion kan ændre dit liv. Jeg indrømmer, at ikke alle behøver distribuerede systemer, eller nogle komplekse fundamentale emner. Man kan programmere CRUD'er i PHP hele livet og være ganske glad. Men for dem der har brug for det — det er jeres chance.

Det er allerede gået en hel del tid siden den første annoncering af konferencen Hydra på Habré. I mellemtiden er der gjort et kæmpe stykke arbejde — og nu har vi en liste over næsten alle præsentationer. Ingen sløve en-trådede algoritmer, kun ren distribueret hardcore! Lad os afslutte med de generelle ord og se, hvad vi nu har i hænderne.

Keynotes

Keynotes indleder og afslutter konferencedagene. Normalt er meningen med den åbne keynote at sætte den overordnede stemning og retning for konferencen. Den afsluttende keynote opsummerer og forklarer, hvordan vi skal leve med de viden og færdigheder, vi har erhvervet i løbet af konferencedagene. Start og slutning: det, der huskes bedst, og generelt har højere betydning.

Cliff Click — The H2O distributed K/V algorithm

19 hoveder af hydra. Stor gennemgang af programmet Cliff er en legende i Java-verdenen. I slutningen af 90'erne skrev han en afhandling til sin PhD med titlen «Combining Analyses, Combining Optimizations», som efter noget tid blev grundlaget for HotSpot JVM Server Compiler. To år senere arbejdede han allerede hos Sun Microsystems med JVM og viste verden, at JIT havde ret til at eksistere. Hele denne historie om, at Java er en af de hurtigste moderne runtime-systemer med de smarteste og hurtigste optimeringer stammer faktisk fra Cliff Click. I starten blev det anset for, at hvis noget kunne gøres af en statisk compiler, kunne det i hvert fald ikke forsøges at JIT'e. Takket være Cliff og teamets arbejde, begyndte nye sprog at blive skabt med ideen om JIT-kompilering som standard. Det var uden tvivl ikke et job for én person, men Cliff spillede en meget vigtig rolle i det.

I den åbning keynote vil Cliff tale om sit andet projekt — H20, en in-memory platform til distribueret og skalerbar maskinlæring til industriel brug. Mere præcist — om det distribuerede nøgle-værdi lager inden i den. Det er et meget hurtigt lager med mange interessante egenskaber (den præcise liste findes i beskrivelsen), som gør det muligt at anvende sådanne løsninger i matematik for streaming af store data.

En anden præsentation, som Cliff vil give — The Azul Hardware Transactional Memory experience. En anden del af hans biografi — ti år arbejde hos Azul, hvor han opdaterede og forbedrede meget i hardwaren og Azul's teknologistak: JIT-compilere, runtime, trådmodel, fejlbehandling, håndtering af stakken, hardware interrupts, klasselæsning osv. — ja, du forstår.

Den mest interessante del begyndte, da de lavede hardware til store virksomheder — en supercomputer til at køre Java. Det var en rimeligt innovativ ting, specifikt designet til Java, som har særlige krav — hukommelsesbarrierer for læsning til lav-pause garbage collection, arrays med grænsekontrol, virtuelle opkald… En af de mest interessante teknologier var hardware transaktionel hukommelse. Hele L1 af hver af de 864 kerner kunne deltage i en transaktionel optegnelse, hvilket særligt er vigtigt for arbejdet med låse i Java (synchronized blokke kan køre parallelt, så længe der ikke er en reel hukommelseskonflikt). Men den smukke idé brød sammen under den hårde virkelighed — og i denne præsentation vil Cliff fortælle, hvorfor HTM og STM ikke passer særlig godt til de praktiske behov for multitrådede beregninger.

Michael Scott — Dobbelt datakonstruktioner

19 hoveder af hydra. Stor gennemgang af programmet Michael Scott — professor i datalogi ved University of Rochester, hvor skæbnen har bragt ham i 34 år, og ved sit alma mater University of Wisconsin–Madison var han dekan i fem år. Han forsker inden for parallel og distribueret programmering samt designsprog og underviser i dette.

Hele verden kender Michael fra lærebogen «Programming Language Pragmatics», den seneste udgave af hvilken kom relativt for nylig — i 2015. Hans arbejde «Algorithms for scalable synchronization on shared-memory multiprocessors» har modtaget Dijkstra-prisen betegnes som et af de mest kendte inden for distribuerede beregninger og ligger frit tilgængelig i universitetets online-bibliotek i Rochester. Du kender måske også ham som forfatteren bag den berømte Michael-Scott-algoritme fra «Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms».

Når det gælder Java-verdenen, er situationen særlig: sammen med Doug Lea udviklede han de ikke-blokerende algoritmer og synkroniserede køer, som Java-bibliotekerne anvender. Dette vil være emnet for keynote-præsentationen «Dobbelt datakonstruktioner» — implementeringen af disse strukturer i Java SE 6 har givet 10 gange bedre ydeevne java.util.concurrent.ThreadPoolExecutor. Hvis du er nysgerrig på, hvad disse «Dobbelt datakonstruktioner» er, findes der et tilsvarende arbejde.

Maurice Herlihy — Blockchains and the future of distributed computing

19 hoveder af hydra. Stor gennemgang af programmet Maurice Herlihy — indehaver af hele to Dijkstra-priser. Den første — for arbejdet om «Wait-Free Synchronization» (Brown University), og den anden, mere nylige — «Transactional Memory: Architectural Support for Lock-Free Data Structures» (Virginia Tech University). Dijkstra-prisen gives for arbejder, hvis betydning og indflydelse har været mærkbar i mindst ti år, og det er klart, at Maurice er en af de mest anerkendte eksperter inden for området. I øjeblikket arbejder han som professor ved Brown University og har en række præstationer, der fylder et helt afsnit.

I denne afsluttende keynote vil Maurice tale om teorien og praksis inden for blokchain-distriberede systemer set fra klassisk distribueret beregning, og hvordan det forenkler mange relaterede problemer. Dette er et foredrag, der udelukkende omhandler konferencens tema — ikke om mining-hype, men i stedet hvordan vi kan anvende vores viden overraskende effektivt og relevant på de mest forskellige opgaver.

I juli 2017 besøgte Maurice allerede Rusland til SPTDC-skolen, deltog i JUG.ru-mødet, og optagelsen kan ses på YouTube:

Afspil video

Hovedprogram

Here is a brief overview of the presentations included in the program. Some presentations are described in detail, while others are shorter. The longer descriptions are primarily for English-language presentations that require citations of scientific papers, terms on Wikipedia, and so on. You can find the complete list on the conference website.The list on the website will be updated and supplemented.

Leslie Lamport — Q & A

19 hoveder af hydra. Stor gennemgang af programmet Leslie Lamport is the author of foundational works in distributed computing. «LaTeX» stands for «Lamport TeX». He first introduced the concept back in 1979, sekventiel konsistens, og hans artikel "How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs" was awarded the Dijkstra Prize.

This is the most unusual part of the program in format because it is not even a lecture, but a Q&A session. When a significant portion of the audience is already familiar with (or can get acquainted with) all sorts of works based on 'Lamport's theory', his own articles and lectures, it is essential to spend all available time on direct communication.

The idea is simple — you watch two lectures on YouTube: «Programming Should Be More Than Coding» og «If You’re Not Writing a Program, Don’t Use a Programming Language» and prepare at least one question, which Leslie will answer.

We have already turned the first of these two videos into a hub article. If you don't have an hour to watch the video, you can quickly read all this in text form.Note: there are many more videos featuring Leslie Lamport on YouTube. For example, there is an excellent

. The offline version of this entire course is available on kursus i TLA+the author's homepage , and on YouTube, he uploaded it for more convenient viewing on mobile devices.Martin Kleppmann —

Syncing data across user devices for distributed collaboration Martin Kleppmann is a researcher at the University of Cambridge working on CRDT and formal verification of algorithms. His book

19 hoveder af hydra. Stor gennemgang af programmet «Designing Data-Intensive Applications» , published in 2017, became very successful and made it to the bestseller lists in the field of data storage and processing. Kevin Scott, CTO at Microsoft,once said : «This book is a must-read for software engineers. It is a rare resource that combines theory and practice, helping developers design and implement data processing infrastructure and systems more intelligently». Something similar was said by the creator of Kafka and CTO of Confluent, Jay Kreps.: «Эта книга должна быть обязательной для инженеров-разработчиков. Это редкий ресурс, объединяющий теорию и практику, помогающий разработчикам умнее дизайнить и реализовывать инфраструктуру и системы обработки данных». Что-то похожее говорил и создатель Kafka и CTO Confluent, Джей Крепс.

Før han begyndte med akademisk forskning, arbejdede Martin i industrien og blev medstifter af to succesrige startups:

  • Rapportive, der er dedikeret til at vise sociale profiler af kontakter fra din e-mail, som LinkedIn købte i 2012;
  • Go Test It, en service til automatisk at teste websider i forskellige browsere, som RedGate købte i 2009.

Generelt set er Martin, selvom han er mindre kendt end vores keynote-talere, allerede i stand til at bidrage til både udviklingen af distribuerede computationer og industrien.

I dette foredrag vil Martin tale om et emne, der ligger tættere på hans akademiske forskning. I Google Docs og lignende software til samtidig redigering af dokumenter betyder "samtidig redigering" opgaven med replikation: hver bruger har sin egen kopi af det fælles dokument, som de derefter ændrer, og alle ændringer sendes over netværket til de andre deltagere. Ændringer i dokumenter offline fører til midlertidig inkonsistens i dokumentet i forhold til de andre deltagere, og gen-synkronisering kræver konfliktbehandling. Det er netop til dette formål, at der findes Conflict-free Replicated Data Types (CRDT), som grundlæggende er en ret ny størrelse, hvis essens først blev formuleret i 2011. I dette foredrag diskuteres, hvad der er sket siden da i CRDT-verdenen, hvad de nyeste fremskridt er, og der diskuteres tilgangen til at skabe local-first applikationer generelt og brugen af det open source bibliotek Automerge specifikt.

I næste uge offentliggør vi et stort interview med Martin på Habr, det bliver spændende.

Pedro Ramalhete — Wait-free data structures and wait-free transactions

19 hoveder af hydra. Stor gennemgang af programmet Pedro arbejder hos Cisco og har udviklet parallelle algoritmer de sidste ti år, inklusive synkroniseringsmekanismer, lock-free og wait-free datastrukturer og alt, hvad du kan forestille dig om emnet. Hans nuværende forsknings- og ingeniørinteresser er fokuseret på Universal Constructions, Software Transactional Memory, Persistent Memory og lignende teknologier, der gør det muligt at implementere korrekte, skalerbare og fejltolerante applikationer. Han er desuden forfatter til den bredt kendte blog i specialiserede kredse Concurrency Freaks.

De fleste multitrådede applikationer arbejder nu med parallelle datastrukturer, lige fra brugen af meldingskøer mellem aktører til indekserede datastrukturer i key-value lagre. I Java JDK har de fungeret effektivt i mange år, og i C++ bliver de gradvist tilføjet.

Den enkleste måde at implementere en parallell datastruktur på er gennem en sekventiel (enkelttrådet) implementering, hvor metoderne er beskyttet af mutexer. Dette er tilgængeligt for enhver junior udvikler, men har åbenlyse problemer med skalerbarhed og ydeevne. Samtidig håndterer lock-free og wait-free datastrukturer ikke kun fejl bedre, men har også en mere gunstig ydeevneprofil - dog kræver deres udvikling en dyb ekspertise og tilpasning til den specifikke anvendelse. En forkert kodezeile kan være nok til at bryde det hele.

Hvordan kan man sikre, at selv ikke-eksperter kan designe og implementere sådanne datastrukturer? Det er kendt, at enhver sekventiel algoritme kan gøres trådsikker gennem enten en universel konstruktion, eller transaktionelt hukommelse. Begge kan sænke adgangsbarrieren for at løse dette problem. Men begge løsninger fører ofte til ineffektiv implementering. Pedro vil fortælle om, hvordan de har formået at gøre disse konstruktioner mere effektive og hvordan de kan anvendes i ens algoritmer.

Heidi Howard - Liberating distributed consensus

19 hoveder af hydra. Stor gennemgang af programmet Heidi Howard - ligesom Martin, en forsker inden for distribuerede systemer ved Cambridge Universitet. Hendes speciale er konsistens, fejltolerance, ydeevne og distribueret konsensus. Hun er mest kendt for generaliseringen af Paxos-algoritmen kaldet Flexible Paxos.

Lad os minde om, at Paxos - et sæt protokoller til at løse konsensusproblemet i nettværk af upålidelige computere, baseret på arbejdet af Leslie Lamport. På den måde arbejder nogle af vores foredragsholdere med problemer, der oprindeligt er foreslået af andre af vores foredragsholdere - og det er vidunderligt.

Muligheden for at finde en konsensus blandt flere værter — hvad angår adressering, valg af leder, blokering eller koordination — er et fundamentalt spørgsmål i moderne distribuerede systemer. Paxos er i øjeblikket den primære metode til at løse konsensusproblemer, og der udføres mange undersøgelser for at udvide og optimere algoritmen til forskellige praktiske behov.

I denne rapport vil vi gennemgå den teoretiske grundlag for Paxos, hvor vi svækker de oprindelige krav og generaliserer algoritmen. Vi vil se, at Paxos i bund og grund blot er én mulighed blandt et væld af tilgange til konsensus, og at andre punkter på spektret også er yderst nyttige til at bygge gode distribuerede systemer.

Alex Petrov — Reducer dine lageromkostninger med Transient Replication og Billige Kvorum

19 hoveder af hydra. Stor gennemgang af programmet Alex er specialist i databaser og opbevaringssystemer, og hvad der er vigtigst for os — en committer i Cassandra. Sammen med O’Reilly arbejder han lige nu på bogen Database Internals.

For systemer med eventuel konsistens (på russisk kaldet «sammensætning i sidste ende»), efter et nodesvigt eller netværksadskillelse, skal følgende dilemma løses: enten fortsætte med at udføre anmodninger og ofre konsistens eller nægte at udføre dem og ofre tilgængelighed. I sådan et system kan kvorumer, overlappende delmængder af noder, der garanterer, at mindst én node vil indeholde den seneste værdi, blive en god grænseløsning. Man kan overleve fejl og tab af forbindelse til visse noder, mens man fortsætter med at svare med de nyeste værdier.

Men alt har sin pris. Kvorum-replikationsskemaet betyder højere opbevaringsomkostninger: det er nødvendigt at opbevare overflødige data på flere noder samtidigt for at sikre et tilstrækkeligt antal tilgængelige kopier i tilfælde af problemer. Det viser sig, at man ikke behøver at opbevare alle data på alle replikater. Man kan reducere belastningen på lageret ved kun at holde data på en del af noderne og bruge specielle noder (Transient Replica) til fejlhåndteringsscenarier.

Undervejs i rapporten vil vi se på Witness Replicas, replikationsskemaet anvendt i Spanner og Megastore, og implementeringen af dette koncept i Apache Cassandra under navnene Transient Replication & Billige Kvorumer.

Dmitry Vjukhov — Goroutines exposed

19 hoveder af hydra. Stor gennemgang af programmet Dmitrij er udvikler hos Google og arbejder med dynamisk testning af C/C++ og Go - Address/Memory/ThreadSanitizer samt lignende værktøjer til Linux-kernen. Han har bidraget til Go med en skalerbar goroutine-planlægger, network poller og en parallel garbage collector. Han er ekspert i multitrådning, forfatter til et dusin nye non-blocking algoritmer og indehaver af det Sorte Bælte Intel.

Lad os nu tale lidt om selve oplægget. I Go-sproget er der indbygget support til multitrådning i form af goroutines (lette tråde) og kanaler (FIFO-køer). Disse mekanismer gør det meget nemt og behageligt for brugerne at skrive moderne multitrådede applikationer, og det ser næsten ud som magi. Som vi forstår, er der ingen magi involveret. I dette oplæg vil Dmitrij dykke ned i detaljerne omkring Go's scheduler og vise hemmelighederne bag denne 'magi'. Først vil han give en oversigt over hovedkomponenterne i scheduler, og forklare hvordan den fungerer. Derefter vil vi nærmere kigge på forskellige aspekter som parkering/depå parkering strategi og håndtering af blokerende systemopkald. Til slut vil Dmitrij kort fortælle om mulige forbedringer i scheduler.

Dmitrij Bugaichenko - Accelerating distributed graph analysis with probabilistic sketches and more

19 hoveder af hydra. Stor gennemgang af programmet Dmitrij har næsten 9 års erfaring i outsourcing, samtidig med at han har holdt kontakten med universitetet og det akademiske miljø. Analyzing af store data hos Odnoklassniki gav ham en unik mulighed for at kombinere teoretisk træning og videnskabeligt fundament med udviklingen af reelle, efterspurgte produkter.

Distribution graph analysis har været og forbliver en kompleks opgave: når der opstår behov for at få information om forbindelserne til en nærliggende node, skal data ofte overføres mellem maskiner, hvilket fører til øget udførelsestid og belastning på netværksinfrastrukturen. I dette oplæg vil vi se, hvordan man kan opnå betydelig hastighedsforbedring ved at bruge probabilistiske datakonstruktioner eller fakta som symmetri i venskabsgrafen på sociale netværk. Dette illustreres med kodeeksempler i Apache Spark.

Denis Ryscov - Reducer dine lageromkostninger med Transient Replication og Billige Kvorum

19 hoveder af hydra. Stor gennemgang af programmet Denis er udvikler Cosmos DB, ekspert inden for verifikation af konsistensmodeller, konsensusalgoritmer og distribuerede transaktioner. Han arbejder nu i Microsoft og har tidligere arbejdet med distribuerede systemer i Amazon og Yandex.

I dette foredrag vil vi få indblik i protokoller for distribuerede transaktioner, der er udviklet i de seneste par år, som kan implementeres klient-side oven på enhver datalager, der understøtter betinget opdatering (compare and set). Essensen er, at livet ikke slutter med to-fase commit; transaktioner kan tilføjes oven på enhver database — på applikationsniveau, men forskellige protokoller (2PC, Percolator, RAMP) har forskellige trade-offs og kommer ikke gratis.

Aleksey Zinovyev — Ikke alle ML-algoritmer når til det distribuerede paradis

19 hoveder af hydra. Stor gennemgang af programmet Aleksey (zaleslaw) — vores langvarige taler og medlem af programudvalg ved andre konferencer. Praktiserende træner hos EPAM Systems, og han har arbejdet med Hadoop/Spark og anden big data siden 2012.

I dette foredrag vil Aleksey diskutere problemerne med at tilpasse klassiske maskinlæringsalgoritmer til udførelse i distribueret tilstand baseret på sin erfaring med Apache Spark ML, Apache Mahout, Apache Flink ML og sin erfaring med at udvikle Apache Ignite ML. Aleksey vil også tale om implementeringen af distribuerede ML-algoritmer i disse rammer.

Og til sidst — to foredrag fra Yandex om Yandex Database.

Vladislav Kuznetsov — Yandex Database — hvordan vi sikrer fejltilgivelse

19 hoveder af hydra. Stor gennemgang af programmet Vladislav er udvikler i Yandex i gruppen for distribuerede platforme. Yandex Database er en horisontalt skalerbar, georegeret fejltilgivende DBMS, der kan modstå fejlfunktioner fra diske, servere, racks og datacentre uden at kompromittere konsistensen. For at sikre fejltilgivelse anvendes en egen algoritme til opnåelse af distribueret konsensus samt en række tekniske løsninger, der vil blive gennemgået i foredraget. Foredraget kan være interessant for både DBMS-udviklere og udviklere af applikationsløsninger baseret på DBMS.

Semyon Checherinda — Distribuerede transaktioner i YDB

19 hoveder af hydra. Stor gennemgang af programmet Semyon er udvikler i gruppen for distribuerede platforme i Yandex og arbejder på muligheden for at opnå multi-tenancy i YDB-installationen.

Yandex Database er designet til OLTP-forespørgsler og opfylder ACID-kravene til transaktionssystemer. I denne præsentation vil vi gennemgå algoritmen til transaktionsplanlægning, der ligger til grund for YDB-transaktionssystemet. Vi vil se på, hvilke enheder der deltager i transaktioner, hvem der tildeler transaktioner en global rækkefølge, hvordan atomaritet, pålidelighed og et strengt isolationsniveau opnås. Ved hjælp af et almindeligt problem vil vi se på implementeringen af transaktioner med brug af to-faset commit og deterministiske transaktioner. Vi vil diskutere deres forskelle.

Hvad nu?

Konferenceprogrammet fortsætter med at blive beriget med nye præsentationer. Især forventer vi et foredrag fra Nikita Kovalyov (ndkoval) fra JetBrains og Oleg Anastasiev (m0nstermind) fra virksomheden Odnoklassniki. Nikita arbejder med algoritmer til coroutines i Kotlin-teamet, mens Oleg udvikler arkitektur og løsninger til højtydende systemer på platformen Odnoklassniki. Derudover er der endnu 1 betinget ledig plads, som det programkomitéen lige nu arbejder med kandidater til.

Konferencen Hydra finder sted den 11.-12. juli i Sankt Petersborg. Billetter kan købes på den officielle hjemmeside. Vi henleder opmærksomheden på, at der er Online-billetter til rådighed — hvis du af en eller anden grund ikke kan være til stede i Sankt Petersborg på disse dage.

Vi ses på Hydra!

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster