Tambua utayari kwa matokeo ya mteja
Anza na matokeo, si lebo za miundombinu. Ukurasa wa nyumbani kufikika haitoshi ikiwa mgeni hawezi kukamilisha kazi inayohitajiwa. Kwa kila safari muhimu, eleza ni nani anajaribu kufanya nini, mafanikio yanamaanisha nini, na matokeo gani hayakubaliki. Anza na safari chache ili timu iweze kufanya maamuzi halisi.
Tenganisha kila hatua kuwa lazima (essential), muhimu (important), au inaweza kusubiri (deferrable). Lazima (essential) ina maana safari haiwezi kukamilika bila hiyo; muhimu inaweza kuruhusu suluhisho la muda; inayoweza kusubiri inaweza kuondolewa, kucheleweshwa, au kurahisishwa. Hii ni uamuzi wa bidhaa unaoongozwa na uhandisi, sio upangaji wa kiufundi wa jumla.
Rekodi matokeo yanayotumika, kama agizo limekubaliwa na uthibitisho umehifadhiwa, badala ya malengo ya kujibu ukurasa pekee.
Panga utegemezi na amua kinachoweza kupungua
Kwa kila njia muhimu, panga mwenyeji au utoaji, DNS, huduma za programu, hifadhidata, uthibitisho (authentication), barua pepe, malipo, utaftaji, lebo (tags), zana za ridhaa (consent tooling), na API za nje. Rekodi mmiliki, njia ya msaada, kikomo husika, na athari kwa mtumiaji ikiwa kila moja haipatikani. OWASP inapendekeza ufahamu kuhusu utegemezi wa programu; nidhamu ya umiliki sawa husaidia pia kwa utegemezi wa uendeshaji.
Utegemezi mgumu (hard dependency) unasimama kazi inaposhindwa. Utegemezi laini (soft dependency) unaweza kukosekana au kuwa wa zamani wakati kazi kuu bado inafanya kazi. AWS inaelezea kupungua kwa neema (graceful degradation) kama kuiweka kazi kuu ipatikane wakati utegemezi hauko katika hali nzuri. Eleza chaguo la bidhaa: ficha widget isiyo ya lazima, ucheleweshwe ripoti, au toa mbadala wazi. Usizidishe hesabu za hisa, bei, hali za agizo, au matokeo ya malipo.
Chukua kusudi, mmiliki, kikomo kinachojulikana, ndugu wa dharura (fallback), mabadiliko ya kuwasiliana, na tarehe ya mwisho ya jaribio kwa kila kipengele.
Geuza makadirio ya trafiki kuwa jaribio la uwezo
Tumia hali (scenario), si namba moja ya trafiki. Eleza tukio, muundo wa kuwasili, mchanganyiko wa maombi, sehemu ya watumiaji waliomo (signed-in share), jiografia, shughuli za wakati mmoja za kukagua au kuandika (concurrent checkout or write activity), na kipindi cha kilele. Jumuisha kesi ya juu na dhana. Google inaonyesha kwamba maombi yanaweza kuwa na gharama tofauti sana za rasilimali, kwa hivyo maombi kwa sekunde peke yake yanaweza kuwa mfano mbaya wa uwezo.
Jaribio zenye kuendelea, zinazo wakilisha, na end-to-end dhidi ya usanidi unaokaribia uzalishaji, kwa idhini na tahadhari. AWS inatoa onyo dhidi ya kujaribu sehemu pekee, kutumia sehemu isiyo wakilisha ya maombi, au kuishia kwa ukingo mdogo juu ya mzigo unaotarajiwa. Andika vikwazo vya kwanza au upunguzaji wa kasi uliobainika. Majaribio kwenye uzalishaji yanaweza kuathiri wateja; tumia mazingira yaliyo ndani ya udhibiti isipokuwa mazoezi yaliyoratibiwa na yenye wafanyakazi yanayofaa.
Hifadhi hali, usanidi, mchanganyiko wa maombi, muda, kizuizi kilicholengwa, mabadiliko ya uwezo, na mmiliki wa utekelezaji.
Tayarisha mabadiliko, kurudisha nyuma, na chaguzi za kurejesha
Kabla ya mabadiliko yenye hatari kubwa, tambua artefakti au usanidi wa kuirejesha, idhini inayohitajika, mtu aliyeidhinishwa, na njia ya uthibitisho. Weka runbook fupi kwa kusitisha uzinduzi, kurudisha nyuma utekelezaji, kuzima flag ya kipengele, kupunguza ushirikiano usio wa lazima, au kurejesha data kwa kutumia taratibu zilizokubaliwa. Jaribu utendaji wa kiufundi kabla ya tukio; nakala rudufu au mpango wa kurudisha nyuma usiothibitishwa ni dhana tu.
Weka malengo ya urejesho kulingana na athari za biashara. Recovery Time Objective (RTO) ni ucheleweshaji mkubwa unaokubalika kabla huduma itakaporudi. Recovery Point Objective (RPO) ni upotevu mkubwa wa data unaokubalika uliopimwa tangu hatua ya mwisho ya urejeshaji. AWS inatoa onyo dhidi ya malengo yasiyo ya kimantiki au yasiyoweza kufikiwa na inaonyesha kuwa malengo ya utegemezi yanaathiri kile kinachoweza kufikiwa. Tibu malengo kama malengo ya mipango, si ahadi kwa mteja.
Thibitisha kurudisha nyuma au urejeshaji mdogo, salama, na rekodi kilichochunguzwa, na nani, pamoja na mapungufu yaliyogunduliwa.
Tenga umiliki kabla maamuzi yawe muhimu
Orodha ya mawasiliano pekee si umiliki. Kwa kila njia muhimu, teua mmiliki wa biashara kwa matokeo yanayokubalika, mmiliki wa kiufundi kwa utekelezaji, na mmiliki wa uamuzi aliyeidhinishwa kufanya mabadiliko ya ulinzi. Taja wateule na fafanua lini mtoa huduma, wakala, mchakato wa malipo, au timu ya ndani ndiye mwenye hatua inayofuata.
Fanya ukaguzi mfupi wa utayari kabla ya trafiki kuwasili. Pitia kushindwa kwa utegemezi mmoja: nini kinakaa kitumike, ni lever gani salama, nani anaruhusiwa, na jinsi mafanikio yanavyothibitishwa. Hii ni mazoezi ya kujipanga kabla, sio ripoti ya hali ya moja kwa moja. Rekodi vitendo vilivyofanywa kwa tarehe, wamiliki, na tarehe za kutekeleza.
Toa idhini mapema kwa vitendo vichangamani vinavyofaa ili ulinzi usisubiri mnyororo wa idhini usio wazi.
Tibia njia zenye usalama wa malipo na usalama kwa umakini zaidi
Utayari wa checkout lazima uhifadhi usahihi pamoja na upatikanaji. Usivuke mamlaka ya idhini, uwekezaji wa udhibiti wa ufikiaji, ufunue nywila, au ubadilishe kwa urahisi script za ukurasa wa malipo. Mwongozo wa PCI SSC unashughulikia idhini, uadilifu, na kugundua kuvurugika kwa script za ukurasa wa malipo na vichwa vya HTTP vinavyoathiri usalama. Iwapo tovuti inakubali kadi au inatumia fremu ya malipo iliyopachikwa, mteja, msindikaji, msajili (acquirer), na washauri waliothibitishwa wa usalama au uzingatiaji wanapaswa kukagua mabadiliko makubwa.
Weka orodha ya script za uzalishaji, ushirikiano, toleo, na umilikaji wa akaunti, na zuia nani anayeweza kuyabadilisha. OWASP inasema kuwa orodha ya utegemezi na kufunga matoleo (version pinning) vinaweza kupunguza kutokuwa na uhakika kuhusu kinachoingia kwenye ujenzi (build), wakati matokeo ya otomatiki bado yanahitaji uhakiki wa kibinadamu. Mazoezi haya yanaunga mkono utayari lakini hayahakiki uzingatiaji wa PCI wala kubadilisha tathmini ya usalama.
Tumia tu mtiririko wa mbadala uliothibitishwa na msindikaji; kamwe usikusanye data za kadi kupitia njia isiyo rasmi.
