به تازگی یک سرویس PaaS (یا Platform as a Service ) ایرانی به نام فندق (لینک) راه اندازی شده است که بر اساس داکر کار میکند، در این آموزش، قرار است که یک اپلیکیشن ساده سیناترا نوشته و سپس توسط فندق آن را دیپلوی کنیم.
راه اندازی فندق
ابتدا، باید در وبسایت فندق ثبت نام کنید، سپس ابزار خطفرمان آن را توسط pip نصب نمایید :
pip install fandogh-cli --upgrade
سپس، باید در فندق، لاگین کنیم :
fandogh --login --username=USERNAME --password=PASSWORD
اکنون، میتوانیم به ساخت اپلیکیشن ساده خود بپردازیم.
ساخت اپلیکشن
اکنون یک سناریوی ساده را پیادهسازی خواهیم کرد. در ابتدا، یک Gemfile ساخته و این خطوط را اضافه میکنیم :
source 'https://rubygems.org'
gem 'sinatra'
سپس، یک فایل با نام app.rb باز میکنیم. دقت کنید سناریویی که قرار است پیاده سازی کنیم؛ بسیار سادهاست. ما یک برنامه ساده مینویسیم که یک پارامتر را از کاربر گرفته، سپس رشته برعکس شده را در خروجی نشان دهد.
کد برنامه به شکل زیر خواهد بود :
require 'sinatra'
set :bind, '0.0.0.0'
get '/:par' do
params[:par].reverse
end
اکنون، پروژه را ذخیره کرده و سپس، باید یک Dockerfile برای پروژه خودمان بنویسیم.
نوشتن داکرفایل
داکرفایل، به ما کمک میکند تا یک تصویر، با آن شرایطی که نیاز داریم ساخته شود. قبل از نوشتن داکرفایل، الزامیست تا دستور زیر را اجرا کنیم :
bundle install
تا Gemfile.lock ساخته شود. سپس، از نسخه روبی خود مطلع میشویم (در اینجا 2.4 ) و سپس اقدام به نوشتن داکرفایل میکنیم :
FROM ruby:2.4-onbuild
RUN mkdir -pv /usr/src/app
ADD . /usr/src/app
WORKDIR /usr/src/app
CMD ["ruby", "/usr/src/app/app.rb"]
حال، باید فایل های خود را، توسط ابزار خط فرمان فندق، دیپلوی کنیم.
دیپلوی کردن پروژه توسط فندق
اکنون، کافیست با استفاده از دستورات پایه فندق، عمل دیپلوی را انجام دهیم. لازم است ابتدا یک تصویر بسازیم :
fandogh image init --name=string_reverse
پس از اجرای این دستور، شما پیامی مبنی بر موفقیت آمیز بودن ساخت تصویر، دریافت خواهید کرد. سپس، این دستور را وارد میکنیم :
fandogh image publish --version 0.0.1
پس از اجرای این دستور، تصویر مورد نظر شما ساخته میشود. پس از این که تصویر ساخته شد، میتوانیم با این دستور، آن را روی سرویس فندق؛ میزبانی کنیم.
fandogh service deploy --version 0.0.2 -p 4567
توجه داشته باشید که پس از اجرای این دستور، نام سرویس از شما پرسیده خواهد شد.
سرویسی که در این مطلب تولید کردیم، در این آدرس : stringreverse-haghiri75.fandogh.cloud در دسترس است. شما میتوانید با اجرای دستور زیر، یک رشته را برعکس تحویل بگیرید :
curl http://stringreverse-haghiri75.fandogh.cloud/salam
مطالعه بیشتر
در این مطلب، سرویس سادهای مد نظر داشتیم که دیتابیس نداشت و نیازی هم به پیاده سازی دیتابیس و اسکریپت نویسی برای ارتباط با آن نداشتیم. در مطالب آینده، سعی خواهیم کرد که این موضوع نیز پوشش داده شود. همچنین، برای آشنایی بیشتر با فندق، میتوانید مستندات این سیستم (لینک) را مطالعه فرمایید.