این چهارمین قسمت از مجموعه "ساختن یک بازار آنلاین از ابتدا" است. در این پست ، ما به بررسی پلاتفرم و مدیریت خطا می پردازیم.

سه پست اول در مورد چگونگی ساخت سریع هسته اصلی سیستم و چگونگی تکرار کارآمد ، با در نظر گرفتن غالباً تغییر الزامات تجاری ، متمرکز شده اند. . به عنوان یک wannabe-CTO ، پس از خواندن این سخنرانی ، باید بتوانید روند مدیریت سفارش اولیه را مرتب کنید و خودکار کنید. تیم های مدیریت و بازاریابی / خدمات / مشتری از قبل بخاطر از بین بردن درد ناشی از دردسرهای مشاغل دستی و دستیابی به آنها خلاقانه ، سپاسگزار هستند.

اما ، همانطور که تصور می کنید ، تحویل سریع نرم افزار شامل بریدن گوشه ها ، یا باید بگویم "موارد گوشه ای". شما و تیم نرم افزاری خود را در معرض خطر حمله به انبوهی از خطاهای غیر منتظره از کاربران داخلی و خارجی قرار می دهید. فکر کنید: داده های فرم نامحدود ، سفارش های تکراری ، سوابق حذف شده به اشتباه ، یک درخواست فوق العاده مهم از طرف یک مشتری بزرگ ماهی ، و لیست همچنان ادامه دارد. به طور ناگهانی ، کار دستی که از بخشهای دیگر برداشته اید ، روی صفحه شما تمام می شود. اکنون ، چگونه آن را تعمیر کنیم؟

برخی از محافظه کاران نرم افزار می گویند: "کد crappy خود را با یک شبکه ایمنی ضخیم از تست های واحد بپوشانید و از موارد گوشه ای غیر عملی خلاص می شوید." آسان تر گفت: "اتخاذ شده؟ این است که اضافه کردن تست های واحد در این مرحله کمی منطقی است اول اینکه ، کد به حدی تغییر می کند که تست ها هفته آینده یا بعضاً طی یک روز منسوخ شوند. دوم اینکه ، توسعه نرم افزار تست محور نیاز به نظم و فرآیند دارد. زمان. و هیچ فعالیتی در مراحل اولیه مانند Manufaktura وجود ندارد.

بنابراین ، بیایید ببینیم چه اقدامات شما می تواند برای کاهش کار با خطا در تیم خود اعمال کند و چه چیزی مهمتر است ، کیفیت خدمات خود را بعد از همه . ما میوه های کم آویز را ابتدا و در بخش آخر توصیف خواهیم کرد ، وقتی ابزار کنترل وزن سنگین به نظر می رسد ، شما را در جهت صحیح قرار دهیم.

سیاهههای مربوط

ساختار یکپارچه

ساختار یکپارچه سازی یکسان سازی. برای کنترل خطا من برای یک برنامه شغلی مانند Manufaktura جرات می گویم که صرفه جویی در واحد بودن یا پایان دادن به آن ، وقت شما را (به عنوان یک توسعه دهنده) بیشتر از هر مجموعه آزمایش صرفه جویی می کند. اما بعداً که کسب و کار شما بلوغ می شود ، برای تیم امنیتی و ناوگان نیز سودمند خواهد بود.

 ثبت خطا در مدیریت خطا

منابع خوبی برای ورود به سیستم وجود دارد ، بنابراین آنها را مطالعه کنید. مهمتر از آن ، ما می خواهیم که مهمترین قوانین را بر اساس تجربه خود ذکر کنیم:

  • هر توسعه دهنده از یک ساختار مشابه و یکپارچه log استفاده می کند.
  • هر سیاهه یک شناسه متن منحصر به فرد دارد. شما می توانید از زمان سنج ، مؤلفه های تجاری ، شناسه کاربر ، شناسه سفارش ، شناسه جلسه وب و غیره استفاده کنید)
  • هر یک از افراد به ثبت خطاهای تفصیلی توجه ویژه ای می کنند.
  • این شما را اندازه می گیرد تا زمان اجرای مهم ترین / محبوب ترین را اندازه گیری کنید. امکانات؛ ممکن است مفید باشد هنگام بازدید از مقیاس

به عنوان مثال در هنگام ثبت خطا:

{{CODE}

logger.error ("[[EmailService] پست الکترونیکی ارسال نشده است – سفارش:٪ s حساب:٪ s پیام:٪ خطای s:٪ j Stack:٪ j "، order.Id ، account.Id ، خطا ، خطا ، خطا و & error.stack)؛

{{ENDCODE}} ‍

جمع کننده ها را وارد کنید

اکنون ، اجازه دهید ببینید چرا این قوانین بسیار مهم هستند. اگر روشی آسان برای تجزیه و تحلیل آن وجود نداشته باشد ، ورود به سیستم معنایی ندارد. یکی از راه های پیش رو این است که گزارش های خود را در پرونده های روی سرور خود رها کنید ، از طریق ssh وارد شوید و با طلسم های دلخواه مورد علاقه خود مرور کنید. اما این می تواند وقت گیر باشد و خود تجزیه و تحلیل ممکن است شهودی نباشد. همچنین ، شما باید مشکل ذخیره سازی را خودتان مدیریت کنید.

رویکرد دیگر ایجاد یک جمع سنگی عمیق بر اساس هر یک از ابزارهای منبع باز محبوب است. در اینجا ELK و graylog از اهمیت ویژه ای برخوردار هستند. اما مجدداً ، تنظیم و هاستینگ زمان می برد ، به خصوص اگر یک جادوگر لینوکس ندارید. علاوه بر این ، هشدار خارج از جعبه نیست – شما باید یک بسته دیگر را پیکربندی و نگهداری کنید.

و این هشدار است که پیشگویی اصلی است که می خواهم با آن کنار بیایید. قادر به تعریف و اطلاع رسانی در مورد پیام های خطای حساس ، ستون فقرات یک سیستم نظارت پایدار برای یک سیستم مراحل اولیه است.

اگر بتوانید خطاهایی را انتخاب کنید که خطاها در واقع برای شما مهم هستند ، زمان صرفه جویی را تصور کنید و اگر می توانید زمینه خطا را در یک ایمیل با قالب بندی مناسب یا یک کانال Slack اختصاصی دریافت کنید.

بنابراین ، چگونه می توانیم ایمیل / اسلک را دریافت کنیم / هشدارهای پیامکی سریع؟ پاسخ این است: ما یک بستر SaaS را به کار خواهیم گرفت (احتمالاً قبلاً این سری را در سری های ما مشاهده کرده اید).

بازار جمع آوری ورود به سیستم در طی چند سال گذشته بلوغ شده است. می توانید یکی از ابزارهای مختلف را انتخاب کنید. با این حال ، ما فهمیدیم LogEntries بهترین پروژه برای ما است. ما بیش از 3 سال است که از آن استفاده می کنیم و قیمت آن کاملاً ارزشمند بوده است. چرا LogEntries؟ از آنجا که جدا از ماژول هشدار ، چندین ویژگی صرفه جویی در زمان دیگر را نیز ارائه می دهد مانند:

  • زبان جستجوی SQL-like مانند جستجو
  • جستجوی جمع زنده دم
  • برچسب های سفارشی از سیاهههای مربوط
  • با چند PaaS کار می کند ( heroku addon) و IaaS
  • توانایی جمع آوری گزارش های مربوط به برنامه ها و خدمات مختلف را دارد
 مثال مصالح ورود

اگر اجازه دهید دوباره به هشدارها برگردیم. ایجاد اعلان های ایمیل با LogEntries بسیار ساده است. شما فقط با استفاده از فیلترهای داخلی یا regex یک برچسب را تعریف می کنید و سپس تعریف می کنید که کدام تگ باید یک ایمیل ارسال کند و چه کسی آن را دریافت کند. شایان ذکر است که می توانید فرکانس را نیز تنظیم کنید.

 ایجاد برچسب های ایمیل خطا
 افزودن هشدار برای دستیابی به امنیت بهتر

در یک تجارت اینترنتی در بازار مانند Manufaktura ، از CTO در مورد خطاهای مورد انتظار و غیر منتظره مطلع می شود:

  • انتظار می رود – گاهی اوقات می دانید که یک مورد خاص هنوز اجرا نشده است (به دلیل اولویت های *) اما به ندرت اتفاق می افتد که یک بروزرسانی ساده دستی db کافی است. شما فقط باید به اندازه کافی زود مطلع شوید.
  • غیر منتظره – همه موارد دیگر مانند هنگامی که سرور با 500 یا با زمان پاسخگویی پاسخ می دهد

* همانطور که در پست های قبلی ذکر کردیم ، اولویت بندی این موارد که ابتدا باید اجرا شود یا کدام ویژگی ها باید باشد حمل و نقل به خودی خود یک مهارت است. تنها راه یادگیری آن روش سخت است – از طریق تجربه. خبر خوب این است که با هشدارهای خطا شما فقط یک ابزار مفید برای کاهش تأثیر انتخاب اشتباه دریافت کرده اید.

ابزارهای نظارت بر Plug'n'Play

تصور کنید می توانید یک داشبورد عملکرد عملکردی پیچیده ، از جمله معیارهای مانند :

  • تعداد کل درخواستها
  • زمان اجرای معاملات
  • زمان اجرای پرس و جو پایگاه داده

با نوشتن فقط دو خط کد. این با استفاده از ابزارهای SaaS عملکرد برنامه امکان پذیر است. یکی از محبوب ترین و بالغ ترین New Relic است. این نرم افزار از بسیاری از زبان های برنامه نویسی پشتیبانی می کند و صدها مورد ادغام از جمله افزونه های پایگاه داده ، مرورگر ، زیرساخت ، مخصوص تلفن همراه را افزایش داده است. اما در عین حال گران است. به همین دلیل خوب است که نگاهی به گزینه های دیگر بیندازید.

به هر حال ، در مرحله اولیه شما نیازی به ویژگی های جدید Relic ندارید. می توانید فقط با ماژول APM به اطراف بروید. و اگر میزبان سکوی خود در هرووکی هستید ، New Relic یک پیشنهاد جالب 49 دلاری برای شما دارد:

آنچه در مورد New Relic نیز جالب است ، ماژول هشدار دهنده است. مشابه هشدارهای LogEntries ، می توانید برای موقعیت های غیر منتظره مورد انتظار مشترک شوید. مانند سنبله در ترافیکی که برنامه شما هنوز قادر به رسیدگی آن نیست. این به شما امکان می دهد قبل از اینکه گه واقعاً به فن برخورد کند ، واکنش نشان دهید. می توانید زیرساخت های خود را برای افزایش مدت زمان ترافیک مرتب سازی کنید یا سعی کنید صف های کاری را مرتب کنید و بعداً آنها را پردازش کنید.

مدیریت هشدارها

پیجر وظیفه

اعلان های اصلی LogEntries و NewRelic با ایمیل اجرا می شوند. برای هر دو ابزار ، همچنین می توانید یک کانال Slack را از طریق صفحات وب اضافه کنید. متأسفانه این موارد در هنگام خواب زیاد استفاده نمی شوند. و پلتفرم شما ممکن است یک یا دو فرآیند کاری بسیار مهم داشته باشد که نمی خواهید حتی برای یک دقیقه از کار بیفتید.

پیجر وظیفه این کار را انجام می دهد. این برنامه به شما هشدارهای پیام رسانی / فشار اس ام اس را می دهد که از 9 دلار در ماه شروع می شود. اگر می خواهید هشدارهای تماس تلفنی را اضافه کنید یا می خواهید قوانین تیم برنامه ریزی در هنگام تماس را برای تیم خود اعمال کنید ، قیمت بالا می رود. به عنوان مثال ، می توانید پیج وظیفه را ابتدا با تام صدا بزنید ، اگر او انتخاب نکرد (به پیج وظیفه اذعان کرد که او واکنش نشان داده است) ، آن را دیک صدا می کند و سرانجام هری.

علاوه بر این ، وقتی به آنها می روید. در صفحه ادغام ، LogEntries و New Relic را بیش از 200 اتصال دهنده دیگر پیدا خواهید کرد. ادغام و پشتیبانی سه گانه یک راه ساده برای اتصال یک خطای خاص به یک توسعه دهنده مسئول فراهم می کند.

خلاصه

این 3 ابزار مانیتورینگ SaaS ارزش خوبی برای سرمایه گذاری های پولی در مرحله اولیه تجارت آنلاین دارند. پیکربندی و هاستینگ به یک مدیر اختصاصی احتیاج ندارد و همه آنها پیشنهاداتی را برای تیم های کوچک ارائه می دهند (LogEntries 39 $ ، New Relic 49 $ ، PagerDuty 9 $). آنچه بدست می آورید بی ارزش است – کاهش کار دستی برای تیم توسعه دهنده شما و کیفیت خدمات افزایش می یابد. Manufaktura با داشتن چنین شبکه ایمنی ضخیم ، آماده تولید ویژگی های قدرت بیشتر است. در مقاله بعدی ، ما یکی از این موارد را بررسی خواهیم کرد – ایمیل و پیام کوتاه .

اکنون ، هنگامی که تعداد ویژگی ها زیاد می شود ، زیرساخت ها متورم می شود و قبض های ارائه دهندگان مانیتور SaaS ما نیز انجام می شود. این زمانی است که شما ممکن است بخواهید از ابزار نظارت خود مجدداً تجدید نظر کنید و به محصولات منبع آزاد خود میزبان ضربه بزنید. اینها برخی از رهبران بازار هستند:

  • Prometheus – سیستم و سیستم نظارت بر خدمات. این معیارها را از اهداف پیکربندی شده در فواصل معین جمع آوری می کند ، عبارات قانون را ارزیابی می کند ، نتایج را نمایش می دهد و در صورت مشاهده صحیح شرایط می تواند هشدار را ایجاد کند.
  • Grafana – به شما امکان می دهد تا معیارهای خود را پرس و جو کنید ، تجسم کنید ، هشدار دهید ،
  • Consul – ابزاری برای کشف و پیکربندی خدمات در زیرساخت های شما و مدیریت بررسی های بهداشتی.
  • ELK – سیستم ورود به سیستم متمرکز بر اساس ElasticSearch ، LogStash و Kibana [19659012] Graylog – یکی دیگر از مدیریت ورود به سیستم ، نیاز به ElasticSearch و MongoDB دارد