Mikolo nionso, moment nionso na carrière na biso ya ingénierie, tokutanaka na ba problèmes ebele ya ndenge na ndenge ya complexité mpe ba situations ndenge na ndenge esika esengeli tozua décision to to postponer yango mpo na manque ya ba données. Ntango nyonso oyo tozali kotonga misala ya sika, kotonga ba infrastructures, to kutu tosalaka ba processus ya développement, tosimbaka mokili monene ya mikakatano ndenge na ndenge.
Ezali mpasi, mpe mbala mosusu kutu ekoki kosalema te, kotánga mikakatano nyonso. Okokutana na mwa makambo oyo kaka soki ozali kosala na niche moko ya sikisiki. Epayi mosusu, ezali na mingi oyo biso banso tosengeli kososola lolenge nini kosilisa, lokola ezali na ntina mingi mpo na kotonga ba systèmes informatiques. Na probabilité ya likolo, okokutana na bango na ba projets nionso.
Na lisolo oyo, nakoyebisa makambo oyo nakutanaki na yango na mwa mikakatano oyo nakutanaki na yango ntango nazalaki kosala baprogramɛ ya logiciel.
Soki totali na kati ya Wikipedia, tokokuta ndimbola oyo elandi
Na développement logiciel orienté aspect, ba soucis transversaux ezali ba aspects ya programme oyo etali ba modules ebele, sans possibilité ya kozala encapsulé na moko na yango. Mbala mingi mitungisi oyo ekoki te kopɔla na bopeto uta na oyo etikali ya système ezala na bokeli pe bosaleli, pe ekoki kosala ete ezala bopanzani (kozongisa ba code), kokangama (ba dépendances ya tina kati ya ba systèmes), to nionso mibale.
Ezali kolimbola mingi nini ezali, kasi nalingi koyeisa yango mwa moke mpe koyeisa pete:
Soucis transversal ezali likanisi to eteni ya système/organisation oyo etali (to ‘ekataka’) biteni mosusu mingi.
Ba exemples ya malamu ya ba soucis ya boye ezali architecture ya système, logging, sécurité, gestion ya transaction, télémétrie, conception ya base de données mpe ezali na ba misusu ebele. Tokoyebisa makambo mingi na yango na nsima na lisolo oyo.
Na niveau ya code, ba soucis transversales esalemaka mingi mingi na kosalelaka ba techniques lokola Aspect-Oriented Programming (AOP) , esika ba soucis wana e modulariser na ba composantes separates oyo ekoki kosalelama na application mobimba. Yango esalaka ete logique ya mombongo ezala isolé na ba soucis wana, kosala que code ezala plus lisible mpe maintenable.
Ezali na ba façons ebele possibles ndenge nini ko classer ba aspects en segmentation na ba propriétés différentes lokola portée, taille, fonctionnalité, importance, cible, na misusu, mais na article oyo, nako salela classification ya portée simple. Na oyo, nalingi koloba esika nini aspect spécifique oyo etalisami ezala organisation mobimba, système moko particulier, to élément spécifique ya système wana.
Donc, nakokabola ba aspects na Macro na Micro .
Na aspect Macro nalingi koloba mingi mingi ba considérations oyo tolandaka pona système mobimba lokola architecture ya système oyo eponami na conception na yango (monolithique, microservices, architecture orientée service), stack ya technologie, structure ya organisation, etc. Ba aspects macro ezali surtout na lien na stratégique na niveau ya likolo bikateli oyo ezwamaka.
Entre temps, aspect ya Micro ezali beaucoup plus proche ya niveau ya code na développement. Na ndakisa, cadre nini esalelamaka mpo na kosala interaction na base de données, structure ya projet ya ba dossiers mpe ba classes, to même ba modèles spécifiques ya conception ya objet.
Atako classification oyo ezali idéal te, esalisaka na ko structurer compréhension ya ba problèmes possibles pe importance pe impact ya ba solutions oyo tosalelaka na yango.
Na lisolo oyo, likebi na ngai ya libosoliboso ekozala na makambo ya macro.
Tango nabandaki kaka koyekola architecture logicielle, natangaki ba articles ebele ya intéressant sur loi ya Conway mpe impact na yango na structure ya organisation. Surtout oyo . Donc, loi oyo elobi que
Ebongiseli nyonso oyo ekosala mayele ya système (oyo elimbolami na monene) ekobimisa bokeli oyo ebongiseli na yango ezali kopi ya ebongiseli ya bopanzi sango.
Nandimaka ntango nyonso ete likanisi oyo ezali mpenza ya mokili mobimba mpe ezali komonisa Mobeko ya Wolo.
Na sima nabandaki koyekola approche ya Domain-Driven Design (DDD) ya Eric Evans pona ba systèmes ya modélisation. Eric Evans azali kopesa ntina ya koyeba Bounded Context. Likanisi oyo esangisi kokabola modèle ya domaine complexe na biteni ya mike, oyo ekoki ko gérer mingi, moko na moko ezali na ensemble na yango ya boyebi oyo ezali na ndelo. Ndenge oyo esalisaka na bosololi malamu ya ekipi, mpamba te ekitisaka mposa ya boyebi mingi ya domaine mobimba mpe ekitisaka mbongwana ya contexte, na yango ekosala ete masolo ezala malamu. Kobongola contexte ezali likambo ya mabe mpe oyo esɛngaka biloko mingi koleka. Ata baordinatɛrɛ ezali kobunda na yango. Atako ezali mpasi mpo na kokokisa bozangi mobimba ya mbongwana ya contexte, nakanisi ete yango nde tosengeli kosala makasi mpo na yango.
Soki tozongi na Mibeko ya Conway, namoni makambo mingi na yango.
Likambo ya liboso oyo nakutanaki na yango na Loi ya Conway, oyo ezali kopesa likanisi ete design ya système ezali mirrore ya structure ya organisation, ezali potentiel ya kosala ba Contextes Limites complexes mpe complètes. Complexité oyo ebimaka tango structure ya organisation ezali alignée te na ba frontières ya domaine, ememaka na ba Contextes Bounded oyo ezali fortement interdépendant mpe chargé na information. Ezali komema na mbala na mbala kobongola contexte mpo na équipe ya développement.
Likambo mosusu ezali ete terminologie ya organisation e fuite na niveau ya code. Tango ba structures ya organisation ebongwanaka, esengaka ba modifications ya codebase, ko consommer ba ressources ya valeur.
Na yango, kolanda Inverse Conway Maneuver esalisaka mpo na kotonga système mpe ebongiseli oyo elendisaka architecture logicielle oyo elingi. Kasi, ezali na ntina koloba ete approche oyo ekosala malamu mingi te na architecture mpe ba structures oyo esi esalemi mpo mbongwana na eteni oyo eumelaka, kasi ezali kosala exceptionnellement na ba startups mpo bazali noki mpo na kokotisa mbongwana nyonso.
Modèle oyo to “anti-modèle“ e diriger kotonga système sans architecture moko te. Ezali na mibeko te, bandelo te, mpe mayele moko te mpo na ndenge ya kopekisa makambo ya mindɔndɔmindɔndɔ oyo ezali kokola oyo ekoki kopengolama te. Complexité ezali ennemi oyo eleki somo na mobembo ya kotonga ba systèmes logiciels.
Mpo na koboya kotonga lolenge ya système ya ndenge wana, tosengeli kolanda mibeko mpe mikakatano ya sikisiki.
Ezali na bandimbola ebele mpo na Architecture ya Logiciel. Nasepelaka na mingi na bango puisque ba couvrir ba aspects différents na yango. Kasi, mpo na kozala na likoki ya kokanisa na ntina na architecture, tosengeli na lolenge ya bomoto kosala mwa ndambo na yango na makanisi na biso. Mpe ezali likambo ya kokamwa koloba ete ndimbola yango ekoki kobongwana. Donc, au moins pona sikoyo, naza na description oyo elandi pona ngai moko.
Architecture logicielle ezali na ntina ya mikano mpe maponi oyo osalaka mikolo nyonso oyo ezali na bopusi na système oyo etongami.
Mpo na kozwa bikateli oyo osengeli kozala na yango na “saki” na yo mitinda mpe ndenge ya kosilisa mikakatano oyo ezali kobima, ezali mpe na ntina mingi koloba ete kososola masɛngami ezali fungola mpo na kotonga oyo mombongo esengeli na yango. Kasi, tango mosusu masengi ezalaka polele te to kutu elimbolami te, na likambo oyo, ezali malamu kozela mpo na kozwa bososoli mingi to kotia motema na mayele na yo mpe kotia motema na intuition na yo. Kasi ata ndenge nini, okoki te kozwa bikateli malamu soki ozali na mitinda mpe mitinda te oyo okoki kotyela motema. Wana nde esika nazali koya na ndimbola ya Style ya Architecture Logicielle.
Style ya Architecture ya Logiciel ezali ensemble ya ba principes na ba modèles oyo e désigner ndenge ya kotonga logiciel.
Ezali na ebele ya ba styles architecturaux différents oyo etali mingi ba côtés ndenge na ndenge ya architecture planifiée, mpe ko appliquer multiple na yango na mbala moko ezali situation normale.
Na ndakisa, na ndakisa:
Architecture monolithique ya kosala
Conception oyo etambwisami na domaine
Basée na ba composants
Ba microservices ya ba microservices
Tuyau na ba filtres
Etambwisami na makambo
Micronoyau ya moke
Oyo etali mosala
mpe bongo na bongo...
Ya solo, bazali na matomba mpe mabe na bango, kasi likambo ya ntina mingi oyo nayekoli ezali ete architecture ekoli mokemoke nzokande etali mikakatano ya solosolo. Kobanda na architecture monolithique ezali choix munene pona ko réduire ba complexités opérationnelles, très probablement architecture oyo eko correspondre na ba besoins na yo même après ko rejoindre étape ya Product-market Fit (PMI) ya kotonga produit. Na échelle, okoki kotalela kokende epai ya approche dirigée par événement mpe ba microservices mpo na kozua déploiement indépendant, environnement ya stack tech hétérogène, mpe architecture moins couplé (mpe moins transparent entre temps en raison ya nature ya approche conduite par événement mpe pub-sub soki ba adopter yango). Bopete mpe bokasi ezali penepene mpe ezali na bopusi monene moko na mosusu. Mbala mingi, ba architectures compliquées ezali na impact na vitesse ya développement ya ba fonctionnalités ya sika, ko soutenir pe ko maintenir oyo ezali, pe ko défier évolution naturelle ya système.
Kasi, mbala mingi ba systèmes complexes esengaka architecture complexe mpe complète, oyo ezali inévitable.
Na bosembo, oyo ezali likambo ya monene mingi mpenza, mpe ezali na makanisi mingi ya minene na ntina na lolenge ya kobongisa mpe kotonga ba systèmes mpo na évolution naturelle. Na kotalela makambo oyo nakutanaki na yango, nasali mayele oyo elandi:
Ezali mpe na ntina mingi kososola mituya mpe ba metrics lokola DAU (Utilisateurs actifs ya mokolo na mokolo), MAU (Utilisateurs actifs ya sanza), RPC (Request par Second), mpe TPC (Transaction Par Second) lokola ekoki kosalisa yo osala ba choix mpo architecture mpo na 100 usagers actifs na 100 millions ya ba usagers actifs ekeseni.
Lokola note ya suka, nakoloba que architecture ezali na impact ya munene na succès ya produit. Architecture mal conçue pona ba produits esengeli na échelle, oyo très probablement ememaka na échec puisque ba clients bakozela te tango okosala échelle ya système, bakopona concurrent, yango wana esengeli tozala avant échelle potentielle. Atako nandimi ete tango mosusu ekokaki kozala approche maigre te, idée ezali ya kozala na système évolutif mais déjà échelonné te. Par contre, kozala na système moko très compliqué mpe déjà échelle na ba clients te to ba plans ya kozua mingi na bango ekosɛnga yo mbongo na entreprise na yo pamba.
Kopona stack ya technologie ezali pe décision ya niveau macro puisque e influencer emploi, ba perspectives ya évolution naturelle ya système, évolution, na performance ya système.
Oyo ezali liste ya makambo ya moboko mpo na kopona ebele ya tekiniki:
Ndenge nini kozala na ba piles ya technologie ebele ekoki kozala na bopusi na bokoli ya mombongo?
Na lolenge moko, kokotisa stack moko lisusu ekoki ko échelle ya emploi na yo, kasi na ngambo mosusu, ememaka ba frais ya entretien ya likolo puisque osengeli ko soutenir ba stacks nionso mibale. Donc, ndenge nalobaki liboso, na point de vue na ngai, kaka besoin supplémentaire nde esengeli kozala argument pona ko incorporer ba piles ya technologie mingi.
Kasi nini ezali na ntina na etinda ya kopona esaleli oyo eleki malamu mpo na mokakatano moko ya sikisiki?
Tango mosusu ozali na nzela mosusu te bobele komema bisaleli ya sika mpo na kosilisa mokakatano moko ya sikisiki na kotalela makanisi ndenge moko oyo tolobeli liboso, na makambo ya ndenge wana, ezali na ntina kopona solution oyo eleki malamu.
Kosala ba systèmes sans couplage ya likolo na technologie moko spécifique ekoki kozala défi. Atako bongo, ezali malamu kosala makasi mpo na kozala na ezalela oyo ebongiseli yango ekangami makasi te na mayele ya sika, mpe ekokufa te soki lobi, cadre to esaleli moko ya sikisiki ekómi na likama to kutu ekómi lisusu te.
Likambo mosusu ya ntina oyo esengeli kotalela ezali na boyokani na ba dépendances ya logiciel ya source ouverte mpe ya propriétaire. Logiciel propriétaire epesaka yo flexibilité moke mpe possibilité ya kozala personnalisé. Atako bongo, likambo oyo ezali likama mingi ezali kokangama ya motɛki, epai okómaka kolanda biloko ya motɛki, ntalo, mibeko mpe plan ya nzela. Yango ekoki kozala likama soki motɛki abongoli nzela, amatisi ntalo, to atiki biloko yango. Logiciel ya source ouverte ekitisaka risque oyo, lokola entite moko nde e contrôler yango te. Kolongola point moko ya échec na ba niveaux nionso ezali fonction ya kotonga ba systèmes ya kozala na confiance pona bokoli.
Point moko ya panne (SPOF) ezali kolobela eteni nyonso ya système oyo, soki elongi te, ekosala ete système mobimba etika kosala. Kolongola ba SPOF na ba niveau nionso ezali na tina mingi pona système nionso oyo esengaka disponibilité ya likolo. Nyonso, bakisa boyebi, basali, biloko ya système, ba fournisseurs ya cloud, mpe ba câbles ya internet, ekoki kozanga.
Ezali na ba techniques ya base ebele oyo tokokaki kosalela pona ko éliminer ba points unique ya échec:
Na lisolo oyo, tolobelaki makambo mingi ya ntina ya Macro mpe ndenge nini tokoki kosala na complexité na yango.
Matɔndi mingi mpo na kotánga! Tokokutana mbala ya sima!