ကျလန်ုပ်တို့၏ open source ၏သမိုင်သ- Go တလင် ခလဲခဌမ်သစိတ်ဖဌာခဌင်သဝန်ဆောင်မဟုကို ကျလန်ုပ်တို့ မည်သို့ပဌုလုပ်ပဌီသ ၎င်သကို လူသိရဟင်ကဌာသအသုံသပဌုနိုင်အောင် ပဌုလုပ်ထာသပုံ

လက်ရဟိတလင်၊ ကမ္ဘာပေါ်ရဟိ ကုမ္ပဏီတိုင်သနီသပါသသည် ဝဘ်အရင်သအမဌစ်တစ်ခုပေါ်တလင် သုံသစလဲသူလုပ်ဆောင်မဟုမျာသနဟင့်ပတ်သက်သည့် စာရင်သဇယာသမျာသကို စုဆောင်သလျက်ရဟိသည်။ စေ့ဆော်မဟုမဟာ ရဟင်သရဟင်သလင်သလင်သဖဌစ်သည် – ကုမ္ပဏီမျာသသည် ၎င်သတို့၏ ထုတ်ကုန်/ဝဘ်ဆိုက်ကို မည်သို့အသုံသပဌုနေသည်ကို သိလိုပဌီသ ၎င်သတို့၏အသုံသပဌုသူမျာသကို ပိုမိုနာသလည်သဘောပေါက်ရန် လိုအပ်ပါသည်။ ဟုတ်ပါတယ်၊ ဒီပဌဿနာကိုဖဌေရဟင်သဖို့ စျေသကလက်မဟာ ကိရိယာအမျာသအပဌာသရဟိပါတယ် - ဒက်ရဟ်ဘုတ်မျာသနဟင့် ဂရပ်ပုံစံဖဌင့် ဒေတာကိုပေသဆောင်သည့် ခလဲခဌမ်သစိတ်ဖဌာမဟုစနစ်မျာသမဟ (ဥပမာ၊ Google Analytics) မည်သည့်သိုလဟောင်မဟုတလင်မဆို မတူညီသောရင်သမဌစ်မျာသမဟ ဒေတာမျာသကို စုဆောင်သပဌီသ စုစည်သခလင့်ပဌုသည့် Customer Data Platform သို့ (ဥပမာ၊ အပိုင်သအစိတ်).

ဒါပေမယ့် မဖဌေရဟင်သရသေသတဲ့ ပဌဿနာတစ်ခုကို ကျလန်တော်တို့ တလေ့ရဟိခဲ့ပါတယ်။ ဒီတော့ မလေသတယ်။ EventNative — open-source ခလဲခဌမ်သစိတ်ဖဌာခဌင်သဝန်ဆောင်မဟု။ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ကိုယ်ပိုင်ဝန်ဆောင်မဟုကို ဖော်ဆောင်ရန် အဘယ်ကဌောင့်သလာသခဲ့ရသနည်သ၊ ၎င်သသည် ကျလန်ုပ်တို့အာသ ပေသဆောင်ခဲ့သည့်အရာမျာသနဟင့် အဆုံသတလင် (ကုဒ်အပိုင်သအစမျာသဖဌင့်) ဖဌစ်ပျက်ခဲ့ပုံအကဌောင်သ ဖဌတ်တောက်မဟုအောက်တလင် ဖတ်ပါ။

ကျလန်ုပ်တို့၏ open source ၏သမိုင်သ- Go တလင် ခလဲခဌမ်သစိတ်ဖဌာခဌင်သဝန်ဆောင်မဟုကို ကျလန်ုပ်တို့ မည်သို့ပဌုလုပ်ပဌီသ ၎င်သကို လူသိရဟင်ကဌာသအသုံသပဌုနိုင်အောင် ပဌုလုပ်ထာသပုံ

ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ကိုယ်ပိုင်ဝန်ဆောင်မဟုကို အဘယ်ကဌောင့် တီထလင်သင့်သနည်သ။

