چالش رزومه ابری (AWS): تجربه من در مقابله با چالش

Summarize this content to 400 words in Persian Lang
سلام! نام من آلمانی سوتو یک مهندس نرم افزار با تجربه به عنوان تحلیلگر QA است. بعد از سفرم به عنوان QA سعی کردم به سمت یک نقش فنی تر حرکت کنم که هنوز اتفاق نیفتاده است. بنابراین تصمیم گرفتم با این چالش مقابله کنم تا مهارت های AWS خود را تقویت کنم.
چالش
این چالش توسط Forrest Brazeal ایجاد شده است، از 16 مرحله (در AWS) تشکیل شده است و به موارد زیر تقسیم می شود: آپلود یک نمونه کار وب / رزومه با استفاده از زیرساخت ابری و ایجاد یک خط لوله پیوسته یکپارچه / تحویل مستمر برای به روز رسانی آن. در مورد من، در نهایت شبیه به این شد.
در اینجا توضیح مختصری از آنچه در هر مرحله یاد گرفتم و چیزهایی که با آنها دست و پنجه نرم کردم آمده است:
1. گواهینامه بگیرید
از نظر فنی، من قبلاً این مرحله را قبل از شروع چالش پشت سر گذاشته بودم، زیرا قبلاً یک سال بودم متخصص Cloud Certified AWS، اما من از آن راضی نبودم، بنابراین به عنوان مرحله 1 سراغ توسعه دهنده گواهی AWS رفتم.
در طول مسیر، پروژههای کوچکی مانند یک شبیهسازی پرنده شل و ول ساختم که امتیازها را ذخیره کرد، با تقویت AWS و برخی آزمایشهای کوچک PoC شامل AWS cognito (سرویس تأیید اعتبار).
با این حال، خدمات زیادی وجود داشت، و هر یک از آنها پیکربندیهای متفاوتی داشتند یا شبیه به هم به نظر میرسیدند (با نگاهی به SQS، SNS و Secrets Manager/Parameter Store). نکته اصلی این بود که در حین آماده شدن برای آن مصاحبه می گرفتم (که آنقدرها هم هوشمندانه نبود). بعد از 1.5 – 2 ماه، آن را پشت سر گذاشتم (هر چند در مصاحبه ها شکست خوردم).
2،3،4: HTML + CSS + وب سایت استاتیک
این جایی بود که نیمی از تلاش من رفت. با وجود اینکه طراحی را دوست دارم، در آن بسیار کند هستم، و نمیخواستم مسیر آسانی را انتخاب کنم و مانند یک رزومه چاپی به نظر برسد (من همچنین پروژههایی در btw داشتم). اینجا زمانی است که من از سرگیری چالش تبدیل به a نمونه کارها چالش همانطور که گفته شد، چگونه شروع کنم و چگونه می خواهم به نظر برسد. چند ساعت طول کشید تا تصمیم بگیرم که چگونه به نظر می رسد، اما می دانستم که چند نکته کلیدی باید داشته باشد:
باید در یک حرکت خیلی چیزها را نشان می داد
باید به اندازه دستگاه پاسخگو باشد
سرانجام با طراحی بنتو جعبه/شبکه برخورد کردم. و مشکل حل شد.
پس از اتمام html + css این فایل ها را در یک سطل S3 آپلود کردم و این فایل ها را فعال کردم: دسترسی عمومی، میزبانی وب سایت استاتیک و CORS.
5 و 6: HTTPS + DNS
این مراحل به طور خلاصه عبارتند از: وب سایت خود را با استفاده از cloudfront، با https و با استفاده از دامنه خود توزیع کنید. در اینجا من از سرویسی استفاده کردم که در طول صدور گواهینامه آن را تمرین نکردم: AWS Certificate Manager و ادغام آن با cloudfront.
خوشبختانه یک سناریوی واقعا رایج برای پیوند دامنه شما به وب سایت شما است، بنابراین منابع زیادی وجود دارد. من یک مرحله را در حین دنبال کردن اسناد از دست دادم: نام دامنه جایگزین را به توزیع cloudfront اختصاص ندادم. اما بعد از یک استراحت کوتاه موفق شدم بفهمم اشتباهم کجا بوده است.
7-10 جاوا اسکریپت، پایگاه داده، API، پایتون
در اینجا من میوه های زمان آماده سازی گواهینامه خود را برداشت کردم. یکی از پروژههایی که من انجام دادم نیاز به پشتیبان مشابه این پروژهها داشت، بنابراین مشکلات من، یعنی CORS واقعاً تازه بودند و در این مراحل از آنها اجتناب کردم.
11 – 15 تست، IaC، منبع کنترل، CI/CD frontend و backend
من برای این S زندگی می کنم***-الیوت/آقای ربات
این بخش آخر چالش، قسمتی بود که بیشتر از همه لذت بردم. در اینجا ما backend را با استفاده از SAM بازسازی کردیم، کد را در Github آپلود کردیم و از اقدامات github برای انجام خط لوله CI/CD استفاده کردیم. سخت بود چون حداقل برای من همه چیز جدید بود. از نظر تئوری برای دریافت گواهی توسعه دهنده، باید با خطوط لوله CI/CD آشنا باشید. اما این استفاده از خط لوله AWS است. نه Github. از آنجایی که این یک ارائهدهنده خارجی است، باید با مجوزها دست به کار شوید، پارامترها را به خط لوله خود و سایر موارد ادغام ارسال کنید تا کار کند. خوشبختانه Github، AWS و جامعه توسعه دهندگان فکر می کردند که این یک اتفاق رایج است، بنابراین نحوه حل بخش هویت/مجوزها مستند شد.
پس از آن، از آنجایی که نیازی به نگرانی در مورد آن نبود، شروع به ساخت فایل yaml برای خط لوله خود کردم، که صادقانه بگویم، پس از انجام این کار با آن راحت بودم. aws sam. شروع به پیادهسازی تستها کرد (آزادی استفاده از نمایشنامهنویس در قسمت جلویی و پایتست برای پشتیبان را گرفت)، و تست کردن و دیدن هر آزمون به عنوان گذرانده شده واقعاً رضایتبخش بود. حالا برای “اقدامات”، من فقط باید گوگل می کردم، آنها را پیاده سازی می کردم، و چیزها فقط کار می کردند … یا اینطور فکر می کردم.
تقریباً در پایان (روز قبل از نوشتن این مدخل). ساخت من پس از تغییر نقطه پایانی به دروازه API با شکست مواجه شد (در مراحل 7-10 به جای آنچه با استفاده از الگوی cloudformation ساخته شده بود). پس از ساعتها اشکالزدایی و بسیاری از ساختهای ناموفق، تصمیم گرفتم CORS را در وبسایت https://cors-test.codehappy.dev آزمایش کنم.
و CORS فعال نشده بود، دروازه api قبلی من یک نوع ادغام داشت AWS و این جدید آن را داشت AWS_PROXY تایپ کنید (که در آن باید سرصفحه ها را برگردانید)، بنابراین هدرهای CORS را به کد لامبدا اضافه کردم و کار کرد.
حالا با حل مشکل CORS، شمارنده من پر شد که باعث شد تست قبول شود، و ساخت موفق شد!
16 این پست 😉
در اینجا پیوندهای نمونه کارها و کد من وجود دارد:
سلام! نام من آلمانی سوتو یک مهندس نرم افزار با تجربه به عنوان تحلیلگر QA است. بعد از سفرم به عنوان QA سعی کردم به سمت یک نقش فنی تر حرکت کنم که هنوز اتفاق نیفتاده است. بنابراین تصمیم گرفتم با این چالش مقابله کنم تا مهارت های AWS خود را تقویت کنم.
چالش
این چالش توسط Forrest Brazeal ایجاد شده است، از 16 مرحله (در AWS) تشکیل شده است و به موارد زیر تقسیم می شود: آپلود یک نمونه کار وب / رزومه با استفاده از زیرساخت ابری و ایجاد یک خط لوله پیوسته یکپارچه / تحویل مستمر برای به روز رسانی آن. در مورد من، در نهایت شبیه به این شد.
در اینجا توضیح مختصری از آنچه در هر مرحله یاد گرفتم و چیزهایی که با آنها دست و پنجه نرم کردم آمده است:
1. گواهینامه بگیرید
از نظر فنی، من قبلاً این مرحله را قبل از شروع چالش پشت سر گذاشته بودم، زیرا قبلاً یک سال بودم متخصص Cloud Certified AWS، اما من از آن راضی نبودم، بنابراین به عنوان مرحله 1 سراغ توسعه دهنده گواهی AWS رفتم.
در طول مسیر، پروژههای کوچکی مانند یک شبیهسازی پرنده شل و ول ساختم که امتیازها را ذخیره کرد، با تقویت AWS و برخی آزمایشهای کوچک PoC شامل AWS cognito (سرویس تأیید اعتبار).
با این حال، خدمات زیادی وجود داشت، و هر یک از آنها پیکربندیهای متفاوتی داشتند یا شبیه به هم به نظر میرسیدند (با نگاهی به SQS، SNS و Secrets Manager/Parameter Store). نکته اصلی این بود که در حین آماده شدن برای آن مصاحبه می گرفتم (که آنقدرها هم هوشمندانه نبود). بعد از 1.5 – 2 ماه، آن را پشت سر گذاشتم (هر چند در مصاحبه ها شکست خوردم).
2،3،4: HTML + CSS + وب سایت استاتیک
این جایی بود که نیمی از تلاش من رفت. با وجود اینکه طراحی را دوست دارم، در آن بسیار کند هستم، و نمیخواستم مسیر آسانی را انتخاب کنم و مانند یک رزومه چاپی به نظر برسد (من همچنین پروژههایی در btw داشتم). اینجا زمانی است که من از سرگیری چالش تبدیل به a نمونه کارها چالش
همانطور که گفته شد، چگونه شروع کنم و چگونه می خواهم به نظر برسد. چند ساعت طول کشید تا تصمیم بگیرم که چگونه به نظر می رسد، اما می دانستم که چند نکته کلیدی باید داشته باشد:
- باید در یک حرکت خیلی چیزها را نشان می داد
- باید به اندازه دستگاه پاسخگو باشد
سرانجام با طراحی بنتو جعبه/شبکه برخورد کردم. و مشکل حل شد.
پس از اتمام html + css این فایل ها را در یک سطل S3 آپلود کردم و این فایل ها را فعال کردم: دسترسی عمومی، میزبانی وب سایت استاتیک و CORS.
5 و 6: HTTPS + DNS
این مراحل به طور خلاصه عبارتند از: وب سایت خود را با استفاده از cloudfront، با https و با استفاده از دامنه خود توزیع کنید. در اینجا من از سرویسی استفاده کردم که در طول صدور گواهینامه آن را تمرین نکردم: AWS Certificate Manager و ادغام آن با cloudfront.
خوشبختانه یک سناریوی واقعا رایج برای پیوند دامنه شما به وب سایت شما است، بنابراین منابع زیادی وجود دارد. من یک مرحله را در حین دنبال کردن اسناد از دست دادم: نام دامنه جایگزین را به توزیع cloudfront اختصاص ندادم. اما بعد از یک استراحت کوتاه موفق شدم بفهمم اشتباهم کجا بوده است.
7-10 جاوا اسکریپت، پایگاه داده، API، پایتون
در اینجا من میوه های زمان آماده سازی گواهینامه خود را برداشت کردم. یکی از پروژههایی که من انجام دادم نیاز به پشتیبان مشابه این پروژهها داشت، بنابراین مشکلات من، یعنی CORS واقعاً تازه بودند و در این مراحل از آنها اجتناب کردم.
11 – 15 تست، IaC، منبع کنترل، CI/CD frontend و backend
من برای این S زندگی می کنم***
-الیوت/آقای ربات
این بخش آخر چالش، قسمتی بود که بیشتر از همه لذت بردم. در اینجا ما backend را با استفاده از SAM بازسازی کردیم، کد را در Github آپلود کردیم و از اقدامات github برای انجام خط لوله CI/CD استفاده کردیم. سخت بود چون حداقل برای من همه چیز جدید بود. از نظر تئوری برای دریافت گواهی توسعه دهنده، باید با خطوط لوله CI/CD آشنا باشید. اما این استفاده از خط لوله AWS است. نه Github. از آنجایی که این یک ارائهدهنده خارجی است، باید با مجوزها دست به کار شوید، پارامترها را به خط لوله خود و سایر موارد ادغام ارسال کنید تا کار کند. خوشبختانه Github، AWS و جامعه توسعه دهندگان فکر می کردند که این یک اتفاق رایج است، بنابراین نحوه حل بخش هویت/مجوزها مستند شد.
پس از آن، از آنجایی که نیازی به نگرانی در مورد آن نبود، شروع به ساخت فایل yaml برای خط لوله خود کردم، که صادقانه بگویم، پس از انجام این کار با آن راحت بودم. aws sam
. شروع به پیادهسازی تستها کرد (آزادی استفاده از نمایشنامهنویس در قسمت جلویی و پایتست برای پشتیبان را گرفت)، و تست کردن و دیدن هر آزمون به عنوان گذرانده شده واقعاً رضایتبخش بود. حالا برای “اقدامات”، من فقط باید گوگل می کردم، آنها را پیاده سازی می کردم، و چیزها فقط کار می کردند … یا اینطور فکر می کردم.
تقریباً در پایان (روز قبل از نوشتن این مدخل). ساخت من پس از تغییر نقطه پایانی به دروازه API با شکست مواجه شد (در مراحل 7-10 به جای آنچه با استفاده از الگوی cloudformation ساخته شده بود). پس از ساعتها اشکالزدایی و بسیاری از ساختهای ناموفق، تصمیم گرفتم CORS را در وبسایت https://cors-test.codehappy.dev آزمایش کنم.
و CORS فعال نشده بود، دروازه api قبلی من یک نوع ادغام داشت AWS
و این جدید آن را داشت AWS_PROXY
تایپ کنید (که در آن باید سرصفحه ها را برگردانید)، بنابراین هدرهای CORS را به کد لامبدا اضافه کردم و کار کرد.
حالا با حل مشکل CORS، شمارنده من پر شد که باعث شد تست قبول شود، و ساخت موفق شد!
16 این پست 😉
در اینجا پیوندهای نمونه کارها و کد من وجود دارد: