Ïëàòôîðìà CodeScoring ïðåäñòàâèëà õðàíèëèùå àðòåôàêòîâ CodeScoring.Save, ïîñòðîåííîå íà îñíîâå ïðèíöèïîâ áåçîïàñíîé ðàçðàáîòêè. Ïðîäóêò ðàçðàáîòàí ñ íóëÿ è îðèåíòèðîâàí íà êîìïàíèè ëþáîãî ìàñøòàáà, êîòîðûì íåîáõîäèìî ïðåäñêàçóåìîå, îòêàçîóñòîé÷èâîå è íàñòðàèâàåìîå ðåøåíèå êëàññà Artifact Repository. Îá ýòîì CNews ñîîáùèëè ïðåäñòàâèòåëè CodeScoring.
Çà÷åì åùå îäíî õðàíèëèùå
Õðàíèëèùå àðòåôàêòîâ ïåðåñòàëî áûòü ïðîñòî ñåðâèñîì äëÿ õðàíåíèÿ êîìïîíåíòîâ. Íà ïåðâûé ïëàí âûøëè âîïðîñû ïðîèñõîæäåíèÿ ïàêåòîâ, óÿçâèìîñòåé, ëèöåíçèîííîé ÷èñòîòû è äîâåðèÿ ê òîìó, ÷òî èìåííî ïîïàäàåò â êîíòóð ðàçðàáîòêè è ýêñïëóàòàöèè. Ñîãëàñíî èññëåäîâàíèþ Cloudsmith Artifact Management Survey 2025, 56% îïðîøåííûõ ñïåöèàëèñòîâ íàçâàëè çàùèòó öåïî÷êè ïîñòàâîê ÏÎ ãëàâíûì ïðåèìóùåñòâîì ðåøåíèé äëÿ óïðàâëåíèÿ àðòåôàêòàìè. Ïî àêòóàëüíûì îöåíêàì, îò 4,6 äî 6,1% íàçâàíèé ïàêåòîâ, ïðåäëàãàåìûõ ÈÈ-ìîäåëÿìè, îêàçûâàþòñÿ íåñóùåñòâóþùèìè — êîíêðåòíûé ïîêàçàòåëü çàâèñèò îò ìîäåëè. Ýòà óãðîçà óñèëèâàåò ðîëü âíóòðåííåãî õðàíèëèùà êàê êîíòðîëèðóåìîé òî÷êè âõîäà äëÿ êîìïîíåíòîâ, ïîñòóïàþùèõ â êîíòóð ðàçðàáîòêè.
 2025 ã. êîìàíäà CodeScoring çàôèêñèðîâàëà 457 òûñ. âðåäîíîñíûõ ïàêåòîâ (â 11 ðàç áîëüøå, ÷åì ãîäîì ðàíåå) è 14 òûñ. íîâûõ óÿçâèìîñòåé â îòêðûòûõ êîìïîíåíòàõ. Ïîýòîìó â CodeScoring.Save áåçîïàñíîñòü íå íàäñòðîéêà, à àðõèòåêòóðíàÿ îñíîâà.
Àëåêñåé Ñìèðíîâ, îñíîâàòåëü è ãåíåðàëüíûé äèðåêòîð CodeScoring: «Íåëüçÿ âûñòðîèòü äîâåðåííóþ ñðåäó ðàçðàáîòêè, åñëè åå ôóíäàìåíò — õðàíèëèùå êîìïîíåíòîâ — îñòàåòñÿ "ñëåïûì" ê ðèñêàì. Âûïóñê CodeScoring.Save — ýòî íàø îòâåò íà çàïðîñ èíäóñòðèè: ìû äàåì áèçíåñó âîçìîæíîñòü íå ïðîñòî ñêà÷èâàòü è õðàíèòü open source, à îñîçíàííî è áåçîïàñíî óïðàâëÿòü òåì, èç ÷åãî ñòðîÿòñÿ èõ êëþ÷åâûå ÈÒ-ïðîäóêòû».
Êàê óñòðîåí CodeScoring.Save
Êëàññè÷åñêèå ðåøåíèÿ äëÿ õðàíåíèÿ àðòåôàêòîâ èçíà÷àëüíî ñòðîèëèñü êàê ìîíîëèòû è ñåãîäíÿ ñ òðóäîì àäàïòèðóþòñÿ ê ñîâðåìåííûì àðõèòåêòóðíûì øàáëîíàì èç-çà íàêîïëåííîãî òåõíîëîãè÷åñêîãî íàñëåäèÿ. CodeScoring.Save — íå äîðàáîòêà open source ðåøåíèé, à ñîáñòâåííàÿ ðàçðàáîòêà êîìïàíèè: ðåøåíèå íàïèñàíî íà Go è ñïðîåêòèðîâàíî äëÿ ðàáîòû â Kubernetes-ñðåäàõ.
Ãèáêîå óïðàâëåíèå æèçíåííûì öèêëîì êîìïîíåíòîâ: CodeScoring.Save ïîçâîëÿåò óïðàâëÿòü äîñòóïîì, âåñòè àóäèò äåéñòâèé è íàñòðàèâàòü ïîëèòèêè î÷èñòêè àðòåôàêòîâ, à èíòåãðàöèÿ ñ CodeScoring.OSA ïîäêëþ÷àåò ïðîâåðêó êîìïîíåíòîâ ñ èñïîëüçîâàíèåì äàííûõ ïëàòôîðìû CodeScoring.
Ïîääåðæêà ïîïóëÿðíûõ ýêîñèñòåì, âêëþ÷àÿ Maven, npm, PyPI, NuGet, Go, Docker/OCI, Deb (APT), RPM (YUM/DNF) è Raw, ñ ïîääåðæêîé hosted- è proxy-ðåæèìîâ.
Ïîëíîñòüþ íåçàâèñèìîå ðåøåíèå. Ìîäóëü CodeScoring.Save ìîæåò èñïîëüçîâàòüñÿ àâòîíîìíî, ñîõðàíÿÿ âîçìîæíîñòü èíòåãðàöèè ñ äðóãèìè ïðîäóêòàìè ïëàòôîðìû CodeScoring.
Íàäåæíîñòü è ïðîèçâîäèòåëüíîñòü. Ïðîäóêò ñïðîåêòèðîâàí ñ ó÷åòîì òðåáîâàíèé ê êðèòè÷åñêè âàæíûì ñèñòåìàì: ïîääåðæèâàåò âûñîêóþ äîñòóïíîñòü (HA) «èç êîðîáêè», ãîðèçîíòàëüíîå ìàñøòàáèðîâàíèå è îòêàçîóñòîé÷èâûå êîíôèãóðàöèè. Àðõèòåêòóðà ðàññ÷èòàíà íà ýôôåêòèâíóþ ðàáîòó ñ àðòåôàêòàìè, â òîì ÷èñëå â âûñîêîíàãðóæåííûõ èíôðàñòðóêòóðàõ êðóïíîãî áèçíåñà.
Íàñòðîéêà ïîä ïðîöåññû çàêàç÷èêà: áëàãîäàðÿ ñîáñòâåííîé ðàçðàáîòêå ðåøåíèå îáëàäàåò âûñîêîé ãèáêîñòüþ è ìîæåò ðàçâèâàòüñÿ âìåñòå ñ ïîòðåáíîñòÿìè êëèåíòà, îáðàñòàÿ íîâîé ôóíêöèîíàëüíîñòüþ, ñïåöèôè÷íîé äëÿ êîíêðåòíîãî ïðîöåññà ðàçðàáîòêè.
Ïîëíîöåííàÿ ïîääåðæêà âåíäîðà: â îòëè÷èå îò open source ðåøåíèé, ðàçâèòèå êîòîðûõ ÷àñòî íåïðåäñêàçóåìî, êîìàíäà îáåñïå÷èâàåò ñâîåâðåìåííîå èñïðàâëåíèå îøèáîê, îïåðàòèâíîå çàêðûòèå óÿçâèìîñòåé è ïðåäñêàçóåìóþ îáðàòíóþ ñâÿçü îò ðàçðàáîò÷èêîâ ïëàòôîðìû.
API-first / DevOps-friendly: REST API è Swagger ïîçâîëÿþò ðàáîòàòü ñ ñèñòåìîé ïî ïðèíöèïàì IaC, ïîäêëþ÷àòü õðàíèëèùå ê CI/CD-êîíòóðàì è ñîçäàâàòü ñîáñòâåííûå àâòîìàòèçàöèè. Íàáîð ãîòîâûõ èíòåãðàöèé ñ èíñòðóìåíòàìè æèçíåííîãî öèêëà ðàçðàáîòêè áóäåò ðàñøèðÿòüñÿ.
Ìîäóëüíàÿ àðõèòåêòóðà è ãèáêèé data layer. Âû÷èñëèòåëüíûé ñëîé îòäåëåí îò óðîâíÿ õðàíåíèÿ äàííûõ. Ìåòàäàííûå ìîãóò ðàçìåùàòüñÿ âî âíåøíåé PostgreSQL èëè âíóòðåííåé SQLite, à áèíàðíûå ôàéëû — âî âíåøíåì S3-ñîâìåñòèìîì õðàíèëèùå.
Ðåøåíèå ñîçäàíî ñ ó÷åòîì ëèíåéêè ñòàíäàðòîâ áåçîïàñíîé ðàçðàáîòêè.
Äìèòðèé Êëþ÷íèêîâ, ðóêîâîäèòåëü ðàçðàáîòêè ïðîäóêòà CodeScoring.Save: «Ìû íàìåðåííî âûáðàëè áîëåå ñëîæíûé ïóòü, ñîçäàâàÿ CodeScoring.Save ñ íóëÿ. Ýòî ïîçâîëèëî ïðèìåíèòü ëó÷øèå ñîâðåìåííûå àðõèòåêòóðíûå ïðàêòèêè è ïîñòðîèòü õðàíèëèùå, îòâå÷àþùåå àêòóàëüíûì òðåáîâàíèÿì ê ìàñøòàáèðîâàíèþ, èíòåãðàöèÿì è áåçîïàñíîñòè. Ñåãîäíÿ ðîññèéñêèì êîìïàíèÿì ïðèíöèïèàëüíî âàæíî îïèðàòüñÿ íà íåçàâèñèìûé ñòåê â êðèòè÷åñêè âàæíûõ êîíòóðàõ ðàçðàáîòêè, ïîýòîìó ìû ñîçäàëè ïðîäóêò ìèðîâîãî óðîâíÿ, ãàðàíòèðóþùèé òåõíîëîãè÷åñêóþ óñòîé÷èâîñòü áåç îãëÿäêè íà çàðóáåæíûå ïëàòôîðìû».
CodeScoring.Save — ñàìîñòîÿòåëüíûé ïðîäóêò äëÿ ðàçâåðòûâàíèÿ â èíôðàñòðóêòóðå çàêàç÷èêà. Ðåøåíèå ïîñòàâëÿåòñÿ â âèäå Helm chart è ðàáîòàåò â Kubernetes-ñðåäàõ. Ñîïðîâîæäàåòñÿ èíñòðóìåíòîì àâòîìàòè÷åñêîé ìèãðàöèè ñ îòêðûòûõ õðàíèëèù àðòåôàêòîâ.
CodeScoring.Save ñîçäàí äëÿ êîìïàíèé, êîòîðûå âèäÿò â êîíòðîëèðóåìîì è íàäåæíîì ðåïîçèòîðèè àðòåôàêòîâ êðèòè÷åñêèé óçåë öåïî÷êè ïîñòàâêè ÏÎ. Ðåøåíèå îðèåíòèðîâàíî íà CTO, DevOps- è DevSecOps-èíæåíåðîâ, SRE-èíæåíåðîâ è èíæåíåðîâ ïî ýêñïëóàòàöèè.


