Quarkus جاوا برای دنیای ابری و میکروسرویسها!
آموزش ضروری کوارکوس
کمپانی آنها دچار بحرانی جدی گشت، واینمن و هون ۷۵ درصد کارمندان خود را اخراج کردند و تنها ۹ نفر در استخدام شان باقی ماند. دفتر و مقر برگزاری دوره های لیندا نیز کوچک تر گشت و سعی را بر این گذاشتند تا واحد هایی با قیمت ارزان تر اجاره نمایند. اما ریشه نقطه پایانی کجا تعریف شده است؟ src/main/resources/application.properties را باز کنید و دو خط مشاهده شده در فهرست ۸ را اضافه کنید. اکنون کلاس /src/main/java/com/infoworld/GreetingResource.java را باز کنید و آن را همانطور که در لیست ۴ مشاهده می کنید تغییر دهید. من دائماً در حال توسعه این دوره هستم و درسهای جدیدی اضافه میکنم، به خصوص در پاسخ به بازخورد شرکتکنندگان.
در صورتی که از مطالب این سایت استفاده کردید و تمایل به حمایت از این سایت داشتید میتونید از طریق ارز دیجیتال ترون به ما کمک کنید. ساخت Red Hat نسخه ۳.۲ Quarkus ابتدا در ۲۳ اکتبر، همراه با دستورالعملهایی برای شروع کار با ساخت جدید در developers.redhat.com. همچنین در Quarkus 3.11، یک افزونه جدید Infinispan Cache از استفاده از Infinispan به عنوان پشتیبانی می کند. یک انتهای پشتی و از نظر امنیتی، Quarkus 3.11 شامل پشتیبانی از صفحه منقضی شده جلسه OIDC (OpenID Connect) است و OidcRedirectFilter را معرفی می کند که امکان سفارشی سازی تغییر مسیرهای OIDC را فراهم می کند. اما رفته رفته به این نتیجه می رسند که این فروش و ادغام دو کمپانی با یکدیگر احتمالاً امری منطقی و موثر خواهد بود.
روز های سیاهی بود و حتی خودم تردید داشتم که می توانیم این کسب و کار را ادامه دهیم یا خیر. GreetingResourceTest را همانطور که در فهرست ۵ مشاهده می شود، تغییر دهید. در ۲۰۰۷ تصمیم بر این شد تا یک مدیرعامل جهت اداره ی بهتر مجموعه به آن اضافه گردد. به گفته ی خود لیندا "درست در همان زمان بود که او تصمیم گرفت در رفتارها و برخوردهای خود سیاست بیشتری داشته و بروکراتیک تر عمل نماید". در ۲۰۰۶ تعداد مشترکین به ۱۰۰.۰۰۰ نفر رسید و واینمن و همسرش ۱۵۰ کارمند خود را به همراه خانواده هایشان به دیزنی لند بردند تا موفقیت بزرگی که رقم خورده بود را جشن بگیرند.
برای ساخت برنامه برای تولید، از دستور quarkus build استفاده میکنید. Quarkus یک فریم ورک جاوا متن باز و فول استک است که در سال ۲۰۱۹ توسط Red Hat راه اندازی شد. کوارکوس جایگزینی برای اسپرینگ است (اگرچه میتوان آن را با اسپرینگ ادغام کرد)، با برخی ویژگیهای جالب. آیا می خواهید بیشتر بیاموزید؟ سپس مشتاقانه منتظر حضور شما در دوره آموزشی خود هستم. مدتی است که بسیاری تصور می کنند دوره های آموزش ویدئویی می توانند آینده آموزش به حساب بیایند.
ایجاد یک جامعه ی آنلاین زمان بر است و لیندا به خود امید می داد که آنها مسیر شان را عوض نکرده اند بلکه راهی تازه را شروع نموده اند پس باید صبر پیشه کنند. او توضیح می دهد که "همه چیز بسیار آهسته پیش رفت. ولی کم کم پرداخت حق اشتراک ماهیانه آنلاین رواج پیدا کرد و مقدار آن هر ساله چندین برابر شد". این یک تور گردبادی از برخی از قدرتهای کوارکوس بود، اما فقط ابتدا. Quarkus قطعا جایگزین معتبری برای Spring است و همچنان شاهد توسعه فعال است و ویژگیهای جدید و مفیدی که مکررا اضافه میشوند. دفعه بعد که به یک چارچوب جاوا دست یافتید، Quarkus را در نظر بگیرید.
اکنون اگر به خط فرمانی که Quarkus dev در حال اجرا است برگردید و r را برای اجرای مجدد تستها تایپ کنید، خواهید دید که مورد آزمایشی برای نقطه پایانی RESTEasy با شکست مواجه میشود. توجه داشته باشید که این کلاس از چندین کتابخانه آزمایشی مختلف استفاده میکند که قبلاً توسط Quarkus ارائه شده است، از جمله کتابخانه RestAssured، که آزمایش نقاط پایانی RESTful را آسان میکند. Quarkus 3.11، آخرین نسخه چارچوب جاوا بومی Kubernetes تحت حمایت Red Hat، منتشر شده است. این بهروزرسانی، برنامههای افزودنی توسعهدهنده را برای قابلیت مشاهده و یک برنامه افزودنی آزمایشی WebSockets را معرفی میکند. به نظر می آید حتی لیندا واینمن هم از موفقیت خودش شگفت زده است و تصور چنین روزی را نداشته. بر خلاف بسیاری از بنیانگذاران کمپانی ها مهم تکنولوژیک امروزی ، وی با هدف کسب درآمد های کلان شروع به کار نکرده و قصد اولیه اش هرگز ایجاد کمپانی نبوده که توسط لینکدین به ارزش ۱.۵ میلیارد دلار خریداری شد.
با quarkus ext ls -i میتوانید فهرستی از ماژولهای قابل نصب موجود را دریافت کنید. Quarkus از Maven و Gradle به عنوان بستهبندی ابزار ساخت پشتیبانی میکند، اما با یک ابزار خط فرمان رابط (CLI) نیز عرضه میشود. ساخت Red Hat Quarkus 3.2 دارای یک رابط کاربری غنی شده برای توسعه جاوا و ابزار جدید Pact برای آزمایش مبتنی بر قرارداد است. واینمن زمانی که متوجه می شود لینکدین قصد خرید کمپانی اش را دارد، در ابتدا شوکه می گردد. او و همسرش هرگز به دنبال فروش شرکت خود و یافتن مشتری برای آن نبوده اند و البته در سن ۶۰ سالگی وی هنوز هم احساس می نموده که برای بازنشستگی بسیار زود است. ارائه ی کتابخانه ای ویدئویی به جای اینکه از افراد درخواست شود تا در دوره هایی مشخص با روال معمول و پیوسته شرکت نمایند، عاملی بوده که سبب گشته شیوه ی آموزشی لیندا دات کام نسبت به سایرین کاملاً متفاوت گردد.
یک فرمان Quarkus Deploy در CLI، استقرار برنامههای Quarkus را در پلتفرمهایی مانند Kubernetes، Knative، و Red Hat OpenShift بدون هیچ تغییری در وابستگیها یا پیکربندی پروژه، امکانپذیر میکند. نه تنها ظرفیت کلاس یاد شده بسیار سریع پر گشت، بلکه افراد از گوشه و کنار دنیا و حتی مثلاً شهر وین برای حضور در آن ثبت نام نمودند. رابط کاربری Dev در ساخت Red Hat Quarkus 3.2 ناوبری منوی جدید، امکان مشاهده و به روز رسانی فایل های پیکربندی، مدیریت آزمایش مداوم و گزینه ای برای مشاهده اطلاعات ساخت را ارائه می دهد. برای آزمایش مبتنی بر قرارداد، ساخت ۳.۲ ابزار Pact را برای آزمایش HTTP و ادغام پیام با استفاده از آزمایشهای قرارداد معرفی میکند. ویژگیهای بومی Kubernetes شامل یک سرویس برنامهنویس جدید برای استقرار Kubernetes است. این سرویس یک سرور Kubernetes API را در حالت توسعه و هنگام اجرای آزمایشها با استفاده از Docker راهاندازی و پیکربندی میکند.
بیایید ببینیم چگونه یک کلاس سرویس برای استفاده توسط منبع RESTful اضافه کنیم. با ایجاد یک فایل جدید در /src/main/java/com/infoworld/service/MyService.java شروع کنید. در طی سال های اخیر کمپانی واینمن توسط افراد گوناگونی که در حرفه ی خود بهترین هستند دوره های آنلاین متعددی را ایجاد نموده و سعی کرده نشان دهد این دوره های آنلاین راه و روش یادگیری را برای همیشه متحول کرده اند. روزگاری که ایده یاد شده شکل گرفت و سپس عملی گشت (ارائه خدمات به صورت آنلاین) تماشای فیلم بر روی کامپیوترها تازه در حال رواج یافتن بود. لیندا دات کام تصمیم گرفت در ازای سرویسی که ارائه می کند هزینه حق اشتراکی ۲۵ دلاری را به صورت ماهیانه دریافت نماید.
Quarkus همچنین دارای یک موتور کامل CDI (تزریق زمینه و وابستگی) و پشتیبانی از برنامهنویسی Reactive است. در این روش نیاز به افزودن محصول به سبد خرید و تکمیل اطلاعات نیست و شما پس از وارد کردن ایمیل خود و طی کردن مراحل پرداخت لینک های دریافت محصولات را در ایمیل خود دریافت خواهید کرد. آخرین بهروزرسانی پشته جاوا بومی Kubernetes، افزونههای توسعهدهنده را برای Grafana، Jaeger، OTel و VictoriaMetrics معرفی میکند. اینکه اعضا و کارمندان شرکت همانند یک خانواده با یکدیگر در تعامل باشند همواره برای لیندا حائز اهمیت بوده و او حتی همیشه تلاش داشته تا افراد تحت استخدام خود را با اسم کوچک بشناسد و صدا بزند. ولی رشد سریع کمپانی و رسیدن تعداد کارمندان به عدد ۵۰۰، رفته رفته چالش هایی تازه را پدید می آورد و سبب می گردد واینمن در ایده آل های خود بازنگری نماید.
آخرین اجرای Red Hat از پشته جاوا بومی Quarkus Kubernetes شامل یک رابط کاربری جدید توسعه دهنده و یک قابلیت آزمایش مبتنی بر قرارداد است. در حالی که فرانک در حال حاضر بر معماری متمرکز است، تخصص توسعه او به عنوان یک برنامه نویس جاوا و توسعه خدمات وب با استفاده از چارچوب های متنوع نرم افزار منبع باز از جمله Spring و J2EE است. این ابزار به ابزارها، فناوریها و مشخصات ثابت شده مانند Eclipse MicroProfile، Eclipse Vert.x و SmallRye متکی است. میکروسرویسهای توسعهیافته با Quarkus به گونهای طراحی شدهاند که در یک محیط ابری کار کنند. کل فرآیند توسعه و فلسفه های پشت کوارکوس از این جهت گیری پشتیبانی می کند و از همان ابتدا حداکثر بهره وری و کارایی را تضمین می کند. کسب و کار لیندا پس از چند سال توانست ۳۵ فرصت شغلی را ایجاد و درآمدی ۳.۵ میلیون دلاری را فراهم کند.
هر دو شرکت به نوعی تلاش داشته اند به افراد کمک کنند تا وضعیت شغلی خود را بهبود بخشند و احتمالاً در کنار یکدیگر بسیار بهتر از گذشته می توانند این هدف را محقق کنند. ایجاد فرهنگ سازمانی برای شرکتی با بیش از ۵۰۰ کارمند کاری بسیار دشوار خواهد بود ولی حتی آنچه از این مسئله نیز دشوارتر به حساب می آید پایه ریزی درست و مطابقت دادن افراد با فرهنگ یاد شده است. اینکار در زمانی که یک شرکت نوپا و کوچک محسوب می شود چندان سخت نیست و شاید ضروری هم نباشد ولی با رشد آن صورت پذیرفتنش الزام می یابد. این بدان معناست که میتوانید کد را تغییر دهید، از جمله اضافه کردن آزمایشها، و سپس آزمایشها را با r اجرا کنید. همچنین میتوانید سطوح گزارش را با h تغییر دهید یا ظرف را با q متوقف کنید. Red Hat’s Quarkus یک چارچوب جاوا متن باز و تمام پشته است که برای کانتینرها و محیط های ابری طراحی شده است.
اجرای برنامههای جاوا، به ویژه در یک محیط بومی با فضای ابری، میتواند یک تلاش سنگین و گران قیمت باشد و احتمال وجود فریمورکی با رد پای کوچکتر با تمام قدرت جاوا بسیار جذاب است. Quarkus را وارد کنید، یک فریمورک مبتنی بر Kubernetes که قدرت زبان و اکوسیستم توسعه جاوا را با نیازهای کمتری به منابع ارائه میدهد. در این دوره، مربی Frank P Moley مقدمهای را در مورد Quarkus ارائه میدهد، ابتدا با اصول شروع میشود و سپس فریمورک را از طریق یک سری چالشها و راه حلها به تصویر میکشد. با پایان دوره، باید مشخص شود که چرا کوارکوس به سرعت به یکی از جالبترین فریمورکهای ساخت میکروسرویسها مبتنی بر جاوا و مولفههای اصلی ابر تبدیل شده است. در این دوره، شما با چگونگی توسعه میکروسرویسهای ابری با استفاده از Quarkus در زبان Java آشنا خواهید شد.
اکنون GreetingResource را برای استفاده از سرویس مشتری جدید، مانند فهرست ۹، به روز کنید. پس از تکمیل فرمان، تایپ کردن quarkus -version باید یک نتیجه را نشان دهد.
Quarkus فریمورکی مبتنی بر ابزارها، فناوریها و مشخصات اثباتشده مانند Eclipse MicroProfile، Eclipse Vert.x و SmallRye است که برای توسعه میکروسرویسها در محیطهای ابری بومی طراحی شده است. این دوره بر روی توسعه دو میکروسرویس با استفاده از یک مثال کامل تمرکز دارد. ما در این دوره به طور عملی برنامهنویسی خواهیم کرد و شما فقط نباید محتوای دوره را مشاهده کنید، بلکه باید به طور فعال در آن مشارکت کنید. من در هر فصل، برنامه کاربردی نمونه را در مراحل کوچک به طور کامل توسعه خواهم داد و هر مرحله به یک موضوع خاص اختصاص خواهد داشت. من شما را در طول کل دوره راهنمایی خواهم کرد و کد منبع را پس از هر درس در مخزن عمومی GitHub در اختیار شما قرار خواهم داد. ابزار خط فرمان در ساخت Red Hat Quarkus 3.2 اکنون نزدیک به ۳۰ دستور برای ایجاد پروژهها، مدیریت برنامههای افزودنی و اجرای دستورات ضروری ساخت و توسعه دارد.
با حاشیه نویسی استاندارد CDI، @ApplicationScoped، حاشیه نویسی شده است که آن را در اختیار سیستم DI قرار می دهد. (درباره حوزهها و زمینههای CDI اینجا بیشتر بیاموزید .) توجه داشته باشید که Quarkus CDI در پروژه شما گنجانده شده است زیرا پسوند RESTEasy از آن استفاده می کند. ArC یک پیاده سازی جزئی از مشخصات CDI است و همچنین ویژگی های خاص خود را دارد. Quarkus 3.11 افزونه Websockets.next را، هم کلاینت و هم سرور، در مرحله آزمایشی معرفی می کند. با Quarkus 3.11، سازندگان توانایی تعریف آسان WebSockets و نسخه اولیه یکپارچه سازی امنیتی را اضافه کردند. توسعهدهندگان میتوانند با استفاده از آخرین نسخه Quarkus CLI و اجرای بهروزرسانی quarkus، بهروزرسانی کنند.
او تنها سعی داشته آنچه که برای خودش جذاب بوده، یعنی طراحی وب را به سایرین نیز بیاموزد. وقتی در سال ۱۹۹۳ واینمن طراحی وب را اندک اندک فرا گرفته و قصد آموزش دادن آن را پیدا کرد، ابتدا به کتاب فروشی مراجع نمود و سعی کرد کتابی را به عنوان مرجع انتخاب و از روی آن به دانش آموزان خود درس بدهد. اما وی متوجه شد کتاب فروشی ها و کتابخانه ها تنها راهنماهایی بسیار فنی و پیچیده را ارائه می نمایند که درک شان برای افراد معمولی و با دانش متوسط تقریباً غیر ممکن محسوب می شود. وی که هم اکنون (2016) ۶۰ سال سن دارد در ۱۹۹۵ سایتی را راه اندازی کرد که به عنوان منبعی رایگان برای دانش آموزان محسوب می شد. طی آن دوران لیندا به صورت خودآموز در حال یادگیری طراحی وب بود و تلاش داشت تا آموخته هایش را با سایرین نیز به اشتراک بگذارد.
شما باید میکروسرویسهای مقیاسپذیر سریع را در جاوا بنویسید و میخواهید از دانش قبلی خود در مورد فناوریهای اثبات شده با کیفیت استفاده کنید؟ خوشحالم که راه خود را به اینجا پیدا کردی. در پایان مطالعه این کتاب، شما تجربه عملی عملی از ساختن خواهید داشت. میکروسرویس هایی که از Quarkus استفاده می کنند و شما در استقرار آنها در Kubernetes مسلط خواهید شد. ما همچنین از افزونه rest-client-jackson برای سادهسازی مدلسازی دادهها استفاده میکنیم. MyService یک کلاس بسیار ساده با یک متد به نام getRandom() است که یک عدد صحیح تصادفی را برمی گرداند.
هر چند این روزها مسئله یاد شده امری عادی به حساب می آید اما در اواسط دهه نود -روزگاری که هنوز یوتیوبی نبود- یادگیری طراحی وب به صورت خودجوش چندان مسئله رایجی محسوب نمی گشت. ابزار خط فرمان گزینه های زیادی دارد که می توانید از آنها برای پیکربندی موارد استفاده کنید. می توانید با تایپ quarkus --help به این گزینه ها نگاهی بیاندازید. با تایپ quarkus create app --help می توانید در مورد دستور خاصی کمک بگیرید. توجه داشته باشید که میتوانید مواردی مانند پوشش ابزار ساخت را برای استفاده تعریف کنید.
اجرای برنامه های جاوا، به ویژه در یک محیط بومی ابری کانتینری، می تواند یک تلاش پرهزینه و پر منابع باشد، و چشم انداز چارچوبی با ردپای کوچکتر با تمام قدرت جاوا بسیار جذاب است. Quarkus را وارد کنید، یک چارچوب مبتنی بر Kubernetes که قدرت زبان و اکوسیستم توسعه جاوا را با نیازهای کمتری به منابع ارائه میکند. در این دوره، فرانک مولی به معرفی کوارکوس می پردازد و با اصول اولیه شروع می کند و سپس چارچوب را از طریق یک سری چالش ها و راه حل ها به تصویر می کشد. در پایان دوره، باید مشخص شود که چرا کوارکوس به سرعت به یکی از هیجانانگیزترین چارچوبها برای ساخت میکروسرویسهای مبتنی بر جاوا و مؤلفههای بومی ابری تبدیل میشود. در پایان دوره، باید مشخص شود که چرا کوارکوس به سرعت در حال تبدیل شدن به یکی از هیجانانگیزترین چارچوبها برای ساخت میکروسرویسهای مبتنی بر جاوا و مؤلفههای بومی ابری است.
اما در سال ۲۰۰۱ و پس از انفجار حباب دات کام و حوادث مرتبط به یازده سپتامبر، تمایل افراد به یادگیری دروس طراحی وب کاهشی عجیب پیدا کرد، تا جایی که واینمن و همسرش در ادامه دادن مسیر مردد شده بودند. کوارکوس منبع باز توسعه داده شد تا توسعه دهندگان جاوا را قادر سازد تا برنامه های بومی ابری بسازند. اینها را میتوان در زمینههایی از جمله سرویسهای توسعهدهنده قابل استفاده مجدد، سرویسهای توسعه ساده شروع/توقف، و تک/ساده در هر سرویس برنامهنویس QuarkusTestResource استفاده کرد. درست در همان زمان و در سال ۱۹۹۵ واینمن آدرس ایمیل فردی را مشاهده نمود که به صورت بود و مشتاق شد بداند آیا دامنه ی لیندا نیز برای ثبت کردن در دسترس قرار دارد یا خیر. وی این دامنه را خریداری و وبسایتی تحت آن راه انداخت تا از طریقش بتواند با دانش آموزان و همچنین خوانندگان کتاب خود ارتباط برقرار نماید. با اجرای quarkus ext ls میتوانید ببینید کدام برنامههای افزودنی در برنامه شما نصب شدهاند.
بیایید کمی عمیقتر برویم و با یک REST API خارجی (Star Wars API تماس بگیریم، با نام مستعار SWAPI) در کلاس خدمات. با افزودن کلاینت quarkus-rest-api با اجرای quarkus ext add quarkus-rest-client شروع کنید. توجه داشته باشید که می توانید این کار را در پنجره دیگری در حالی که برنامه هنوز در حال اجرا است انجام دهید و Quarkus پسوند را اعمال می کند. این کتاب به شما کمک می کند تا به سرعت با ویژگی ها و نگرانی های معماری میکروسرویس ها شروع کنید. Docker و Kubernetes را معرفی می کند تا به شما کمک کند میکروسرویس های خود را گسترش دهید. با تنها ۱۰۰۰ نفر پرداخت کننده حق اشتراک ماهیانه، بقای کمپانی به نظر بسیار سخت می رسید.
توسعه دهندگان جاوا که می خواهند میکروسرویس هایی با استفاده از Red Hat Quarkus بسازند و می خواهند آنها را در Kubernetes مستقر کنند. در حالکیه لیندا اعتقاد دارد تنها در زمان و مکان مناسبی حضور داشته، سخت است بدل شدن یک دامنه ی ۳۵ دلاری به کسب و کاری ۱.۵ میلیارد دلاری را حاصل یک اتفاق بدانیم. من به شخصه بر روی اثری که از همکاری دو کمپانی با یکدیگر پدید می آید متمرکز هستم. برای استفاده از اشتراک رایگان فرین پلاس لطفا وارد شوید یا ثبت نام کنید . توجه کنید که ما از @JsonIgnoreProperties استفاده میکنیم، بنابراین وقتی فیلدهایی در منبع JSON وجود دارند که در شی مدل وجود ندارند، هیچ خطایی ایجاد نمیشود. عنصر کلیدی در اینجا حاشیهنویسی @Inject است که باعث میشود موتور CDI مرجع myService را با منبع bean که در فهرست ۴ ایجاد کردیم، انجام دهد.
یک مکانیسم کشف سرویس نیز برای برنامههای Quarkus که در حالت توسعهدهنده اجرا میشوند تا یک خوشه را به اشتراک بگذارند. در مورد نحوه نصب ابزارهای مناسب برای کارکرد صحیح راهنمایی خواهید شد. برای کسانی که در توسعه سازمانی با استفاده از Quarkus تازه وارد هستند، از طریق یک آموزش گام به گام عمیق با اصول اصلی و ویژگی های اصلی آن آشنا خواهید شد. برای کارشناسان، این کتاب دستور العمل هایی را ارائه می دهد که نحوه تقسیم مونولیت ها و پیاده سازی میکروسرویس ها و استقرار آنها به عنوان کانتینر در Kubernetes را نشان می دهد. لیندا دات کام قالبی معین و کارآمد را برای دوره های آموزشی اش پدید آورده و سپس کوشش کرده تا از نظر موضوعی نیز در بین مطالب مورد تدریس خود تنوع ایجاد نماید. روزگاری در وب سایت مورد بحث تنها ۲۰ دوره آموزش ویدئویی آنلاین وجود داشت، اما اکنون این رقم به ۶۳۰۰ رسیده که شامل ۲۶۷.۰۰۰ ویدئوی آموزشی می گردد.
برنامه نویسی جادی