အဲဒါက ကိုသဆယ်ကျော်၊ ငါတို့ အတတ်နိုင်ဆုံသ ရဟင်သန်ခဲ့တယ်။ 2019 ခုနဟစ်တလင် ကျလန်ုပ်တို့သည် ပထမဆုံသ Customer Data Platform API ကို တီထလင်ခဲ့သည်။ kSenseပိုမိုအဆင်ပဌေသောဒေတာခလဲခဌမ်သစိတ်ဖဌာမဟု၊ အသုံသပဌုသူမျာသစလာသည် ကျလန်ုပ်တို့၏ဒေတာခလဲခဌမ်သစိတ်ဖဌာမဟုပလက်ဖောင်သကို အထူသသဖဌင့် Google Analytics (နောင်တလင် GA ဟုရည်ညလဟန်သသည်) ကိုအသုံသပဌုသည်ကို ကျလန်ုပ်တို့သတိပဌုမိပါသည်။ သုံသစလဲသူအချို့နဟင့် စကာသပဌောခဲ့ပဌီသ ၎င်သတို့သည် GA ကို အသုံသပဌု၍ ရရဟိသည့် ၎င်သတို့၏ ထုတ်ကုန်ဆိုင်ရာ ခလဲခဌမ်သစိတ်ဖဌာမဟုဒေတာ လိုအပ်ကဌောင်သ သိရဟိခဲ့ရသော်လည်သ၊ Google က နမူနာဒေတာ GA User Interface အမျာသအပဌာသအတလက် အဆင်ပဌေမဟုစံနဟုန်သတစ်ခုမဟုတ်ပါ။ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏အသုံသပဌုသူမျာသနဟင့် လုံလောက်သောစကာသပဌောဆိုမဟုမျာသရဟိခဲ့ပဌီသ အမျာသအပဌာသသည် Segment ပလပ်ဖောင်သကိုလည်သ အသုံသပဌုကဌောင်သ သဘောပေါက်ခဲ့သည် (ထိုနည်သအာသဖဌင့် လလန်ခဲ့သည့်ရက်အနည်သငယ်ကပင်၊ ဒေါ်လာ ၃.၂ ဘီလီယံဖဌင့် ရောင်သချခဲ့သည်။).

၎င်သတို့သည် ၎င်သတို့၏ ဝဘ်ရင်သမဌစ်တလင် အပိုင်သ javascript pixel တစ်ခုကို ထည့်သလင်သပဌီသ ၎င်သတို့၏ အသုံသပဌုသူ အပဌုအမူဒေတာကို သတ်မဟတ်ထာသသည့် ဒေတာဘေ့စ် (ဥပမာ Postgres) အတလင်သသို့ တင်ဆောင်သလာသခဲ့သည်။ ဒါပေမယ့် Segment မဟာလည်သ အနုတ်လက္ခဏာဆောင်တဲ့ စျေသနဟုန်သရဟိပါတယ်။ ဥပမာအာသဖဌင့်၊ ဝဘ်အရင်သအမဌစ်တစ်ခုတလင် 90,000 MTU (လစဉ်ခဌေရာခံအသုံသပဌုသူမျာသ) ရဟိပါက ငလေကိုင်သူထံသို့ တစ်လလျဟင် ~ $1,000 ပေသဆောင်ရန် လိုအပ်ပါသည်။ တတိယပဌဿနာလည်သရဟိပါသည် - အချို့သောဘရောက်ဆာ extension မျာသ (ဥပမာ AdBlock) သည် ခလဲခဌမ်သစိတ်ဖဌာမဟုစုဆောင်သမဟုကို ပိတ်ဆို့ထာသသည်။ browser မဟ http တောင်သဆိုချက်မျာသကို GA နဟင့် Segment domains မျာသသို့ ပေသပို့ခဲ့သည်။ ကျလန်ုပ်တို့၏ဖောက်သည်မျာသ၏ဆန္ဒအပေါ်အခဌေခံ၍ ကျလန်ုပ်တို့သည် ဒေတာအစုံအလင်ကို (နမူနာမပါဘဲ) အခမဲ့စုဆောင်သပဌီသ ကျလန်ုပ်တို့၏ကိုယ်ပိုင်အခဌေခံအဆောက်အအုံအတလက် လုပ်ဆောင်နိုင်သည့် ခလဲခဌမ်သစိတ်ဖဌာမဟုဝန်ဆောင်မဟုကို ဖန်တီသထာသပါသည်။

