الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

الیکسي نیډینوف، اجراییه رییس ITooLabsد مخابراتو آپریټرانو لپاره د مخابراتي پلیټ فارم د پراختیا په اړه خبرې کوي په پروګرامینګ ژبه ګو (ګولنګ). الیکسي د آسیا ترټولو لوی مخابراتي آپریټرونو کې د پلیټ فارم پلي کولو او چلولو تجربه هم شریکوي ، کوم چې دا پلیټ فارم د غږ میل (وائس میل) او مجازی PBX (Cloud PBX) خدماتو چمتو کولو لپاره کارولی.

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

الیکسي نیدینوف (له دې وروسته - AN): - سلام و ټولو ته! زما نوم الیکسي نیدینوف دی. زه د ITooLabs رییس یم. لومړی، زه غواړم ځواب ورکړم چې زه دلته څه کوم او څنګه دلته پای ته ورسیدم.

که تاسو د Bitrix24 بازار ځای وګورئ (برخه "ټلیفوني")، نو 14 غوښتنلیکونه او 36 چې هلته شتون لري (40٪) موږ یو:

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

په دقیقه توګه، دا زموږ ملګري چلونکي دي، مګر د دې ټولو تر شا زموږ پلیټ فارم دی (د خدمت په توګه پلیټ فارم) - هغه څه چې موږ یې د یوې کوچنۍ پیسې لپاره پلورو. په حقیقت کې، زه غواړم د دې پلیټ فارم پراختیا په اړه وغږیږم او موږ څنګه لاړ شو.

اوس زموږ د پلیټ فارم لپاره شمیرې دي:

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

د میګافون په ګډون 44 شریک چلونکي. په عمومي ډول، موږ خوښ یو چې سفر ته لاړ شو، او موږ واقعیا دلته په روسیه کې د 100 آپریټرانو 44 ملیون پیرودونکو ته لاسرسی لرو. له همدې امله، که څوک د سوداګرۍ نظرونه لري، موږ تل خوشحاله یو چې دوی ته غوږ شو.

  • 5000 کاروونکي شرکتونه.
  • په مجموع کې 20 پیرودونکي. دا ټول b000b دي - موږ یوازې د شرکتونو سره کار کوو.
  • د ورځې په جریان کې په یوه دقیقه کې 300 زنګونه.
  • تیر کال 100 ملیون کال دقیقې (موږ ولمانځله). دا د داخلي خبرو اترو په پام کې نیولو پرته چې زموږ په پلیټ فارم کې دي.

دا څنګه پیل شو؟

سم ملګري څنګه خپل پلیټ فارم جوړول پیل کوي؟ دا هم باید په پام کې ونیول شي چې موږ د "سخت تصدۍ" پراختیا تاریخ درلود، او حتی د کال په خورا دقیق وخت کې د یوې تصدۍ لپاره! دا هغه خوشحاله وخت و کله چې تاسو پیرودونکي ته ورشئ او ووایاست: "موږ یو څو نورو سرورونو ته اړتیا لرو." او پیرودونکي: "هو، پوښتنه نشته! موږ په ریک کې لس لرو.

نو موږ اوریکل، جاوا، ویب سپیر، Db2 او دا ټول وکړل. له همدې امله، موږ، البته، د غوره پلورونکي حلونه اخیستي، دوی یې مدغم کړي او هڅه یې کړې چې له دې سره کار وکړو. دوی په خپله لوبه وکړه. دا به داسې یو داخلي پیل وي.

دا ټول په 2009 کې پیل شول. د 2006 راهیسې، موږ د آپریټر پریکړو کې نږدې دخیل یو، یو یا بل ډول. موږ ډیری دودیز مجازی PBXs جوړ کړل (لکه هغه څه چې موږ اوس په ترتیب کې لرو): موږ ولیدل، پریکړه یې وکړه چې دا ښه وه، او پریکړه یې وکړه چې داخلي پیل پیل کړو.

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

