مقالات

با ابر یوتاب؛ چی‌کارا می‌شه کرد؟

به ابر یوتاب خوش آمدید 🙂 در این پست قصد دارم بخش از فرامین سرویس ابر یوتاب را در Command Line معرفی کنم. امیدوارم اینجا نقطه‌ای برای شروع استفاده از سرویس ابری یوتاب و کانتینرهای داکر باشد تا نرم‌افزار خود را به سادگی به یک سرویس پایدار و مقیاس‌پذیر، تبدیل کنید.

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

تست سرویس یوتاب همیشه رایگان است، اگر هنوز نام کاربری ندارید، می‌توانید از قسمت ثبت‌نام یک نام‌کاربری برای خود بسازید.

ورود به سرویس

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

برای تست اولیه می‌توانید راهنمای کلاینت رو ببینید با دستور زیر:

> yb help
# YOTTAb cli for client side usage

# Usage:
#   yb [command]

# Available Commands:
#   application list or informaition of accessible applications
#   cli         YOTTAb cli setting
#   create      creates new [service|application|domain|volume|worker|config]
#   domain      list or informaition of accessible Domains
#   environment environment variables [Set/Unset] for an Application or Service
#   link        link [set|unset] between: [Volume <-> Application <-> Service <-> Domain]
#   log         tail application log
#   portforward portforward to connect to an application running in a cluster
#   ...
 

حالا می‌‌توان با دستور زیر به سرویس وارد شد (اگر فـیـلـتـر.شـکـن شما متصل است، برای چند لحظه غیرفعالش کنید که مطمئن باشیم همه چیز اوکیه)

> yb login
# Username: test
# Password: ********
# Login successful!
 

اجرای image داکر

ابر یوتاب این امکان را فراهم می‌کند تا از مخزن عمومی داکر بتوانید image‌ مورد نظر خود را به صورت مستقیم دانلود کنید و بر روی ابر یوتاب راه‌اندازی کنید.

همچنین ابر یوتاب این امکان را فراهم کرده تا image‌های داکر خصوصی خود را در مخزن hub خصوصی خود نگهداری کنید.

در زیر دو اپلیکیشن با image‌های عمومی و خصوصی را اجرای می‌کنیم. image‌ سرویس go-echo بر روی مخزن داکر موجود هست. هر اپلیکیشن بعد از اجرای، بر روی ساب‌دامنه‌ app.YOTTAb.io قرار می‌گیرد. در قسمت دوم یک image‌ از nginx که بر روی مخزن شخصی خودم در Hub خصوصی یوتاب قرار داده بودم را اجرا کردم.

> yb create application  \
     -i="cjimti/go-echo" \
     --port=80 \
     --name=echo 
# Successful Start Application
# Url: Http://echo.< USER_ID >.app.YOTTAb.io/


> yb create application \
     -i="hub.yottab.io/< USER_ID >/nginx:latest" \
     --port=80 \
     --name=nginx 
# Successful Start Application
# Url: Http://nginx.< USER_ID >.app.YOTTAb.io/


> yb application
# - Name: echo                                 
#   State: Up                             
#   Service refrence: application-ref          
#   Updated: 2019-05-03T21:13:16+04:30     
#    
# - Name: nginx                                
#   State: Up                                  
#   Service refrence: application-ref          
#   Updated: 2019-05-03T21:13:32+04:30  
   

برای اطلاعات بیشتر در مورد ساخت image داکر و ارسال آن بر روی مخازن خصوصی ابر یوتاب، این مطلب را ببینید. Hub یا مخازن داکر در ابر یوتاب، امکان نگهداری نسخه‌های مختلف سرویس نرم‌افزاری شما را فراهم می‌کند.

اتصال دامنه شخصی به اپلیکیشن

در ابر یوتاب مدیریت سرویس DNS و صدور گواهینامه امنیتی SSL به صورت رایگان و اتوماتیک می‌باشد. البته این امکان دیده شده تا در هر زمان بتوانید از ارائه‌دهنده دیگری برای سرویس‌ها DNS و SSL استفاده کنیم.

در ابر یوتاب هر کانتینر بعد از اجرا، یک اپلیکیشن نامیده می‌شود و با توجه به «نام سازمان» مشتری و «نام اپلیکیشن» برای آن یک آدرس بر روی دامنه ابر یوتاب به شکل زیر اختصاص داده می‌شود.

  HTTPS:// <APPLICATION__NAME > . < USER__ID > .app.YOTTAb.io

شما می‌توانید دامنه شخصی خود را به یک سرویس متصل کنید یا مسیرهای مختلف یک دامنه به اپلیکیشن‌های مختلف متصل شود. در ابتدا دامنه خود را با دستور create domain در ابر یوتاب تعریف می‌کنید و در نهایت آن را با دستور link set به اپلیکیشن خود متصل می‌کنید.

> yb create domain \
     "EXAMPLE.COM" \
     --TLS=true
# Successful Create Domain


> yb link set \
     --application="<APPLICATION__NAME>" \
     --domain="EXAMPLE.COM"
# Successful Attached Domain
 

برای اطلاعات بیشتر در مورد مدیریت دامنه‌ها و اختصاص مسیر‌های مختلف به هر اپلیکیشن پست مدیریت دامنه‌ها در ابر یوتاب را ببینید. در این پست در مورد صدور گواهینامه امنیتی SSL و برای پشتیبانی از HTTPS در محصول شما توضیح داده شده است.

سرویس‌‌های ساختمان‌داده ابری

ما در ابر یوتاب سعی کردیم سرویس‌های که کاربرد عمومی دارند را به صورت پایدار و مقیاس‌پذیر در اختیار کاربران قرار دهیم و در حال حاضر تمرکز خودمان را بر روی سرویس‌دهی دیتابیس‌ها گذاشته‌ایم. شما می‌توانید لیست آخرین سرویس‌های ما را از سایت ابر یوتاب و یا دستور product در دسترس است. به طور مثال برای راه‌اندازی یه دیتابیس MySQL می‌توانیم از create service استفاده کنیم.

> yb product 
# - Name: application
# - Name: mysql
# - Name: postgresql
# - Name: redis
# - ...


> yb create service \
     mysql \
     --name="test-mysql"
# Service Name: test-mysql                         
# Plan Name: starter                           
# State: Up                               
# Created: 2019-05-03T16:08:04+04:30 , Updated: 2019-05-03T16:08:04+04:30
# Variable:                                    
#  	   name: test-mysql                               
#  	   mysqlRootPassword: DaRHem13dAX               
# List of endpoints: None                      
# Attached domains: None   
 

اتصال سرویس‌‌های ابری به اپلیکیشن خودمان

حالا ما نرم‌افزار خودمان را روی ابر یوتاب اجرا و یک دیتابیس MySQL هم راه‌اندازی کرده‌ایم. برای اتصال این سرویس باید اجازه اتصال اپلیکیشن به دیتابیس را بدهیم که با دستور link set صورت می‌گیرد. دستور link set دو ورودی دریافت می‌کند، اسم اپلیکیشن و اسم سرویس که قرار است به هم متصل شوند.

در نهایت برای معرفی مشخصات ساختمان‌داده به اپلیکیشن، یک روش استاندارد، استفاده از متغییر‌های محیطی یا Environment Variable است که می‌توانیم این متغییر‌ها را با استفاده از دستور environment set application به اپلیکیشن اضافه کنیم.

> yb link set \
     --application="test-application" \
     --service="test-mysql"
# Successful Create Link


> yb environment set application <APPLICATION__NAME> \
     --variable="DB_HOS=test-mysql" \
     --variable="DB_USER=root" \
     --variable="DB_PASSWORD=DaRHem13dAX"
# Successful Set Variable
 

جمع‌بندی

من سعی کردم بخشی از کارهای ابتدایی که ممکن هست برای راه‌اندازی یک سرویس نیاز باشد را در اینجا عنوان کنم تا شما دیدی کلی داشته باشید نسبت به خدماتی که در ابر یوتاب ارائه می‌شود. اگر می‌خوایید بیشتر اطلاع داشته باشید در مورد کارهایی که با ابر یوتاب می‌شود انجام داد، علاوه بر راهنمای ابر یوتاب، پیشنهاد می‌کنم لینک‌هایی که در زیر آمده است را دنبال کنید.