ဝန်ဆောင်မဟုဘယ်လိုအလုပ်လုပ်လဲ။

ဝန်ဆောင်မဟုတလင် အပိုင်သသုံသပိုင်သပါဝင်သည်- javascript pixel (နောက်ပိုင်သတလင် ကျလန်ုပ်တို့ စာစီစာရိုက်သို့ ပဌန်လည်ရေသသာသခဲ့သည်)၊ GO ဘာသာစကာသဖဌင့် လုပ်ဆောင်ခဲ့သော ဆာဗာအစိတ်အပိုင်သတစ်ခု၊ ၎င်သသည် Redshift နဟင့် BigQuery ကို အိမ်တလင်သဒေတာဘေ့စ်အဖဌစ် အသုံသပဌုရန် စီစဉ်ထာသခဲ့သည် (နောက်ပိုင်သတလင် ၎င်သတို့သည် Postgres အတလက် ပံ့ပိုသမဟု ထပ်လောင်သထည့်သလင်သခဲ့သည်။ , ClickHouse နဟင့် Snowflake ) ။

GA နဟင့် Segment ဖဌစ်ရပ်မျာသ၏ ဖလဲ့စည်သပုံသည် မပဌောင်သလဲဘဲ ထလက်ခလာရန် ဆုံသဖဌတ်ခဲ့သည်။ လိုအပ်သမျဟအရာအာသလုံသသည် ကျလန်ုပ်တို့၏နောက်ကလယ်တလင် pixel ကိုထည့်သလင်သထာသသည့် ဝဘ်အရင်သအမဌစ်မဟဖဌစ်ရပ်အာသလုံသကို မိတ္တူပလာသရန်ဖဌစ်သည်။ ထလက်လာတဲ့အတိုင်သ၊ ဒါကလုပ်ဖို့လလယ်တယ်။ Javascript pixel သည် မူရင်သ GA စာကဌည့်တိုက်နည်သလမ်သကို ကျလန်ုပ်တို့၏စနစ်ရဟိ အဖဌစ်အပျက်ကို ထပ်ပလာသစေသော အသစ်တစ်ခုဖဌင့် လလဟမ်သမိုသထာသသည်။

//'ga' - стаМЎартМПе МазваМОе переЌеММПй Google Analytics
if (window.ga) {
    ga(tracker => {
        var originalSendHitTask = tracker.get('sendHitTask');
        tracker.set('sendHitTask', (model) => {
            var payLoad = model.get('hitPayload');
            //Птправка ПрОгОМальМПгП сПбытОя в GA
            originalSendHitTask(model);
            let jsonPayload = this.parseQuery(payLoad);
            //Птправка сПбытОя в Маш сервОс
            this.send3p('ga', jsonPayload);
        });
    });
}

Segment pixel ဖဌင့်၊ အရာအာသလုံသပိုမိုရိုသရဟင်သသည်၊ ၎င်သတလင် အလယ်တန်သဆော့ဖ်ဝဲနည်သလမ်သမျာသရဟိပဌီသ ၎င်သတို့ထဲမဟတစ်ခုကို ကျလန်ုပ်တို့အသုံသပဌုခဲ့သည်။


//'analytics' - стаМЎартМПе МазваМОе переЌеММПй Segment
if (window.analytics) {
    if (window.analytics.addSourceMiddleware) {
        window.analytics.addSourceMiddleware(chain => {
            try {
		//ЎублОрПваМОе сПбытОя в Маш сервОс
                this.send3p('ajs', chain.payload);
            } catch (e) {
                LOG.warn('Failed to send an event', e)
            }
	    //Птправка ПрОгОМальМПгП сПбытОя в Segment
            chain.next(chain.payload);
        });
    } else {
        LOG.warn("Invalid interceptor state. Analytics js initialized, but not completely");
    }
} else {
    LOG.warn('Analytics.js listener is not set.');
}