VMWare واخلئ. له هغه ځایه چې موږ پخپله روان وو ، موږ باید سمدلاسه د یخ پلورونکي ذخیره پریږدو. موږ د دوی په اړه ټول پوهیږو: دا چې ژمنې باید په 3 ویشل شي، او لګښت باید په 10 سره ضرب شي. نو موږ DirDB او داسې نور وکړل.

بیا یې وده پیل کړه. د بلینګ خدمت پدې کې اضافه شوی ، ځکه چې پلیټ فارم نور نشي کولی. بیا د MySQL څخه د بلینګ سرور مونګو ته لاړ. د پایلې په توګه، موږ یو کاري حل ترلاسه کړ چې ټول هغه زنګونه پروسس کوي چې هلته ځي:

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

مګر په کوم ځای کې ، دننه ، د ورته پلورونکي محصول څرخیږي - اصلي ، اټومي یو ، کوم چې موږ یوځل اخیستی. نږدې د 2011 په پای کې، موږ د ځان لپاره پوهیږو چې زموږ لپاره اصلي خنډ، البته، دا ځانګړی محصول به وي - موږ به دې ته ورسیږو. موږ په مخ کې یو دیوال ولید، چې موږ په بشپړ سرعت سره منډه کړه، لکه څنګه چې پیرودونکي روان وو، اضافه شوي.
په دې اساس، موږ باید یو څه وکړو. البته، موږ د مختلفو محصولاتو په اړه ډیرې څیړنې ترسره کړې - دواړه خلاصې سرچینې او پلورونکي. زه به اوس پدې اړه پاتې نه شم - دا ټکی ندی. خورا وروستی فال بیک چې موږ یې په اړه فکر کاوه زموږ خپل پلیټ فارم جوړول و.

په نهایت کې ، موږ دې اختیار ته ورسیدو. ولې؟ ځکه چې ټول پلورونکي او خلاصې سرچینې محصولات 10 کاله دمخه د ستونزو حل کولو لپاره رامینځته شوي. ښه، که یو لس کلن، او ځینې نور! انتخاب زموږ لپاره څرګند شوی دی: یا موږ د مثالي خدمت زموږ عالي نظر ته الوداع ووایو (د شریکانو ، چلونکو او ځان لپاره) ، یا موږ پخپله یو څه کوو.

موږ پریکړه وکړه چې یو څه توپیر وکړو!

د پلیټ فارم اړتیاوې

که تاسو د اوږدې مودې لپاره یو څه وکړئ (تاسو د بل چا محصول استخراج کوئ)، نو ورو ورو فکر ستاسو په سر کې رامینځته کیږي: زه به دا پخپله څنګه وکړم؟ څرنګه چې موږ په شرکت کې ټول پروګرام کونکي یو (د پلورونکو پرته، هیڅ غیر پروګرام کونکي شتون نلري)، زموږ اړتیاوې د اوږدې مودې لپاره رامینځته شوي، او دوی روښانه وو:

  1. د لوړ پرمختګ سرعت. د پلورونکي محصول، چې موږ یې ځورول، په لومړي ځای کې موږ ته مناسب نه و ځکه چې هرڅه د اوږدې مودې لپاره او ورو ورو کار کوي. موږ ګړندی غواړو - موږ ډیری نظرونه درلودل! موږ لا هم ډېر نظرونه لرو، خو بیا د نظرونو لېست داسې و، چې داسې ښکارېده لکه لس کاله مخکې. اوس یوازې د یو کال لپاره.
  2. د ملټي کور اوسپنې اعظمي کارول. دا زموږ لپاره هم مهم و ، ځکه چې موږ ولیدل چې یوازې ډیر او ډیر کورونه به وي.
  3. لوړ اعتبار. هغه چې موږ هم ژړل.
  4. د لوړې خطا زغم.
  5. موږ غوښتل د ورځني خوشې کولو پروسې سره پای ته ورسیږو. د دې کولو لپاره، موږ د ژبې انتخاب ته اړتیا لرو.

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

