Software Architecture ati Systems Design: Nla Aworan ati awọn oluşewadi Itọsọna

Kaabo awọn ẹlẹgbẹ.

Loni a funni fun imọran rẹ ni itumọ ti nkan kan nipasẹ Tugberk Ugurlu, ẹniti o ṣe ilana ni iwọn kekere diẹ ninu awọn ilana ti ṣiṣe awọn ọna ṣiṣe sọfitiwia ode oni. Eyi ni ohun ti onkowe sọ nipa ara rẹ ni akojọpọ:

Software Architecture ati Systems Design: Nla Aworan ati awọn oluşewadi Itọsọna
Niwọn bi ko ṣe ṣee ṣe rara lati bo ninu nkan habro kan iru koko nla bi awọn ilana ayaworan + awọn ilana apẹrẹ bi ti ọdun 2019, a ṣeduro kii ṣe ọrọ ti Ọgbẹni Uruglu funrararẹ, ṣugbọn tun awọn ọna asopọ lọpọlọpọ ti o fi inurere pẹlu rẹ. Ti o ba fẹran rẹ, a yoo ṣe atẹjade ọrọ amọja pupọ diẹ sii nipa apẹrẹ ti awọn eto pinpin.

Software Architecture ati Systems Design: Nla Aworan ati awọn oluşewadi Itọsọna

Aworan aworan Isaaki Smith lati Unsplash

Ti o ko ba ni lati dojuko iru awọn italaya bii ṣiṣe eto sọfitiwia lati ibere, lẹhinna nigbati o bẹrẹ iru iṣẹ bẹ, nigbakan ko paapaa ko o ibiti o bẹrẹ. Mo gbagbọ pe o nilo akọkọ lati fa awọn aala ki o ni imọran diẹ sii tabi kere si idaniloju kini kini iwọ yoo ṣe apẹrẹ, ati lẹhinna yi awọn apa aso rẹ ki o ṣiṣẹ laarin awọn aala yẹn. Gẹgẹbi aaye ibẹrẹ, o le mu ọja tabi iṣẹ kan (eyiti o fẹran gaan) ki o wa bi o ṣe le ṣe imuse rẹ. O le jẹ ohun iyanu ni bi ọja yii ṣe rọrun, ati bii idiju ti o ni ninu. Maṣe gbagbe: o rọrun - maa eka, ati pe o dara.

Mo ro pe imọran ti o dara julọ ti Mo le fun ẹnikẹni ti o bẹrẹ lati ṣe apẹrẹ eto ni eyi: maṣe ṣe awọn ero inu! Lati ibẹrẹ, o nilo lati pato awọn otitọ ti a mọ nipa eto yii ati awọn ireti ti o ni nkan ṣe pẹlu rẹ. Eyi ni awọn ibeere to dara lati beere lati ṣe iranlọwọ fun ọ lati bẹrẹ pẹlu apẹrẹ rẹ:

  • Kini iṣoro ti a n gbiyanju lati yanju?
  • Kini nọmba ti o ga julọ ti awọn olumulo ti yoo ṣe ajọṣepọ pẹlu eto wa?
  • Awọn ilana kikọ ati kika data wo ni a yoo lo?
  • Kini awọn ọran ikuna ti a nireti, bawo ni a ṣe le mu wọn?
  • Kini awọn ireti fun aitasera eto ati wiwa?
  • Ṣe o ni lati ṣe akiyesi awọn ibeere eyikeyi ti o ni ibatan si iṣeduro ita ati ilana nigbati o n ṣiṣẹ?
  • Iru data ifura wo ni a yoo fipamọ?

Iwọnyi jẹ awọn ibeere diẹ ti o wulo fun mi ati awọn ẹgbẹ ninu eyiti Mo ti kopa ninu awọn ọdun ti iṣẹ ṣiṣe alamọdaju. Ti o ba mọ awọn idahun si awọn ibeere wọnyi (ati eyikeyi awọn miiran ti o ṣe pataki si ipo ti o ni lati ṣiṣẹ), lẹhinna o le ni imọ-jinlẹ sinu awọn alaye imọ-ẹrọ ti iṣoro naa.

Ṣeto ipele ibẹrẹ

