نحوه استفاده از HashiCorp Waypoint برای همکاری با GitLab CI/CD

نحوه استفاده از HashiCorp Waypoint برای همکاری با GitLab CI/CD

HashiCorp پروژه جدیدی را به نمایش گذاشت نقطه مسیر بر HashiCorp دیجیتال. از یک فایل مبتنی بر HCL برای توصیف ساخت، ارسال و انتشار برنامه‌ها برای پلتفرم‌های ابری مختلف از Kubernetes گرفته تا AWS و Google Cloud Run استفاده می‌کند. Waypoint را به عنوان Terraform و Vagrant در نظر بگیرید تا روند ساخت، حمل و نقل و انتشار برنامه های شما را توصیف کنند.

درست است، HashiCorp Waypoint را به عنوان منبع باز منتشر کرده است، و با نمونه های زیادی همراه است. سطح ارکستراتور به شما بستگی دارد، Waypoint به عنوان یک فایل اجرایی است که می توانید مستقیماً روی لپ تاپ خود یا از ابزار ارکستراسیون CI/CD انتخابی خود اجرا کنید. هدف استقرار برنامه نیز به شما بستگی دارد، زیرا Waypoint از Kubernetes، Docker، Google Cloud Run، AWS ECS و غیره پشتیبانی می‌کند.

پس از خواندن عالی مستندات و شیک ترین نمونه ها برنامه های کاربردی ارائه شده توسط HashiCorp، تصمیم گرفتیم با GitLab CI/CD نگاهی دقیق تر به ارکستراسیون Waypoint داشته باشیم. برای انجام این کار، یک برنامه ساده Node.js که بر روی AWS ECS اجرا می شود را از مخزن نمونه می گیریم.

پس از شبیه سازی مخزن، بیایید به ساختار برنامه ای که یک صفحه را نمایش می دهد نگاه کنیم:

نحوه استفاده از HashiCorp Waypoint برای همکاری با GitLab CI/CD

همانطور که ممکن است متوجه شده باشید، هیچ Dockerfile در این پروژه وجود ندارد. آنها در مثال اضافه نشده اند زیرا ما واقعاً به آنها نیاز نداریم، زیرا Waypoint از آنها برای ما مراقبت خواهد کرد. بیایید نگاهی دقیق تر به فایل بیندازیم waypoint.hclبرای درک اینکه چه کاری انجام خواهد داد:

project = "example-nodejs"

app "example-nodejs" {
  labels = {
    "service" = "example-nodejs",
    "env" = "dev"
  }

  build {
    use "pack" {}
    registry {
    use "aws-ecr" {
        region = "us-east-1"
        repository = "waypoint-gitlab"
        tag = "latest"
    }
    }
  }

  deploy {
    use "aws-ecs" {
    region = "us-east-1"
    memory = "512"
    }
  }
}

در طول مرحله ساخت، Waypoint از Cloud Native Buildpacks (CNB) برای تعیین زبان برنامه نویسی پروژه و ایجاد یک تصویر Docker بدون استفاده از Dockerfile. در اصل، این همان فناوری است که توسط GitLab تا حدی استفاده می شود DevOps خودکار در مرحله ساخت خودکار بسیار خوب است که می بینیم CNB CNCF هر روز بیشتر و بیشتر در بین کاربران صنعت پذیرفته می شود.

هنگامی که تصویر ساخته شد، Waypoint به طور خودکار آن را در رجیستری AWS ECR ما آپلود می کند تا برای ارسال آماده شود. در پایان مونتاژ، مرحله تحویل استفاده می شود افزونه AWS ECS تا برنامه ما را در حساب AWS خود مستقر کنیم.

از لپ تاپ من آسان است. من Waypoint را وارد کردم که قبلاً در حساب AWS من تأیید شده است و "فقط کار می کند". اما اگر بخواهم از لپ تاپم فراتر بروم چه اتفاقی می افتد؟ یا شاید من می‌خواهم این استقرار را به عنوان بخشی از خط لوله CI/CD کلی خود که در آن تست‌های یکپارچه‌سازی فعلی، تست‌های امنیتی و موارد دیگر اجرا می‌شوند، خودکار کنم؟ این بخشی از داستان است که GitLab CI/CD وارد می شود!

NB اگر فقط قصد پیاده سازی CI / CD را دارید یا می خواهید بهترین روش ها را برای ساخت خطوط لوله شروع کنید، به دوره جدید Slurm توجه کنید. "CI/CD در نمونه Gitlab CI". اکنون برای قیمت پیش خرید در دسترس است.

نقطه راه در GitLab CI/CD

برای هماهنگ کردن همه اینها در GitLab CI/CD، بیایید ببینیم چه چیزی در فایل خود نیاز داریم. .gitlab-ci.yml:

  • اول از همه، به یک تصویر پایه برای اجرا در داخل آن نیاز دارید. Waypoint روی هر توزیع لینوکس اجرا می شود، فقط به Docker نیاز دارد، بنابراین می توانیم با یک تصویر عمومی Docker اجرا کنیم.
  • بعد، باید Waypoint را در این تصویر نصب کنید. در آینده ممکن است جمع آوری کنیم تصویر متا بیلد و این فرآیند را برای خودتان در ظرفی قرار دهید.
  • در نهایت دستورات Waypoint را اجرا خواهیم کرد