په دې اساس، د هغه محصول اړتیاوو څخه چې موږ یې د ځان لپاره وړاندې کړي، د ژبې اړتیاوې په روښانه توګه په منطقي ډول وده کوي.

  1. که موږ د څو کور سیسټمونو ملاتړ غواړو، نو موږ د موازي اجرا کولو ملاتړ ته اړتیا لرو.
  2. که موږ د پراختیا سرعت ته اړتیا لرو، موږ یوې ژبې ته اړتیا لرو چې د رقابتي پراختیا، رقابتي پروګرامونو ملاتړ کوي. که څوک د توپیر سره مخ نه وي، نو دا خورا ساده ده:
    • موازي برنامه کول پدې اړه دي چې څنګه دوه مختلف تارونه په مختلف کورونو کې تیریږي؛
    • همغږي اجرا کول، په ځانګړې توګه د همغږۍ ملاتړ، پدې اړه دی چې څنګه ژبه (یا د چلولو وخت، هر څه) د ټولو پیچلتیاوو پټولو کې مرسته کوي چې د موازي اجرا څخه راځي.
  3. لوړ ثبات. په ښکاره ډول، موږ کلستر ته اړتیا درلوده، او دا د هغه څه څخه غوره و چې موږ د پلورونکي محصول درلود.

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

موږ واقعیا ډیری اختیارونه نه درلودل، که تاسو په یاد ولرئ. لومړی، ایرنګ - موږ یې خوښوو او پوهیږو، دا زما شخصي، شخصي خوښې وه. دوهم، جاوا حتی جاوا نه دی، مګر په ځانګړې توګه سکالا. دریم، هغه ژبه چې په هغه وخت کې موږ نه پوهیږو - لاړ شه. دا یوازې هغه مهال راڅرګند شو، په سمه توګه، دا لا دمخه شاوخوا دوه کاله شتون درلود، مګر تر اوسه خپور شوی نه و.

ماتې وخوړه!

د تګ تاریخ

موږ په دې باندې یو پلیټ فارم جوړ کړ. زه به هڅه وکړم چې تشریح کړم ولې.

د تګ لنډ تاریخ. په 2007 کې پیل شوی، په 2009 کې پرانستل شو، لومړۍ نسخه په 2012 کې خپره شوه (یعنې، موږ حتی د لومړي خوشې کیدو دمخه کار پیل کړ). نوښتګر ګوګل و، کوم چې غوښتل یې ځای په ځای کړي، لکه څنګه چې زه شک لرم، جاوا.

لیکوالان ډیر مشهور دي:

  • کین تامسن، چې د یونیکس تر شا و، د UTF-8 ایجاد کړ، د پلان 9 سیسټم کې کار کاوه؛
  • Rob Pike، چې د کین سره UTF-8 ډیزاین کړی، په بیل لابراتوار کې په پلان 9، Inferno، Limbo کې هم کار کړی؛
  • رابرټ ګیزمر، چې موږ پیژنو او د جاوا هټ سپاټ کمپیلر اختراع کولو او په V8 کې په جنراتور کې د کار کولو لپاره مینه لرو (د ګوګل جاوا سکرپٹ ژباړونکی)؛
  • او له 700 څخه ډیر مرسته کونکي، زموږ د ځینو پیچونو په ګډون.

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

په یو نظر کې لاړ شئ

موږ ګورو چې ژبه لږ یا لږ ساده او د پوهیدو وړ ده. موږ څرګند ډولونه لرو: په ځینو مواردو کې دوی باید اعلان شي، په نورو کې دوی نه کوي (په دې معنی چې ډولونه په هرصورت اټکل شوي).

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