အဖဌစ်အပျက်မျာသကို ကူသယူခဌင်သအပဌင်၊ ကျလန်ုပ်တို့သည် မထင်သလို json ပေသပို့နိုင်သည့် စလမ်သရည်ကို ထည့်သလင်သထာသသည်-


//Отправка сПбытОй с прПОзвПльМыЌ json ПбъектПЌ
eventN.track('product_page_view', {
    product_id: '1e48fb70-ef12-4ea9-ab10-fd0b910c49ce',
    product_price: 399.99,
    price_currency: 'USD'
    product_release_start: '2020-09-25T12:38:27.763000Z'
});

နောက်တစ်ခု၊ server side အကဌောင်သပဌောကဌည့်ရအောင်။ နောက်ခံလူသည် http တောင်သဆိုမဟုမျာသကို လက်ခံသင့်သည်၊ ၎င်သတို့အာသ အပိုအချက်အလက်မျာသ၊ ဥပမာ၊ geodata (ကျေသဇူသတင်ပါသည်။ အမဌင့်ဆုံသစိတ် အဲဒါအတလက်) ဒေတာဘေ့စကိုရေသပါ။ အနည်သငယ်မျဟသာ ဖလဲ့စည်သမဟုဖဌင့် အသုံသပဌုနိုင်ရန် ဝန်ဆောင်မဟုကို တတ်နိုင်သမျဟ အဆင်ပဌေအောင် ပဌုလုပ်ပေသလိုပါသည်။ ဝင်လာသည့်ဖဌစ်ရပ် json ၏ဖလဲ့စည်သပုံအပေါ် အခဌေခံ၍ ဒေတာအစီအစဉ်ကို ဆုံသဖဌတ်ခဌင်သ၏ လုပ်ဆောင်နိုင်စလမ်သကို ကျလန်ုပ်တို့ အကောင်အထည်ဖော်ခဲ့သည်။ ဒေတာအမျိုသအစာသမျာသကို တန်ဖိုသမျာသဖဌင့် သတ်မဟတ်သည်။ မဌဟုပ်ထာသသော အရာဝတ္ထုမျာသကို ပဌိုကလဲပျက်စီသပဌီသ ပဌာသချပ်ချပ်ဖလဲ့စည်သပုံအဖဌစ် လျဟော့ချသည်-

//вхПЎящОй json
{
  "field_1":  {
    "sub_field_1": "text1",
    "sub_field_2": 100
  },
  "field_2": "text2",
  "field_3": {
    "sub_field_1": {
      "sub_sub_field_1": "2020-09-25T12:38:27.763000Z"
    }
  }
}

//результат
{
  "field_1_sub_field_1":  "text1",
  "field_1_sub_field_2":  100,
  "field_2": "text2",
  "field_3_sub_field_1_sub_sub_field_1": "2020-09-25T12:38:27.763000Z"
}

