Fitsipika amin'ny famolavolana fampiharana maoderina avy amin'ny NGINX. Fizarana 1

Salama namana. Eo am-piandrasana ny fanombohana ny taranja PHP backend developer, mizara amin'ny fomba mahazatra anao ny fandikana fitaovana mahasoa.

Ny logiciel dia mamaha ny asa isan'andro bebe kokoa, ary mihasarotra kokoa. Araka ny voalazan'i Marc Andressen indray mandeha dia mandany izao tontolo izao izany.

Fitsipika amin'ny famolavolana fampiharana maoderina avy amin'ny NGINX. Fizarana 1

Vokatr'izany, niova tanteraka ny fomba famolavolana sy fanaterana ireo rindranasa tato anatin'ny taona vitsivitsy. Ireo dia fiovan'ny mari-pamantarana tectonic izay niteraka fitsipika maromaro. Ireo fitsipika ireo dia voaporofo fa manampy amin'ny fananganana ekipa, famolavolana, famolavolana ary fandefasana ny fampiharanao amin'ny mpampiasa farany.

Ny fitsipika dia azo fintinina toy izao: ny fampiharana dia tokony ho kely, mifototra amin'ny tranonkala, ary manana maritrano mifototra amin'ny developer. Miaraka amin'ireo fitsipika telo ireo ao an-tsainao, dia afaka mamorona fampiharana matanjaka sy faran'ny farany ianao izay azo atolotra haingana sy azo antoka amin'ny mpampiasa farany, ary mora mivelatra sy mivelatra.

Fitsipika amin'ny famolavolana fampiharana maoderina avy amin'ny NGINX. Fizarana 1

Ny tsirairay amin'ireo fitsipika natolotra dia manana lafin-javatra maromaro izay hodinihintsika mba hampisehoana ny fomba ahafahan'ny fitsipika tsirairay mandray anjara amin'ny tanjona faratampony, dia ny fandefasana haingana ireo fampiharana azo itokisana izay mora karakaraina sy ampiasaina. Hojerentsika ireo fitsipika mifandraika amin'ny mifanohitra amin'izy ireo mba hanazavana ny dikan'izany, lazao hoe: "Ataovy izay fitsipika kely".

Manantena izahay fa ity lahatsoratra ity dia hamporisika anao hampiasa ireo fitsipika atolotra amin'ny fananganana fampiharana maoderina, izay hanome fomba fiasa iraisana amin'ny famolavolana ao anatin'ny tontolon'ny teknolojia tsy mitsaha-mitombo.