Kini MO tumọ si nipasẹ “ipilẹ” nibi? Lootọ, ni awọn akoko wa, ọpọlọpọ awọn iṣoro ni ile-iṣẹ sọfitiwia “le” ni ipinnu nipa lilo awọn ọna ati imọ-ẹrọ to wa tẹlẹ. Nitorinaa, nipa lilọ kiri ni ilẹ-ilẹ yii, o gba ibẹrẹ ori kan nigbati o ba dojuko awọn iṣoro ti ẹnikan ni lati yanju ṣaaju rẹ. Maṣe gbagbe pe awọn eto ti kọ lati yanju iṣowo ati awọn iṣoro olumulo, nitorinaa a ngbiyanju lati yanju iṣoro naa ni ọna titọ ati irọrun (lati oju wiwo olumulo). Kini idi ti eyi ṣe pataki lati ranti? Boya ninu eto ipoidojuko rẹ o fẹ lati wa awọn solusan alailẹgbẹ fun gbogbo awọn iṣoro, nitori o ro pe, “Iru olupilẹṣẹ wo ni MO jẹ ti MO ba tẹle awọn ilana nibi gbogbo”? Ni pato, awọn aworan nibi ti wa ni ṣiṣe awọn ipinnu nipa ibi ti ati ohun ti lati se. Na nugbo tọn, dopodopo mítọn dona pehẹ nuhahun vonọtaun lẹ sọn ojlẹ de mẹ jẹ devo mẹ, ehe dopodopo yin avùnnukundiọsọmẹnu nujọnu tọn de. Bibẹẹkọ, ti ipele ibẹrẹ wa ba ni asọye ni kedere, lẹhinna a mọ kini lati lo agbara wa lori: wiwa awọn aṣayan ti a ti ṣetan fun lohun iṣoro ti a ṣeto siwaju wa, tabi kika siwaju ati ni oye ti o jinlẹ.

Mo ro pe MO ni anfani lati parowa fun ọ pe ti alamọja kan ba ni igboya loye kini paati ayaworan ti diẹ ninu awọn eto sọfitiwia iyanu jẹ, lẹhinna imọ yii yoo jẹ pataki fun didari iṣẹ ọna ti ayaworan ati idagbasoke ipilẹ to lagbara ni aaye yii.

O dara, nitorina nibo ni lati bẹrẹ? U Donna Martina Ibi ipamọ wa lori GitHub ti a pe eto-apẹrẹ-primer, lati inu eyiti o le kọ ẹkọ bi o ṣe le ṣe apẹrẹ awọn ọna ṣiṣe ti o tobi, bakannaa mura fun awọn ibere ijomitoro lori koko yii. Ibi ipamọ naa ni apakan pẹlu awọn apẹẹrẹ gidi architectures, Nibo, ni pato, a ṣe akiyesi bi wọn ṣe sunmọ apẹrẹ ti awọn eto wọn diẹ ninu awọn ile-iṣẹ ti a mọ daradaraFun apẹẹrẹ Twitter, Uber, ati bẹbẹ lọ.

Sibẹsibẹ, ṣaaju ki o to lọ si ohun elo yii, jẹ ki a ṣe akiyesi diẹ si awọn italaya ti ayaworan ti o ṣe pataki julọ ti a koju ni iṣe. Eyi jẹ pataki nitori pe o ni lati pato awọn ọpọlọpọ awọn ẹya ti iṣoro abori ati ọpọlọpọ, lẹhinna yanju rẹ laarin ilana ti awọn ilana ti o ni agbara ni eto ti a fun. Jackson Gabbard, A tele Facebook abáni, kowe Fidio iṣẹju 50 nipa awọn ifọrọwanilẹnuwo apẹrẹ awọn ọna ṣiṣe, nibiti o ti pin iriri tirẹ ti ibojuwo awọn ọgọọgọrun ti awọn olubẹwẹ. Lakoko ti fidio naa ṣe idojukọ pupọ lori apẹrẹ eto nla ati awọn iyasọtọ aṣeyọri ti o ṣe pataki nigbati o n wa oludije fun iru ipo kan, yoo tun ṣiṣẹ bi orisun okeerẹ lori kini awọn nkan ṣe pataki julọ nigbati o n ṣe apẹrẹ awọn eto. Mo tun daba akopọ fidio yi.

Kọ imọ nipa titoju ati gbigba data pada

Ni deede, ipinnu rẹ nipa bii o ṣe fipamọ ati gba data rẹ pada fun igba pipẹ ni ipa pataki lori iṣẹ ṣiṣe eto. Nitorinaa, o gbọdọ kọkọ loye kikọ ti a nireti ati ka awọn abuda ti eto rẹ. Lẹhinna o nilo lati ni anfani lati ṣe iṣiro awọn itọkasi wọnyi ati ṣe awọn yiyan ti o da lori awọn igbelewọn ti a ṣe. Sibẹsibẹ, o le ni imunadoko pẹlu iṣẹ yii nikan ti o ba loye awọn ilana ipamọ data ti o wa tẹlẹ. Ni opo, eyi tumọ si imọ to lagbara ti o ni ibatan si aṣayan database.

Awọn apoti isura infomesonu le ni ero bi awọn ẹya data ti o ni iwọn pupọ ati ti o tọ. Nitorinaa, imọ ti awọn ẹya data yẹ ki o wulo pupọ fun ọ nigbati o yan data data kan pato. Fun apere, Redis jẹ olupin igbekalẹ data ti o ṣe atilẹyin awọn oriṣi awọn iye. O gba ọ laaye lati ṣiṣẹ pẹlu awọn ẹya data gẹgẹbi awọn atokọ ati awọn eto, ati ka data nipa lilo awọn algoridimu olokiki, fun apẹẹrẹ, LRU, Ṣiṣeto iru iṣẹ bẹ ni ọna ti o tọ ati ti o ni anfani pupọ.

Software Architecture ati Systems Design: Nla Aworan ati awọn oluşewadi Itọsọna

Aworan aworan Samuel Zeller lati Unsplash

Ni kete ti o ba ni oye ti o to ti ọpọlọpọ awọn ilana ibi ipamọ data, tẹsiwaju si ikẹkọ aitasera data ati wiwa. Ni akọkọ, o nilo lati ni oye CAP akori o kere ju ni awọn ofin gbogbogbo, ati lẹhinna didan imọ yii nipa gbigbe ni pẹkipẹki wo awọn ilana iṣeto aitasera и wiwọle. Ni ọna yii, iwọ yoo ṣe idagbasoke oye ti aaye naa ki o loye pe kika ati kikọ data jẹ awọn iṣoro meji ti o yatọ pupọ, ọkọọkan pẹlu awọn italaya alailẹgbẹ tirẹ. Ni ihamọra pẹlu aitasera diẹ ati awọn ilana wiwa, o le ṣe alekun iṣẹ ṣiṣe eto ni pataki lakoko ti o n ṣe idaniloju sisan data didan si awọn ohun elo rẹ.

Nikẹhin, ipari ibaraẹnisọrọ naa nipa awọn ọran ipamọ data, o yẹ ki a tun darukọ caching. Ṣe o yẹ ki o ṣiṣẹ ni nigbakannaa lori alabara ati olupin? Awọn data wo ni yoo wa ninu kaṣe rẹ? Ati kilode? Bawo ni o ṣe ṣeto ailagbara kaṣe? Njẹ yoo ṣee ṣe deede, ni awọn aaye arin kan bi? Ti o ba jẹ bẹẹni, igba melo? Mo ṣeduro bẹrẹ lati ṣe iwadi awọn akọle wọnyi pẹlu tókàn apakan awọn aforementioned eto apẹrẹ alakoko.

Awọn Ilana Ibaraẹnisọrọ

Awọn ọna ṣiṣe ni orisirisi awọn ẹya; iwọnyi le jẹ awọn ilana oriṣiriṣi ti n ṣiṣẹ laarin ipade ti ara kanna, tabi awọn ẹrọ oriṣiriṣi ti nṣiṣẹ lori awọn ẹya oriṣiriṣi ti nẹtiwọọki rẹ. Diẹ ninu awọn orisun wọnyi laarin nẹtiwọọki rẹ le jẹ ikọkọ, ṣugbọn awọn miiran yẹ ki o jẹ gbangba ati ṣii si awọn alabara ti n wọle si wọn lati ita.

O jẹ dandan lati rii daju ibaraẹnisọrọ ti awọn orisun wọnyi pẹlu ara wọn, bakanna bi paṣipaarọ alaye laarin gbogbo eto ati agbaye ita. Ni ipo ti apẹrẹ awọn ọna ṣiṣe, nibi lẹẹkansi a dojuko pẹlu ṣeto ti awọn italaya tuntun ati alailẹgbẹ. Jẹ ki a wo bi wọn ṣe le wulo asynchronous-ṣiṣe óę, ati kini pOrisirisi awọn ilana ibaraẹnisọrọ wa.

Software Architecture ati Systems Design: Nla Aworan ati awọn oluşewadi Itọsọna

Aworan aworan Tony Stoddard lati Unsplash

Nigbati o ba ṣeto ibaraẹnisọrọ pẹlu ita ita, o jẹ pataki nigbagbogbo ailewu, ipese ti o tun nilo lati mu ni pataki ati ki o lepa ni itara.

pinpin asopọ

Emi ko ni idaniloju pe fifi koko-ọrọ yii si apakan lọtọ yoo dabi idalare fun gbogbo eniyan. Bibẹẹkọ, Emi yoo ṣafihan imọran yii ni awọn alaye nibi, ati pe Mo gbagbọ pe ohun elo ti o wa ni apakan yii ni a ṣe apejuwe ni pipe julọ nipasẹ ọrọ naa “pinpin asopọ”.

Awọn ọna ṣiṣe ni a ṣẹda nipasẹ sisopọ ọpọlọpọ awọn paati daradara, ati pe ibaraẹnisọrọ wọn pẹlu ara wọn nigbagbogbo ṣeto lori ipilẹ awọn ilana ti iṣeto, fun apẹẹrẹ, TCP ati UDP. Bibẹẹkọ, awọn ilana wọnyi bii iru bẹẹ nigbagbogbo ko to lati pade gbogbo awọn iwulo ti awọn eto ode oni, eyiti a ṣiṣẹ nigbagbogbo labẹ ẹru giga ati pe o tun gbẹkẹle awọn iwulo olumulo. Nigbagbogbo o jẹ dandan lati wa awọn ọna lati kaakiri awọn asopọ lati koju iru awọn ẹru giga lori eto naa.

Yi pinpin wa ni da lori awọn daradara-mọ ašẹ orukọ eto (DNS). Iru eto yii ngbanilaaye awọn iyipada orukọ ìkápá gẹgẹbi iwọn robin yika ati awọn ọna orisun lairi lati ṣe iranlọwọ pinpin ẹru naa.

Iwontunwonsi fifuye jẹ pataki ni ipilẹ, ati pe gbogbo eto Intanẹẹti nla ti a ṣe pẹlu loni wa lẹhin ọkan tabi diẹ ẹ sii awọn iwọntunwọnsi fifuye. Awọn iwọntunwọnsi fifuye ṣe iranlọwọ kaakiri awọn ibeere alabara kọja awọn iṣẹlẹ ti o wa lọpọlọpọ. Awọn iwọntunwọnsi fifuye wa ninu ohun elo mejeeji ati sọfitiwia, sibẹsibẹ, ni iṣe, diẹ sii nigbagbogbo o ni lati koju awọn sọfitiwia, fun apẹẹrẹ. HAProxy и ELB. Yiyipada awọn aṣoju conceptually tun gidigidi iru si fifuye balancers, biotilejepe nibẹ ni a ibiti o laarin awọn akọkọ ati keji awọn iyatọ ti o yatọ. Awọn iyatọ wọnyi gbọdọ wa ni akiyesi nigbati o ba n ṣe apẹrẹ eto ti o da lori awọn iwulo rẹ.

O yẹ ki o tun mọ nipa awọn nẹtiwọki ifijiṣẹ akoonu (CDN). CDN jẹ nẹtiwọọki ti o pin kaakiri agbaye ti awọn olupin aṣoju ti o pese alaye lati awọn apa wọnyẹn ti o wa ni agbegbe agbegbe ti o sunmọ olumulo kan pato. Awọn CDN dara julọ lati lo ti o ba ṣiṣẹ pẹlu awọn faili aimi ti a kọ sinu JavaScript, CSS ati HTML. Ni afikun, awọn iṣẹ awọsanma ti o pese awọn alakoso iṣowo jẹ wọpọ loni, fun apẹẹrẹ, Azure Traffic Manager, fifun ọ ni pinpin agbaye ati idinku idinku nigbati o ba n ṣiṣẹ pẹlu akoonu ti o ni agbara. Sibẹsibẹ, iru awọn iṣẹ bẹẹ wulo nigbagbogbo ni awọn ọran nibiti o ni lati ṣiṣẹ pẹlu awọn iṣẹ wẹẹbu ti ko ni ipinlẹ.

Jẹ ká soro nipa owo kannaa. Ṣiṣeto iṣaro iṣowo, awọn ṣiṣan iṣẹ-ṣiṣe ati awọn paati

Nitorinaa, a ṣakoso lati jiroro lori ọpọlọpọ awọn ẹya amayederun ti eto naa. O ṣeese julọ, olumulo ko paapaa ronu nipa gbogbo awọn eroja wọnyi ti eto rẹ ati, ni otitọ, ko bikita nipa wọn rara. Olumulo naa nifẹ si ohun ti o dabi lati ṣe ajọṣepọ pẹlu eto rẹ, kini o le ṣe aṣeyọri nipasẹ ṣiṣe eyi, ati bii eto naa ṣe n ṣe awọn aṣẹ olumulo, kini ati bii o ṣe pẹlu data olumulo.