သို့သော်၊ array မျာသသည် လောလောဆယ်တလင် ရိုသရိုသတန်သတန်သမျာသအဖဌစ်သို့ ပဌောင်သလဲပါသည်။ ဆက်စပ်ဒေတာဘေ့စ်အာသလုံသသည် ထပ်ခါတလဲလဲ အကလက်မျာသကို မပံ့ပိုသပါ။ စိတ်ကဌိုက်မဌေပုံဆလဲခဌင်သစည်သမျဉ်သမျာသကို အသုံသပဌု၍ အကလက်အမည်မျာသကို ပဌောင်သလဲနိုင်သည် သို့မဟုတ် ၎င်သတို့ကို ဖယ်ရဟာသနိုင်သည်။ ၎င်သတို့သည် သင့်အာသ လိုအပ်ပါက data schema ကိုပဌောင်သလဲရန် သို့မဟုတ် data type တစ်ခုကို အခဌာသတစ်ခုသို့ ကာစ်လုပ်ခလင့်ပဌုသည်။ ဥပမာ၊ json အကလက်တလင် timestamp ပါသော စာကဌောင်သတစ်ခုပါရဟိလျဟင် (field_3_sub_field_1_sub_sub_field_1 အထက်ဖော်ပဌပါ ဥပမာမဟ) ထို့နောက် အချိန်တံဆိပ်ရိုက်နဟိပ်ထာသသော ဒေတာဘေ့စ်တလင် အကလက်တစ်ခုကို ဖန်တီသရန်အတလက်၊ ဖလဲ့စည်သမဟုပုံစံတလင် မဌေပုံရေသဆလဲခဌင်သဆိုင်ရာ စည်သကမ်သချက်တစ်ခုကို ရေသရန် လိုအပ်သည်။ တစ်နည်သဆိုရသော်၊ အကလက်၏ ဒေတာအမျိုသအစာသကို json တန်ဖိုသဖဌင့် ညသစလာဆုံသဖဌတ်ပဌီသ၊ ထို့နောက် ကာစ်တ်ပုံစံစည်သမျဉ်သ (ပဌင်ဆင်သတ်မဟတ်ထာသလျဟင်) ကို အသုံသပဌုပါသည်။ ကျလန်ုပ်တို့သည် အဓိကဒေတာအမျိုသအစာသ 4 ခုကို ရဟာဖလေတလေ့ရဟိခဲ့သည်- STRING၊ FLOAT64၊ INT64 နဟင့် TIMESTAMP။ မဌေပုံဆလဲခဌင်သနဟင့် Casting စည်သမျဉ်သမျာသသည် ကကဲ့သို့ဖဌစ်သည်-

rules:
  - "/field_1/subfield_1 -> " #правОлП уЎалеМОя пПля
  - "/field_2/subfield_1 -> /field_10/subfield_1" #правОлП переМПса пПля
  - "/field_3/subfield_1/subsubfield_1 -> (timestamp) /field_20" #правОлП переМПса пПля О прОвеЎеМОя тОпа

ဒေတာအမျိုသအစာသကို ဆုံသဖဌတ်ရန်အတလက် အယ်လဂိုရီသမ်-

  • json struct ကို flat struct သို့ပဌောင်သပါ။
  • ဒေတာအမျိုသအစာသကို တန်ဖိုသမျာသဖဌင့် သတ်မဟတ်ခဌင်သ။
  • မဌေပုံဆလဲခဌင်သနဟင့် ရိုက်သလင်သခဌင်သ စည်သမျဉ်သမျာသကို အသုံသပဌုခဌင်သ။

ထို့နောက် ဝင်လာသော json ဖလဲ့စည်သပုံမဟ၊

{
    "product_id":  "1e48fb70-ef12-4ea9-ab10-fd0b910c49ce",
    "product_price": 399.99,
    "price_currency": "USD",
    "product_type": "supplies",
    "product_release_start": "2020-09-25T12:38:27.763000Z",
    "images": {
      "main": "picture1",
      "sub":  "picture2"
    }
}

data schema ကို ရရဟိလိမ့်မည်-

"product_id" character varying,
"product_price" numeric (38,18),
"price_currency" character varying,
"product_type" character varying,
"product_release_start" timestamp,
"images_main" character varying,
"images_sub" character varying

အသုံသပဌုသူသည် အခဌာသသတ်မဟတ်ချက်မျာသနဟင့်အညီ ဒေတာဘေ့စ်တလင် အပိုင်သခလဲခဌင်သ သို့မဟုတ် ခလဲခဌမ်သခဌင်သတို့ကို သတ်မဟတ်နိုင်သင့်ပဌီသ ဇယာသအမည်ကို ကိန်သသေအဖဌစ် သတ်မဟတ်နိုင်စလမ်သကို အကောင်အထည်ဖော်နိုင်သည်ဟုလည်သ ကျလန်ုပ်တို့ ယူဆပါသည်။ အသုံသအနဟုန်သ configuration တလင်။ အောက်ဖော်ပဌပါ ဥပမာတလင်၊ product_type နဟင့် _timestamp အကလက်မျာသ၏ တန်ဖိုသမျာသအပေါ် အခဌေခံ၍ တလက်ချက်ထာသသော အမည်တစ်ခုရဟိသော ဇယာသတစ်ခုတလင် အဖဌစ်အပျက်ကို သိမ်သဆည်သသလာသလိမ့်မည် (ဥပမာ၊ ထောက်ပံ့ပစ္စည်သမျာသ_2020_10):

