کتاب Learning Continuous Integration with Jenkins, 3rd Edition: An end-to-end guide to creating operational, secure, resilient, and cost-effective CI/CD processes (آموزش ادغام پیوسته با جنکینز، ویرایش سوم: راهنمای سرتاسری برای ایجاد فرآیندهای CI/CD عملیاتی، ایمن، انعطاف پذیر و مقرون به صرفه) راهنمای جامعی برای تسلط بر فرآیندهای CI/CD با استفاده از جنکینز است.
این کتاب یک رویکرد گام به گام برای ایجاد گردشهای کاری عملیاتی، ایمن و انعطافپذیر در حالی که مقرون به صرفه بودن را بهینه میکند، ارائه میکند.
این طیف گستردهای از موضوعات، از جمله راهاندازی Jenkins، ساخت خطوط لوله، یکپارچهسازی تست خودکار، و استقرار برنامهها را پوشش میدهد. چه یک مبتدی یا یک حرفهای با تجربه باشید، این کتاب شما را به دانش و مهارتهای عملی مورد نیاز برای اجرای فرآیندهای موفق CI/CD در سازمان خود مجهز میکند.
در ادامه مقدمهای از کتاب Learning Continuous Integration with Jenkins را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Learning Continuous Integration with Jenkins:
خوانندگان عزیز، به نسخه جدید به روز شده آموزش پیوسته ادغام با جنکینز – نسخه سوم خوش آمدید! قبل از عمیق شدن در کتاب، از شما دعوت میکنم که لحظاتی را با این مقدمه سپری کنید.
این فقط یک امر رسمی نیست؛ این مانند یک گپ دوستانه قبل از شروع یک کاوش هیجانانگیز است. در اینجا، نگاهی دزدکی به هدف کتاب، دیدگاه نویسنده و لحن و سبک کلی آن خواهید داشت. این مانند آشنایی با راهنمای خود قبل از شروع سفر است.
انگیزه نوشتن کتاب Learning Continuous Integration with Jenkins:
هنگامی که ویرایش دوم Learning Continuous Integration with Jenkins در سال ۲۰۱۷ منتشر شد، چشم انداز Continuous Integration/Continuous Deployment (CI/CD) به طور قابل توجهی متفاوت از امروز بود.
با نزدیک شدن به سال ۲۰۲۴، مشخص شده است که شیوهها و ابزارهایی که در مورد آنها بحث کردم، به طور قابل توجهی تکامل یافتهاند و بسیاری از بخشهای نسخه قبلی را کمتر مرتبط کردهاند. این تغییر در قلمرو CI/CD به من الهام بخش شد تا این نسخه به روز شده را بنویسم و شکاف بین آن زمان و اکنون را پر کند، به خصوص از نظر برنامه جنکینز.
جنکینز خود دستخوش تحولات قابل توجهی شده است. ظهور پیکربندی جنکینز بهعنوان کد (JCasC) و گرایش به استقرار جنکینز با استفاده از نمودارهای Helm در Kubernetes نمونهای از این تغییرات عمده است.
در حالی که دستور اصلی کد خط لوله جنکینز عمدتاً ثابت مانده است، اکوسیستم اطراف CI/CD تغییر کرده است. ظهور GitOps، تمرکز بیشتر بر تجزیه و تحلیل ترکیب نرمافزار، و گرایش به سمت برنامههای کاربردی مبتنی بر کانتینر، تغییر گستردهتری را از معماریهای یکپارچه به معماریهای مدولارتر و مقیاسپذیر نشان میدهد.
یکی دیگر از کاتالیزورهای این نسخه سردرگمی و اطلاعات نادرستی است که در رسانههای اجتماعی در مورد Agile، CI/CD، GitOps، Infrastructure as Code (IaC) و DevOps شاهد بودم.
تفسیرهای نادرست و حقایق جزئی، که اغلب توسط متخصصان کمتر با تجربه منتشر میشود، درک افراد تازه کار را در این شیوهها مخدوش کرده است. هدف این نسخه از بین بردن این افسانهها، ارائه یک راهنمای شفاف و جامع برای روشهای CI/CD است. این نه تنها بر ابزارها، بلکه بر اصول و شیوههای ضروری برای اجرای موفقیتآمیز نیز تمرکز دارد.
بیشتر بخوانید: کتاب Jenkins Administrator’s Guide
هدف کتاب Learning Continuous Integration with Jenkins
هدف اصلی این کتاب القای درک اساسی از CI/CD است. این کتاب فراتر از توضیح CI و CD به عنوان فرآیندهای فنی صرف است، و در مفاهیم و شرایطی که باعث ایجاد شیوههای CI/CD شده است، میپردازد. قبل از کاوش در ابزارها، بر درک جامع اصول زیربنایی تأکید میکند، با تمرکز بر چیستی CI/CD، چرایی اهمیت آن، و نحوه پیادهسازی آن، با تأکید ویژه بر عناصر اصلی آن.
با پیشرفت کتاب، محتوا فنیتر میشود، با این حال رویکردی ساده را حفظ میکند. شما در مورد استقرار کارآمد و ایمن یک برنامه مدولار مبتنی بر کانتینر از طریق فرآیند CI/CD، از توسعه تا تولید، با تأکید بر آزمایش، یاد خواهید گرفت.
آنها همچنین بررسی خواهند کرد که چگونه Jenkins در اکوسیستم DevOps گستردهتر ادغام میشود و با ابزارهای مختلف کار میکند.
درس مهمی که کتاب Learning Continuous Integration with Jenkins میدهد رویکرد \”سریع شکست و تغییر به چپ\” است. این امر بر اهمیت رویارویی و رسیدگی به شکست در مراحل توسعه یا آزمایش، به جای در تولید، تأکید میکند. این تغییر ذهنیت حیاتی است – این در مورد جلوگیری از شکست در تولید نیست، بلکه در مورد اطمینان از بازیابی سریع در هنگام وقوع است.
در نهایت، هدف کتاب Learning Continuous Integration with Jenkins فراتر از افزایش دانش شما است. همچنین برای آموزش ذهن شما طراحی شده است و شما را به تفکر انتقادی و سازگارانه در دنیای به سرعت در حال تکامل DevOps و CI/CD مجهز میکند. این تمرکز دوگانه تضمین میکند که شما نه تنها به خوبی آگاه هستید، بلکه از نظر استراتژیک در به کارگیری اصول CI/CD به طور مؤثر در سناریوهای دنیای واقعی مهارت دارید.
چرا کتاب Learning Continuous Integration with Jenkins مهم است؟
در قلمرو تکنولوژیکی که به سرعت در حال تحول امروزی است، مفهوم \”مستمر\” – که در اصل برگرفته از روششناسی Agile است – به طور قابل توجهی دامنه آن را گسترش داده است.
این مفهوم در حال حاضر زیربنای انواع شیوهها، مانند آزمایش مداوم، بهبود مستمر، و تفکر مستمر است. علاوه بر این، اصول CI و CD نفوذ خود را فراتر از توسعه نرمافزار سنتی گسترش دادهاند و در زمینههایی مانند عملیات یادگیری ماشین (MLOps) ارتباط پیدا کردهاند.
خواندن این کتاب در این زمینه گسترده ضروری است. این یک رمزگشایی جامع از اصول اصلی CI و CD ارائه میدهد، اصولی که به طور فزایندهای در رشتههای مختلف در حال تبدیل شدن هستند.
کتاب Learning Continuous Integration with Jenkins عمیقاً به مفاهیم شکست سریع، جابجایی به چپ و ارائه تکرارهای کوچک، مکرر و سریعتر میپردازد. اینها فقط استراتژیهای توسعه نرمافزار نیستند، بلکه اصول جهانی هستند که اکنون در زمینههایی مانند ML و عملیات مالی اعمال میشوند.
از آنجایی که این اصول همچنان در بخشهای مختلف مورد پذیرش قرار میگیرند، نیاز مبرمی به یک راهنمای واضح و جامع وجود دارد که نه تنها «چگونگی» بلکه «چرا» پشت این شیوهها را نیز روشن کند.
کتاب Learning Continuous Integration with Jenkins این نیاز را برآورده میکند و به شما درک عمیقی از اصول اساسی مبتنی بر شیوههای مدرن CI/CD و کاربردهای گستردهتر آنها ارائه میدهد.
در این نسخه بهروزرسانی شده، محتوای اصلاحشدهای را خواهید دید که منعکسکننده آخرین پیشرفتها در پیکربندیهای Jenkins و استراتژیهای استقرار است.
این بینش عملی را در مورد مقیاسبندی جنکینز هم به صورت افقی و هم به صورت عمودی ارائه میدهد و عمیقتر در اکوسیستم CI/CD در حال تکامل را بررسی میکند. چه تازه وارد جنکینز شده باشید و چه به دنبال تجدید دانش خود هستید، این کتاب قصد دارد شما را در چشم انداز پویای CI/CD با وضوح و تخصص راهنمایی کند.
تحقیق پشت کتاب Learning Continuous Integration with Jenkins
خلق این کتاب اوج تحقیقات گسترده و تجربه شخصی عمیق در مدیریت پیکربندی نرمافزار و DevOps است که قدمت آن به سال ۲۰۰۸ باز میگردد. سفر من در نوشتن این کتاب با کاوش کامل در جهان قبل از Agile آغاز شد و به روششناسیهایی مانند Waterfall پرداختم. و برنامهنویسی شدید درک این زمینههای تاریخی در پرداختن همه جانبه به تکامل شیوههای توسعه نرمافزار بسیار مهم بود.
تمرکز قابل توجهی از تحقیقات من بر روی انتقال از پیکربندیهای مبتنی بر رابط کاربری گرافیکی به مفهوم پیکربندی به عنوان کد و خط لوله به عنوان کد، و همچنین تکامل سیستمهای کنترل نسخه (VCSs) بود. این پیشرفتها نشان دهنده تغییرات اساسی در رویکرد ما به پیکربندی و مدیریت نرمافزار است و درک آنها برای درک اصول CI و CD کلیدی است.
هر جنبه فنی که در این کتاب مورد بحث قرار میگیرد، قبل از اینکه به کاغذ متعهد شود، به طور جدی در عمل آزمایش شده است. این رویکرد عملی تضمین میکند که محتوا نه تنها از نظر نظری صحیح است، بلکه از نظر عملی نیز قابل اجرا است. این کتاب تأکید ویژهای بر فناوریهای ابری و کانتینری دارد و برجستگی روزافزون و نقش حیاتی آنها در توسعه نرمافزار مدرن را تصدیق میکند.
علاوه بر این، کتاب Learning Continuous Integration with Jenkins به بررسی قلمرو نوظهور ابزارهای هوش مصنوعی در DevOps میپردازد و نشان میدهد که چگونه میتوان از آنها برای نوشتن کد خط لوله استفاده کرد. این گنجاندن نشاندهنده تعهد من به ماندن در جریان آخرین پیشرفتهای فناوری و اطمینان از مرتبط بودن و آیندهنگری محتوای کتاب است.
برای افزایش درک و وضوح، کتاب Learning Continuous Integration with Jenkins با تصاویر و اسکرین شاتهای فراوانی غنی شده است. این کمکهای بصری به گونهای طراحی شدهاند که مفاهیم پیچیده را در دسترستر میکنند و تصویر واضحتری از کاربردهای عملی به شما ارائه میدهند.
باشد که تجربه شما از آموزش ادغام مداوم با جنکینز هم روشنگر و هم مفید باشد، و من مطمئن هستم که این کتاب منبع ارزشمندی در سفر حرفهای شما خواهد بود.
کتاب Learning Continuous Integration with Jenkins برای چه کسی است؟
این کتاب برای مخاطبان متنوعی طراحی شده است، از دانشجویان دانشگاهی که در حال مطالعه توسعه نرمافزار Agile هستند تا توسعهدهندگان باتجربه، آزمایشکنندگان، مهندسان انتشار و مدیران پروژه.
این یک راهنمای جامع برای تسلط بر CI و CD با استفاده از جنکینز ارائه میدهد. اگر در حال حاضر از Jenkins برای CI استفاده میکنید، میتوانید پروژه خود را به سطح بعدی ببرید – CD.
چه در مفاهیم Agile و CI/CD مبتدی باشید یا یک مهندس DevOps باشید که به دنبال بینش پیشرفته در مورد JCasC، IaC یا Azure است، این منبع شما را به ابزارهایی مجهز میکند تا از Jenkins برای بهره وری بهتر و تحویل ساده در فضای ابری استفاده کنید.
از شما انتظار میرود که درک اساسی از فرآیندهای توسعه نرمافزار داشته باشید، اگرچه دانش عمیق پیش نیاز نیست. شما باید با مفاهیم اولیه مانند نوشتن کد و اهمیت تست آشنا باشید، اگرچه درک جامع از جنبههای مهندسی نرمافزار پیچیدهتر ضروری نیست.
آشنایی اولیه با کنترل نسخه، به ویژه Git، مفید خواهد بود، زیرا فرآیندهای CI/CD به طور نزدیک با مدیریت کد منبع، از جمله وظایفی مانند انجام تغییرات، ایجاد شاخهها و ادغام کد مرتبط هستند.
داشتن پایه در برنامهنویسی، حتی در سطح ابتدایی، سودمند خواهد بود. نیازی نیست که یک کدنویس متخصص باشید، اما توانایی نوشتن و درک کدهای ساده در حداقل یک زبان برنامهنویسی مفید است. در حالی که ممکن است درک کنید که چرا تست در توسعه نرمافزار بسیار مهم است، دانش دقیق روشها یا ابزارهای تست خودکار لازم نیست.
آنچه کتاب Learning Continuous Integration with Jenkins پوشش میدهد:
فصل ۱، چیستی، چگونه و چرایی یکپارچگی مداوم، به یک مقدمه جامع برای CI میپردازد که توسط نظریه دایره طلایی هدایت میشود.
این رویکرد به ما کمک میکند تا «چه»، «چگونه» و «چرا» CI را بشناسیم. تمرکز اصلی ما این است که عملکرد CI را تعریف کنیم، اصول کلیدی آن را درک کنیم و عناصر ضروری مورد نیاز برای دستیابی به آن را بیاموزیم. همچنین دلایل پشت عمل CI را بررسی کنید.
فصل ۲، برنامهریزی، استقرار و نگهداری جنکینز، شما را از طریق برنامهریزی، استقرار و نگهداری سرور جنکینز راهنمایی میکند. هدف طراحی و استقرار یک راهاندازی جنکینز است که انعطافپذیر، مقرونبهصرفه، ایمن، با کارایی بالا و عملیاتی باشد.
این فصل از کتاب Learning Continuous Integration with Jenkins، با بررسی معماری سرور جنکینز شروع میشود و سپس سناریوهای مختلف استقرار را در برابر چارچوب Well-Architected ارزیابی میکند. بر روی دو روش محبوب استقرار جنکینز تمرکز دارد و شما را در اجرای گام به گام آنها راهنمایی میکند.
این فرآیند، شیوههای حیاتی DevOps، از جمله IaC و JCasC را ادغام میکند. این فصل از کتاب Learning Continuous Integration with Jenkins، همچنین جنبههای اساسی نگهداری سرور جنکینز را پوشش میدهد.
فصل ۳ کتاب Learning Continuous Integration with Jenkins، ایمنسازی جنکینز، جنبههای کلیدی ایمنسازی جنکینز را بررسی میکند. در اینجا، اقدامات حیاتی برای افزایش امنیت در مورد اینکه چه کسی میتواند چه کاری را در نمونه جنکینز شما انجام دهد بررسی میشود.
ابتدا، این فصل با ادغام Jenkins با Azure Active Directory (AD) به احراز هویت و مجوزهای کاربر میپردازد. پس از آن، از طریق تنظیمات حفاظتی Cross-Site Request Forgery (CSRF) در داخل جنکینز میرود.
در نهایت، ویژگی قدرتمند Jenkins Credentials را بررسی میکند که امکان ذخیرهسازی و استفاده ایمن از اطلاعات حساس مانند رمز عبور، کلیدهای API و گواهیها را فراهم میکند.
فصل ۴ کتاب Learning Continuous Integration with Jenkins، گسترش جنکینز، دنیای گسترده پیشرفتهای جنکینز را بررسی میکند و شما را قادر میسازد تا عملکردهای آن را برای نیازهای خاص مانند CI تنظیم کنید. ارتقاء Jenkins برای CI مستلزم ادغام ابزارها و خدمات اضافی مانند SonarQube، Artifactory و VCS است که در این فصل به آن پرداخته شده است.
فصل ۵، مقیاسسازی جنکینز، به شما میآموزد که چگونه جنکینز را بهصورت افقی بر روی ابر با عوامل ساخت تولید شده پویا، با استفاده از ماشینهای مجازی (VMs) و کانتینرها در یک خوشه AKS، مقیاسبندی کنید. هر دو راه حل به سازمانها اجازه میدهد تا از نقاط قوت هر رویکرد استفاده کنند.
ماشینهای مجازی انعطافپذیری و سازگاری با زیرساختهای موجود را فراهم میکنند، در حالی که کانتینرها استفاده کارآمد از منابع و زمان استقرار سریعتر را ارائه میدهند.
فصل ۶ کتاب Learning Continuous Integration with Jenkins، تقویت واژگان خط لوله جنکینز، یادگیری نحو کد خط لوله جنکینز را بررسی میکند. هدف این فصل از کتاب Learning Continuous Integration with Jenkins، این است که شما را برای استفاده از هوش مصنوعی برای نوشتن خط لوله جنکینز آماده کند. برای دستیابی به این هدف، فصل با مقدمهای بر نحو خط لوله جنکینز آغاز میشود.
در مرحله بعد، در مورد بلوکهای سازنده اصلی و اضافی کد خط لوله خواهید آموخت. تمرکز عمدتاً بر روی ساختار و اسکلت یک خط لوله است. همچنین برخی از ابزارهای داخلی جنکینز را برای ساختن کد خط لوله به شما آموزش میدهد.
فصل ۷، ساخت کد خط لوله مبتنی بر هوش مصنوعی، به استفاده از ChatGPT برای نوشتن کد خط لوله میپردازد. در این فصل از کتاب Learning Continuous Integration with Jenkins، ما سفری روشنگرانه به دنیای هوش مصنوعی (AI) را با تمرکز ویژه بر ChatGPT، یک مدل مشهور هوش مصنوعی آغاز میکنیم.
همانطور که ما در چشم انداز در حال تکامل هوش مصنوعی پیمایش میکنیم، شما به دانشی مجهز میشوید تا از ChatGPT برای کمک به ساخت کد خط لوله استفاده کنید.
فصل ۸، تنظیم مرحله برای نوشتن اولین خط لوله CI، بر برنامهریزی برای CI و درک طراحی سطح بالای CI تمرکز دارد. این فصل از کتاب Learning Continuous Integration with Jenkins، با توضیح پروژههای نرمافزاری که برای CI مورد استفاده قرار خواهند گرفت آغاز میشود.
در ادامه، پیکربندی ابزارهایی مانند SonarQube برای کیفیت کد و Artifactory برای ذخیرهسازی تصویر Docker را یاد خواهیم گرفت. این سکوها در خط لوله CI ما حیاتی هستند.
در پایان فصل، نحوه تجزیه و تحلیل یک پروژه نرمافزاری برای CI، درک معماری آن و توسعه یک طراحی CI را درک خواهید کرد. ما همچنین به تنظیم راهاندازهای CI بیدرنگ از طریق وبکهوکها خواهیم پرداخت.
فصل ۹ کتاب Learning Continuous Integration with Jenkins، نوشتن اولین خط لوله CI شما، به طور منطقی همه چیزهایی را که در فصلهای قبلی آموختهاید جمعآوری میکند. این یک راهنمای گام به گام و عملی است که به شما یاد میدهد که یک خط لوله CI در جنکینز ایجاد کنید.
شما با نوشتن کد خط لوله CI مرحله به مرحله شروع خواهید کرد. در پایان این فصل از کتاب Learning Continuous Integration with Jenkins، با استفاده از رابط اقیانوس آبی جنکینز، به بررسی خط لوله CI خواهیم پرداخت.
فصل ۱۰، برنامهریزی برای استقرار مستمر، به درک CD میپردازد. شما با مفاهیم CD و عناصر آن از جمله GitOps آشنا خواهید شد. در ادامه با طراحی سی دی سطح بالا آشنا میشوید.
این امر با راهاندازی ابزار Argo CD، ایجاد محیطهای صحنهسازی و تولید در سرویس Azure Kubernetes (AKS) و انجام سایر مراحل ضروری برای اجرای خط لوله CD با جنکینز دنبال میشود.
فصل ۱۱ کتاب Learning Continuous Integration with Jenkins، نوشتن اولین خط لوله سی دی شما، به طور روشمند فرآیند توسعه یک خط لوله سی دی کامل را هدایت میکند. از طریق خط لوله خودکار CD، شما بر عمل به روزرسانی نمودار Helm یک برنامه در GitHub مسلط خواهید شد و در نتیجه باعث ایجاد استقرار در محیط مرحلهبندی میشود.
پس از استقرار، خط لوله به طور مستقل وضعیت برنامه را در مرحلهبندی نظارت میکند، تستهای عملکرد را اجرا میکند، و پس از اعتبارسنجی، تغییرات بیشتر نمودار Helm را در GitHub برای شروع استقرار در محیط تولید تسهیل میکند.
فصل ۱۲ کتاب Learning Continuous Integration with Jenkins، تقویت خطوط لوله CI/CD، تکنیکهایی را برای بهبود خطوط لوله CI و CD شما بررسی میکند. GitHub Copilot را معرفی میکند، یک ابزار هوش مصنوعی که توسعه کد خط لوله جنکینز را با هدف کدنویسی هوشمندتر، خطاهای کمتر و توسعه سریعتر بهبود میبخشد.
همچنین کتابخانههای مشترک جنکینز را مورد بحث قرار میدهد که الگوهای کد رایج را متمرکز میکند و مدیریت خطوط لوله متعدد را ساده میکند. علاوه بر این، استراتژیهایی برای مدیریت و حذف ساختهای قدیمی جنکینز ارائه شده است که بهینهسازی سیستم را تضمین میکند.
علاوه بر این، با استفاده از JFrog Xray، این فصل از کتاب Learning Continuous Integration with Jenkins، نشان میدهد که چگونه میتوانید اسکنهای امنیتی خودکار را در خط لوله Jenkins خود ادغام کنید و نهتنها استقرار کد عملکردی بلکه ایمن را نیز تضمین کنید.
سرفصلهای کتاب Learning Continuous Integration with Jenkins:
- Learning Continuous Integration with Jenkins
- Contributors
- About the author
- About the reviewers
- Preface
- Part 1: The Concepts
- Chapter 1: The What, How, and Why of Continuous Integration
- Part 2: Engineering the CI Ecosystem
- Chapter 2: Planning, Deploying, and Maintaining Jenkins
- Chapter 3: Securing Jenkins
- Chapter 4: Extending Jenkins
- Chapter 5: Scaling Jenkins
- Part 3: Crafting the CI Pipeline
- Chapter 6: Enhancing Jenkins Pipeline Vocabulary
- Chapter 7: Crafting Al-Powered Pipeline Code
- Chapter 8: Setting the Stage for Writing Your First Cl Pipeline
- Chapter 9: Writing Your First CI Pipeline
- Part 4: Crafting the CD Pipeline
- Chapter 10: Planning for Continuous Deployment
- Chapter 11: Writing Your First CD Pipeline
- Chapter 12: Enhancing Your CI/CD Pipelines
- ▸ Index
- Other Books You May Enjoy
جهت دانلود کتاب Learning Continuous Integration with Jenkins میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.