Gẹgẹbi akọle ti nkan yii ṣe imọran, Emi yoo sọrọ nipa faaji sọfitiwia ati apẹrẹ eto. Nitorinaa, Emi ko gbero lati bo awọn ilana apẹrẹ sọfitiwia ti o ṣapejuwe bii awọn paati sọfitiwia ṣe ṣẹda. Bibẹẹkọ, diẹ sii ni Mo ronu nipa rẹ, diẹ sii o dabi si mi pe laini laarin awọn ilana apẹrẹ sọfitiwia ati awọn ilana ayaworan jẹ blur, ati awọn imọran meji naa ni ibatan pẹkipẹki. Jẹ ká ya fun apẹẹrẹ ìforúkọsílẹ iṣẹlẹ (iṣẹlẹ orisun). Ni kete ti o ba gba apẹrẹ ayaworan yii, yoo kan gbogbo abala ti eto rẹ: ibi ipamọ igba pipẹ ti data, ipele aitasera ti a gba sinu eto rẹ, apẹrẹ ti awọn paati ninu rẹ, ati bẹbẹ lọ, ati bẹbẹ lọ. Nitorinaa, Mo pinnu lati darukọ diẹ ninu awọn ilana ayaworan ti o ni ibatan taara si ọgbọn iṣowo. Paapaa botilẹjẹpe nkan yii yoo ni lati fi opin si ararẹ si atokọ ti o rọrun, Mo gba ọ niyanju lati ni oye pẹlu rẹ ki o ronu nipa awọn imọran ti o ni nkan ṣe pẹlu awọn ilana wọnyi. O ti de ibi:

Awọn ọna ifowosowopo

Ko ṣeeṣe pupọ pe iwọ yoo rii ararẹ lori iṣẹ akanṣe kan bi alabaṣe ti o jẹ iduro nikan fun ilana apẹrẹ eto. Ni ilodi si, o ṣeese julọ ni lati ṣe ajọṣepọ pẹlu awọn ẹlẹgbẹ ti n ṣiṣẹ mejeeji laarin ati ita iṣẹ rẹ. Ni ọran yii, o le nilo lati ṣe iṣiro awọn solusan imọ-ẹrọ ti o yan pẹlu awọn ẹlẹgbẹ, ṣe idanimọ awọn iwulo iṣowo ati loye bi o ṣe dara julọ lati ṣe afiwe awọn iṣẹ-ṣiṣe.

Software Architecture ati Systems Design: Nla Aworan ati awọn oluşewadi Itọsọna

Aworan aworan Kaleidico lati Unsplash

Igbesẹ akọkọ ni lati ṣe agbekalẹ oye deede ati pinpin kini kini ibi-afẹde iṣowo ti o n gbiyanju lati ṣaṣeyọri jẹ ati kini awọn apakan gbigbe ti iwọ yoo ni lati koju. Awọn imuposi awoṣe ẹgbẹ, ni pataki iji iṣẹlẹ (iṣẹlẹ iji) ṣe iranlọwọ lati ṣe iyara ilana yii ni pataki ati mu awọn aye rẹ ti aṣeyọri pọ si. Iṣẹ yii le ṣee ṣe ṣaaju tabi lẹhin ilana rẹ awọn aala ti awọn iṣẹ rẹ, ati lẹhinna jinle bi ọja naa ti dagba. Da lori ipele aitasera ti yoo waye nibi, o tun le ṣe agbekalẹ ede ti o wọpọ fun awọn lopin o tọ ninu eyi ti o ṣiṣẹ. Nigbati o ba nilo lati sọrọ nipa faaji ti eto rẹ, o le rii pe o wulo awoṣe C4, dabaa Simon Brown, paapaa nigba ti o ba nilo lati ni oye iye ti iwọ yoo ni lati lọ sinu awọn alaye ti iṣoro naa, ni wiwo awọn ohun ti o fẹ lati ṣe ibaraẹnisọrọ.

O ṣee ṣe pe imọ-ẹrọ ogbo miiran wa lori koko yii ti ko wulo diẹ sii ju Apẹrẹ Iwakọ Aṣẹ. Sibẹsibẹ, a tun pada si agbọye agbegbe koko-ọrọ, nitorina imọ ati iriri ni aaye naa Apẹrẹ-Iwakọ Apẹrẹ yẹ ki o wulo fun ọ.

orisun: www.habr.com

Fi ọrọìwòye kun