دا لیدل کیدی شي چې دا د جوړښتونو تشریح کولو لپاره فیشن دی. دا لیدل کیدی شي چې موږ د پوائنټر مفهوم لرو (چیرې چې ستوری دی). دا لیدل کیدی شي چې د صفونو او ایسوسی ایټیو اریونو ابتدايي اعلانولو لپاره ځانګړي ملاتړ شتون لري.

تقریبا د پوهیدو وړ - تاسو ژوند کولی شئ. د هیلو، نړۍ لیکلو هڅه کول:

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

موږ څه وینو؟ دا د C په څیر ترکیب دی، سیمیکولون اختیاري دی. دا د دوو لینونو لپاره جلا کوونکی کیدی شي، مګر یوازې که دا دوه جوړونه وي چې په ورته کرښه کې وي.

موږ ګورو چې د کنټرول جوړښتونو کې بریکٹونه (په 14 لاین کې) اختیاري دي، مګر منحل شوي تل اړین دي. موږ ګورو چې ټایپ کول جامد دی. په ډیری قضیو کې ټیم ښودل کیږي. دا مثال د معمول هیلو، نړۍ په پرتله یو څه ډیر پیچلی دی - یوازې د دې لپاره چې یو کتابتون شتون ولري.

موږ نور څه مهم وینو؟ کوډ په کڅوړو کې تنظیم شوی. او په خپل کوډ کې د کڅوړې کارولو لپاره ، تاسو اړتیا لرئ دا د وارداتو لارښود په کارولو سره وارد کړئ - دا هم مهم دی. موږ پیل کوو - دا کار کوي. غوره!

راځئ چې یو څه نور پیچلي هڅه وکړو: سلام، نړۍ، مګر اوس دا یو http سرور دی. موږ دلته په زړه پورې څه ګورو؟

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

لومړی، فعالیت د پیرامیټر په توګه کار کوي. دا پدې مانا ده چې هغه فعالیت چې موږ یې لرو یو "لومړی درجې اتباع" دی او تاسو کولی شئ پدې سره په فعال سټایل کې ډیری په زړه پوري شیان ترسره کړئ. موږ غیر متوقع راتلونکی ګورو: د وارداتو لارښود مستقیم د GitHub ذخیره ته راجع کیږي. دا سمه ده، دا څنګه ده - سربیره پردې، دا باید څنګه ترسره شي.

په Go کې، د کڅوړې نړیوال پیژندونکی د دې ذخیره url دی. د Goget یو ځانګړی افادیت شتون لري چې د ټولو انحصارونو لپاره ځي، ډاونلوډ کوي، نصبوي، تالیفوي، او د اړتیا په صورت کې یې د کارولو لپاره چمتو کوي. په عین حال کې، Goget د html-meta په اړه پوهیږي. په دې اساس، تاسو کولی شئ د http لارښود وساتئ، کوم چې ستاسو د ځانګړي ذخیره کولو لینکونه لري (لکه څنګه چې موږ، د بیلګې په توګه، کوو).

موږ نور څه وینو؟ Http او Json په منظم کتابتون کې. په څرګنده توګه، د انټروسپیکشن - انعکاس شتون لري، کوم چې باید په کوډ کولو / json کې وکارول شي، ځکه چې موږ په ساده ډول د دې لپاره یو څه خپلمنځي اعتراض ځای په ځای کوو.

موږ یې چلوو او ګورو چې موږ د ګټور کوډ 20 لینونه لرو چې د ماشین اوسني اوسط بار (په هغه ماشین کې چې دا چلیږي) ترکیب کوي، چلوي او ورکوي.
له هغه څه څخه بل څه مهم دي چې موږ یې سمدلاسه دلته لیدلی شو؟ دا په یو جامد بائنری (بائنری) کې تالیف کوي. دا بائنری هیڅ انحصار نلري ، هیڅ کتابتون نلري! دا هر سیسټم ته کاپي کیدی شي، سمدستي چلول، او دا به کار وکړي.

موږ پرمخ ځو.