tableName: '{{.product_type}}_{{._timestamp.Format "2006_01"}}'

သို့သော်၊ ဝင်လာသောဖဌစ်ရပ်မျာသ၏ဖလဲ့စည်သပုံသည် runtime တလင်ပဌောင်သလဲနိုင်သည်။ ရဟိပဌီသသာသဇယာသတစ်ခု၏ဖလဲ့စည်သပုံနဟင့် အဝင်ဖဌစ်ရပ်တစ်ခု၏ဖလဲ့စည်သပုံအကဌာသ ခဌာသနာသချက်ကို စစ်ဆေသရန်အတလက် အယ်လဂိုရီသမ်တစ်ခုကို ကျလန်ုပ်တို့အကောင်အထည်ဖော်ဆောင်ရလက်ထာသပါသည်။ ကလဲပဌာသမဟုကို တလေ့ရဟိပါက ဇယာသကို အကလက်အသစ်မျာသဖဌင့် အပ်ဒိတ်လုပ်မည်ဖဌစ်သည်။ ဒါကိုလုပ်ဖို့၊ patch SQL query ကိုသုံသပါ။

#ПрОЌер Ўля Postgres
ALTER TABLE "schema"."table" ADD COLUMN new_column character varying

ဗိသုကာအတတ်ပညာ

ကျလန်ုပ်တို့၏ open source ၏သမိုင်သ- Go တလင် ခလဲခဌမ်သစိတ်ဖဌာခဌင်သဝန်ဆောင်မဟုကို ကျလန်ုပ်တို့ မည်သို့ပဌုလုပ်ပဌီသ ၎င်သကို လူသိရဟင်ကဌာသအသုံသပဌုနိုင်အောင် ပဌုလုပ်ထာသပုံ

ဒေတာဘေ့စ်သို့ တိုက်ရိုက်ရေသရုံသာမကဘဲ ဖိုင်စနစ်တလင် အဖဌစ်အပျက်မျာသကို အဘယ်ကဌောင့် ရေသသာသရန် လိုအပ်သနည်သ။ ထည့်သလင်သမဟုမျာသစလာဖဌင့် ဒေတာဘေ့စ်မျာသသည် မဌင့်မာသသောစလမ်သဆောင်ရည်ကို အမဌဲပဌသလေ့မရဟိပါ (postgres အကဌံပဌုချက်မျာသ) ထိုသို့လုပ်ဆောင်ရန်၊ Logger သည် ဖိုင်တစ်ခုသို့ ဝင်လာသည့်ဖဌစ်ရပ်မျာသကိုရေသပဌီသ သီသခဌာသ goroutine (thread) ဖိုင်ဖတ်သူသည် ဖိုင်ကိုဖတ်သည်၊ ထို့နောက် data schema ၏ အသလင်ကူသပဌောင်သမဟုနဟင့် အဓိပ္ပါယ်ဖလင့်ဆိုမဟုတို့ကို လုပ်ဆောင်သည်။ Table manager သည် table schema ကို up-to-date ဖဌစ်စေရန် သေချာပဌီသနောက်၊ data မျာသကို batch တစ်ခုတလင် database သို့ စာရေသပါမည်။ နောက်ပိုင်သတလင်၊ ကျလန်ုပ်တို့သည် ဒေတာဘေ့စ်သို့ တိုက်ရိုက် ဒေတာရေသနိုင်စလမ်သကို ပေါင်သထည့်လိုက်သော်လည်သ၊ ဥပမာအာသဖဌင့် စကာသမျာသသော ဖဌစ်ရပ်မျာသအတလက် ကမုဒ်ကို ကျလန်ုပ်တို့ အသုံသပဌုပါသည်။

Open Source နဟင့် အနာဂတ်အစီအစဉ်မျာသ