Amin'ny fampiharana ireo fitsipika ireo dia ho hitanao fa manararaotra ireo fironana farany amin'ny fampivoarana rindrambaiko, anisan'izany ny DevOps amin'ny fampandrosoana sy fanaterana fampiharana, ny fampiasana kaontenera (ohatra, Docker) sy ny rafitra orkestra kaontenera (ohatra, Kubernetes), ny fampiasana ny microservices (anisan'izany ny Microservice Architecture NGINX ΠΈ rafitra fifandraisana amin'ny tambajotra ho an'ny fampiharana microservice.

Inona no atao hoe fampiharana maoderina?

Fampiharana maoderina? Modern stack? Inona marina no dikan'ny hoe "maoderina"?

Ny ankamaroan'ny mpamorona dia manana hevitra ankapobeny momba ny fampiharana maoderina, noho izany dia ilaina ny mamaritra mazava tsara an'io hevitra io.

Ny fampiharana maoderina dia manohana mpanjifa maro, na ny React JavaScript Library User Interface, Android na iOS Mobile App, na App izay mifandray amin'ny API hafa. Ny fampiharana maoderina dia manondro mpanjifa tsy voafetra izay omeny angona na serivisy.

Ny fampiharana maoderina dia manome API hidirana amin'ny angona sy serivisy angatahina. Ny API dia tokony ho tsy miova sy tsy miova, ary tsy nosoratana manokana ho an'ny fangatahana manokana avy amin'ny mpanjifa manokana. Ny API dia azo alaina amin'ny HTTP(S) ary manome fidirana amin'ny fiasa rehetra misy ao amin'ny GUI na CLI.

Ny angona dia tsy maintsy misy amin'ny endrika eken'ny besinimaro sy azo ampiasaina toy ny JSON. Mampiharihary zavatra sy serivisy amin'ny fomba madio sy voalamina ny API iray, toy ny RESTful API na GraphQL manome interface tsara.

Ny fampiharana maoderina dia miorina amin'ny stack maoderina, ary ny stack maoderina dia ny stack izay manohana ny fampiharana toy izany, tsirairay avy. Ity stack ity dia ahafahan'ny developer mamorona rindranasa mora miaraka amin'ny interface HTTP ary mazava ny teboka API. Ny fomba fiasa voafidy dia hamela ny fampiharanao handray sy handefasana angona amin'ny endrika JSON. Raha lazaina amin'ny teny hafa, ny stack maoderina dia mifanitsy amin'ireo singa ao amin'ny Twelve-Factor Application for microservices.

Ny dikan-teny malaza amin'ity karazana stack ity dia mifototra amin'ny Java, Python, node, Ruby, PHP ΠΈ Go. Microservice Architecture NGINX maneho ohatra iray amin'ny stack maoderina ampiharina amin'ny tsirairay amin'ireo fiteny voalaza ireo.

Mariho fa tsy manolotra fomba fiasa microservice manokana izahay. Maro aminareo no miara-miasa amin'ny monoliths mila mivoatra, ny hafa kosa miatrika ny fampiharana SOA izay mivelatra sy mivoatra ho lasa rindranasa microservice. Ny sasany kosa dia mizotra mankany amin'ny rindranasa tsy misy mpizara, ary ny sasany dia mampihatra ny fitambaran'ireo voalaza etsy ambony ireo. Ireo fitsipika voalaza ao amin'ny lahatsoratra dia mihatra amin'ny tsirairay amin'ireo rafitra ireo miaraka amin'ny fanovana kely vitsivitsy ihany.

fitsipika

Ankehitriny isika dia manana fahatakarana iraisana momba ny atao hoe fampiharana maoderina sy stack maoderina, fotoana izao handinihana ny fitsipiky ny maritrano sy ny fampandrosoana izay hanampy anao tsara amin'ny famolavolana, fampiharana ary fitazonana fampiharana maoderina.

Ny iray amin'ireo fitsipika dia toa ny "manao fampiharana kely", andao hiantso azy fotsiny fitsipika kely. Misy fampiharana be pitsiny izay ahitana ampahany mihetsika maro. Ho setrin'izany, ny fananganana fampiharana avy amin'ny singa madinika sy miavaka dia manamora ny famolavolana, fikojakojana ary ny fiasana miaraka aminy manontolo. (Mariho fa hoy izahay hoe "manatsotra" fa tsy "manatsotra").

Ny fitsipika faharoa dia ny ahafahantsika mampitombo ny vokatra azo avy amin'ny mpamorona amin'ny fanampiana azy ireo hifantoka amin'ireo endri-javatra namboariny, ary hanafaka azy ireo amin'ny fotodrafitrasa sy ny olana CI/CD mandritra ny fampiharana. Noho izany, raha fintinina, ny fomba fiasantsika mifantoka amin'ny developer.

Farany, ny zava-drehetra momba ny fampiharanao dia tsy maintsy mifandray amin'ny tambajotra. Tao anatin'ny 20 taona lasa, nanao dingana lehibe izahay ho amin'ny ho avy amin'ny tambajotra satria lasa haingana kokoa ny tambajotra ary sarotra kokoa ny fampiharana. Araka ny efa hitantsika, ny fampiharana maoderina dia tsy maintsy ampiasain'ny mpanjifa maro samihafa amin'ny tambajotra iray. Ny fampiharana ny fisainan'ny tambajotra amin'ny maritrano dia manana tombony lehibe izay mandeha tsara fitsipika kely ary ny foto-kevitry ny fomba fiasa, mitodika amin'ny developer.

Raha mitadidy ireo fitsipika ireo ianao rehefa mamolavola sy mampihatra fampiharana, dia hanana tombony tsy azo lavina amin'ny fampandrosoana sy ny fandefasana ny vokatrao ianao.

Andeha hojerentsika amin’ny antsipiriany ireo fitsipika telo ireo.

Fitsipika kely

Sarotra ho an'ny atidohan'olombelona ny mahita fampahalalana be dia be amin'ny fotoana iray. Ao amin'ny psikolojia, ny teny hoe enta-mavesatra ara-tsaina dia manondro ny totalin'ny ezaka ara-tsaina ilaina mba hitazonana ny vaovao ao anaty fitadidiana. Laharam-pahamehana ny fampihenana ny enta-mavesatry ny saina amin'ny mpamorona satria mamela azy ireo hifantoka amin'ny famahana ny olana fa tsy hitazona ny maodely sarotra ankehitriny amin'ny fampiharana manontolo sy ny endri-javatra novolavolaina ao an-dohany.

Fitsipika amin'ny famolavolana fampiharana maoderina avy amin'ny NGINX. Fizarana 1

Ny fampiharana dia simba noho ireto antony manaraka ireto:

  • Ny fampihenana ny enta-mavesatry ny kognita amin'ny mpamorona;
  • Fanafainganana sy fanatsorana ny fitiliana;
  • Fandefasana haingana ny fanovana amin'ny fampiharana.


Misy fomba maro hampihenana ny enta-mavesatry ny kognita amin'ny mpamorona, ary eto no idiran'ny fitsipiky ny fahamalinana.

Noho izany, misy fomba telo hampihenana ny enta-mavesatra ara-tsaina:

  1. Ahena ny fe-potoana tokony hodinihin'izy ireo amin'ny famolavolana endri-javatra vaovao - ny fohy kokoa ny fe-potoana, ny ambany kokoa ny enta-mavesatra.
  2. Ahena ny habetsaky ny kaody izay anaovana asa indray mandeha - kely kaody - kely kokoa ny entana.
  3. Hanatsotra ny fizotran'ny fanovana fanampiny amin'ny fampiharana iray.

Fampihenana ny fe-potoana fampandrosoana

Andeha isika hiverina any amin'ny andro izay ny metodolojia waterfall no fenitry ny dingan'ny fampandrosoana, ary fanao mahazatra ny fe-potoana enim-bolana ka hatramin'ny roa taona amin'ny famolavolana na fanavaozana ny fampiharana. Amin'ny ankapobeny, ny injeniera dia mamaky voalohany ireo antontan-taratasy mifandraika amin'izany toy ny fepetra takian'ny vokatra (PRD), antontan-taratasin'ny rafitra (SRD), drafitra momba ny maritrano, ary manomboka manambatra ireo zavatra rehetra ireo ho modely ara-tsaina iray, araka izay nandraisan'izy ireo kaody. Satria niova ny fepetra ary, vokatr'izany, ny maritrano, dia tsy maintsy nisy ezaka mafy natao mba hampahafantarana ny ekipa manontolo momba ny fanavaozana ny modely kognitif. Ny fomba fiasa toy izany, amin'ny ratsy indrindra, dia mety hampalemy fotsiny ny asa.

Ny fiovana lehibe indrindra amin'ny dingan'ny fampivoarana ny fampiharana dia ny fampidirana ny metodolojia agile. Iray amin'ireo endri-javatra lehibe amin'ny metodolojia agile dia fampandrosoana miverimberina. Ho setrin'izany, izany dia mitarika amin'ny fampihenana ny enta-madinika amin'ny injeniera. Raha tokony ho nitaky ny ekipa fampandrosoana hampihatra ny fampiharana ao anatin'ny tsingerina lava iray, agile Ny fomba fiasa dia ahafahanao mifantoka amin'ny kaody kely izay azo andrana sy apetraka haingana, ary mahazo valiny ihany koa. Niova ny enta-mavesatry ny sain'ny fampiharana avy amin'ny fe-potoana enim-bolana ka hatramin'ny roa taona miaraka amin'ny tombatombana be dia be ho an'ny fanampiana roa herinandro na fanovana endri-javatra mikendry ny fahatakarana manjavozavo kokoa momba ny fampiharana lehibe.

Fiovana lehibe ny famadihana ny fifantohana avy amin'ny fampiharana goavana mankany amin'ny endri-javatra madinidinika manokana izay azo tanterahina ao anatin'ny sprint roa herinandro, miaraka amin'ny endri-javatra iray tsy mihoatra ny iray alohan'ny sprint manaraka, dia fiovana lehibe. Izany dia namela anay hampitombo ny vokatra fampandrosoana ary mampihena ny enta-mavesatra ara-tsaina, izay miovaova tsy tapaka.

Amin'ny metodolojia agile ny fampiharana farany dia heverina ho dikan-teny novaina kely amin'ny foto-kevitra tany am-boalohany, noho izany dia tsy maintsy manjavozavo ny teboka farany amin'ny fampandrosoana. Ny vokatry ny hazakazaka manokana tsirairay ihany no azo mazava sy mazava tsara.

Codebases kely

Ny dingana manaraka amin'ny fampihenana ny enta-madinika dia ny fampihenana ny codebase. Amin'ny maha-fitsipika, ny fampiharana maoderina dia be dia be - ny fampiharana orinasa matanjaka dia mety ahitana rakitra an'arivony sy andalana code an'hetsiny. Miankina amin'ny fomba fandaminana ny rakitra, ny rohy sy ny fiankinan-doha eo amin'ny kaody sy ny rakitra dia mety miharihary, na ny mifamadika amin'izany. Na ny famonoana kaody debugging aza dia mety ho olana, miankina amin'ny tranomboky ampiasaina sy ny fomba hanavahana ny fitaovana famakiam-boky ny tranomboky/packages/modules sy code custom.

Ny fananganana modely ara-tsaina miasa amin'ny kaody fampiharana iray dia mety haka fotoana mahavariana, ary mametraka enta-mavesatra lehibe amin'ny mpamorona indray. Marina indrindra izany ho an'ny fototry ny fehezan-dalΓ na monolithic, izay misy fehezan-dalΓ na be dia be, ny fifandraisana misy eo amin'ireo singa miasa izay tsy voafaritra mazava, ary ny fisarahan'ny sain'ny saina dia matetika manjavozavo satria tsy voahaja ny fetran'ny asa.

Ny iray amin'ireo fomba mahomby hampihenana ny enta-madinika amin'ny injeniera dia ny fifindrana amin'ny maritrano microservice. Amin'ny fomba fiasa microservice, ny serivisy tsirairay dia mifantoka amin'ny endri-javatra iray; raha ny dikan'ny serivisy dia matetika voafaritra sy azo takarina. Mazava ihany koa ny fetran'ny serivisy iray - tadidio fa ny fifandraisana amin'ny serivisy dia atao amin'ny alΓ lan'ny API, ka ny angona vokarin'ny serivisy iray dia azo ampitaina mora foana amin'ny hafa.

Ny fifandraisana amin'ny serivisy hafa dia matetika voafetra amin'ny serivisy mpampiasa vitsivitsy sy serivisy mpamatsy vitsivitsy izay mampiasa antso API tsotra sy madio, toy ny fampiasana REST. Midika izany fa mihena be ny enta-mavesatry ny kognita amin'ny injeniera. Ny fanamby lehibe indrindra dia ny fahatakarana ny modelin'ny fifandraisana amin'ny serivisy sy ny fomba nitrangan'ny fifanakalozana amin'ny serivisy maro. Vokatr'izany, ny fampiasana microservices dia mampihena ny enta-mavesatry ny saina amin'ny alΓ lan'ny fampihenana ny habetsaky ny kaody, mamaritra ny fetran'ny serivisy mazava, ary manome fahatakarana ny fifandraisan'ny mpampiasa sy ny mpamatsy.

Fiovana fanampiny kely

Ny singa farany amin'ny fitsipika fahakely dia ny fitantanana ny fanovana. Tena fakam-panahy manokana ho an'ny mpamorona ny mijery ny fototry ny kaody (na angamba ny kaody azy manokana) ary miteny hoe: "Fomba ity, mila averina soratana daholo izany." Indraindray izany no fanapahan-kevitra mety, ary indraindray tsy. Mametraka ny enta-mavesatry ny fiovan'ny modely maneran-tany eo amin'ny ekipan'ny fampandrosoana izany, izay mitarika ho amin'ny enta-mavesatry ny saina. Tsara kokoa ho an'ny injeniera ny hifantoka amin'ny fiovana azony atao mandritra ny sprint, mba hahafahan'izy ireo mamoaka ny fiasa ilaina amin'ny fotoana mety, na dia tsikelikely aza. Ny vokatra farany dia tokony hitovy amin'ilay efa nomanina mialoha, saingy miaraka amin'ny fanovana sy fitsapana sasany hifanaraka amin'ny filan'ny mpanjifa.

Rehefa mamerina manoratra ampahany betsaka amin'ny kaody, indraindray dia tsy azo atao ny mandefa haingana ny fanovana satria misy ny fiankinan'ny rafitra hafa. Mba hifehezana ny fikorianan'ny fanovana dia azonao ampiasaina ny fanafenana endri-javatra. Amin'ny ankapobeny, midika izany fa eo amin'ny famokarana ny fampiasa, saingy tsy azo ampiasaina amin'ny alΓ lan'ny fiovaovan'ny tontolo iainana (env-var) na mekanika fanamafisana hafa. Raha nandalo ny dingana rehetra fanaraha-maso ny kalitao ny kaody, dia mety hiafara amin'ny famokarana ao anatin'ny toe-javatra miafina. Na izany aza, ity paikady ity dia tsy miasa raha tsy mandeha ny fampiasa amin'ny farany. Raha tsy izany dia hanakorontana ny kaody fotsiny izy io ary hampiditra enta-madinika izay tsy maintsy atrehin'ny mpamorona mba hahavokatra. Ny fitantanana ny fanovana sy ny fanovana fanampiny dia manampy amin'ny fitazonana ny enta-mavesatry ny sain'ny mpamorona amin'ny ambaratonga mora.

Ny injeniera dia tsy maintsy mandresy olana maro na dia amin'ny fampidirana tsotra ny fiasa fanampiny aza. Amin'ny lafiny fitantanana, dia ho fahendrena ny hampihenana ny enta-mavesatra tsy ilaina amin'ny ekipa mba hahafahany mifantoka amin'ireo singa fototra miasa. Misy zavatra telo azonao atao hanampiana ny ekipan'ny fampandrosoana:

  1. Ampiasao ny metodolojia agilemba hamerana ny fe-potoana izay tsy maintsy hifantohan'ny ekipa amin'ireo endri-javatra fototra.
  2. Ampiharo amin'ny maha microservice maro ny fampiharanao. Izany dia hametra ny isan'ny endri-javatra azo ampiharina sy hanamafy ny fetra izay mitazona ny enta-mavesatry ny saina amin'ny asa.
  3. Aleo fiovana miampy mihoatra noho ny lehibe sy tsy azo ampiasaina, ovay kaody kely. MampiasΓ  fanafenana endri-javatra hampiharana ny fanovana na dia tsy ho hita avy hatrany aorian'ny nampiana azy aza.

Raha mampihatra ny fitsipiky ny fahaleovan-tena ianao amin'ny asanao, dia ho faly kokoa ny ekipanao, hifantoka kokoa amin'ny fampiharana ireo endri-javatra ilaina, ary azo inoana kokoa fa hamoaka fanovana kalitao haingana kokoa. Saingy tsy midika izany fa ny asa dia tsy ho sarotra kokoa, indraindray, ny mifanohitra amin'izany, ny fampidirana ny fiasa vaovao dia mitaky fanovana serivisy maromaro, ary ity dingana ity dia mety ho sarotra kokoa noho ny mitovy amin'ny maritrano monolithic. Na izany na tsy izany, dia mendrika izany ny tombontsoa azo avy amin'ny fomba fijery kely.

Faran'ny tapany voalohany.

Tsy ho ela dia hamoaka ny ampahany faharoa amin'ny fandikan-teny izahay, ary miandry ny fanehoan-kevitrao izahay ary manasa anao Andro misokatra, izay hatao anio amin'ny 20.00.

Source: www.habr.com

Add a comment