در بالا هر چیزی که خط لوله ما برای اجرای اسکریپت های مورد نیاز برای اجرای استقرار نیاز دارد، آمده است، اما برای استقرار در AWS، به یک چیز دیگر نیاز داریم: باید به حساب AWS خود وارد شویم. در توضیحات Waypoint برنامه هایی داشته باشند در مورد احراز هویت و مجوز. HashiCorp نیز این هفته یک پروژه چشمگیر منتشر کرد مرز. اما در حال حاضر، ما فقط می توانیم احراز هویت و مجوز را خودمان انجام دهیم.

چندین گزینه برای احراز هویت GitLab CICD در AWS وجود دارد. اولین گزینه استفاده از داخلی است خرک HashiCorp. اگر تیم شما در حال حاضر از Vault برای مدیریت اعتبار استفاده می کند، خوب است. روش دیگری که کار می کند اگر تیم شما مجوز را با استفاده از AWS IAM مدیریت کند این است که بررسی کنید وظایف تحویل از طریق راه اندازی می شوند GitLab RunnerA که مجاز به شروع استقرار از طریق IAM است. اما اگر فقط می‌خواهید با Waypoint آشنا شوید و می‌خواهید این کار را سریع انجام دهید، آخرین گزینه اضافه کردن AWS API و کلیدهای Secret به متغیرهای محیط GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

قرار دادن همه اینها با هم

وقتی احراز هویت را فهمیدیم، می توانیم شروع کنیم! فینال ما .gitlab-ci.yml به نظر می رسد این:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Define environment variables, e.g. `WAYPOINT_VERSION: '0.1.1'`
  variables:
    WAYPOINT_VERSION: ''
    WAYPOINT_SERVER_ADDR: ''
    WAYPOINT_SERVER_TOKEN: ''
    WAYPOINT_SERVER_TLS: '1'
    WAYPOINT_SERVER_TLS_SKIP_VERIFY: '1'
  script:
    - wget -q -O /tmp/waypoint.zip https://releases.hashicorp.com/waypoint/${WAYPOINT_VERSION}/waypoint_${WAYPOINT_VERSION}_linux_amd64.zip
    - unzip -d /usr/local/bin /tmp/waypoint.zip
    - rm -rf /tmp/waypoint*
    - waypoint init
    - waypoint build
    - waypoint deploy
    - waypoint release

می بینید که ما با یک تصویر شروع می کنیم docker:latest و چند متغیر محیطی مورد نیاز توسط Waypoint را تنظیم کنید. در فصل script ما آخرین فایل اجرایی Waypoint را دانلود کرده و در آن قرار می دهیم /usr/local/bin. از آنجایی که رانر ما قبلاً در AWS مجاز است، ما به سادگی اجرا می کنیم waypoint init, build, deploy и release.

خروجی کار ساخت، نقطه پایانی را که برنامه را در آن قرار داده ایم به ما نشان می دهد:

نحوه استفاده از HashiCorp Waypoint برای همکاری با GitLab CI/CD

نقطه راه یکی از راه حل های متعدد HashiCorp، که با GitLab عالی کار می کنند. برای مثال، علاوه بر ارائه برنامه، می‌توانیم زیرساخت‌های زیربنایی را با آن هماهنگ کنیم Terraform در GitLab. برای استاندارد کردن امنیت SDLC، ما همچنین می توانیم پیاده سازی کنیم GitLab با Vault برای مدیریت اسرار و نشانه ها در خطوط لوله CI/CD، ارائه یک راه حل کامل برای توسعه دهندگان و مدیرانی که برای توسعه، آزمایش و استفاده از تولید به مدیریت مخفی متکی هستند.

راه‌حل‌های مشترک توسعه‌یافته توسط HashiCorp و GitLab به شرکت‌ها کمک می‌کند تا بهترین راه برای توسعه برنامه‌های کاربردی را با اطمینان از مدیریت زنجیره تامین و زیرساخت‌ها بیابند. ویپوینت گام دیگری در مسیر درست برداشته است و ما مشتاقانه منتظر توسعه بیشتر پروژه هستیم. می توانید در مورد Waypoint اطلاعات بیشتری کسب کنید اینجاهمچنین ارزش کاوش را دارد مستندات и طرح توسعه پروژه ما دانش خود را به آن اضافه کرده ایم مستندات GitLab CICD. اگر می‌خواهید خودتان آن را امتحان کنید، می‌توانید نمونه کار کامل را در اینجا بررسی کنید این مخزن.

شما می توانید اصول CI / CD را درک کنید، بر تمام ظرافت های کار با Gitlab CI مسلط شوید و با گذراندن دوره ویدیویی شروع به اعمال بهترین روش ها کنید. "CI/CD در نمونه Gitlab CI". همین الان ملحق شوید، همین الان بپیوندید!

منبع: www.habr.com

اضافه کردن نظر