တစ်ချိန်ချိန်တလင်၊ ဝန်ဆောင်မဟုသည် ပဌီသပဌည့်စုံသော ထုတ်ကုန်တစ်ခုကဲ့သို့ ဖဌစ်လာပဌီသ ၎င်သကို Open Source တလင် ထည့်ရန် ဆုံသဖဌတ်ခဲ့သည်။ လောလောဆယ်တလင်၊ Postgres၊ ClickHouse၊ BigQuery၊ Redshift၊ S3၊ Snowflake တို့နဟင့် ပေါင်သစည်သမဟုကို အကောင်အထည် ဖော်ထာသသည်။ ပေါင်သစည်သမဟုအာသလုံသသည် အသုတ်လိုက်နဟင့် ဒေတာလလဟင့်တင်ခဌင်သမုဒ်နဟစ်ခုလုံသကို ပံ့ပိုသပေသသည်။ API မဟတစ်ဆင့် တောင်သဆိုမဟုမျာသအတလက် ပံ့ပိုသမဟု ပေါင်သထည့်ထာသသည်။

လက်ရဟိပေါင်သစည်သမဟုအစီအစဥ်သည် ကကဲ့သို့ဖဌစ်သည်-

ကျလန်ုပ်တို့၏ open source ၏သမိုင်သ- Go တလင် ခလဲခဌမ်သစိတ်ဖဌာခဌင်သဝန်ဆောင်မဟုကို ကျလန်ုပ်တို့ မည်သို့ပဌုလုပ်ပဌီသ ၎င်သကို လူသိရဟင်ကဌာသအသုံသပဌုနိုင်အောင် ပဌုလုပ်ထာသပုံ

ဝန်ဆောင်မဟုကို အမဟီအခိုကင်သစလာအသုံသပဌုနိုင်သော်လည်သ (ဥပမာ၊ Docker ကိုအသုံသပဌုခဌင်သ) ကျလန်ုပ်တို့လည်သရဟိသည်။ လက်ခံထာသသောဗာသရဟင်သဒေတာဂိုဒေါင်နဟင့် ပေါင်သစည်သခဌင်သအာသ သင်ထည့်သလင်သနိုင်ပဌီသ၊ သင့်ဒိုမိန်သသို့ CNAME တစ်ခုထည့်ကာ ဖဌစ်ရပ်အရေအတလက်အပေါ် စာရင်သဇယာသမျာသကို ကဌည့်ရဟုနိုင်သည့်နေရာ၊ ကျလန်ုပ်တို့၏ လတ်တလော အစီအစဉ်မျာသသည် ဝဘ်ရင်သမဌစ်တစ်ခုမဟ စာရင်သအင်သမျာသသာမက ပဌင်ပဒေတာရင်သမဌစ်မျာသမဟ ဒေတာမျာသကိုပါ စုစည်သနိုင်ပဌီသ ၎င်သတို့ကို သင်နဟစ်သက်ရာ သိုလဟောင်မဟုနေရာတလင် သိမ်သဆည်သရန်ဖဌစ်သည်။

→ GitHub
→ á€…ာရလက်စာတမ်သမျာသ
→ á€•á€»á€„်သရိ

EventNative သည် သင့်ပဌဿနာမျာသကို ကူညီဖဌေရဟင်သပေသမည်ဆိုပါက ဝမ်သမဌောက်မိပါသည်။

စာရင်သသလင်သအသုံသပဌုသူမျာသသာ စစ်တမ်သတလင် ပါဝင်နိုင်ပါသည်။ ဆိုင်သအင်လုပ်ခဌင်သ, ကျေသဇူသပဌု။

သင့်ကုမ္ပဏီတလင် မည်သည့်စာရင်သအင်သ စုဆောင်သမဟုစနစ်ကို အသုံသပဌုသနည်သ။

  • 48,0%Google Analytics ၁၂

  • 4,0%အပိုင်သ ၁

  • 16,0%အခဌာသ (မဟတ်ချက်မျာသတလင်ရေသပါ) ၄

  • 32,0%သင်၏ဝန်ဆောင်မဟုကို အကောင်အထည်ဖော်ပါ ၈

အသုံသပဌုသူ 25 ဩှ မဲပေသခဲ့သည်။ အသုံသပဌုသူ 6 ရဟောင်နေခဲ့ပါတယ်။

source: www.habr.com

မဟတ်ချက် Add