لاړ شئ: میتودونه او انٹرفیسونه

تګ لارې چارې لري. تاسو کولی شئ د هر ډول دودیز ډول لپاره میتود اعلان کړئ. سربیره پردې، دا اړینه نه ده چې یو جوړښت وي، مګر کیدای شي د یو ډول ډول عرف وي. تاسو کولی شئ د N32 لپاره یو عرف اعلان کړئ او د دې لپاره میتودونه ولیکئ ترڅو یو څه ګټور وي.

او دا هغه ځای دی چې موږ د لومړي ځل لپاره په ستړيا کې راګیر یو ... دا معلومه شوه چې ګو داسې ټولګي نلري. هغه څوک چې په Go پوهیږي ممکن ووایي چې د ډول شاملول شتون لري، مګر دا په بشپړه توګه توپیر لري. هرڅومره ژر چې پراختیا کونکی دې ته د میراث په توګه فکر کولو مخه ونیسي ، ښه. په Go کې هیڅ ټولګي شتون نلري، او هیڅ میراث هم شتون نلري.

پوښتنه! د ګوګل په مشرۍ د لیکوالانو شرکت موږ ته د نړۍ پیچلتیا ښودلو لپاره څه راکړل؟ موږ ته انٹرفیسونه راکړل شوي دي!

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

انٹرفیس یو ځانګړی ډول دی چې تاسو ته اجازه درکوي ساده میتودونه ، د میتود لاسلیکونه ولیکئ. برسېره پر دې، هر ډول چې دا میتودونه شتون لري (عملي کیږي) به د دې انٹرفیس سره مطابقت ولري. دا پدې مانا ده چې تاسو کولی شئ په ساده ډول د یو ډول لپاره اړونده فعالیت ولیکئ، د بل لپاره (کوم چې د دې انٹرفیس ډول سره مطابقت لري). بیا، د دې انٹرفیس ډول یو متغیر اعلان کړئ او د دې شیانو څخه کوم یې ورته وټاکئ.

د سختو مینه والو لپاره ، زه کولی شم ووایم چې دا متغیر به واقعیا دوه ټکي ولري: یو ډیټا ته ، بل د ځانګړي توضیحي میز ته چې دې ځانګړي ډول ته ځانګړی دی ، د دې ډول انٹرفیس ته. یعني کمپیلر د لینک کولو په وخت کې د توضیحاتو دا ډول جدولونه جوړوي.

او البته، په Go کې د باطل لپاره اشارې شتون لري. د کلمې انټرفیس {} (د دوه منحل منحلاتو سره) یو متغیر دی چې تاسو ته اجازه درکوي په اصولو کې هر څیز ته اشاره وکړئ.
تر دې دمه ، هرڅه په ترتیب کې دي ، هرڅه پیژندل شوي. هیڅ د حیرانتیا خبره نه ده.

لاړ شئ: ګوروټینز

اوس راځو هغه څه ته چې موږ ورسره علاقه لرو: د سپک وزن پروسې - ګوروټینز (ګوروټینز) په Go اصطلاح کې.

الیکسي نیدینوف. ITooLabs. د Go (گولنګ) تلیفون پلیټ فارم کې د پراختیا قضیه. برخه 1

  1. لومړی، دوی واقعیا لږ وزن لري (له 2 Kb څخه کم).
  2. دوهم، د دې ډول ګوروټین جوړولو لګښت د پام وړ دی: تاسو کولی شئ په هره ثانیه کې زر زره جوړ کړئ - هیڅ به نه وي.
  3. دوی د خپل مهالویش کونکي لخوا خدمت کیږي ، کوم چې په ساده ډول له یو ګوروټین څخه بل ته کنټرول لیږدوي.
  4. په دې حالت کې، کنټرول په لاندې قضیو کې لیږدول کیږي:
    • که چیرې د تګ بیان سره مخ شي (که ګوروټین راتلونکی ګوروټین پیل کړي)؛
    • که د بلاک کولو ان پټ/آؤټ کال فعال شوی وي؛
    • که د کثافاتو راټولول پیل شي؛
    • که چیرې د چینلونو سره ځینې عملیات پیل شي.

