Table of Contents
Ymmärtäminen lohko kaavioita järjestelmäsuunnittelussa
Lohkokaaviot ovat järjestelmän suunnittelun, ohjelmistoarkkitehtuurin ja suunnittelun perustyökalu. Ne vähentävät monimutkaisia järjestelmiä hallittaviksi visuaalisiksi kuvauksiksi, jolloin on helpompi tunnistaa riippuvuuksia, datavirtaa ja mahdollisia skaalautumisongelmia. Hyvin suunniteltu lohkokaavio käyttää yksinkertaisia geometrisiä muotoja.Tyypillisesti suorakulmiot.Nämä edustavat komponentteja tai osajärjestelmiä, jotka on liitetty nuolella tai riveillä, jotka osoittavat suhteita, viestintäpolkuja tai datan liikkuvuutta. Tämä selkeys on olennaista suunniteltaessa skaalautuvuutta ja joustavuutta, koska se paljastaa, miten muutokset järjestelmän yhdessä osassa leviävät muiden kautta.
Lohkokuvan anatomia
Jokaisessa lohkokaaviossa on kolme ensisijaista tekijää:
- Blokit[ .
- Konnectorit [ ... .......................................................................................................................................................................................................................................
- Labeli[ . Lyhyt kuvaileva teksti, joka nimeää jokaisen lohkon tai liittimen, usein mukaan lukien kriittiset ominaisuudet, kuten läpisyötön, latenssin tai protokollan.
Nämä elementit toimivat yhdessä luoda korkean tason abstraktio, joka jättää pois täytäntöönpano yksityiskohtia, jolloin insinöörit voivat keskittyä [ järjestelmä käyttäytyminen[] eikä koodia. Syvä sukeltaa lohkokaavion käytäntöjä, katso [Wikipedia.
Miksi estää kaaviot parantaa skaalautuvuutta ja joustavuutta
Nykyaikaisten järjestelmien on kehityttävä nopeasti, jotta voidaan ottaa huomioon kasvavat käyttäjäpohjat, uudet ominaisuudet ja infrastruktuurin muutos.
- Bottleneck Tunnistus[ ... Jäljittämällä datan virtausta lohkojen läpi voit nähdä, missä jonot kasvavat tai missä on yksittäisiä vikakohtia. Tämä antaa suoraan tietoa skaalautuvuusparannuksista, kuten vaaka-asennuksista tai kuorman tasapainottimien lisäämisestä.
- Modulaarisuus[ ... Kaavio, joka käyttää löyhästi kytkettyjä lohkoja, kannustaa mikropalveluun tai plugin-arkkitehtuuriin. Voit vaihtaa, päivittää tai skaalata yksittäisiä lohkoja ilman uudelleen arkkitehtuuria koko järjestelmä.
- Granulaar Scaling ... Kun kullakin lohkolla on selkeästi määritellyt rajapinnat, voit soveltaa erilaisia skaalautumisstrategioita (esim. pystysuora skaalautuminen tietokantoihin, horisontaalinen skaalautuminen kansalaisuudettomiin palveluihin). Kaavioiden perusteella on selvää, mitkä lohkot ovat kansalaisuudettomia ja mitkä tilallisia.
- Reconfiguration Readyness[ . Joustavuus tarkoittaa usein kykyä järjestää osia uudelleen järjestelmässä. Korttelikaavio toimii suunnitelmana uudelleenjärjestämiseen käsittelyvaiheita, käyttöön välimuistit, tai jakaminen monoliittit.
Todellisen maailman näkökulmasta WS Hyvin arkkitehtuurin kehys suosittelee käyttämään arkkitehtonisia kaavioita skaalautuvuuden ja suorituskyvyn kompromissien arvioimiseksi.
Vaiheet tehokkaiden lohkokaavioiden rakentamiseen skaalautumissuunnittelua varten
Luoda kaavio, joka todella parantaa järjestelmän suunnittelua vaatii muutakin kuin piirustuksia. Noudata tätä jäsenneltyä lähestymistapaa:
Vaihe 1: Inventory Kaikki järjestelmän komponentit
Aloita luettelemalla kaikki toiminnalliset osat, käyttäjälähtöisistä etulinjasta taustatyöntekijöihin ja ulkoisiin sovellusrajapintoihin. Älä unohda infrastruktuurielementtejä, kuten kuorman tasapainottimia, viestijonoja ja tietokantoja. Käytä toiminnallista hajoamista murtaa monimutkaisia osajärjestelmiä pienempiin, yksikäyttöisiin lohkoihin.
Vaihe 2: Määrittele vuorovaikutus ja tietovirrat
Jokaiselle lohkolle dokumentoidaan, mitä syötteitä se odottaa ja mitä tuloksia se tuottaa. Tässä kohdassa tunnistetaan kytkentätasot. Esimerkiksi jos lohko A vaatii synkronoituja vastauksia lohkosta B, joka luo tiukan kytkennän, joka voi estää riippumattoman skaalautumisen. Käytä suuntanuolia näyttääksesi pyyntöjen, tapahtumien tai datavirtojen virtauksen.
Vaihe 3: Piirrä perustilannekuva
Käytä työkalua, joka tukee versiointia ja yhteistyötä.Suosittuja valintoja ovat [diagrammit.net[ (ilmainen, avoin lähdekoodi), [Lucidchart[], tai []Draw.io[]. Järjestä lohkoja loogisissa kerroksissa (esim., esittely, sovellus, tiedot) tai käyttöalueilla (esim., julkinen pilvi, yksityinen verkko). Käytä selkeitä tarroja ja värikoodipalikoita, jotka ovat tilallisia vs. kansalaisuudeton.
Vaihe 4: Määritellään skaalautuvat rajat
Peruskaaviolla merkitse jokainen lohko sen nykyisellä kapasiteettirajoilla.Näytä esimerkiksi sekunneissa, varastointikapasiteetissa tai suoritinkäytössä. Kysy sitten ... Mitä tapahtuu, jos liikenne kaksinkertaistuu?..Korkeintaan lohkot, joista tulee pullonkauloja: nämä ovat pääehdokkaita [-horisontaaliselle skaalaukselle[] (lisää esimerkkejä) tai [-vertikaaliselle skaalaukselle[ (parannuslaitteisto).
Vaihe 5: Suunnittele skaalautuva tulevaisuustila
Luo toinen kaavio, joka näyttää muutoksia, jotka parantavat kapasiteettia. Tämä voi sisältää lisäämällä kuorman tasapainotin ennen web-palvelimet, ottamalla välimuistikerros, tai slipata tietokantaa useita lohkoja. Vertaa kahta kaaviota validoida, että skaalaus vaiheet don.t rikkoa olemassa olevia tietovirtoja.
Vaihe 6: Prototyyppijoustavuus refaktorointilohkojen mukaan
Joustavuus vaatii, että lohkot voidaan vaihtaa repimättä koko järjestelmää. Piirrä kolmas kaavio, jossa yksi lohko korvataan kokonaan. Esimerkiksi siirtyminen suhdetietokannasta NOSQL-varastoon. Jos liittimet pysyvät voimassa, arkkitehtuurisi on joustava. Jos sinun täytyy uudelleenraahata useita lohkoja, olet tunnistanut [] refactoring ehdokkaat[.
Lohkokaavioiden soveltaminen reaalimaailman mittakaavan skenaarioihin
Sähköinen kaupankäynti
Harkitse verkkokauppaa, jossa kassavirtaan kuuluu tunnistus, varaston tarkistukset, maksujen käsittely ja tilausvahvistus. Blokkikaavio saattaa näyttää jokaisen palvelun erillisenä lohkona, johon viestijono on liitetty. Kun Black Friday liikennepiikit, kaavio paljastaa, että varastolohkossa on rajallinen määrä tietokantayhteyksiä. Ratkaisu: Lisää lukea kopioita ja käytä välimuistia inventaariokyselyjen edessä. Kaavio tekee tämän toimenpiteen ilmeiseksi kirjoittamatta mitään koodia.
IoT-tiedonottoputki
IoT-järjestelmässä sensorit lähettävät dataa pilvikäytävään, sitten stream-prosessoriin ja lopulta aikasarjatietokantaan. Block-kaaviossa stream-prosessori näkyy lynchpinina. Jos se epäonnistuu, koko putkisto pysähtyy. Skaalauskyvyn parantamiseksi voit vaakasuunnassa skaalata stream-prosessorilohkon (esim. käyttämällä Apache Kafka-osioita) ja lisätä puskurilohkon (kuten Amazon Kinesis) imemään murtumia. Kaavio auttaa viestimään näistä muutoksista sidosryhmille, jotka eivät ole syvästi teknisiä.
Yleinen virhe ja miten välttää niitä
- Ylikomplikoidaan kaavioita[ . Liian monta lohkoa tai liittimet luovat melua. Pysy periaatteen ...yksi kaavio, yksi huolenaihe..............................................................................................................................................................................................................
- Tietosuojausvaltio[ . Ei merkintää, joka pitää lohkot tilaa tekee skaalaus päätöksiä virheellisiä.
- Unohtaminen ulkoiset riippuvuudet[ ... ...................................................................................................................................................................................................................................
- Staattiset kaaviot[ ... .......................................................................................................................................................................................................................................
Pitkän aikavälin ylläpidettävyyttä koskevat parhaat käytännöt
Varmistaa lohkokaaviot ovat hyödyllisiä, kun järjestelmä kasvaa, hyväksyä nämä käytännöt:
- Käytä johdonmukaista notaatiota[ . ... ....................................................................................................................................................................................................................................
- Versio-ohjaus kaavioita[ . Tallenna kaavio lähdetiedostoja (esim., .drawio, .dslx) samassa arkistossa kuin koodisi. Tämä mahdollistaa arvostelut ja muuttaa historian.
- Automate kaavion generation[ ... ....................................................................................................................................................................................................................................
- Kaavittele kaavioita jokaisessa arkkitehtuurin katsauksessa .
Päätelmät
Lohkokaaviot eivät ole vain dokumentointia esineitä.Ne ovat aktiivisia työkaluja ajattelua järjestelmän skaalautuvuus ja joustavuus. Murtamalla järjestelmän moduuli lohkot, kartoitus datavirtoja, ja iterating yli tulevaisuuden tilan kaavioita, insinööritiimit voivat tehdä tietoon perustuvia päätöksiä, jotka estävät arkkitehtonisen velan ja välttää kalliita uudelleen työtä. Jokainen minuutti käytetty kaavion avulla mahdollinen skaalaus ongelma säästää tunteja hätä korjaus. Aloita yksinkertainen kaavio nykyisen järjestelmän, tunnistaa yksi pullonkaula, ja suunnitella skaalautuva versio. Kurssi visuaalinen ajattelu muuttaa miten lähestyy järjestelmän kasvua.