2-bobda siz ma’lumotlar modellari, formatlar, va ma’lumotlar sifati (data models, formats, and quality) haqida qanday fikr yuritishni o’rgandingiz. Endi siz tranzaksion sxemani tahliliy modeldan ajrata olasiz, Parquet (Parquet) CSV yoki JSON dan nima sababdan boshqacha ishlashini tushuntira olasiz va ma’lumotlar boshqaruv paneliga yetib borguncha ma’lumotlar sifati oldindan rejalashtirilishi kerakligini ta’riflay olasiz — masalan, dashboard (dashboard).
Bu bob ma’lumotlarning o’zidan vositalar ekotizimiga — ma’lumotlarni saqlaydigan, ko’chiradigan, o’zgartiradigan, tekshiradigan, orkestratsiya (Orchestration) qiladigan, kuzatadigan va himoya qiladigan vositalar (tools) ekotizimiga (data ecosystem) qarab o’tadi.
Ushbu bobning amaliy natijasi kitob rejasidagi I qism mini-kapston: vositalarni baholash matritsasi va takrorlanuvchan TuranMart loyiha shabloni (reproducible TuranMart project template). Siz texnologiyalarni moda, ijtimoiy tarmoqlar yoki bitta benchmark asosida tanlamaysiz. Siz ochiq manba loyihalarni maqsad, boshqaruv (Boshqaruv governance), litsenziyalash, xavfsizlik, operatsion yetuklik, integratsiyaga moslik va Umumiy egalik narxi (Total Cost of Ownership) bo’yicha qanday baholashni o’rganasiz. Bob oxirida siz keyingi boblar ishlab chiqarish darajasidagi ma’lumotlar platformasiga aylantiradigan birinchi qayta ishlatiladigan loyiha skeletiga ega bo’lasiz.
Figure 1:Bob umumiy ko’rinishi: ochiq manba ekotizimi falsafa, asoslar, litsenziyalar, baholash, hissa qo’shish va amaliy platforma dizaynini bog’laydi.
Kirish stsenariysi: TuranMart ma’lumotlar stekini tanlaydi¶
TuranMart — bizning tasavvuriy elektron tijorat va logistika kompaniyamiz — mintaqaviy onlayn do’kondan ko’p mamlakatlarda faoliyat yurituvchi biznesga aylandi. Buyurtmalar PostgreSQLda saqlanadi, mahsulot ma’lumotlari merchandising jamoalari tomonidan yangilanadi, yetkazib berish voqealari mobil skannerlardan keladi, qo’llab-quvvatlash chiptalari erkin matnda yoziladi va rahbariyat kundalik boshqaruv panellari (Dashboard)ni xohlaydi.
Muhandislik jamoasida bulut infratuzilmasi uchun yetarli byudjet bor, lekin hamma narsani boshidan qurish uchun yetarli vaqt yoki pul yo’q. Ular shuningdek uzoq muddatli ehtiyojlarini tushunib olmasdan birgina yetkazib beruvchiga bog’lab qo’yadigan platformadan qochmoqchi.
Jamoa ochiq manba (open-source)ga asoslangan arxitekturani taklif qiladi. PostgreSQL operatsion haqiqat manbai sifatida qoladi. MinIO mahalliy rivojlanish uchun S3-ga mos Ob’ektli saqlash (Object Storage) orqali ma’lumotlar ko’li (Data Lake) taqdim etadi. DuckDB engil analitik tadqiqotlarni qo’llab-quvvatlaydi. Apache Spark paket hajmlari bitta mashinadan oshganda Paketli qayta ishlash (Batch Processing) uchun joriy etiladi. Airflow rejalashtirilgan quvurlarni Orkestratsiya (Orchestration) qiladi. dbt Core ombor (warehouse) transformatsiyalarini standartlashtiradi. Great Expectations ma’lumotlar sifati (Data Quality) qoidalarini tekshiradi. Prometheus va Grafana operatsion metrikalarni ochib beradi. Taklif jozibali eshitilmoqda, lekin CTO amaliy savol beradi: qanday qilib siz bu vositalar xavfsiz, barqaror, yuridik jihatdan ishlatishga yaroqli va o’rganishga arziydiganligini bilasiz?
| Manfaatdor tomon | Og’riq nuqtasi | Xohlangan natija | Ma’lumotlar muhandisligi dizayn savoli |
|---|---|---|---|
| CTO | Dalil-sabab ko’rsatilmasdan juda ko’p vositalar taklif qilinmoqda. | Asoslarga ega platforma qarori. | Vositalarni afzalliklarga emas, aniq mezonlarga asoslanib qanday solishtirasiz? |
| Muhandislik rahbari | Jamoa ishlab chiqarish miqyosidan oldin mahalliy takrorlanuvchilik (Reproducibility)ga ega bo’lishni talab qiladi. | Takrorlanadigan loyiha shabloni (Template). | Birinchi kundan qaysi papkalar, testlar, qarorlar va konvensiyalar bo’lishi kerak? |
| Xavfsizlik va yuridik tekshiruvchilar | Qaramliklar, litsenziyalar va zaifliklarni keyinroq audit qilish qiyin. | Erta inventarizatsiya va litsenziya haqida xabardorlik. | Texnik tanlovga dasturiy ta’minot materiallari ro’yxati (SBOM) va litsenziya yondashuvini qanday kiritasiz? |
| Analitika jamoasi | Boshqaruv panellari platforma uchun oylar kutmasdan ishonchli ma’lumotga muhtoj. | O’sishi mumkin bo’lgan kichik, uyg’un stek. | Qaysi vositalar hozirgi muammoni ortiqcha operatsion yuk yaratmasdan hal qiladi? |
Ushbu bob ushbu savollarga javob beradi. U ochiq manba (open-source)ni bepul vositalar katalogi sifatida emas, balki jamoalar, litsenziyalar, boshqaruv (Governance) modellari, operatsion xatarlar va qayta ishlatiladigan dizayn shablonlari orqali tashkil etilgan ekotizim (Ecosystem) sifatida ko’radi. Ushbu bob I qismni yakunlab, 1-bobdagi fikrlash tarzini va 2-bobdagi modellash intizomini ongli birinchi platforma qaroriga aylantiradi.
O’quv maqsadlari¶
Ushbu bob oxiriga kelib, siz ochiq manba (open source) nima uchun ma’lumotlar infratuzilmasi va bulutga mos operatsiyalar (cloud-native operations) uchun ustun modelga aylanganligini tushuntira olishingiz kerak. Siz Boshqaruv (Governance), litsenziyalash, qabul qilinish (adoption), va barqarorlik signallari asosida fond yetakchiligidagi, korporativ yetakchilikdagi va mustaqil loyihalarni solishtira olishingiz kerak. Shuningdek, siz amaliy vosita (Tool) baholash matritsasini tuzib, uni takrorlanuvchan (reproducible) ochiq manba shablonini Ma’lumotlar muhandislari jamoasi (data engineering team) uchun tanlashda qo’llay olishingiz kerak.
| O’rganish maqsadi | Amaliyotda nima uchun muhim | Bob artefaktidagi dalil |
|---|---|---|
| Ochiq manba (open source) ishlash modelini tushuntirish | Ma’lumotlar jamoalari faqat yetkazib beruvchilarga emas, balki jamoalarga ham ishonadi — xatolarni tuzatish, namunalar va innovatsiyalar uchun. | Siz ekotizim (ecosystem) aylanish mexanizmini tahlil qila olasiz va uning ham foydalari, ham majburiyatlarini aniqlay olasiz. |
| Boshqaruv (Governance) modellari orasidagi farqni aniqlash | Vositaning jamoa tuzilishi uning yo’l xaritasi, qo’llab-quvvatlash modeli va uzoq muddatli xavfiga ta’sir ko’rsatadi. | Siz fond yetakchiligidagi (foundation-led), korporativ yetakchilikdagi (corporate-led), mustaqil va standartlarga yo’naltirilgan loyihalarni solishtira olasiz. |
| Litsenziyalar va bog’liqlik xavfini tahlil qilish | Ma’lumotlar platformasi huquqiy jihatdan foydalanishga yaroqli, auditlanadigan va tuzatilishi mumkin bo’lishi kerak. | Siz litsenziyalarni, dasturiy ta’minot materiallari ro’yxati (SBOM) (Software Bill of Materials (SBOM)), tranzitiv bog’liqlikni (transitive dependencies) va xavfsizlik tekshiruvini bog’lashingiz mumkin. |
| Vositalarni tizimli baholash | Vosita tanlovi faqat ommaboplikka emas, balki dalillarga asoslangan bo’lishi kerak. | Siz har bir baho uchun hujjatlashtirilgan dalillar bilan og’irliklangan matritsani to’ldira olasiz. |
| Boshlang’ich arxitekturani tuzish | O’quvchilar ishga tushirishi va kengaytirishi mumkin bo’lgan takrorlanuvchan (reproducible) shablonga muhtoj. | Siz TuranMart loyiha skeletini, ADRni va tekshirish natijasini yaratishingiz mumkin. |
Konseptual asos: Ishlash modeli sifatida ochiq manba¶
Ochiq manba (open source) ko‘pincha yuklab olish uchun hech qanday haq to‘lanmaydigan dastur sifatida ta’riflanadi. Bu ta’rif to‘liq emas va professional ish uchun xavfli bo‘lishi mumkin. Ochiq manbaning haqiqiy qiymati shunchaki litsenziya to‘lovining yo‘qligida emas. U — manba kodining mavjudligi, tekshirish va o‘zgartirishga ruxsat, belgilangan shartlar asosida qayta tarqatishga ruxsat, jamoaviy hamkorlik va birgalikda texnik xizmat ko‘rsatishning birlashmasidir. Open Source Initiative ta’kidlaydiki, ochiq manba shunchaki manba-kodga kirish emas; mos litsenziyalar qayta tarqatishga, kelib chiqqan ishlarni yaratishga, diskriminatsiyaga yo‘l qo‘ymaslikka va texnologik neytrallikka ruxsat berishi kerak.[5] Ma’lumotlar muhandisligida bu kombinatsiya muhim, chunki infrastruktura ishonchli, integratsiyalashgan, avtomatlashtirilgan va ko‘p yillar davomida ishlatilishga mos bo‘lishi kerak.
Ochiq manba an’anasi foydalanuvchilarning ishlatayotgan dasturiy ta’minot ustidan mazmunli erkinlikka ega bo‘lishi g‘oyasiga asoslangan. Amaliy jihatdan, bu erkinlik muhandislarga so‘rov rejachisi qanday ishlashini tekshirish, xatoni qayta ishlab chiqarish, tuzatish yuborish, bog‘liqlikni mahkamlash, ichki kengaytma yaratish yoki biznes talablar o‘zgarganda boshqariladigan xizmatdan o‘z boshqaruvidagi (self-hosted) joylashuvga ko‘chish imkonini beradi. Yopiq tizimda nima ko‘rinishi va nima o‘zgartirilishini sotuvchi (vendor) hal qiladi. Ochiq tizimda esa muhandislik guruhi ko‘proq huquq-huquqlarga ega bo‘ladi, ammo shu bilan birga ko‘proq javobgarlikni ham o‘z zimmasiga oladi.
Figure 2:Ochiq manba ishlash aylanasi: umumiy kod qabul qilinishni rag‘batlantiradi, qabul qilinish fikr-mulohazani jalb qiladi, fikr-mulohaza sifatni yaxshilaydi va sifat kengroq ishlab chiqarishga yo‘naltiradi.
Figure 2 dagi aylana ochiq manbaning ma’lumotlar infratuzilmasi uchun nega samarali bo‘lganini tushuntiradi. Infratuzilma muammolari kam hollarda faqat bir kompaniyaga xos bo‘ladi. Ko‘plab tashkilotlar voqealarni yuklash, xom fayllarni saqlash, jadvallarni o‘zgartirish, ishlarni rejalashtirish, quvurlarni kuzatish va kirishni xavfsizlash talab qiladi. Bu umumiy muammolar jamoatchilikda hal qilinganda, yaxshilanishlar yig‘iladi va kuchayadi. Bir hissa qo‘shuvchi tomonidan tuzatilgan xato minglab joylashtirishlarga foyda keltirishi mumkin. Bir kompaniya yozgan connector hamjamiyat tomonidan qo‘llab-quvvatlanadigan integratsiyaga aylanadi. Bir jamoa e’lon qilgan benchmark butun loyiha yo‘l xaritasiga ta’sir qilishi mumkin.
Ochiq manba shuningdek hukmron bo‘lib ketdi, chunki ma’lumotlar infratuzilmasi ham missiya uchun muhim, ham farqlantirmaydigan xususiyatga ega. TuranMart mijoz tajribasi, mahsulot tanlovi, logistika samaradorligi, narx siyosati va tahlillar orqali raqobatlashadi. U o‘zining tarqatilgan xabar brokerini yozgani uchun yutmaydi. Kompaniya ishonchli infratuzilmaga muhtoj, lekin infratuzilma odatda mahsulotning o‘zi emas. Ochiq manba jamoaga biznesga xos ma’lumot mahsulotlariga sarmoya kiritish imkonini beradi, shu bilan birga umumiy texnik poydevorlar ustida barqaror turadi.
Ochiq manbaga qaramlik darajasi nazariy emas. Black Duck ning 2025 OSSRA hisobotiga ko‘ra, baholangan kodbazalarning **97%**ida ochiq manba mavjudligi qayd etilgan, 64% ochiq manba komponentlari tranzitiv bog‘liqliklarga (tranzitiv bog’liqlik) ega bo‘lgan va 91% skanerdan o‘tgan ilovalarda eskirgan ochiq manba komponentlari mavjud edi.[1] Bu raqamlar ochiq manbadan qochish uchun sabab emas. Ular ochiq manbani dasturiy ta’minot yetkazib berish zanjiri (software supply chain) tarkibida boshqarish zarurligini eslatadi. Yetuk ma’lumotlar platformasi bog‘liqlik inventarizatsiyasi, xatoliklarni tuzatish intizomi, litsenziyani ko‘rib chiqish va takrorlanadigan build jarayonlarini talab qiladi.
| Asosiy tushuncha | Ta’rif | Ma’lumotlar muhandisligi uchun nima uchun muhim |
|---|---|---|
| Ochiq manba | Litsenziya ostida tekshirish, foydalanish, o‘zgartirish va qayta tarqatish huquqlari bilan tarqatiladigan dasturiy ta’minot. | Ma’lumotlar muhandislari tizim ichini tushunishi, xulq-atvorni qayta ishlab chiqarishi va ba’zi vendor bog‘lanishlaridan qochishi mumkin. |
| Manba mavjud (Source available) | Manba kodi ko‘rilishi mumkin bo‘lgan, lekin litsenziya foydalanish, qayta tarqatish yoki raqobatni cheklashi mumkin bo‘lgan dastur. | Manba ko‘rinishi avtomatik ravishda ochiq manba degani emas; ishlab chiqarish uchun foydalanish yuridik nazoratni talab qilishi mumkin. |
| Boshqaruv (Governance) | Chiqarishlar, maintainerlar, yo‘l xaritasi, xavfsizlikni boshqarish va hamjamiyat ishtiroki uchun qaror qabul qilish jarayoni. | Boshqaruv platforma bog‘liqligi rahbarlik, moliyalashtirish yoki sotuvchining o‘zgarishlariga bardosh bera olishini belgilaydi. |
| dasturiy ta’minot materiallari ro’yxati (SBOM) (Software Bill of Materials (SBOM)) | Komponentlar, versiyalar, bog‘liqliklar va litsenziya metama’lumotlarining inventari. | Ma’lumot platformalari konteynerlar, paketlar, providerlar va JAR fayllaridan foydalanadi, ular auditable bo‘lishi kerak. |
| Tranzitiv bog’liqlik | Boshqa bog‘liqlik tomonidan talab qilinishi sababli bilvosita kiritilgan bog‘liqlik. | Yashirin bog‘liqliklar ko‘pincha zaiflik va litsenziya riskini yaratadi. |
| Umumiy egalik narxi (Total Cost of Ownership) | Vositani qabul qilish va ishlatishning to‘liq qiymati: odamlar, infratuzilma, qo‘llab-quvvatlash, yangilanishlar va insidentlarni o‘z ichiga oladi. | Bepul yuklab olish, agar uni boshqarish yoki xizmat ko‘rsatish qiyin bo‘lsa, qimmatga tushishi mumkin. |
To‘g‘ri aqliy model muvozanatli: ochiq manba ma’lum turdagi bog‘lanishlarni kamaytiradi, o‘rganishni tezlashtiradi va shaffoflikni oshiradi, lekin u muhandislik intizomini bekor qilmaydi. Bepul yuklab olingan dastur yaxshi ta’minlanmagan, noto‘g‘ri litsenziyalangan, xavfsiz sozlanmagan yoki aniq foydalanish holatisiz tanlangan bo‘lsa ham qimmat operatsion ishlarni keltirib chiqarishi mumkin.
Ekotizimda navigatsiya: Fondlar, kompaniyalar va standartlar¶
Ochiq manba (open-source) olami anarxiya emas. Muhim loyihalar odatda institutlar, boshqaruv (Governance) jarayonlari, reliz amaliyotlari, xavfsizlik jamoalari, savdo belgilari, xulq-atvor kodekslari va hissalar qoidalari bilan o’ralgan bo’ladi. Bu tuzilmalar qarorlar qanday qabul qilinishini, kim maintainer bo’lishi mumkinligini, mojarolar qanday hal etilishini va loyiha asos soluvchi kompaniya yoki asl mualliflardan tashqarida omon qolishi mumkinligini belgilaydi.
Figure 3:Boshqaruv landshafti ma’lumotlar muhandislari (Data Engineer) uchun: fond yetakchiligidagi, korporativ yetakchilikdagi, mustaqil va standartlarga yo’naltirilgan loyihalarning turli kuchli tomonlari va xavflari mavjud.
Apache Software Foundation (ASF) ma’lumotlar muhandisligi uchun eng muhim institutlardan biridir. Zamonaviy stekdagi ko’plab asosiy vositalar Apache loyihalarida yashaydi yoki Apache boshqaruv amaliyotlaridan kuchli ta’sir olgan. ASFning 2025 moliyaviy yil hisobotida fondning 1,147 a’zosi, 9,905 committeri va 295 loyihasi borligi, shuningdek moliyaviy yil davomida beshta loyihaning yuqori darajaga o’tgani qayd etilgan.[2] Ma’lumotlar muhandisi uchun bu raqamlar Apache faqatgina brend emasligini, balki uzoq muddatli texnik hamjamiyatlar uchun bir turdagi operatsion tizim ekanligini ko’rsatadi.
Apache loyihalari ichida ma’lumotlar muhandisligiga aloqadorlari orasida Apache Spark, Apache Kafka, Apache Flink, Apache Airflow, Cassandra, Hive, Parquet, Avro, Apache Iceberg, Beam, NiFi, Druid, Superset va yana ko’plab boshqalar mavjud. Loyihalar maqsad va pishib yetilish jihatidan juda farq qiladi, lekin ular muhim boshqaruv kutishlariga ega: ommaviy muhokama, meritorasiyaga asoslangan ishtirok, loyiha boshqaruv komitetlari va “koddan ko’ra hamjamiyat” tamoyili loyiha butunlay bitta ish beruvchiga yoki bitta shaxsga bog’liq bo’lib qolmasligini ta’minlashga qaratilgan.
Linux Foundation ko’plab hamkorlik loyihalariga mezbonlik qiladi, uning Cloud Native Computing Foundation (CNCF) esa zamonaviy platforma operatsiyalarida markaziy rolni egallagan. Kubernetes, Prometheus, Envoy, containerd, OpenTelemetry, Argo va Helm bularning barchasi cloud-native landshaftining bir qismi. Ma’lumot platformalari tobora ko’proq ilova platformalari bilan bir xil substratda ishlayapti: konteynerlar, Kubernetes, servis meshlar, metrikalar, treyslar, GitOps va siyosat-sifatida-kod (policy-as-code). CNCFning 2024 yildagi yillik hisobotida Kubernetesning o’n yilligi va sektorlar bo’yicha cloud-native texnologiyalarning o’sishi ta’kidlangan.[3]
Ko’plab ta’sirli loyihalar kompaniya doirasida boshlanadi. Korporativ homiylik foydali bo’lishi mumkin, chunki kompaniya maintainerlarni moliyalashtirishi, hujjat yozishi, relizlarni tashkil qilishi va aniq yo’l xaritasini taqdim etishi mumkin. Xavf shundaki, ochiq manba versiyasi hamjamiyat ustuvorliklariga har doim mos kelmaydigan tijoriy mahsulot strategiyasi ta’sirida shakllanishi mumkin. Korporativ yetakchilikdagi loyihani baholaganda so’rash kerak: ochiq manba nashri haqiqatan foydali ekanmi, litsenziya barqarormikan, tashqi hissa qo’shuvchilar muhim ishtirokchilarmikan va boshqaruv modeli aniq ifodalanganmi.
Ba’zi loyihalar mustaqil tashabbus sifatida boshlanib, ma’lum bir muammoni yaxshi hal qilgani uchun muhim bo’lib qoladi. DuckDB — lokal analitika, tizimga joylashtirilgan analitik ishlov berish va takrorlanuvchi notebooklar uchun juda muhim vositaga aylangan yaxshi misoldir. Boshqa hamjamiyatlar mahsulotga emas, balki standartlarga yo’naltirilgan bo’ladi. Masalan, SPDX litsenziyalar ro’yxatini qisqa identifikatorlar, to’liq litsenziya nomlari, litsenziya matni va kanonik URL’lar bilan standartlashtiradi, shuning uchun litsenziyalar hujjatlar, manbafayllar va dasturiy ta’minot inventarizatsiyasida ishonchli aniqlanishi mumkin.[4]
| Boshqaruv modeli | Kuchli tomonlari | Xavflari | Ma’lumotlar muhandisligi misollari |
|---|---|---|---|
| Fond yetakchiligidagi | Vendor-neitral identifikatsiya, ommaviy jarayonlar, barqaror hamjamiyat qoidalari. | Qaror qabul qilish sekinroq bo’lishi mumkin, loyiha pishib yetilishi ham turlicha bo’ladi. | Apache Spark, Apache Kafka, Apache Flink, Apache Airflow, Kubernetes, Prometheus. |
| Korporativ yetakchilikdagi | Moliyalashtirilgan maintainerlar, aniq yo’l xaritasi, mahsulot darajasidagi hujjatlash. | Yo’l xaritasi tijoriy strategiyaga ergashishi mumkin; litsenziya o’zgarishi ehtimoli mavjud. | dbt Core, Delta Lake, ko’plab connectorlar va ishlab chiquvchi vositalari. |
| Mustaqil | Maqsadli dizayn, tez iteratsiya, kuchli texnik identifikatsiya. | Maintainerlarning imkoniyati va uzoq muddatli moliyalashtirilishi noaniq bo’lishi mumkin. | DuckDB. |
| Standartlarga yo’naltirilgan | Umumiy lug’at, o’zaro ishlash qobiliyati, audit qilish imkoniyati. | Standartlar platformangizni boshqarmaydi; amalga oshirish sifatiga ham e’tibor kerak. | SPDX, OpenLineage, OpenTelemetry spetsifikatsiyalari. |
Ishchi ma’lumotlar muhandisi uchun maqsad har bir fond yoki loyihani yoddan chiqarib qo’yish emas. Maqsad shuki, dastur boshqaruv kontekstida mavjudligini tan olishdir. Xuddi shu xususiyatlar ro’yxati kim yo’l xaritani nazorat qilayotganiga, o’zgartirishlarni kim ko’rib chiqishiga, xavfsizlik muammolari qanday oshkor etilishiga va relizlar qanday saqlanishiga qarab juda turlicha uzoq muddatli xavflarni yashirishi mumkin.
Litsenziyalar, SBOMlar va bog’liqlik xavfi¶
Ochiq manba (open-source) litsenziyasi — bu dasturiy ta’minot bilan nima qilishingiz mumkinligini aniqlovchi huquqiy ruxsat tuzilmasidir. Bu ixtiyoriy metadata emas. U sizga dasturni ichki foydalanishda ishga tushirish, uni o’zgartirish, qayta taqsimlash, tijoriy mahsulotga joylashtirish, tarmoq xizmati sifatida taklif qilish yoki boshqa komponentlar bilan birlashtirish mumkinligini belgilaydi. Ma’lumotlar muhandislari (Data Engineers) odatda korporativ yuristlar emas, ammo ular ko’pincha ishlab chiqarish tizimlarining bir qismiga aylangan kutubxonalar, konteynerlar, connectorlar va xizmatlarni tanlaydilar. Shuning uchun ular erta bosqichda to’g’ri savollarni berish uchun litsenziyalashni yetarlicha tushunishlari kerak.
Ko’p amaliy litsenziya qarorlari ruxsatli litsenziyalar (permissive licenses) va kopyleft litsenziyalari (copyleft licenses) orasidagi farq bilan boshlanadi. MIT, BSD va Apache License 2.0 kabi ruxsatli litsenziyalar keng qayta foydalanishga nisbatan cheklangan majburiyatlar bilan ruxsat beradi, odatda mualliflik huquqi eslatmalarini va litsenziya matnini saqlashni o’z ichiga oladi. Apache License 2.0 shuningdek aniq patent grantini o’z ichiga oladi, bu uni korporativ infratuzilmalarda keng tarqalishiga sabablardan biridir. GPL va AGPL kabi kopyleft litsenziyalari ma’lum hosila ishlanmalarni bir xil litsenziya ostida tarqatishni talab qilib dasturiy erkinlikni saqlaydi. AGPL ayniqsa tarmoq xizmatlari uchun muhim, chunki u o’zgartirilgan dasturiy ta’minotni tarmoq orqali taklif qilish bilan bog’liq majburiyatlarni o’z ichiga oladi.
Figure 4:Ma’lumotlar jamoalari uchun ochiq manba komponentlarini tanlashda amaliy litsenziya va SBOM qaror xaritasi.
Ma’lumotlar muhandislari uchun asosiy farq faqat “ruxsatli yoki kopyleft” emas. Asosiy savol — komponent qanday ishlatiladi. O’zgartirilmagan ma’lumotlar bazasini ichki ravishda ishga tushirish, kutubxonani o’zgartirib uni tijoriy mahsulot ichida jo’natishdan farq qiladi. CI-da buyruq satri vositasidan foydalanish, mijozga yo’naltirilgan xizmatda runtime bog’liqligini embedding qilishdan farq qiladi. O’zgartirilgan AGPL xizmatini tarmoq orqali taklif qilish, Apache litsenziyali client kutubxonasidan foydalanishdan farq qiladi. Shu sababli rivojlangan jamoalar bog’liqliklar, litsenziyalar, versiyalar va joylashtirish kontekstlari inventarizatsiyasini yuritadi.
| Litsenziya turi | Odatdagi misollar | Tipik majburiyat | Ma’lumotlar muhandislari uchun ko’rsatma |
|---|---|---|---|
| Ruxsatli | MIT, BSD, Apache-2.0 | Eslatmalar va litsenziya matnini saqlash; Apache-2.0 patent shartlarini o’z ichiga oladi. | Infratuzilma qabul qilish uchun odatda oddiy, lekin bog’liqlik va versiyani yozib qo’ying. |
| Kuchli kopyleft | GPL | Tarqatilgan hosila ishlanmalar odatda litsenziyani meros qilib oladi. | Huquqiy tekshiruvsiz embedding qilishdan saqlaning; buyruq satrida ishlatish linkingdan farq qilishi mumkin. |
| Tarmoq kopyleft | AGPL | Tarmoq foydalanuvchilari o’zgartirilgan versiyalar uchun manba olish huquqiga ega bo’lishi mumkin. | Xosting xizmatlari, foydalanuvchilarga ochilgan ichki platformalar va SaaS kontekstlari uchun diqqat bilan ko’rib chiqing. |
| Manba-mavjud yoki maxsus | Turli vendor litsenziyalari | Shartlar ishlab chiqarishda foydalanishni, raqobatni yoki boshqariladigan xizmatlarni cheklashi mumkin. | “Ko‘ringan manba” ochiq manba degani emas; OSI/SPDX maqomini va kompaniya siyosatini tekshiring. |
| Ma’lumot, hujjat va model litsenziyalari | Creative Commons, Open Data Commons, modelga xos litsenziyalar | Majburiyatlar artefakt turiga va yurisdiktsiyaga bog’liq. | Kod, ma’lumot, hujjat va modellarni alohida ko’rib chiqing; ma’lumot litsenziyalari dasturiy ta’minot litsenziyasidan farq qiladi. |
Litsenziya boshqaruvi dasturiy ta’minot materiallari ro’yxati amaliyoti bilan bog’lanishi kerak. Black Duck SBOMni tarkibiy komponentlar, bog’liqliklar, litsenziyalar va versiyalarning rasmiy inventari deb tavsiflaydi.[1] CISA ham SBOMni dasturiy komponentlarni tashkil etuvchi ingredientlarning ichki inventari sifatida ta’riflaydi va uni dasturiy ta’minot ta’minot zanjiri xavfini boshqarish uchun qurilish bloki deb hisoblaydi.[6] Ma’lumotlar platformasi uchun SBOM Docker imidjlarini, Python paketlarini, Java JAR fayllarini, Airflow providerlarini, dbt paketlarini, Helm chartlarini va operatsion tizimning asosiy paketlarini qamrab olishi mumkin. To’g’ridan-to’g’ri bog’liqliklarni ro’yxat qilish yetarli emas; tranzitiv bog’liqliklar (transitive dependencies) ham ko’rinadigan bo’lishi kerak, chunki ular ko’pincha zaifliklar yoki litsenziya ziddiyatlarini olib keladi. 2025 yildagi OSSRA xulosasi shuni bildiradiki, tekshirilgan ilovalarning 56%ida litsenziya ziddiyatlari mavjud edi va 33%ida litsenziyasi yo’q yoki moslashtirilgan litsenziya shartlari bor komponentlar topildi.[1]
Professional qoida oddiy: agar vosita ishlab chiqarishga yetib borishi mumkin bo’lsa, uning egasi, versiyasi, litsenziya yozuvi, xavfsizlik yangilanish jarayoni va rollback rejasi bo’lishi shart.
Ishlab chiqarish dizayn namunasi: O’rnatishdan oldin baholang¶
Vosita tanlash — Ma’lumotlar muhandisi (data engineer) ishining eng ko‘zga ko‘ringan mas’uliyatlaridan biridir. Bu, shuningdek, eng oson noto‘g‘ri bajariladigan vazifalardan biridir. Jamoalar ko‘pincha vositalarni ijtimoiy tarmoqlarda mashhur bo‘lganligi, avvalgi ish beruvchida ishlatilganligi, vendor demosining ishontiruvchiligi yoki benchmark jamoaning ish yukiga mos kelmasligiga qaramay ta’sirchan ko‘rinishi tufayli tanlaydi. Ishonchliroq usul — loyiha baholanishini moslik, yetuklik, hamjamiyat, operatsiyalar, xavfsizlik, litsenziyalash, integratsiya va umumiy egalik narxi (total cost of ownership) tamoyillari bo‘yicha o‘tkazishdir.
Figure 5:Konsepsiyani isbotlashdan oldin nomzodlarni solishtirish uchun og’irliklangan ochiq manba (open-source) loyiha baholash ball jadvali.
Yaxshi baholash talablar bilan boshlanadi, vositalar bilan emas. TuranMart avval Kafka yoki Pulsar “qaysi biri yaxshiroq” deb so‘rash bilan boshlamasligi kerak. U kutilayotgan hodisa (event) hajmi qanday, qaysi kechikish (latency) qabul qilinadi, buyruq (ordering) muhimmi, hodisalar qancha vaqt saqlanishi kerak, qaysi iste’molchilar qayta ijro (replay) qilishlari kerak, klasterni kim boshqaradi, qanday bulut va on-premises cheklovlar mavjud va nosozliklar qanday boshqariladi — shularni so‘rashi kerak. Faqat shu kontekst yozib qo‘yilgachgina jamoa texnologiyalarni mas’uliyat bilan solishtira oladi.
Amaliy naqsh qisqa sikldan iborat: biznes talabini aniqlash, nomzod vositalar ro‘yxatini tuzish, ularni og‘irliklangan mezonlar bo‘yicha baholash, dalillarni to‘plash, torroq Konsepsiya isboti (POC) (proof of concept) o‘tkazish, arxitektura qarorini yozib qo‘yish va ko‘rib chiqish sanasini belgilash. Ko‘rib chiqish sanasi muhim, chunki hajm, kechikish, jamoa ko‘nikmalari, muvofiqlik talablari yoki bulut strategiyasi o‘zgarganda oldingi yaxshi qaror noto‘g‘ri bo‘lib qolishi mumkin.
| Mezon | Og’irlik | Yig’iladigan dalillar | Namuna savollar |
|---|---|---|---|
| Funktsional moslik | 20% | Talablar ro’yxati, funksiyalarni sinash, API ko’rib chiqish. | Vosita haqiqiy ish yukini hal qiladimi yoki moda bo‘lgan yon muammoni hal qilish bilan cheklanib qoladimi? |
| Operatsion yetuklik | 20% | Upgrade hujjatlari, zaxira/tiklash sinovlari, kuzatuvchilik (observability) o’rnatmalari, nosozlik holatlari. | Jamoa favqulodda vaziyatda soat 03:00 da uni ishga tushira oladimi? |
| Hamjamiyat sog‘lomligi | 15% | Reliz tezligi, muhofaza qiluvchilar xilma-xilligi, muammolarga javob berish, hissa qo’shish naqshi. | Loyiha barqaror hamjamiyat tomonidan saqlanadimi yoki bitta ortiqcha yuklangan muhofaza qiluvchi tomonidan boshqariladimi? |
| Xavfsizlik va muvofiqlik | 15% | CVE tarixi, dasturiy ta’minot materiallari ro’yxati (SBOM) qo’llab-quvvatlanishi, imzoli relizlar, litsenziya tekshiruvi. | Tashkilot uni yamay oladimi va audit qila oladimi? |
| Integratsiya ekotizimi | 10% | Konnektorlar, SDKlar, fayl formatlarini qo’llab-quvvatlash, bulutga moslik. | U mavjud manbalar, sinklar va boshqaruv (governance) vositalariga ulanadimi? |
| O’rganish egri chizig’i | 10% | Hujjatlar, misollar, lokal rivojlantirish tajribasi, trening resurslari. | Yangi jamoa a’zolari haftalar ichida samarali bo’la oladimi yoki buning uchun oylar kerak bo’ladimi? |
| Xarajat va kengayuvchanlik | 10% | Infratuzilma baholari, benchmark ishlari, qo’llab-quvvatlash variantlari. | Hajm oshgani sayin hisoblash, saqlash va xodimlar xarajatlariga nima bo’ladi? |
Konsepsiya isboti (POC) (proof of concept) ataylab kichik, ammo real bo‘lishi kerak. TuranMart uchun foydali POC bir kunlik orders.csv va events.jsonl fayllarini yuklab, kerakli maydonlarni tekshirib, Parquet formatida Ob’ektli saqlash (object storage)ga yozib, kundalik savdo jadvalini o’zgartirib va oddiy boshqaruv paneli sorovini taqdim etishi mumkin. POC muvaffaqiyatli ishlash bilan bir qatorda nosozlik xatti-harakatlarini ham sinashi kerak: noto‘g‘ri formatdagi qatorlar, sxema o‘zgarishlari, qayta urinib ko‘rishlar (retries), takroriy hodisalar, yo‘qolgan partitsiyalar va sekin downstream tizimlar.
Vositalarni faqat GitHub yulduzlari bilan baholashdan saqlaning. Yulduzlar qiziqishni o‘lchaydi, lekin majburiy ravishda ishlab chiqarishga moslikni emas. Banklar tomonidan ishlatiladigan yetuk ma’lumotlar bazasi kutubxonasi yaxshi marketingga ega yangi developer vositasidan kamroq yulduzlarga ega bo‘lishi mumkin. Yaxshiroq signallar — relizlar ritmi, hujjatlashtirilgan yangilash yo‘llari, muhofaza qiluvchilar xilma-xilligi, ommaviy xavfsizlik jarayonlari, moslik kafolatlari va ishlab chiqarish holatlarining mavjudligidir. Xavfsizlikga yo‘naltirilgan baholash avtomatlashtirilgan dalillardan ham foydalanishi mumkin. Masalan, OpenSSF Scorecard ochiq manba loyihalarni xizmat ko‘rsatish, bog‘liqliklarni yangilash vositalari, xavfsizlik siyosati, litsenziya e’lon qilish, testlar, branch himoyasi, kod ko‘rib chiqish, pin qilingan bog‘liqliklar va imzoli relizlarni qamrab oluvchi tekshiruvlar orqali baholaydi.[7] Avtomatlashtirilgan ballar muhandislik hukmini oʻrnini bosa olmaydi, ammo chuqurroq ko‘rib chiqish uchun foydali boshlang‘ich nuqta bo‘lishi mumkin.
Yadro ochiq manba ma’lumotlar muhandisligi vositalari to’plami¶
Ochiq manba ma’lumotlar muhandisligi vositalari to’plami katta, lekin arxitektura roli bo’yicha guruhlaganda uni tushunish osonlashadi. Muvaffaqiyatli ma’lumotlar muhandisi (Data Engineer) vosita tanlashdan boshlamaydi; u avvalo ish yukini belgilashdan boshlaydi. Ish yukimi tranzaksionmi yoki analitikmi? U cheklangan (paketli) yoki cheksiz (oqimli)mi? U milisekund darajasidagi kechikishni (Latency) talab qiladimi yoki kunlik yangilanishlar yetarlimi? Muayyan mahsulot nomlarini baholashdan oldin ushbu dizayn qarorlari haqida aniq konseptual xaritaga ega bo’lishingiz kerak.
Figure 6:TuranMart’ning dastlabki ma’lumotlar platformasi uchun takrorlanuvchi (Reproducible) ochiq manba referens arxitekturasi.
Saqlash dizayni qarorlari: Saqlash tizimlari platformaning chidamliligi, kirish naqshlari va izchillik (Consistency) kafolatlarini belgilaydi. Asosiy savol — tizim yuqori konkurrentlikdagi, qatordagi darajadagi operatsion tranzaksiyalarni (OLTP) qo’llab-quvvatlashni talab qiladimi yoki katta miqyosdagi, ustunli analitik skanerlashlar (OLAP)mi? PostgreSQL va MySQL relatsion OLTP ish yuklari uchun asosiy vositalar bo’lib qolmoqda. MongoDB, Cassandra va Redis kabi NoSQL tizimlari esa maxsus operatsion ehtiyojlarni qondiradi: moslashuvchan hujjatlar, yuqori yozuvli taqsimlangan jadvallar va past kechikishli keshlash. Analitik saqlashda qaror ko’pincha hisoblashni saqlashdan ajratishga o’zgaradi. MinIO kabi ob’ektli saqlash (Object Storage) ma’lumotlar ko’li (Data Lake) uchun poydevor hisoblanadi, chunki u xom, yarim tuzilgan va analitik fayllarni arzon saqlashni va S3-ga mos APIlar orqali foydalanishni ta’minlaydi.
Qayta ishlash dizayni qarorlari: Qayta ishlash freymvorklari ma’lumotlarni xom operatsion holatdan analitik formatga o’zgartiradi. Asosiy qaror — hajm va kechikish. Ish yukini bitta mashinada bajarish mumkinmi yoki taqsimlangan klaster kerakmi? Bu kundalik paketli ishmi yoki uzluksiz oqimmi? DuckDB bitta mashina uchun analitika, notebooklar va testlar uchun juda foydali. Apache Spark — katta paketli ishlar va SQL hamda DataFrame APIlari bo’yicha yagona interfeysni talab qiluvchi jamoalar uchun mos taqsimlangan qayta ishlash dvigateli. Apache Flink esa holatli oqimli qayta ishlash uchun mo’ljallangan va voqea-vaqti to’g’riligi hamda murakkab oynalar talab etilganda tanlanadi.
dbt Core boshqa, lekin teng darajada muhim rolni egallaydi. U umumiy qayta ishlash dvigateli sifatida Spark yoki Flink o’rnini egallamaydi. Buning o’rniga u SQL o’zgartirishlariga dasturiy muhandislik intizomini olib keladi: modul modellari, bog’liqlik grafi, testlar, hujjatlar va takrorlanadigan qurilmalar. Ombor-markazli ELT arxitekturasida dbt xom yuklangan ma’lumotlar bilan ishonchli analitik modellarning o’rtasidagi asosiy interfeysga aylanishi mumkin.
Oqimli tizimlar (streaming) produserlar va iste’molchilar o’rtasida voqealarni deyarli real vaqtda uzatadi. Apache Kafka ko’plab tashkilotlarda hukmron oqimli platforma hisoblanadi, chunki u chidamli mavzular, qayta ijro etish, iste’molchi guruhlari va keng connector ekotizimini taqdim etadi. Apache Pulsar xizmat va saqlash qatlamlarini ajratgan boshqa arxitektura, ichki ko’pijtomanlik va geo-replikatsiya xususiyatlarini taklif etadi. Redpanda ba’zi muhitlarda operatsiyalarni soddalashtirish uchun optimallashtirilgan Kafka-mos yondashuvni taqdim etadi.
Orkestratsiya (Orchestration) vositalari ishlarni jadvalga qo’yadi, muvofiqlashtiradi, qayta urinadi va monitoring qiladi. Apache Airflow keng qo’llanilayotgan ochiq manba orkestrator bo’lib qolmoqda, chunki uning Python DAG modeli moslashuvchan va provayder ekotizimi keng. Prefect va Dagster Python-ga yaqin rivojlanishni, lokal testni, ma’lumot aktivlarini va yaxshilangan ishlab chiquvchi tajribasini ta’kidlaydigan zamonaviy yondashuvlarni taklif etadi. Kubernetes-ga asoslangan muhitlarda Argo Workflows ko’p uchraydi. Eslatma: orkestrator o’zi quvur (pipeline) emas. U ma’lumotlar bazalari, Spark ishlar, dbt buyruqlari, Python skriptlari yoki APIlar tomonidan bajarilayotgan ishlarni muvofiqlashtirishi kerak.
Platformalar o’sgani sayin eng qimmatli vositalar ko’pincha jimlikdagi nosozliklarni oldini oladiganlar bo’ladi. Great Expectations, Soda Core va dbt testlari ma’lumotlar sifati (Data Quality) bo’yicha kutishlarni ifoda etishda yordam beradi. OpenLineage va Marquez lineage voqealarini yozadi, shunda jamoalar yuqori va pastki bog’liqliklarni tushunishi mumkin. Prometheus, Grafana va OpenTelemetry operatsion o’lchovlar va izlarni (traces) ochib beradi — bu esa kuzatuvchilik (Observability)ni ta’minlaydi. DataHub va OpenMetadata katalog, egalik, atamalar lug’ati va kashf etish imkoniyatlarini beradi.
| Platforma qatlami | Odatdagi ochiq manba vositalari | Asosiy qaror savoli |
|---|---|---|
| Operatsion saqlash | PostgreSQL, MySQL, MongoDB, Cassandra, Redis | Ilovaga qanday izchillik (Consistency), kechikish (Latency) va so’rov naqshi kerak? |
| Ob’ektli saqlash va ma’lumotlar ko’li | MinIO, S3-compatible APIs, Parquet | Xom va qayta ishlangan fayllar qanday qilib takrorlanuvchan saqlanadi? |
| Paketli qayta ishlash | DuckDB, Spark, Trino | Qanday ma’lumot hajmi va konkurrentlik qo’llab-quvvatlanishi kerak? |
| Oqimli qayta ishlash | Kafka, Pulsar, Flink, Redpanda | Qanday yangilik darajasi, tartib, qayta ijro va holat talablari mavjud? |
| O’zgartirishlar | dbt Core, SQLMesh, Spark SQL | Biznes mantiqi qanday sinovdan o’tkaziladi, ko’rib chiqiladi va hujjatlashtiriladi? |
| Orkestratsiya | Airflow, Dagster, Prefect, Argo | Bog’liqliklar, jadval, qayta urinishlar va ogohlantirishlar qanday boshqariladi? |
| Sifat va kuzatuvchilik | Great Expectations, Soda, OpenLineage, Prometheus, Grafana | Nosozliklar foydalanuvchilar sezishidan oldin qanday aniqlanadi? |
| Katalog va boshqaruv | DataHub, OpenMetadata, Amundsen | Egalik, ta’riflar, lineage va kashf etish qanday saqlanadi? |
| Lakehouse / ko’l-ombor jadvallari | Delta Lake, Apache Iceberg, Apache Hudi | Fayllar qanday qilib jadvallarga metama’lumotlar (Metadata), sxema evolyutsiyasi (Schema Evolution), tranzaksiyalar va portativlikni qo’lga kiritadi? |
Ushbu vositalar to’plami kuchli, lekin kuch integratsiya ishini keltirib chiqaradi. Yaxshi platforma maksimal vositalar soni emas. U hozirgi biznes muammosini hal qiladigan minimum izchil vositalar to’plami va keyingi kengayish bosqichiga migratsiya yo’lini qoldiradigan to’plamdir.
Ekotizimga qaytib hissa qoʻshish¶
Koʻpchilik muhandislar avvaliga ochiq manba (open-source) iste’molchilari sifatida boshlaydi. Ular paketlarni oʻrnatadi, misollarni nusxa koʻchiradi, hujjatlarni oʻqiydi va savollar beradi. Malakangiz oshgan sayin, ishtirokchi bo’lishingiz kerak. Hissa qoʻshish faqat saxiylik emas; bu yaxshiroq muhandis boʻlishning eng samarali usullaridan biridir. Haqiqiy muammo ipini oʻqish mukammal qoʻllanmalar yashirishga moyil bo‘lgan kompromisslarni oʻrgatadi. Hujjatlarni tuzatish vositani aniq tushunishga majbur qiladi. Kichik pull soʻrovi (pull request) yuborish testlar, koʻzdan kechirish odob-axloqi, moslik va saqlovchilik (maintainership) kutishlarini oʻrgatadi.
Hissa qoʻshish kod bilan boshlanishi shart emas. Ma’lumotlar muhandisligi (data engineering) loyihalarida qimmatli hissalar o’rnatish koʻrsatmalarini yaxshilash, kichik takrorlanuvchan misol qoʻshish, konnektorning chekka holatini hujjatlashtirish, xato xabarlarini aniqroq muammolarni bartaraf etish bosqichlariga tarjima qilish, xato uchun test qoʻshish, namunaviy Docker Compose fayli yaratish, Helm values misolini yaxshilash yoki minimal reproduksiya bilan muammoni triage qilish kabi narsalar bo’lishi mumkin.
| Hissa turi | Yangi boshlovchilar uchun qulay misol | Saqlovchilar buni nega qadrlashadi |
|---|---|---|
| Hujjatlashtirish | Airflow uchun eskirgan provayder misolini tuzatish. | Hujjatlar takroriy qoʻllab-quvvatlash savollarini kamaytiradi va qabul qilinishni yaxshilaydi. |
| Takrorlanuvchalik (Reproducible) bilan xato hisobi | Kirish ma’lumotlarini, kutilgan natijani, haqiqiy natijani, versiyalarni va jurnallarni taqdim eting. | Saqlovchilar xatoni tezroq aniqlash va sinab koʻrishlari mumkin. |
| Test misoli | Sxema evolyutsiyasi (schema evolution) xatosini qayta hosil qiladigan muvaffaqiyatsiz test qoʻshing. | Testlar tuzatish birlashtirilgandan keyin regressiyalardan himoya qiladi. |
| Konnektorni yaxshilash | Kafka, S3 yoki ma’lumotlar bazasi konnektoriga yangi parametr qoʻshish. | Konnektorlar koʻpincha real dunyodagi foydalanish qulayligini belgilaydi. |
| Jamoat qoʻllab-quvvati | Sinab koʻrilgan minimal misol bilan savolga javob bering. | Sogʻlom jamoalar faqat saqlovchilarga emas, tengdosh yordamiga ham tayanib kengayadi. |
Hurmat bilan yondashiladigan hissa jarayoni odatda taxminan oldindan belgilangan yoʻnalishni kuzatadi. Avvalo, nusxalarning oldini olish uchun mavjud masalalar va muhokamalarni qidiring. Ikkinchidan, muammoni qayta hosil qiling yoki soʻralgan yaxshilanishni tasdiqlang. Uchinchi, agar oʻzgartirish katta boʻlsa, saqlovchilar bu hissani qabul qiladimi, deb soʻrang. Toʻrtinchi, testlar va hujjat bilan kichik branch yarating. Beshinchi, motivatsiya, amalga oshirish va tekshirishni tushuntiruvchi pull soʻrovini oching. Nihoyat, koʻzdan kechirishga sabr bilan javob bering. Saqlovchilar barcha foydalanuvchilarni, faqat sizning foydalanish holatingizni emas, himoya qilmoqdalar. OpenSSF Best Practices materiallari foydali oʻqishdir, chunki ular hissa qoʻshish odatlarini xavfsiz rivojlanish, bogʻliqliklarni yangilash, manba-kod boshqaruvi va loyiha salomatligi bilan bogʻlaydi.[8]
Hissa qoʻshish fikri kompaniyangiz ichida ham yordam beradi. Agar TuranMart ochiq manba konnektorini ichki ravishda oʻzgartirsa, jamoa oʻzgarish umumiy qilib yuqoriga (upstream) qoʻshilishi mumkinligini soʻrashi kerak. Upstreamga qoʻshish uzoq muddatli texnik xizmat yukini kamaytiradi, chunki jamoa xususiy patchni abadiy koʻtara olmadi. Hatto upstreamga qoʻshish mumkin boʻlmasa ham, jamoa forkni, egasini, sababini va rebase jarayonini hujjatlashtirishi kerak.
Amaliy laboratoriya: Vosita baholash matrisi va loyiha shabloni¶
Ushbu bob uchun amaliy artefakt — vosita baholash matrisi va takrorlanuvchilik (reproducible) loyiha shabloni. Siz hali og’ir taqsimlangan tizimni ishga tushirmaysiz. Buning o’rniga keyingi boblarni takrorlab chiqishni osonlashtiruvchi qaror hujjatini va papka tuzilmasini yaratishingiz kerak.
Ishchi nusxada tayyorlangan laboratoriya papkasini shared/labs/ch03_open_source_ecosystem/ oching. U boshlang’ich artefaktlar, mashqlar va validatsiya skriptini o’z ichiga oladi. Maqsad — vositalarni o’rnatishdan oldin baholashni mashq qilish va I qismni takrorlanuvchan loyiha skeleti bilan tugatish.
| Laboratoriya materiali | Maqsadi | Havola |
|---|---|---|
| Laboratoriya README | Kichik yakuniy loyiha (mini-capstone) ni tushuntiradi, tezkor boshlash va yakunlash bo’yicha nazorat ro’yxatini beradi. | README.md |
| Baholash matrisi | Airflow, Dagster va Prefectni solishtiruvchi boshlang’ich og’irliklangan CSV. | tool_evaluation_matrix.csv |
| Me’moriy qaror yozuvi | Kontekst, qaror, alternativalar, oqibatlar, dalillar va ko’rib chiqish qo’zg’atuvchilari bilan boshlang’ich ADR. | architecture_decision_record.md |
| Loyiha shabloni daraxti | TuranMart ma’lumotlar platformasi uchun kanonik papkalar tuzilmasi. | project_template_tree.txt |
| Validator | Matritsa mezonlari, og’irliklar va og’irliklangan ballarni tekshiradigan Python skripti. | tests/validate_scores.py |
| Mashq varaqasi | Dalillarni chuqurroq yig’ish va shablonni yaxshilash uchun qo’shimcha vazifalar. | exercises/README.md |
| Yechim qo’llanmasi | Boshlang’ich matritsa va ADRning namunaviy talqini. | solution.md |
Baholash matrisi og’irliklangan ballardan foydalanishi kerak. Tayyor CSV mazmunidan boshlang va uni bitta qaror uchun moslashtiring — masalan, orkestratsiya (Orchestration) vositasini tanlash, oqimli qayta ishlash (streaming) platformasi yoki ma’lumotlar sifati (Data Quality) vositasini tanlash.
criterion,weight,airflow,dagster,prefect,evidence_required
functional_fit,0.20,4,4,4,requirements checklist and minimal DAG/flow example
operational_maturity,0.20,5,4,4,upgrade documentation and production references
community_health,0.15,5,4,4,release cadence and contributor diversity
security_compliance,0.15,4,4,4,license review SBOM and vulnerability process
integration_ecosystem,0.10,5,4,4,providers connectors and APIs
learning_curve,0.10,3,4,4,getting started time and local developer experience
cost_scalability,0.10,4,4,4,infrastructure estimate and scaling modelOg’irliklangan ballni hisoblash uchun har bir ballni uning mezon og’irligi bilan ko’paytiring va natijalarni jamlang. Validatordan repozitoriy ildizidan ishga tushiring:
python shared/labs/ch03_open_source_ecosystem/tests/validate_scores.pyKutilayotgan chiqish matrisi haqiqiy ekanligini tasdiqlashi va har bir nomzod uchun og’irliklangan ballarni chop etishi kerak. Agar nomzod nomlarini biroz o’zgartirsangiz, aniq format biroz farq qilishi mumkin, lekin muvaffaqiyatli ish shunday ko’rinishda bo’lishi kerak:
Weighted scores
---------------
airflow: 4.35
dagster: 4.00
prefect: 4.00
Validation passed: matrix shape, criteria, and weights are valid.Me’moriy qaror yozuvi (Architecture Decision Record) kontekst, qaror, alternativalar, oqibatlar, ishlab chiqarishga chiqarishdan oldingi talab etiladigan dalillar va ko’rib chiqish muddatini o’z ichiga olishi kerak. Tilni ixcham ishlating. Maqsad byurokratiya emas; bu xotira. Uch oy o’tgach, jamoangiz nima uchun vosita tanlanganini va qaysi taxminlar qarorni mavjud bo’lmagan qilishini bilishi kerak.
Nihoyat, takrorlanuvchilikka yo’naltirilgan loyiha shablonini (Shablon) belgilang. Birinchi versiyani sodda, ammo realistik qiling. Boshlang’ich daraxt keyingi boblar uchun tayyorlashi, lekin har bir xizmatni darhol talab qilmasligi kerak.
turanmart-data-platform/
├── README.md
├── Makefile
├── docker-compose.yml
├── .env.example
├── data/
│ ├── raw/
│ ├── bronze/
│ ├── silver/
│ └── gold/
├── pipelines/
│ ├── ingestion/
│ ├── validation/
│ └── orchestration/
├── transformations/
│ ├── staging/
│ ├── marts/
│ └── tests/
├── quality/
│ ├── expectations/
│ └── reports/
├── docs/
│ ├── adr/
│ ├── diagrams/
│ └── runbooks/
├── scripts/
├── tests/
└── config/Amaliyot oxirida sizda kichik, ammo qimmatbaho artefakt bo’lishi kerak: vositalarni taqqoslash, qarorlarni yozib qo’yish va loyihalarni konsistent boshlash uchun takrorlanadigan yo’l. Referens yechim boshlang’ich matritsa va ADR ning bir qabul qilinadigan talqinini ko’rsatadi, lekin kuchliroq dars shundaki, agar taxminlar va dalillar ochiq-oydin bo’lsa, boshqa javob ham to’g’ri bo’lishi mumkin. Ushbu artefakt keyingi boblarda ma’lumotlar bazalari, ob’ektli saqlash (Object Storage), qayta ishlash dvigatellari, oqimli tizimlar, orkestratsiya (Orchestration) vositalari va kuzatuvchilik (Observability) komponentlarini tanlashda qayta ishlatiladi.
| Kichik yakuniy loyiha artefakti | Qabul qilish mezoni | Nima uchun keyin muhim |
|---|---|---|
| Og’irliklangan baholash matrisi | Mezonlar yig’indisi 1.0 ga teng, har bir nomzodda sonli ballar bor va har bir ball uchun dalil keltirilgan. | Keyingi texnologiya tanlovlari fikrga tayangan holda boshqatdan boshlash o’rniga xuddi shu qaror intizomini qayta ishlatishi mumkin. |
| Me’moriy qaror yozuvi | Kontekst, qaror, alternativalar, oqibatlar, dalil bo’shliqlari va ko’rib chiqish qo’zg’atuvchilari aniq yozilgan. | Kelgusi boblar kuchliroq vositalarni taqdim etadi va jamoaga oldingi taxminlarni qayta ko’rib chiqish usuli kerak bo’ladi. |
| Loyiha shabloni daraxti | Papkalar xom ma’lumotlar, kuratsiya qilingan ma’lumotlar, quvurlar, transformatsiyalar, sifat tekshiruvlari, hujjatlar, skriptlar, testlar va konfiguratsiyani ajratadi. | Takrorlanadigan tuzilma notebooklar, skriptlar va operatsion eslatmalarni tarqoq bo’lib ketishidan saqlaydi. |
| Validatsiya chiqishi | Validator repozitoriy ildizidan ishga tushadi va matritsa shakli, mezonlar hamda og’irliklarni tasdiqlaydi. | Kichik avtomatlashtirilgan tekshiruv faqat ishlab chiqarish kodini emas, loyiha artefaktlarini ham sinovdan o’tkazish odatini shakllantiradi. |
Laboratoriyani bartaraf etish bo’yicha maslahatlar¶
| Alomat | Ehtimoliy sabab | Yechim |
|---|---|---|
python: command not found | Tizimingizda Python python o’rniga python3 sifatida mavjud. | python3 shared/labs/ch03_open_source_ecosystem/tests/validate_scores.py ni ishga tushiring. |
Validator og’irliklar yig’indisi 1.0 ga teng emas deydi | Qator o’chirilgan, dublikat qilingan yoki noto’g’ri o’nlik bilan tahrirlangan. | weight ustunini tekshirib, yetti mezon yig’indisi aynan 1.0 ga teng ekaniga ishonch hosil qiling. |
| Validator talab qilinadigan mezon yo’qligini bildiradi | Mezon nomi o’zgartirilgan yoki bosh harflar boshqacha qo’llangan. | Validatorni ham yangilamasangiz, boshlang’ich CSV dagi mezon nomlaridan aynan o’shani ishlating. |
| Vosita g’olib bo’ladi, lekin izoh sust tuyuladi | Ballar dalilsiz berilgan. | Hujjatlarga havolalar, kontsept isboti (proof-of-concept) qaydlari, ishlashga oid taxminlar va ko’rib chiqish qo’zg’atuvchilarini ADR ga qo’shing. |
| Shablon haddan tashqari kattalashadi | Loyiha skeleti barcha kelajakdagi xizmatlarni qo’shishga urinadi. | Faqat barqaror papkalar va konvensiyalarni qoldiring; og’ir xizmatlarni keyingi bob laboratoriyalarida qo’shing. |
Umumiy tuzoqlar va operatsion darslar¶
Birinchi tuzoq — vositalarni to’plash (tool collecting). Yangi ma’lumotlar muhandislari (Data Engineer) ko’p hollarda zamonaviy platformada har bir mashhur loyiha bo’lishi kerak deb o’ylashadi. Aslida, har bir vosita o’rnatish ishlarini, kirish ma’lumotlarini, monitoringni, yangilashlarni, muvaffaqiyatsizlik holatlarini va trening talablarini qo’shadi. Jamoa boshqarishi mumkin bo’lgan kichik, mantiqiy stekni afzal ko’ring.
Ikkinchi tuzoq — boshqariladigan xizmatning qulayligini ochiq manba (open-source) portativlik bilan adashtirish. Bulut xizmati tanish ochiq manba APIsini ko’rsatishi mumkin, lekin unga patentlangan xususiyatlar, konfiguratsiya, metama’lumotlar yoki ishlash xatti-harakatlari qo’shilgan bo’lishi mumkin. Bu har doim yomon emas, ammo bu aniq ko’rsatilishi kerak. Agar ko’chiriluvchanlik muhim bo’lsa, migratsiya yo’llarini erta sinab ko’ring.
Uchinchi tuzoq — litsenziyalar va bog’liqliklarni xarid yoki xavfsizlik tekshiruvigacha e’tibordan chetda qoldirish. Shunda jamoa allaqachon yuridik yoki operatsion tortishuvlar keltirib chiqaruvchi komponentga tayanib qolishi mumkin. Bog’liqliklar inventarizatsiyasini va litsenziya tekshiruvini loyihaning shabloniga boshidan kiritib qo’ying.
To’rtinchi tuzoq — muvaffaqiyatsizlik sinovlarisiz vositalarni tanlash. Faqat muvaffaqiyatli holatdagi demo kam narsani isbotlaydi. Foydali konsepsiya isboti (Proof of Concept (POC)) noto’g’ri tuzilgan ma’lumotlar, tarmoq uzilishi, takroriy hodisalar, sekin so’rovlar, qisman yozuvlar, Sxema (schema) o’zgarishlari va tiklash qadamlarini o’z ichiga oladi.
Beshinchi tuzoq — hamjamiyatga qatnashmasdan unga suyanish. Ochiq manba loyihalari hissa bilan qo’llab-quvvatlanadi. Hatto kompaniyangiz katta kod kiritolmasa ham, u yuqori sifatli xatolik hisobotlarini yuborishi, hujjatlarni yaxshilashi, operatsion darslarni baham ko’rishi, parvarishlovchilarni homiylik qilishi yoki ko’ngilli mutaxassislar tomonidan bepul yordam talab qilmaslik kabi amaliy yordamlarni amalga oshirishi mumkin.
Mashqlar¶
| Daraja | Mashq | Kutilayotgan dalil |
|---|---|---|
| Oson | Vositalar jadvalidan bitta kategoriyani tanlang va og’irliklangan matrisa yordamida uchta vositani taqqoslang. | To’ldirilgan CSV fayli va tanlangan vositani tushuntiruvchi qisqa paragraf. |
| O’rta | Allaqachon ishlatayotgan bitta ochiq manba (open-source) loyihani tanlang. Uning litsenziyasini, so’nggi chiqarilish sanasini, hissa qo’shish yo’riqnomasi, xavfsizlik siyosati va boshqaruv modelini toping. | Manba havolalari bilan birga bitta sahifalik qabul qilish-xavf eslatmasi. |
| O’rta | Kichik Python ma’lumotlar loyihasi uchun dasturiy ta’minot materiallari ro’yxati (SBOM) uslubidagi inventarizatsiya yarating. Paket nomi, versiya, litsenziya, to’g’ridan-to’g’ri yoki tranzitiv bog’liqlik holati va egasini kiriting. | To’g’ridan-to’g’ri va tranzitiv bog’liqliklarni ajratib ko’rsatadigan jadval. |
| Murakkab | Yordam bera oladigan ma’lumotlar muhandisligi loyihasidagi haqiqiy GitHub muammosini toping. Past sifatli izoh yubormang. Buning o’rniga, muammoni qanday takrorlashni va qanday ma’lumotlarni taqdim etishni tushuntiruvchi mahalliy qoralama yozing. | Xurmat bilan yozilgan muammo-javob qoralamasi va takrorlash bosqichlari. |
| Jamoa | TuranMart loyiha shablonini Makefile yoki task runner bilan kengaytiring. setup, test, format, lint va clean buyruqlarini qo’shing. | Ishga tushiriladigan task fayli va mahalliy foydalanishni tushuntiruvchi qisqa README. |
Takrorlash savollari¶
Nega “bepul yuklab olish mumkin” ochiq manba (open-source) ta’rifining ishlab chiqarishdagi ma’lumotlar muhandisligi (data engineering) uchun to’liq emasligini aytish mumkin?
Qanday signal(lar) TuranMart uchun fond yetakchiligidagi loyiha (foundation-led project)ni xavfsizroq yoki xavfliroq qilib ko’rsatadi?
Joylangan ma’lumotlar platformasida (hosted data platform) ruxsat beruvchi litsenziya (permissive license) bilan tarmoq copyleft litsenziyasi (network copyleft license) o’rtasida qanday farq bor?
Nega tranzitiv bog’liqlik (transitive dependencies) dasturiy ta’minot materiallari ro’yxati (SBOM) va zaifliklarni boshqarishda (vulnerability management) muhimdir?
Nega vositalarni baholash matrisi (tool evaluation matrix)ni boshlashda avvalo talablar (requirements)ni, emas balki nomzod vositalar (candidate tools)ni emas, aniqlash kerak?
Orkestrator (orchestrator) bilan uni muvofiqlashtiradigan haqiqiy ma’lumotlar quvuri (data pipeline) mantiqi o’rtasidagi farq nima?
Qachon jamoa Spark (Spark) kabi taqsimlangan dvigatel (distributed engine) o’rniga DuckDB (DuckDB) kabi kichik mahalliy vositani tanlaydi?
Qaysi taxminlar me’moriy qaror yozuviga (Architectural Decision Record, ADR) yozilishi kerak, shunda qarorni keyinchalik qayta ko’rib chiqish mumkin bo’ladi?
Xulosa¶
Ochiq manba (open source) zamonaviy ma’lumotlar muhandisligining asosidir, chunki infratuzilma muammolari keng ulashiladi, integratsiya muhim, shaffoflik ishonchni mustahkamlaydi va hamjamiyatlar yolg’iz jamoalardan tezroq dasturiy ta’minotni yaxshilashi mumkin. Ammo ochiq manba sehr emas. Bu litsenziyalar, Boshqaruv (Governance) modellari, saqlovchilar, chiqarish jarayonlari, bog’liqliklar va operatsion mas’uliyatlardan tashkil topgan ekotizim (ecosystem)dir.
Ushbu bobda siz ochiq manba aylanish mexanizmi (flywheel) qanday ishlashini, ASF va CNCF kabi fondlarning nima uchun muhimligini, ruxsatli (permissive) va kopyleft (copyleft) litsenziyalar qabul qilinishga qanday ta’sir qilishini, dasturiy ta’minot materiallari ro’yxati (SBOM) yondashuvi orqali bog’liqliklar boshqaruvi qanday yaxshilanishini va vositalarni og’irliklangan matrisa yordamida qanday baholashni o’rgandingiz. Siz, shuningdek, keyingi boblarni qo’llab-quvvatlaydigan amaliy loyiha shablonini yaratdingiz. Keyingi bobda siz ekotizim strategiyasidan ushbu ekotizimdagi eng barqaror qurilish bloklaridan biriga — PostgreSQL va MySQL bilan ishlaydigan munosabatli ma’lumotlar bazalariga o’tasiz.
Adabiyotlar¶
Laboratoriya materiallari¶
| Laboratoriya materiali | Maqsad | Havola |
|---|---|---|
| Laboratoriya README | Bosqichma-bosqich ko’rsatmalar, tozalash va muammolarni bartaraf etish. | README |
| Mashqlar | Ushbu bob uchun qo’shimcha amaliy mashqlar. | exercises |
| Yechim qo’llanmasi | Dizayn tanlovlari va kutilayotgan natijalar bo’yicha izoh. | solution |