دا، هرکله چې په کمپیوټر کې د Go پروګرام چلیږي، دا په سیسټم کې د کور شمیر معلوموي، د اړتیا په توګه ډیری تارونه پیل کوي (څومره کورونه لري یا تاسو ورته ویلي وو). په دې اساس، مهالویش کونکی به په هر کور کې د دې ټولو عملیاتي سیسټم تارونو کې د اجرا کولو دا سپک وزن لرونکي تارونه پرمخ وړي.

دا باید په یاد ولرئ چې دا د اوسپنې کارولو ترټولو مؤثره لاره ده. د هغه څه سربیره چې موږ ښودلي، موږ ډیر څه کوو. موږ د مثال په توګه د DPI سیسټمونه جوړوو چې په یو واحد کې د 40 ګیګابایټ خدمت کولو ته اجازه ورکوي (په دې پورې اړه لري چې پدې لینونو کې څه پیښیږي).

هلته ، حتی د Go څخه دمخه ، موږ د همدې دلیل لپاره ورته ورته سکیم کارولی: ځکه چې دا تاسو ته اجازه درکوي د پروسیسر کیچ ځای خوندي کړئ ، د پام وړ د OS شرایطو سویچونو شمیر کم کړئ (کوم چې خورا اوږد وخت هم نیسي). زه تکراروم: دا د اوسپنې کارولو ترټولو مؤثره لاره ده.

دا ساده 21-لین مثال یو مثال دی چې په ساده ډول د اکو سرور کوي. په ورته وخت کې، په یاد ولرئ چې د خدمت فعالیت خورا ساده دی، دا خطي دی. دلته هیڅ زنګ وهلو او فکر کولو ته اړتیا نشته ... تاسو یوازې ولولئ او ولیکئ!

په ورته وخت کې، که تاسو ولولئ او ولیکئ، دا باید په حقیقت کې بلاک شي - دا ګوروټین په ساده ډول په قطار کې دی او د مهالویش کونکي لخوا اخیستل کیږي کله چې اجرا کول بیا ممکن شي. دا دی، دا ساده کوډ کولی شي د ډیرو اړیکو لپاره د اکو سرور په توګه کار وکړي څومره چې په دې ماشین کې OS اجازه ورکوي.

ډیر ژر به دوام وکړي ...

ځینې ​​اعلانونه 🙂

له موږ سره د پاتې کیدو لپاره مننه. ایا تاسو زموږ مقالې خوښوي؟ غواړئ نور په زړه پورې مینځپانګه وګورئ؟ د امر په ورکولو یا ملګرو ته وړاندیز کولو سره زموږ ملاتړ وکړئ ، کلاوډ VPS د پراختیا کونکو لپاره له $ 4.99 څخه, د ننوتلو کچې سرورونو یو ځانګړی انلاګ ، کوم چې زموږ لخوا ستاسو لپاره اختراع شوی و: د VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps په اړه بشپړ حقیقت له $ 19 څخه یا څنګه سرور شریک کړئ؟ (د RAID1 او RAID10 سره شتون لري، تر 24 کور پورې او تر 40GB DDR4 پورې).

ډیل R730xd په امستردام کې د Equinix Tier IV ډیټا مرکز کې 2 ځله ارزانه؟ یوازې دلته 2x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 تلویزیون له $199 څخه په هالنډ کې! ډیل R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - له $ 99 څخه! په اړه ولولئ د زیربنا شرکت جوړولو څرنګوالی د ډیل R730xd E5-2650 v4 سرورونو کارولو سره ټولګي د یوې پیسي لپاره د 9000 یورو ارزښت لري؟

سرچینه: www.habr.com

Add a comment