programinės įrangos kūrimas"DevOps"judrusArchitektūra
Greitas prototipų kūrimas ir gamybai paruoštos sistemos
Renkantis greitą prototipų kūrimą ir gamybai paruoštas sistemas, reikia subalansuoti greitį ir ilgalaikį stabilumą. Nors prototipų kūrimas teikia pirmenybę tiesioginiam grįžtamajam ryšiui ir vizualiniam patvirtinimui, gamybos sistemos daugiausia dėmesio skiria mastelio keitimui, saugumui ir nuosekliam veikimui esant dideliam vartotojų krūviui. Šių esminių skirtumų supratimas padeda komandoms efektyviai paskirstyti išteklius per visą produkto gyvavimo ciklą.
Akcentai
Prototipai puikiai atranda, ko vartotojai iš tikrųjų nori prieš juos kuriant.
Gamybos sistemos sutelkia dėmesį į tai, kad šviesa būtų įjungta ir duomenys būtų saugūs.
Gamybos klaidos ištaisymo kaina yra žymiai didesnė nei prototipo.
Techninė skola yra sąmoningas pasirinkimas kuriant prototipus, bet rizika gamyboje.
Kas yra Greitas prototipų kūrimas?
Kartotinis požiūris, orientuotas į greitą funkcinio modelio sukūrimą, kad būtų galima išbandyti koncepcijas ir surinkti vartotojų atsiliepimus.
Kūrimo greičiui teikiama pirmenybė, o ne kodo optimizavimas ir našumo derinimas.
Naudoja "imitacinius" duomenis arba supaprastintas vidines sistemas, kad imituotų sudėtingą sistemos elgesį.
Daug dėmesio skiriama vartotojo sąsajai ir pagrindiniams vartotojo patirties srautams.
Leidžia suinteresuotosioms šalims vizualizuoti galutinį produktą prieš dideles investicijas.
Dažnai naudoja mažo kodo įrankius arba lanksčias sistemas, tokias kaip Python ir Ruby.
Kas yra Gamybai paruoštos sistemos?
Patikima, didelio prieinamumo programinė įranga, skirta valdyti realų srautą, saugos grėsmes ir ilgalaikę priežiūrą.
Infrastruktūra sukurta horizontaliam ir vertikaliam mastelio keitimui, kad atitiktų paklausą.
Atliekamas griežtas automatizuotas testavimas, įskaitant vienetų, integracijos ir apkrovos testus.
Saugos protokolai, tokie kaip šifravimas, OAuth ir greičio ribojimas, yra iškepti.
Naudoja išsamų registravimą ir stebėjimą, kad būtų galima stebėti sistemos būklę realiuoju laiku.
Kodų bazės atitinka griežtus architektūrinius modelius, kad būtų užtikrintas ilgalaikis išlaikymas.
Palyginimo lentelė
Funkcija
Greitas prototipų kūrimas
Gamybai paruoštos sistemos
Pagrindinis tikslas
Patvirtinimas ir greitis
Stabilumas ir patikimumas
Klaidų tvarkymas
Minimalus arba pagrindinis
Išsamus ir grakštus
Duomenų vientisumas
Laikinas arba pašiepiamas
Patvarus ir suderinamas su ACID
Mastelio keitimas
Labai ribotas
Aukštas (automatinis mastelio keitimas)
Saugumas
Nereikšmingas
Įmonės lygio
Testavimas
Rankinis/Ad-hoc
Automatizuoti CI/CD vamzdynai
Dokumentai
Retas / vidinis
Išsamus ir platus
Išsamus palyginimas
Vykdymo greitis vs inžinerinis griežtumas
Prototipų kūrimas yra susijęs su "greito žlugimo" mentalitetu, kai kūrėjai sumažina architektūros kampus, kad per kelias dienas vartotojams pateiktų versiją. Priešingai, gamybos sistemoms reikalingas lėtas, metodiškas požiūris, siekiant užtikrinti, kad kiekviena kodo eilutė būtų tikrinama ir nesugadintų serverio. Šis perėjimas nuo "greito judėjimo" prie "atsargumo" yra sunkiausias programinės įrangos augimo etapas.
Mastelio keitimas ir išteklių valdymas
Prototipas gali puikiai veikti penkiems vartotojams vietiniame kompiuteryje, tačiau jis greičiausiai subyrės, kai vienu metu prisijungs penki tūkstančiai žmonių. Gamybai paruoštos sistemos naudoja konteinerizaciją ir debesies paslaugas, kad paskirstytų srautą ir efektyviai valdytų atminties naudojimą. Tai užtikrina, kad programa reaguotų net ir netikėtų aktyvumo šuolių metu.
Saugumas ir duomenų apsauga
Kai tik kuriate prototipą, API rakto užkodavimas arba įvesties patvirtinimo ignoravimas gali atrodyti nekenksmingas, kad sutaupytumėte laiko. Tačiau gamybos sistema saugumą traktuoja kaip nediskutuotiną pagrindą, įgyvendindama ugniasienes ir griežtus leidimų lygius. Naudotojų duomenų apsauga yra teisinis ir etinis reikalavimas, kurio prototipai paprasčiausiai nėra pritaikyti tvarkyti.
Techninė priežiūra ir techninė skola
Prototipai dažnai yra "vienkartinis" kodas, skirtas pakeisti, kai tik bus įrodyta, kad koncepcija veikia. Gamybos sistemos kuriamos ilgam laikui, naudojant modulinį dizainą, kad nauji kūrėjai galėtų suprasti ir atnaujinti sistemą po daugelio metų. Šio skirtumo nepaisymas dažnai veda prie "spagečių kodo", kurio neįmanoma valdyti augant verslui.
Privalumai ir trūkumai
Greitas prototipų kūrimas
Privalumai
+Maža pradinė kaina
+Greita apyvarta
+Lengva pasukti
+Didelis suinteresuotųjų subjektų dalyvavimas
Pasirinkta
−Trapi architektūra
−Prastas saugumas
−Nekeičiamas
−Didelė techninė skola
Gamybai paruoštos sistemos
Privalumai
+Labai patikimas
+Saugus pagal dizainą
+Keičiamo dydžio infrastruktūra
+Mažesnė ilgalaikė priežiūra
Pasirinkta
−Didelės išankstinės išlaidos
−Lėtesnis vystymasis
−Sudėtingas diegimas
−Griežti reikalavimai
Dažni klaidingi įsitikinimai
Mitas
Gerą prototipą galima tiesiog "nušlifuoti" į gamybos sistemą.
Realybė
Tai retai tiesa, nes pagrindinėje prototipo architektūroje paprastai trūksta mastelio keitimo ir saugumo kabliukų. Bandymas konvertuoti dažnai sukelia daugiau klaidų nei tiesiog tinkamai atstatyti pagrindinę logiką.
Mitas
Paruoštas gamybai reiškia, kad produktas yra "baigtas" ir nesikeis.
Realybė
Pasirengimas gamybai yra susijęs su pamato kokybe, o ne funkcijų baigtinumu. Net ir pačios patikimiausios sistemos yra nuolat atnaujinamos, tačiau jos tai daro per kontroliuojamus ir saugius diegimo procesus.
Mitas
Prototipams nereikia jokių bandymų.
Realybė
Nors jiems nereikia 100% kodo aprėpties, prototipą vis tiek reikia pakankamai išbandyti, kad jis nesugestų tiesioginės demonstracijos metu. Tikslas yra "pakankamai funkcionalus", o ne "neperšaunamas".
Mitas
Tik didelės įmonės turi nerimauti dėl gamybai paruoštų standartų.
Realybė
Net ir mažam startuoliui reikia gamybos standartų, jei jie tvarko mokėjimus ar privačią vartotojo informaciją. Saugumo pažeidimams nerūpi jūsų įmonės dydis ar biudžetas.
Dažnai užduodami klausimai
Kada turėčiau nutraukti prototipų kūrimą ir pradėti kurti gamybai?
Turėtumėte pereiti, kai pagrindinį produkto vertės pasiūlymą patvirtins tikri vartotojai. Jei pastebite, kad praleidžiate daugiau laiko taisydami prototipo klaidas nei pridėdami funkcijų, tai aiškus ženklas, kad jūsų pagrindas yra per silpnas. Ankstyvas perėjimas sutaupo jus nuo didžiulio "kortų namelio" statybos, kurį vėliau pataisyti tampa per brangu.
Ar galiu naudoti tuos pačius įrankius abiem etapams?
Nors kai kurios kalbos, tokios kaip "JavaScript" ar "Python", yra pakankamai universalios abiem, jų naudojimo būdas keičiasi. Prototipe galite naudoti paprastą SQLite duomenų bazę ir vieną serverį. Gamyboje greičiausiai pereisite į paskirstytą duomenų bazę, pvz., PostgreSQL, ir naudosite "Docker" konteinerius savo aplinkai valdyti. Įrankiai gali sutapti, tačiau įgyvendinimo strategijos skiriasi nuo pasaulių.
Ar greitas prototipų kūrimas yra tik "tingus kodavimas"?
Visiškai ne; Tai strateginis verslo sprendimas, siekiant sutaupyti laiko ir pinigų. Profesionalūs kūrėjai naudoja prototipų kūrimą, kad ištirtų sudėtingas logikos ar dizaino idėjas, neįklimpdami į boilerplate kodą. Tai apie efektyvų išteklių naudojimą, kai galutinis tikslas dar nėra iki galo apibrėžtas.
Kuo skiriasi dokumentacija?
Prototipų kūrime dokumentacija dažnai yra tik kelios pastabos "ReadMe" faile arba komentarai kodo originaliam autoriui. Gamybos sistemai reikia API dokumentacijos (pvz., "Swagger"), architektūros diagramų ir avarinio atkūrimo planų. Tai užtikrina, kad pagrindiniam kūrėjui išėjus, sistema netaps juodąja dėže, kurios niekas negali ištaisyti.
Kokia yra didžiausia rizika per ilgai išlikti prototipų kūrimo fazėje?
Didžiausia rizika yra "Sėkmės katastrofa", kai jūsų produktas tampa virusinis, bet jūsų serveriai iškart sugenda, nes jie nebuvo sukurti apkrovai. Be to, jūs kaupiate didžiules technines skolas, kurios ilgainiui sulėtina jūsų kūrimo greitį. Galiausiai visą laiką praleidžiate gesindami gaisrus, užuot diegę naujoves.
Kaip paaiškinti gamybos pasirengimo išlaidas netechninėms suinteresuotosioms šalims?
Palyginkite tai su namo statyba: prototipas yra tarsi kartoninis modelis, naudojamas išdėstymui parodyti, o gamybos sistema yra tikrasis plytų ir skiedinio pastatas. Negalite gyventi kartoniniame modelyje, nes jis neapsaugos jūsų nuo lietaus ar vėjo. Investicijos į pasirengimą gamybai yra tiesiog draudimas nuo sistemos gedimų ir duomenų praradimo.
Ar paruoštas gamybai reiškia, kad nebegaliu greitai kartoti?
Tiesą sakant, yra priešingai. Nors pradinė sąranka užtrunka ilgiau, gamybai paruošta sistema su automatiniu testavimu leidžia patikimiau išleisti naujinimus. Nebijosite, kad nedidelis vienos srities pakeitimas sugadins visą svetainę, o tai iš tikrųjų pagreitins jūsų ilgalaikį iteracijos ciklą.
Kokį vaidmenį šiose sistemose vaidina "DevOps"?
"DevOps" yra tiltas, kuris prototipą paverčia gamybos sistema. Tai apima CI/CD vamzdynų nustatymą, automatizuotą stebėjimą ir debesies infrastruktūros valdymą. Be tvirtos "DevOps" strategijos, net ir puikus kodas sunkiai išgyvens tiesioginės gamybos aplinkos sunkumus.
Nuosprendis
Naudokite greitą prototipų kūrimą, kai reikia pristatyti idėją arba išbandyti naujos funkcijos tinkamumą naudoti su minimaliomis investicijomis. Pereikite prie gamybai paruoštų sistemų, kai tvarkote slaptus vartotojo duomenis, imate pinigus už paslaugą arba tikitės nuolatinio srauto.