برنامه نویسی

یک برنامه کریستال را با Docker و Opentelemetry اجرا کنید

این ادامه پست قبلی این مجموعه در مورد سرور Battlesnake است.

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

پلتفرم برنامه Digitalocean با Dockerfile

من مدتی است که مشتری/کاربر Digitalocean هستم، بنابراین پلتفرم App PaaS آنها را امتحان کردم. آنها از بیلدپک استفاده می کنند یا الف را تشخیص می دهند Dockerfile که برنامه شما را می سازد و اجرا می کند، و من با دومی رفتم (مطمئن نیستم که آیا بیلدپک کریستال به نحوی پشتیبانی می شود).

مقاله مایکل نیکیتوچکین به من 95 درصد از آنچه را که برای ایجاد یک استقرار کانتینر کارآمد با یک تصویر ردپای کوچک (آلپاین) نیاز داشتم، به من آموخت.

# Build image
FROM crystallang/crystal:1.7.2-alpine as builder
WORKDIR /opt
# Cache dependencies
COPY ./shard.yml ./shard.lock /opt/
RUN shards install -v
# Build a binary
COPY . /opt/
RUN crystal build --static --release ./src/app.cr
# ===============
# Result image with one layer
FROM alpine:latest
WORKDIR /
COPY --from=builder /opt/app .
ENTRYPOINT ["./app", "-p", "8080"]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این برنامه با هر commit به مستقر می شود main و لایه های کش خوب هستند. زمانی که یک تصویر داکر نیاز به ساخت دارد (با وابستگی‌های کش) و زمانی که استقرار توسط یک به‌روزرسانی پیکربندی (یعنی به‌روزرسانی متغیر ENV) راه‌اندازی می‌شود، به طور متوسط ​​2 دقیقه و 40 ثانیه طول می‌کشد.

بازتلمتری

برای اینکه بفهمم چه خبر است، ردیابی Opentelemetry را با Honeycomb.io اضافه کردم. چند آمار جالب از چند روز رتبه بندی در تابلوهای امتیازات:

آمار تلمتری باز لانه زنبوری

می توانید بگویید که تابلوهای امتیازات در ساعات خاصی اجرا می شوند و سرور تقریباً نیمی از زمان را بدون فعالیت زیاد در آنجا می نشیند. آمار مورد علاقه من وجود دارد P99 در ~ 3.1 میلی ثانیه با تمام آن منطق در حال اجرا (از پست قبلی).

بسیاری از پاسخ‌ها در میکروثانیه پاسخ می‌دهند، همانطور که در گزارش‌های زمان اجرا (در زیر) و P50 آمار در مورد لانه زنبوری (در بالا):

زمان پاسخ میکروثانیه

در کل خیلی شیرین ⚡️

اطلاعات بیشتر در مورد سایر آموخته های این پروژه به زودی ارائه می شود.

زندگی ناب.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا