Զարգացողների ներքին գործիքները
1) Մշակողի պլատֆորմի (IDP) դեր և պատասխանատվության գոտի
Զարգացողի ներքին պլատֆորմը «ինքնաարտադրության» շերտն է, որը փակում է տիպային ինժեներական առաջադրանքները միանձնյա գործիքներով
արագ սկսելը (ծառայությունների ձևանմուշները, API կմախքը, pline);
կանխատեսելի հավաքումը/փորձարկումը/դեֆլան;
անվտանգ կառավարումը գաղտնիքներով, կախվածություններով և արտեֆակտներով։
զգայունություն լռելյայն (լոգա/մետրեր/թրեյսներ);
հասանելիություն թեստային տվյալներին, կամուրջներին և պրովայդերների ավազներին.
գունդը և «ոսկե ճանապարհները» տիպիկ մետաղների համար։
Նպատակն է նվազեցնել ճանաչողական բեռը, Time-to-First-PR և Lead Time for Changes-ը, բարձրացնելով ածխաջրածինների ավելացումը և համապատասխանեցնել կոմպլենսին։
2) DX դիզայնի սկզբունքները (Developer eXperience)
Convention over coriguration: Ստանդարտները ավելի կարևոր են, քան ձեռքերը։
Golden Paths-ը «լռելյայն» լուծումների նվազագույն հավաքածու է, որը ծածկում է դեպքերի 80 տոկոսը։
Everything as Code: www.pline, ենթակառուցվածքը, dashbords, քաղաքականությունը Git-ում։
Secure-by-international: SFC/DTS, SBSA, արտեֆակտների ստորագրություն, կախվածության քաղաքականություն։
Observability-first: Ծառայությունները և գործիքները ինքնաբերաբար հեռաչափություն են արտադրում։
Շրջապատի պորտաբելությունը 'տեղական = CI = steige = prod (որքան հնարավոր է)։
Հետադարձ կապը րոպեների ընթացքում 'արագ թեստեր, ոսպնյակներ, ավելի բարձր միջավայրեր, PR արձաններ։
3) Պլատֆորմի ճարտարապետությունը և հիմնական բաղադրիչները
DevPortal: Ծառայությունների կատալոգը, ձևանմուշները, պարամետրերը, պլատֆորմի կարգավիճակը, «one-click» գործարկումը և շրջապատը։
CLI/կմախք 'ծառայությունների/գործառույթների/ջոյի արտադրություն մեկ ապակու հետ (տրամաբանություն, health, OpenAPI/Delo, observability)։
Բիլդ համակարգը և մոնոպրո գործիքները 'քեշինգը, ռեֆորմալ հավաքումը, դետերմինացված արտեֆակտները։
CI/CD-բլյուպրինտներ ՝ ծառայությունների համար փայտանյութեր (unit, պայմանագրեր, ինտեգրում, e2e, անվտանգության վերլուծություն, deple)։
Թեստային ուրվագծեր ՝ թեստային/տեղական պրովայդերների ավազներ, տվյալների ընդհանուր գործարան և ֆիքսթուր։
«Արկղից» դիտարկումը 'OTel/Prometheus/լոգգերի միացումը մեկ մոդուլի միջոցով։
Գաղտնիք կառավարումը 'ինտեգրումը KFC/HSM, ռոտացիան, հասանելիության քաղաքականությունը։
Ֆիչեֆլագի/փորձարկումներ 'SDK և կոնսոլ առաջադիմական դասավորությունների համար։
4) DevPortal: Կենտրոնական մուտքի կետը
Ֆունկցիոնալությունը
ծառայությունների/գրադարանների/սխեմաների կատալոգ (owner, SLA, տարբերակներ, խոցելիություններ);
«Ստեղծել ծառայություն» կոճակը ձևանմուշով (անմիջապես pline և alerts);
108 (ստանդարտ ստայլա, սուլֆիդներ, պլեյբուկներ);
պլատֆորմային ծառայությունների կարգավիճակ, capacity, փոփոխություններ (changelog);
Runbooks և Golden Paths: «Ինչպես ավելացնել էնդպոինտը», «ինչպես ստեղծել բողոքարկումը», «ինչպես միացնել պրովայդերին»։
5) CLI և ձևանմուշները (կմախքային)
Ձևանմուշները ներառում են
REST/gRPC/GraphQL-2019-ը health-chects ,/metram ,/ready;
պատրաստ midlewares 'հարցումների հարաբերակցություն, վավերացում, rate limits;
OpenAPI/Eurobuf + CI սխեմաների ստուգում;
մոդուլային լոգգեր, թրեյսինգ, մետրիկներ;
dockerfile + compose տեղական զարգացման համար;
թեստերի հիմնական շարքը և ոսպնյակների կազմաձևումը/www.atters/prechuks։
Օրինակ
`devx new service --name payments-api --stack go-grpc --db postgres --events kafka --template v2`
6) Տեղական զարգացումը և հեռավոր տարածքները
Dev Intainers/Codespaces-անալոգը 'բոլոր նույն միջավայրերը, արագ ուռուցքաբանը։
Docker Compose + Testcontainers: BD/kashi/անվադողերը բարձրանում են տեղական մեկ թիմի։
Tilt/Skaffold-ը կենդանի վերագործարկելու համար Kubernetes-ում «dev» կլաստեր։
Remote Dev: Ռուսական սոեմային հավաքումները/թեստերը կատարվում են ընտրված փամփուշտների վրա։
Օգտակար պրակտիկա
մեկ 'tool-versions '/www.kfiles գործիքների տարբերակների համար;
make/just-скрипты: `make test`, `make run-local`, `make seed`;
տեղական գաղտնիքները '«dotenv» և dev դերերի գաղտնիքների պրովայդեր։
7) Սխեմաների և պայմանագրերի կառավարումը
Schema Registry (JSON/Avro/Delo) միգրացիայի քաղաքականության հետ։
Euract testing (Pact/Buf) որպես CI-ի պարտադիր ջո։
API (SemVer) տարբերակը, երկկողմանի աջակցությունը, MSK ավտոմատ արտադրությունը։
BD (migrate/flyway/liquibae) ստանդարտ քայլ է։
8) Փորձարկման բուրգը և տվյալները
Յունիտ թեստերը 'արագ, զուգահեռ, պարտական են կրիտիկական տրամաբանության ծածկմանը։
Պայմանագիր-թեստեր 'սպառողը ռուսական API/իրադարձությունների պրովայդեր։
Ինտեգրացիոն 'իրական կախվածությունների հետ տարաների մեջ։
E2E 'նվազագույն, բայց ռեպրեսենտատիվ հավաքածու «միջատներով»։
Թեստային տվյալները 'գործարաններ/ֆիքսթեր, սինթետիկ առանց PII, շրջակա վայրեր։ BD սարքավորումները միայն անանուն են։
9) CI/CD: Ստանդարտ թիթեղներ
Փուլերը (լռելյայն)
1. Lint/Corat/License/SBSA արտադրություն։
2. SFC (ստատիկ վերլուծություն) + կախվածության քաղաքականությունը, որը արգելափակում է «քննադատությունները»։
3. Unit wwww.rac.ru Integration pro E2E-ը արտեֆակտների և զեկույցների հետ։
4. Build դետերմինացված պատկեր, ստորագրություն (sigstore/cosport), push registry-ում։
5. Deploy:- feature-env/www.view URL յուրաքանչյուր PR-ում;
- canary/blue-green stage;
- առաջադիմական պրո-ռելիզը ֆիչեֆլագով/108;
6. Post-deploy winks: alerts, error budget, ավտոսպորտ քայքայման ժամանակ։
10) Դիտողությունն ու տեղական բանավեճը
«Telemetry-starter» մոդուլը 'ներառում է OTel MSK, արտադրողներ, կորլացիա' trace _ id ';
Dashboards as Code: dashbords և alerts նկարագրված են Git-ում։
Trace-driven dev 'հարցումների ավելացումը տեղական և ավելի բարձր ստենդերում։
Լոգները կառուցվածքային (JSON), պաշտպանությունը PII-ից, զգայուն դաշտերի դիմակավորում։
11) Կոդի և խանդի որակը
միասնական ոսպնյակներ/լոկոմոտիվներ և ճնշումներ (լեզուն հատուկ);
pre-commit huki (linta/թեստեր փոքր ծավալի);
Code Owners-ը և պարտադիր նախանձը հիմնական արտեֆակտների համար (սխեմաներ, պաշտպանություն, քաղաքականություն);
PR-chek-lists. <<Ի՞ նչ է փոխվել։ «, «անվտանգություն։ «, «հակադարձ համատեղելիություն։ «, «? ».
12) Անվտանգ զարգացումը (SSDL) և մատակարարման շղթան
SCA (կախվածության վերլուծություն) և աղբյուրների allowlist;
SFC/DFC/IFC տեսակի արտեֆակտը;
SBSA-ը յուրաքանչյուր տոմսի համար, պահեստավորում արտեֆակտային ռեպոզորիայում։
պատկերների ստորագրություն, հավաստագրում (SLIM մակարդակներ);
գաղտնիքների քաղաքականությունը 'ոչ մի գաղտնիք Git-ում, ռոտացիա, ժամանակային կրեդիտ;
Policy-as-Code (OPA/Wintest) ենթակառուցվածքային PR-ի համար։
13) Ֆիչեֆլագները, փորձարկումները և շրջակա միջավայրը
MSK ֆիչեֆլագները ձևանմուշներում, տարբերակումը 'ops դրոշներ vs արտադրանք;
առաջադիմական դասավորություններ (1% 2425% 24100%), արագ գծապատկեր;
յուրաքանչյուր PR (յուրահատուկ URL, թրեյսինգ, թեստային տվյալներ), ավտոմատ հեռացում merge/close-ից հետո։
14) Բոտա և ավտոմատիզացիա
chat-bots/deploy ,/rollback ,/logs ,/runbook;
Auto-պիտակները և ավտոմեքենաները bag-tracker-ում;
տիկետների ձևանմուշները (պատահականություն, փոփոխություն, RFC);
կախվածության վերականգնումը մարտկոցով և «կանաչ» ճյուղերով։
15) Մոսկվան և ուսուցումը
«կենդանի» սպեկները (OpenAPI/Delo) որպես ճշմարտության աղբյուր։
tech notes/RFC ընդհանուր ձևանմուշների միջոցով, Git-ից ավտոպլեքսիա;
տեսահոլովակ-ցուցադրություն «Ինչպե՞ ս եմ ես սկսում նախագիծը 10 րոպեում»։
DevPortal-ի «ավազը» ցնցող սցենարներով։
16) Արդյունավետության մետրերը (DORA/SPACE)
DORA: Lead Time, Deployment Frequency, MTTR, Change Failure Rate;
SPACE 'բավարարվածություն, արտադրողականություն, ակտիվություն, հաղորդակցություն։
նպատակները 'www.Lead Time-ը 30 տոկոսով, որը համապատասխանում է ածխաջրածինների հաճախությանը, պլանավորվում է ուռուցքաբանության ժամանակը մինչև N ժամ։
17) Հասանելիության և ստենանտության կառավարումը
ինժեներական կոմպոզիցիաների դերերը (dev, reviewer, releng, platform);
Միջին քաղաքականություն. Ո՞ վ կարող է հավելել dev/stage/2019;
առանձին քվոտաներ/limits և namespace մեկուսացում վերափոխելու/fich ճյուղերի համար։
18) Տվյալների և վերլուծության գործիքները
տեղական պրոֆիլներ իրադարձությունների կարդալու համար (Kafka/NATS) և repley;
սինթետիկ գեներատորներ և անանուն դամպեր։
նոութբուքեր/ջութակներ «ad-hoc» -ը վերլուծել մետաղների և ածխաջրածինների որակի մետրը։
19) Իրականացման ճանապարհային քարտեզը
M0-M1 (MVP): DevPortal-ը, ծառայությունների ձևանմուշները, հիմնական CI (lint + unit + build), տեղական հավաքումը dev-intainers, տրամաբանությունը/մետրերը։
M2-M3 'պայմանագիր-թեստեր, ավելի բարձր միջավայրեր, ինտեգրացիոն թեստեր թեստերի, SMS/SCA, SBSA-ի հետ։
M4-M6: Ficheflagy, առաջադիմական, Dashboards as Code, policy-as-code, հեռավոր dev-puls, MSK-ի ավտոգեն։
M6 + 'ռելիզային նվագախմբեր, «մեկ կոճակի» փորձը, բաղադրիչների/գրադարանների ներքին վիտրինը, DORA/SPACE չափումները DevPortal-ում։
20) Պլատֆորմի հասունության թուղթ (կանգուն)
- «Մեկ կտոր» կոմպոզիցիայի ստեղծումը տալիս է աշխատանքային շրջանակ մետրիկների/հատորների/թրեյզների հետ։
- Շրջապատը ինքնաբերաբար բարձրանում է յուրաքանչյուր PR-ով։
- Պայմանագիր-թեստերը պարտադիր են և արգելափակում են անհամատեղելի փոփոխությունները։
- SBSA-ն հրապարակվում է յուրաքանչյուր տոմսի վրա, պատկերները ստորագրվել են։
- Դիտողականությունը/ալտերտերը և տաշբորդները կոդն են և ռեպոզորիայում։
- Ֆիչեֆլագները հասանելի են վահանակից, գլանափաթեթները 'առաջադիմական։
- Runbooks/պլեյբուսները կապված են ալերտների հետ և տեսանելի են DevPortal-ում։
- DORA/SPACE մետրիկները ցուցադրվում են DevPortal-ի գլխավոր էջում։
- Նոր զարգացողի Onbording No. 1 աշխատանքային օր մինչև առաջին PR։
Համառոտ եզրակացություն
Զարգացողի ուժեղ ներքին պլատֆորմը վերածում է բազմաբնույթ հոսքի մեկ «փոխակրիչ» մատակարարման '«ստեղծել ծառայություն» մինչև «հոսանք անվտանգ անջատմամբ»։ Ստանդարտացված ձևանմուշները, DevPortal-ը, պայմանագիր-փորձարկումը, ավելի բարձր միջավայրը, լռելյայն դիտարկումը և անվտանգությունը տալիս են արագ, կանխատեսելի օրինագծեր առանց որակի և կոմպլասենսայի փոխզիջումների։