<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های enginedevops</title>
        <link>https://virgool.io/feed/@enginedevops</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 10:45:32</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1691091/avatar/Ji7GdZ.png?height=120&amp;width=120</url>
            <title>enginedevops</title>
            <link>https://virgool.io/@enginedevops</link>
        </image>

                    <item>
                <title>آموزش کامل الستیک سرچ Elasticsearch – ELK</title>
                <link>https://virgool.io/@enginedevops/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D9%85%D9%84-%D8%A7%D9%84%D8%B3%D8%AA%DB%8C%DA%A9-%D8%B3%D8%B1%DA%86-elasticsearch-elk-i30vjmcyghtt</link>
                <description>معرفی الاستیک سرچElasticsearch چیست؟یک  موتور جستجو و تجزیه و تحلیل متن کامل توزیع شده است که بر روی کتابخانه  منبع باز Apache Lucene ساخته شده است. این ابزار قدرتمند برای جستجوی سریع  و کارآمد در حجم عظیمی از داده ها، تجزیه و تحلیل داده ها و ارائه بینش  های ارزشمند از طریق رابط های بصری استفاده می شود. Elasticsearch به طور  گسترده در طیف وسیعی از برنامه ها، از جمله موتورهای جستجوی وب، تجزیه و  تحلیل لاگ، نظارت بر عملکرد و کشف امنیتی استفاده می شود.استک ELKElasticsearch  اغلب به عنوان بخشی از ELK Stack، مجموعه ای از ابزارهای منبع باز برای  جمع آوری، ذخیره، تجزیه و تحلیل و تجسم داده ها استفاده می شود. سایر اجزای  ELK Stack عبارتند از:Logstash: یک ابزار برای جمع آوری و پردازش داده ها از منابع مختلفKibana: یک رابط کاربری وب برای تجسم و کاوش داده های ذخیره شده در Elasticsearchاجزای سازنده ElasticsearchElasticsearch از چندین جزء اصلی تشکیل شده است:شاخص ها (Indices): واحدهای ذخیره سازی اولیه برای داده ها در Elasticsearch هستند. هر شاخص مجموعه ای از اسناد مرتبط را ذخیره می کند.اسناد (Documents): واحدهای اساسی داده در Elasticsearch هستند. هر سند مجموعه ای از فیلدها و مقادیر را ذخیره می کند.انواع (Types): به شما امکان می دهد اسناد را در یک شاخص بر اساس ساختار یا هدف آنها گروه بندی کنید.تجزیه کننده ها (Analyzers): متن را به توکن های جداگانه مانند کلمات و حروف تبدیل می کنند.نقشه برداری ها (Mappings): ساختار داده ها را برای اسناد در یک شاخص تعریف می کنند.پرس و جوها (Queries): برای بازیابی اسناد مرتبط از Elasticsearch استفاده می شوند.کلسترها (Clusters): مجموعه ای از گره های Elasticsearch را برای توزیع بار و افزایش قابلیت دسترسی به داده ها تشکیل می دهند.آنالیزرها در Elasticsearchآنالیزرها  نقش مهمی در Elasticsearch ایفا می کنند زیرا آنها متن را به توکن های  جداگانه مانند کلمات و حروف تبدیل می کنند. این امر به Elasticsearch اجازه  می دهد تا به طور موثر پرس و جوهای جستجو را بر روی متن پردازش کند.  Elasticsearch طیف وسیعی از تجزیه کننده های داخلی را ارائه می دهد و  همچنین به شما امکان می دهد تجزیه کننده های سفارشی خود را ایجاد کنید.این دوره برای چه کسانی مناسب است:توسعه دهندگان و مهندسین DevOps که می خواهند Elasticsearch را یاد بگیرند.https://enginedevops.com/product/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%ac%d8%a7%d9%85%d8%b9-elasticsearch/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Thu, 02 May 2024 14:40:23 +0330</pubDate>
            </item>
                    <item>
                <title>نقشه راه DevOps و SRE</title>
                <link>https://virgool.io/@enginedevops/%D9%86%D9%82%D8%B4%D9%87-%D8%B1%D8%A7%D9%87-devops-%D9%88-sre-omdpypvbvmbb</link>
                <description>راهنمای مصور برای تبدیل شدن به یک مهندس DevOps و SRE در سال 2022 با پیوندهایی به دوره های مربوطهDevOps و SRE در حال حاضر واقعا داغ هستند و بیشتر دوستان، همکاران و توسعه دهندگان ارشد من که می شناسم سخت  کار می کنند تا مهندس DevOps شوند و خود را به عنوان قهرمان DevOps در  سازمان خود معرفی کنند. در حالی که من واقعاً مزایای DevOps را که مستقیماً  با توسعه و استقرار نرم‌افزار بهبود یافته مرتبط است، تأیید می‌کنم، از  تجربه محدودم می‌توانم بگویم که این کار آسانی نیست. انتخاب مسیر درست در میان این همه ابزار و تمرین بسیار دشوار است.بسیاری  از خوانندگان من اغلب از من سؤالاتی می پرسند مانند اینکه چگونه مهندس  DevOps شوم، چه ابزارهایی را باید یاد بگیرم؟ کدام شیوه ها را باید دنبال  کنم؟ آیا یادگیری Maven و Jenkins باید برای یک  DevOps باشد؟ Docker و  Kubernetes چطور؟ آیا اتوماسیون زیرساخت بخشی از DevOps است؟ آیا Chef, Puppet, یا  Ansible  را یاد بگیرم، تنها برخی از آن سوالاتی است که همیشه برای من مطرح می شود.امروز می‌خواهم منبع فوق‌العاده‌ای را با شما به اشتراک بگذارم که به شما کمک می‌کند تا به مهندس DevOps تبدیل شوید که همیشه می‌خواستید باشید، نقشه راه DevOps 2022.نقشه راه DevOps 2022 برای توسعه دهندگان📷اکنون،  بیایید گام به گام نقشه راه را مرور کنیم و دریابیم که چگونه می‌توانید  مهارت‌های ضروری برای تبدیل شدن به یک DevOps در سال 2022 را بیاموزید:1. یک زبان برنامه نویسی یاد بگیریدبدیهی  است و من فرض می کنم شما بچه ها قطعا یکی از سه زبان برنامه نویسی اصلی  یعنی جاوا، پایتون یا جاوا اسکریپت را می دانید. هرچند من قویاً به شما  پیشنهاد می‌کنم حداقل یکی از این سه زبان برنامه‌نویسی عمده را یاد بگیرید.1.1 Java1.2 Python1.3 JavaScript2. مفاهیم مختلف سیستم عامل را درک کنیداینجا  جایی بود که قسمت Ops وارد شد، قبلاً فقط توسط افراد و افراد sysadmin که  مسئول دانستن سیستم عامل و سخت افزار بودند پشتیبانی می شد، اما با DevOps،  اکنون توسعه دهنده نیز باید آنها را بشناسد. شما حداقل باید در مورد  مدیریت فرآیند، رشته ها و همزمانی، سوکت ها، مدیریت ورودی/خروجی، مجازی  سازی، ذخیره سازی حافظه و سیستم های فایل همانطور که در نقشه راه پیشنهاد  شده است بدانید.3. زندگی در ترمینال را بیاموزیدبرای یک  DevOps، داشتن فرمان خوب در خط فرمان مهم است، به خصوص اگر در لینوکس کار می کند. دانستن برخی از پوسته لینوکس مانند Bash یا Ksh و ابزارهایی مانند find، grep، awk، sed، lsof و دستورات شبکه مانند nslookup و netstat الزامی است.4. شبکه و امنیتدر  دنیای امروز، همه چیز به همه چیز متصل است که شبکه و امنیت را بسیار مهم  می کند. برای تبدیل شدن به یک مهندس DevOps خوب، باید در مورد مفاهیم اولیه  شبکه و امنیت مانند DNS، مدل OSI، HTTP، HTTPS، FTP، SSL، TLS و غیره بدانید.5.  ماهیت سرویس ها چیست و چگونه راه اندازی میشودبه عنوان یک قهرمان DevOps، باید  بدانید که چه چیزی در دستگاه شما تنظیم شده است و چگونه می توانید آن را  تنظیم کنید، فقط می توانید به خودکارسازی آن فکر کنید. به طور کلی، یک  مهندس DevOps باید بداند که چگونه یک وب سرور مانند IIS، Apache و Tomcat راه اندازی کند. او همچنین باید در مورد CachingServer، LoadBalancer، ReverseProxy و Firewall و غیره اطلاعات داشته باشد.6. زیرساخت را به عنوان کد یاد بگیریداین احتمالاً مهمترین چیز برای یک  مهندس DevOps است و همچنین منطقه بسیار وسیعی است. به عنوان یک مهندس  DevOps، باید در مورد کانتینرهایی مانند Docker و Kubernetes، ابزارهای مدیریت پیکربندی مانند Ansible، Chef، Salt و Puppet، تجهیزات زیرساخت مانند Terraform و Cloud formation اطلاعات داشته باشید.7. برخی از ابزارهای یکپارچه سازی و تحویل مداوم (CI/CD) را بیاموزیداین  یکی دیگر از موارد بسیار مهم برای مربیان و قهرمانان DevOps است، یعنی راه  اندازی  فرایند برای یکپارچه سازی و تحویل مداوم. ابزارهای زیادی در ناحیه  CI/CD وجود دارد به عنوان مثال. Jenkins, TeamCity, Drone ,Gitlab و غیره اما، اکیداً توصیه می‌کنم حداقل  Jenkins را یاد بگیرید، زیرا این ابزار پرکاربردترین و احتمالاً بالغ‌ترین ابزار CI/CD در بازار است.8. نظارت بر نرم افزار و زیرساخت را یاد بگیریدجدای از راه‌اندازی و استقرار، Monitoring یکی دیگر از جنبه‌های مهم DevOps است و به همین دلیل است که برای یک مهندس  DevOps مهم است که در مورد زیرساخت و نظارت بر برنامه‌ها بیاموزد.  ابزارهای زیادی در این فضا وجود دارد به عنوان مثال. Nagios، Icing، Datadog، Zabbix، Monit، AppDynanic، New Relic و غیره. بسته به اینکه کدام یک در شرکت شما استفاده می شود.9. درباره   Cloud Provides بیاموزیدCloud  چیز بزرگ بعدی است و دیر یا زود باید برنامه خود را به ابر منتقل کنید، از  این رو برای یک مهندس DevOps مهم است که حداقل درباره برخی از ارائه  دهندگان ابر محبوب و اصول اولیه آنها بداند. در حالی که AWS به وضوح پیشرو در فضای ابری است، تنها نیست، Google Cloud و Azure به آرامی در حال پیشرفت هستند و سپس ما بازیکنان دیگری مانند Heroku، Cloud Foundry و Digital Ocean را داریم.یادداشت های پایانیبا  تشکر از خواندن این مقاله تا کنون. ممکن است فکر کنید چیزهای زیادی برای  یادگیری وجود دارد، دوره های زیادی برای پیوستن وجود دارد، اما نیازی نیست  نگران باشید. احتمال زیادی وجود دارد که شما ممکن است از قبل بیشتر موارد  را بدانید، و همچنین منابع رایگان مفید زیادی وجود دارد که می توانید از  آنها استفاده کنید، من همچنین آنها را اینجا و آنجا به همراه بهترین منابع  پیوند داده ام که مطمئنا رایگان نیستند. اما ارزش پول من یکی از طرفداران  خاص دوره های Udemy هستم، زیرا آنها بسیار مقرون به صرفه  هستند و ارزش زیادی را در مقدار بسیار کمی ارائه می دهند، اما شما آزاد  هستید که دوره مورد نظر خود را انتخاب کنید. در پایان باید دانش و تجربه  کافی در مورد موارد ذکر شده در اینجا داشته باشید.در سفر DevOps خود موفق باشید! مطمئناً کار آسانی نیست، اما با پیروی از این نقشه راه و راهنما، یک قدم به مهندس DevOps  که دوست داشتید تبدیل شوید.منبع :https://enginedevops.com/2022/07/02/devops-sre-roadmap/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Thu, 02 May 2024 10:54:13 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه با Golang شروع کنیم – نقشه راه توسعه دهنده</title>
                <link>https://virgool.io/@enginedevops/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A8%D8%A7-golang-%D8%B4%D8%B1%D9%88%D8%B9-%DA%A9%D9%86%DB%8C%D9%85-%D9%86%D9%82%D8%B4%D9%87-%D8%B1%D8%A7%D9%87-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%AF%D9%87%D9%86%D8%AF%D9%87-mezshdysacql</link>
                <description>چگونه با Golang شروع کنیم – نقشه راه توسعه دهنده📷زبان برنامه نویسی Go – که با نام Golang نیز شناخته می شود – اکنون تقریباً 15 سال از عمر آن می گذرد. و به دلیل  عملکرد و استفاده کارآمد از منابع، به یک انتخاب محبوب برای توسعه وب و میکروسرویس تبدیل شده است. مشاغل Go نیز کاملاً درآمد دارند. طبق گزارش Glassdoor، متوسط ​​حقوق یک توسعه دهنده Go در ایالات متحده حدود 103 هزار دلار است و می تواند تا 200 هزار دلار نیز برسد.آماده اید تا سفر توسعه دهنده Go خود را آغاز کنید؟این  نقشه راه می تواند راهنمای شما باشد. در آن، من قصد دارم تا آنجا که می  توانم نکاتی را بیان کنم. برای هر نکته، نظرات و مثال هایی را برای توضیح  کامل آن درج کرده ام.مراجع ارائه شده در پایان تمام نکات را پوشش می دهد.در اینجا چیزی که می خواهیم پوشش دهیم:چرا باید Go را یاد بگیرید؟نحوه نصب Goمبانی Goمفاهیم پیشرفتهتوسعه وب در Goلاگ ها، تست، محک زدن، و اشکال زدایینحوه ساخت میکروسرویس های مقیاس پذیرنحوه ساخت ابزارهای خط فرمان (CLI)پروژه هایی برای تقویت مهارت های شماگام بعدی؟منابعچرا باید Go را یاد بگیرید؟Go اولین بار در اواخر سال 2009 معرفی شد. این یک زبان برنامه نویسی سطح بالا  منبع باز، تایپ ایستا و کامپایل شده است که در گوگل طراحی شده است. این یک  انتخاب محبوب برای ساخت سیستم های ایمن و مقیاس پذیر است.طبق نظرسنجی سالانه StackOverflow، این یکی از محبوب ترین زبان های برنامه نویسی است. همچنین، در شاخص Tiobe 2024، Go در حال حاضر جایگاه یازدهم را دارد و هر سال جایگاه آن به طور پیوسته بهبود می یابد.Go  یک انتخاب محبوب برای ساخت سرویس ها و API های مقیاس پذیر و کارآمد است.  به دلیل حافظه کم، کامپایل سریع و کارایی بالا، به طور گسترده برای معماری  میکروسرویس ها استفاده می شود.به دلیل پشتیبانی داخلی از همزمانی از طریق گوروتین ها و کانال ها، یک انتخاب محبوب برای توسعه بلاک چین است. برای مثال Ethereum و Hyperledger Fabric در Go نوشته شده اند.نرم افزارهای مورد علاقه شما مانند Docker، Kubernetes، Hugo، GitHub CLI، Prometheus، Terraform و بسیاری دیگر نیز در Go نوشته شده اند.و شرکت هایی مانند گوگل، متا، نتفلیکس و اوبر همگی از Go استفاده می کنند.برای کسب اطلاعات بیشتر می توانید منابع زیر را بررسی کنید:go.devstackshareنحوه نصب Goمی توانید Go را به سیستم عامل مربوطه خود از اینجا نصب کنید.نصب را با استفاده از دستور go version تست کنید:اگر با خطا مواجه شدید، متغیرهای محیط را بررسی کنید.مبانی Goابتدا، بیایید با درک نحو اصلی اجرای یک برنامه Go شروع کنیم. برنامه از بسته اصلی و تابع اصلی شروع می شود. فایل ها با پسوند .go ذخیره می شوند.در Go، یک بسته یک واحد اساسی برای ساختاردهی و مدیریت کد است. برای وارد کردن هر بسته ای می توانید از کلمه کلیدی import استفاده کنید. به عنوان مثال، برای چاپ می توانید از بسته fmt یا log استفاده کنید.این یک برنامه ساده برای چاپ پیام در Go است:📷برای اجرای برنامه از go run &lt;filename&gt;.go استفاده کنید.اکنون، می توانید شروع به یادگیری در مورد موضوعات زیر کنید:Basic Data types: int, float, bool, string, arrayReference Data types: channel, map, slicesVariables and ConstantsConditional Statements: if, if else, switchIteration Statement: for (only “for” is available, no “while”)Type Casting and Inference: there is no implicit type conversion availableExport Function: Exporting a function is done by capitalising its first letterModule: Initialising the module. Learn commands under go mod.Importing third party packages: Using go get &lt;gitrepo_url&gt;.gitBasic keywords: make, new, range, defer📷بسیاری از این مفاهیم در این راهنمای مبتدی پوشش داده شده است. و اگر می‌خواهید حتی عمیق‌تریاد بگیرید، در اینجا یک کتابچه راهنمای کامل است که مفاهیم اولیه Go را با جزئیات پوشش می‌دهد.مفاهیم پیشرفتهبرای استفاده از پتانسیل Go برای ایجاد یک سیستم مقیاس پذیر و توزیع شده، داشتن درک کامل از ویژگی های اصلی آن ضروری است.اینها ویژگی های اصلی Go هستند:Functions &amp; PackagesConcurrency and GoroutinesChannelsContext ManagementError HandlingPointers and Memory ManagementGarbage Collection (You can tweak default GC to get a performance boost)Concurrency PatternsMutexesWaitgroups📷توسعه وب در Goبا  یک کتابخانه استاندارد غنی، همزمانی داخلی و عملکرد عالی، Go یک انتخاب  ایده آل برای توسعه وب است. اکوسیستم Go فراتر از بسته های داخلی خود،  انواع چارچوب ها و بسته های توسعه وب را برای انتخاب ارائه می دهد.در اینجا برخی از فریمورک ها و بسته های شناخته شده آورده شده است:net/http (built-in package)gorilla/muxginchifiberechoهمه  فریمورک های شناخته شده ای هستند و می توانید با هر کدام از آنها شروع  کنید. تعداد کمی از الگوی net/http پیروی می کنند و تعداد کمی از فریم ورک  های Express یا دیگر الهام گرفته شده اند.لاگ ها ، تست، محک زدن، و اشکال زدایی – Logging, Testing, Benchmarking, and Debuggingاین  زبان یک گزارش بسته گزارش جامع برای نظارت موثر و همچنین یک بسته تست و  محک داخلی را فراهم می کند. شما باید تکنیک های اشکال زدایی موثر را برای  شناسایی و حل مسائل در کد درک کنید.Logging in Goبسته log استاندارد  یک نقطه شروع عالی است. به راحتی قابل تنظیم است تا مسیر فایل، نوع گزارش،  و هر پیام سفارشی را در پیام گزارش وارد کند. علاوه بر این، بسیاری از لاگرها در دسترس هستند. این لاگرها از استانداردهای صنعت لاگ ها پیروی می کنند و در مقایسه با بسته log استاندارد عملکرد بالایی دارند.در اینجا برخی از لاگرهای موجود آورده شده است:uber-go/zaplogruszerologapex/logslog (standard package)Testing and Benchmarking in Goتست چارچوب تست داخلی برای نوشتن تست ها و معیارها پشتیبانی می کند.دستور  go test برای اجرای تست ها و معیارها استفاده می شود. می توانید تست ها و  معیارها را در فایلی که به _test.go ختم می شود اضافه کنید.برای نوشتن یک تست، از testing.T استفاده کنید و از قرارداد نامگذاری تابع TestXxx پیروی کنید.به  عنوان مثال، برای نوشتن یک تست برای تابع fibonaci، نام تابع تست آن  TestFibonaci خواهد بود که Test کلمه کلیدی است که به کامپایلر Go می گوید  که یک تابع آزمایشی است و Fibonaci نام تابع است. به یاد داشته باشید که  حرف اول نام تابع تست، Fibonaci را با حروف بزرگ بنویسید.در اینجا می‌توانید درباره افزودن تست‌ها به کد Go خود بیشتر بخوانید.اگر به عملکردهای بیشتر عادت دارید، می توانید بسته testify را امتحان کنید. این یک بسته خارجی است که خوانایی موارد تست را بهبود می بخشد. در داخل از بسته تست داخلی استفاده می شود.Debugging in GoDelve یک دیباگر قدرتمند برای Go است. به راحتی با IDE های محبوب مانند Visual Studio Code، Goland by JetBrains، Neovim، Atom و غیره ادغام می شود.شما می توانید از بسته داخلی pprof برای تجزیه و تحلیل و شناسایی تنگناهای عملکرد و مشکلات استفاده از حافظه استفاده کنید. مسیر آن net/http/pprof استنحوه ساخت میکروسرویس های مقیاس پذیرساخت  میکروسرویس های مقیاس پذیر به ترکیبی از معماری متفکرانه، شیوه های  کدگذاری کارآمد و ابزار قوی نیاز دارد. مدل همزمانی سبک وزن، زمان اجرا  کارآمد و کتابخانه استاندارد غنی می‌تواند بارهای ترافیکی بالا را مدیریت  کند و به صورت افقی مقیاس‌بندی شود، که آن را به انتخابی ایده‌آل برای  میکروسرویس‌ها تبدیل می‌کند.در زیر چند موضوع وجود دارد که می توانید با آنها شروع کنید:Microservice FundamentalsCommunication Protocols (REST APIs, gRPC, WebSockets)Service DiscoveryPub-Sub modelMessage Queues (Apache Kafka, RabbitMQ)نحوه ساخت ابزارهای خط فرمان (CLI)وقتی  صحبت از CLI ها می شود، Go یک ستاره راک است. بسته‌هایی در Go وجود دارد  که به راحتی می‌توانید CLI را بسازید. flag  را می توان برای ساختن CLI  اصلی استفاده کرد.بسته  Cobra برای ایجاد برنامه های قدرتمند مدرن CLI بسیار محبوب است. بسیاری از پروژه  های Go مانند GitHub CLI، Hugo و Kubernetes از Cobra استفاده می کنند.در اینجا چند پروژه CLI وجود دارد که می توانید برای تمرین بسازید:Task Manager: یک مدیر وظیفه مبتنی بر CLI ایجاد کنید که به عملیات CRUD اجازه می دهد.Notes: یک CLI برای یادداشت برداری بسازید.Password Manager:  یک CLI ایجاد کنید که رمزهای عبور را با رمزگذاری مناسب، تولید و بازیابی رمز عبور ذخیره و مدیریت کند.Universal Conversion Tool: یک مبدل جهانی بسازید که می تواند تمام معیارها و ارز را تبدیل کند.پروژه هایی برای تقویت مهارت های  شمابرای درک بیشتر در مورد قابلیت های Go، می توانید با ساخت پروژه ها تجربه عملی عملی کسب کنید.در اینجا لیستی از پروژه هایی وجود دارد که می توانید در Go بسازید:Todo applicationChat ApplicationCLIMicroservices which communicate using gRPCContainerizing a Go applicationCreate a blogging websiteWebscraper using net/http and goquery packageRate limiterEmail Template generator using template packageگام بعدیبرای گام های بعدی خود می توانید این نقشه راه شگفت انگیز Go را که توسط Kamran ساخته شده است دنبال کنید.📷منبع: https://enginedevops.com/2024/05/01/%d9%86%d9%82%d8%b4%d9%87-%d8%b1%d8%a7%d9%87-%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%af%d9%87%d9%86%d8%af%d9%87-%da%af%d9%88%d9%84%d9%86%da%af/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Thu, 02 May 2024 10:45:11 +0330</pubDate>
            </item>
                    <item>
                <title>10 روشی که شما مهندسان DevOps خود را دیوانه می کنید</title>
                <link>https://virgool.io/@enginedevops/10-%D8%B1%D9%88%D8%B4%DB%8C-%DA%A9%D9%87-%D8%B4%D9%85%D8%A7-%D9%85%D9%87%D9%86%D8%AF%D8%B3%D8%A7%D9%86-devops-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%AF%DB%8C%D9%88%D8%A7%D9%86%D9%87-%D9%85%DB%8C-%DA%A9%D9%86%DB%8C%D8%AF-c6vq9sstewbt</link>
                <description>10 روشی که شما مهندسان DevOps خود را دیوانه می کنیداگر  یک مهندس DevOps هستید، مطمئناً چیزهایی وجود دارد که دوست دارید از آنها  متنفر باشید، مانند Kubernetes. اما چیزهای دیگری وجود دارد که شما واقعاً،  واقعاً و واقعاً از آنها نفرت دارید. هنگامی که شخصی یکی از این جملات،  سوالات یا درخواست‌ها را زیر لب می‌گوید، ممکن است پوست شما شروع به خزیدن  کند، فشار خون شما شروع به بالا رفتن می‌کند و حتی ممکن است نیاز داشته  باشید که مشت خود را نگه دارید – بسیار خوب، شاید آنقدرها هم چشمگیر نباشد،  اما هنوز هم فوق‌العاده آزاردهنده است. . بنابراین کسانی از شما که با  مهندسان DevOps کار می کنند، توجه داشته باشید. در اینجا برخی از عاداتی که  مهندسان DevOps از آن متنفرند آورده شده است.1. هر سوالی که می توانید در گوگل بپرسیدبرخی  از سوالات ممکن است آنقدر خاص باشند که نیاز به تخصص خاصی داشته باشند. در  مواقع دیگر، ممکن است به کسی نیاز داشته باشید که اطلاعات فنی پیچیده را  به گونه‌ای توضیح دهد که درک آن آسان‌تر باشد. اما درصد زیادی از سوالاتی  که از مهندسان DevOps می‌پرسند را می‌توان توسط Google، Reddit، Quora یا  Stack Overflow پاسخ داد. پرسیدن سوالاتی که بتوان آنها را در گوگل جستجو  کرد نه تنها ناامید کننده است، بلکه برای بهره وری DevOps نیز مضر است. کار  آنها به تمرکز زیادی نیاز دارد. و هر زمان که شتاب آنها را قطع کنید، آنها  را مجبور می کند که زمینه را تغییر دهند و روی چیز دیگری تمرکز کنند. در  نتیجه، سؤال شما نه تنها برای پاسخ دادن، بلکه برای سوئیچ زمینه نیز زمان  می برد. بسته به شخص، این تغییر در تمرکز می تواند بین پنج تا بیست دقیقه  طول بکشد. بنابراین فرض کنید پاسخ سوال شما پانزده دقیقه طول می کشد، شما  اکنون بین بیست تا سی و پنج دقیقه از زمان مهندس DevOps خود را تلف کرده  اید. مطمئن شوید که سوال شما ارزشش را دارد. گوگل را دوبار و سه بار بررسی  کنید تا ببینید آیا پاسخ های موجود در آنجا کافی هستند یا خیر. و اگر همه  چیز شکست خورد، مهندس DevOps شما برای کمک به شما آماده است، اما او قطعا  از تحقیقات قبلی شما قدردانی خواهد کرد. ; )2. هدایت سوالات به شخص اشتباهآیا  کاملاً مطمئن هستید که سؤال شما توسط یک مهندس DevOps بهترین پاسخ داده می  شود؟ اغلب اوقات، مهندسان DevOps با سؤالاتی مواجه می شوند که به تخصص  آنها مرتبط نیست. این سوالات ممکن است برای یک معاون تحقیق و توسعه، شخص  فناوری اطلاعات یا مهندس نرم افزار مناسب تر باشد. بنابراین قبل از اینکه  بپرسید، با همتایان خود بررسی کنید که تیم DevOps شما افراد مناسبی هستند  که باید به سراغ آنها بروید.3. بررسی نکردن کد خودکارهای  زیادی برای انجام دادن دارید اما مهندس DevOps شما نیز همینطور است. او  وظیفه دارد همه چیز را از CI/CD و توسعه ویژگی‌های جدید گرفته تا مدیریت  زیرساختی که محصول شما روی آن اجرا می‌شود، انجام دهد. وادار کردن آنها به  بررسی کد شما علاوه بر همه چیزهای دیگر در ظرف خود کار جالبی نیست.  بنابراین قبل از اینکه کد خود را به DevOps فشار دهید، مطمئن شوید که آن را  آزمایش کرده اید، آن را برای اشکالات بررسی کرده اید و کد را به طور کامل  بررسی کرده اید. قبل از اینکه کد را آزمایش کنید، با آزمایش عملکرد پایه  شروع کنید، سپس به بررسی همتایان، تست استاتیک برای آسیب‌پذیری‌های امنیتی،  تست واحد و عملکرد و در نهایت QA بروید. از این گذشته، هیچ چیز بیشتر از رفع کد معیوب شخص دیگری بر روی اعصاب DevOps تأثیر نمی گذارد.4. گفتن “آیا شما فقط می توانید این یک کار کوچک را انجام دهید؟”“کوچک”  یک اصطلاح نسبی است. و به طور کلی، بسیاری از چیزهایی که مردم فکر می کنند  فقط یک اصلاح کوچک هستند، ممکن است به ساعت ها کار نیاز داشته باشند. اگر  با فناوری پشت یک درخواست خاص آشنا نیستید، بهتر است پیش مهندس DevOps خود  نروید و از او بخواهید که «تعدیل‌های جزئی» شما را خیلی سریع انجام دهد. در  عوض، از آنها در مورد درخواستی که نیاز دارید بپرسید، متوجه شوید که چقدر  طول می کشد و زمان معقولی را برای انجام وظیفه در اختیار آنها قرار دهید.5. تنظیم جلسات بی فایدهاگر  تا به حال متوجه هر الگوی شده اید، این است، مهندسان DevOps از اتلاف وقت  متنفرند. بنابراین اگر آن جلسه می توانست یا باید یک ایمیل باشد، بهتر است  آن را به همین صورت ترک کنید. چگونه متوجه می شوید که جلسه ضروری نیست؟ اگر  این یک مکالمه بسیار پیچیده نیست، چیزی که نیاز به برنامه ریزی، بحث یا  تدارکات زیادی دارد، احتمالاً ارزش تشکیل جلسه در مورد آن را ندارد. در  زمان، تلاش و ناامیدی خود صرفه جویی کنید. دفعه بعد، فقط آن را از طریق  ایمیل یا Slack ارسال کنید.6. گفتن “ما اکنون به این نیاز داریم.. فوری است”آیا  واقعاً فوری است؟ منظورم این است که واقعاً – اینطور است؟ بسیاری از  کارهای فوری «فوری» تلقی می‌شوند، اما در واقعیت، می‌توانند تا فردا صبر  کنند – گاهی حتی «تا هفته آینده». مهندسان DevOps معمولاً لیست کارهای  بسیار سنگینی دارند. بنابراین اولویت بندی بسیار مهم است. آنها را با  کارهایی که باید «اکنون به انجام برسانند» آزار ندهید، مگر اینکه در مورد  قطعی، خرابی برنامه یا چیزی مشابه مهم باشد.7. وقفه زمانی که آنها در منطقه خود هستندهمانند  جلسات غیرضروری و سوالات کم تحقیق، به طور کلی باید از وقفه اجتناب شود.  زمانی که مهندس DevOps شما هدفون خود را به سر می‌برد، توجه داشته باشید.  آیا ممکن است به این معنی باشد که آنها به آهنگ مورد علاقه خود علاقه  دارند؟ شاید. اما همچنین به این معنی است که آنها در حال تمرکز هستند، به  این معنی که قطع کردن آنها برای آنها زمان و احتمالاً سلامت عقل آنها هزینه  خواهد داشت.8. آنها را مجبور به مدیریت هزینه ها کنیدمهندسان  DevOps کاری را که انجام می دهند انجام می دهند زیرا دوست دارند مشکلات  پیچیده را حل کنند. نوشتن کد، توسعه ویژگی های جدید، اطمینان از کیفیت  محصول و ارائه سریع نتایج یک چالش بزرگ است. اما در بیشتر موارد، آنها  هیجان همه چیز را دوست دارند. از سوی دیگر مدیریت مالی کاری بی فکر، تکراری  و زمان بر است که هیچ هیجان، چالش و پاداشی ارائه نمی دهد. به همین دلیل  است که مهندسان DevOps از وظایف مدیریت مالی مانند نظارت بر ظرفیت، ثبت  سابقه نمایش و استرداد شارژ، برنامه ریزی و پیش بینی استفاده متنفرند. این  کارها به بهترین وجه از طریق اتوماسیون انجام می شوند، زیرا رایانه ها می  توانند آنها را سریع تر، دقیق تر و بدون هیچ گونه ناراحتی انجام دهند (یا  ما فکر می کنیم). این ما را به موضوع بعدی ما می رساند.9. خودکار نکردن وظایف روتینبسیاری  از وظایف DevOps می‌توانند و باید خودکار شوند. چه در مورد مدیریت  پیکربندی با ابزارهایی مانند Chef یا Puppet صحبت کنید، یا از اتوماسیون  استقرار با ابزارهایی مانند Jenkins، اتوماسیون برای DevOps اهمیت کلیدی  دارد زیرا بسیار کارآمد است و مهندسان DevOps را قادر می‌سازد بر روی  کارهایی تمرکز کنند که به قدرت مغز بیشتری نیاز دارند و کارهای بیشتری را  به ارمغان می‌آورند. ارزش برای کاربران هر چیزی که می تواند خودکار باشد،  باید خودکار باشد. بنابراین اگر ماشینی می تواند آن را بهتر انجام دهد،  مطمئن شوید که روی اتوماسیون سرمایه گذاری کرده اید. مهندسان DevOps شما از  شما تشکر خواهند کرد.10. عدم یکپارچگی بین ابزارهاما  از هزاران ابزار مختلف برای جنبه های مختلف کار خود استفاده می کنیم. و  گاهی اوقات، آنها همیشه با هم خوب بازی نمی کنند، به خصوص زمانی که نسخه  های جدید یا به روز رسانی وجود دارد. هنگامی که ابزارها به خوبی با یکدیگر  ادغام نمی شوند، DevOps نیاز به تنظیمات دستی زیادی دارد و اغلب اوقات، این  اصلاحات کامل نیستند. مدیریت وابستگی همچنین می تواند هنگام بررسی  ابزارهای خاص مشکل ساز باشد و سازمان ها را از خرید ایده آل ترین ابزار  برای مورد استفاده خود باز دارد. فروشندگانی که نرم افزاری را با هدف  مهندسین DevOps تولید می کنند، باید این را در نظر داشته باشند و مطمئن  شوند که با ابزارهای محبوب در صنعت یکپارچه سازی می کنند.کلمات پایانیDevOps به هیچ وجه کار آسانی نیست. در اکثر مواقع، مهندسان DevOps از جنبه  های چالش برانگیز نقش های خود لذت می برند، به جز زمانی که صحبت از موارد  تشدید کننده ذکر شده در بالا باشد. بنابراین، اگر با یک مهندس DevOps کار  می‌کنید، زندگی آنها (و شما) را با درک ناراحتی‌های  آنها و اطمینان از  وقفه‌های کمتر ممکن آسان‌تر کنید.منبع : https://zesty.co/blog/10-habits-devops-hate/https://enginedevops.com/2022/12/25/10-habits-devops-hate/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Sun, 25 Dec 2022 12:29:50 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش نصب داشبورد کوبرنتیز</title>
                <link>https://virgool.io/@enginedevops/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%86%D8%B5%D8%A8-%D8%AF%D8%A7%D8%B4%D8%A8%D9%88%D8%B1%D8%AF-%DA%A9%D9%88%D8%A8%D8%B1%D9%86%D8%AA%DB%8C%D8%B2-is9zqygeoayx</link>
                <description>آموزش نصب داشبورد کوبرنتیز  Kubernetes Dashboardاگر صدها کانتینر را در Kubernetes مستقر می کنید، چگونه می توانید همه آنها را زیر نظر داشته باشید؟ رابط خط فرمان کار نخواهد کرد. شما به یک نمایش بصری از همه چیز نیاز دارید.معرفی داشبورد Kubernetes. داشبورد Kubernetes رابط کاربری رسمی مبتنی بر وب است که از گروهی از منابع برای ساده‌سازی مدیریت کلاستر تشکیل شده است. در این آموزش نحوه نصب و راه اندازی داشبورد Kubernetes را گام به گام بر روی یک دستگاه اوبونتو خواهید آموخت.نصب داشبورد Kubernetesقبل از اینکه بتوانید از مزایای داشبورد Kubernetes لذت ببرید، ابتدا باید آن را نصب کنید، پس بیایید وارد آن شویم. برای نصب داشبورد Kubernetes، به ابزار رابط خط فرمان kubectl نیاز دارید. Kubectl یک ابزار خط فرمان است که نصب داشبورد Kubernetes و بسیاری از وظایف دیگر Kubernetes را مدیریت می کند.1. ابتدا از طریق SSH به سرور اصلی Kubernetes خود متصل شوید. 2. سپس داشبورد Kubernetes را با اجرای دستور kubectl application مانند شکل زیر نصب کنید. دستور kubectl application فایل recommend.yaml را دانلود می‌کند و دستورالعمل‌های درون آن را برای تنظیم هر جزء برای داشبورد فراخوانی می‌کند.kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yamlپس از اجرای دستور، kubectl موارد زیر را ایجاد می کندnamespace, service account, config map, pods, cluster role, service, RBAC, deploymentsnamespace– فضای مجازی مجزا ایجاد میشود.service account – یک هویت برای فرآیندهایی که در یک Pod اجرا می شوند ارائه می دهد.Config Map – یک شی API که برای ذخیره داده های غیر محرمانه در جفت های کلید-مقدار مانند متغیرهای محیطی یا آرگومان های خط فرمان استفاده می شود.RBAC – مجوزهایی برای مدیریت نقش های کاربر در داشبورد.service – راهی برای نمایش یک برنامه در حال اجرا با چندین مجموعه از Pods. deployments – مدیریت منابع در خوشه.Pods – یک pod گروهی از یک یا چند کانتینر با منابع ذخیره سازی مشترک و شبکه و مشخصاتی برای اجرای کانتینرها است.Secrets  – اطلاعات حساس مانند رمزهای عبور، نشانه های OAuth و کلیدهای SSH را ذخیره می کند.?3. اکنون، با اجرای دستور kubectl get، بررسی کنید که همه منابع با موفقیت نصب شده اند. دستور زیر اطلاعاتی را در مورد تمام منابع موجود در خوشه ایجاد شده در فضای نام kubernetes-dashboard (-n) واکشی می کند.kubectl get all -n kubernetes-dashboard?راه اندازی داشبورد Kubernetesدر حال حاضر، شما یک داشبورد کاربردی Kubernetes در حال اجرا دارید، اما برای اینکه کاملاً کاربردی باشد، همچنان به کمی پیکربندی نیاز دارد. اکنون باید داشبورد را به گونه‌ای پیکربندی کنید که با افشای سرویس داشبورد در خارج از  کلاستر در دسترس باشد. با فرض اینکه هنوز از طریق کلاینت SSH به ماشین Kubernetes متصل هستید:1. سرویس داشبورد Kubernetes ایجاد شده در قسمت قبل را با استفاده از دستور kubectl edit مطابق شکل زیر ویرایش کنید. با اجرای دستور زیر یک فایل پیکربندی سرویس قابل ویرایش باز می شود که پیکربندی سرویس را نمایش می دهد.kubectl edit service/kubernetes-dashboard -n kubernetes-dashboard2. پس از باز شدن فایل، نوع سرویس را از ClusterIP به NodePort تغییر دهید و فایل را مطابق شکل زیر ذخیره کنید. به‌طور پیش‌فرض، این سرویس فقط به صورت داخلی برای خوشه (ClusterIP) در دسترس است، اما تغییر به NodePort، سرویس را به بیرون نشان می‌دهد.تنظیم نوع سرویس بر روی NodePort به همه IP ها (داخل یا خارج از) کلاستر اجازه می دهد تا به سرویس دسترسی داشته باشند.# Updated the type to NodePort in the service.ports:port: 443protocol: TCPtargetPort: 8443selector: k8s-app:kubernetes-dashboardsessionAffinity: Nonetype: NodePort3. نام هر پاد را که مرحله دوم در بخش قبل با استفاده از دستور kubectl get pods ایجاد شده است، پیدا کنید.شما باید یک پاد را ببینید که با kubernetes-dashboard شروع می شود.kubectl get pods –all-namespaces?4. سپس، پاد داشبورد Kubernetes را با استفاده از نام موجود در مرحله سوم با استفاده از دستور حذف kubectl حذف کنید.برای این آموزش نام پاد kubernetes-dashboard-78c79f97b4-gjr2l است.هر زمان که نوع سرویس را تغییر می دهید، باید پاد را حذف کنید. پس از حذف، Kubernetes یک سرویس جدید با نوع سرویس به روز شده برای دسترسی به کل شبکه برای شما ایجاد می کند.kubectl delete pod kubernetes-dashboard-78c79f97b4-gjr2l -n kubernetes-dashboard5. با اجرای دستور kubectl get svc –all-namespace بررسی کنید که سرویس kubernetes-dashboard نوع صحیحی دارد.اکنون متوجه خواهید شد که نوع سرویس به NodePort تغییر کرده است و سرویس پورت TCP داخلی 30265 پاد را با استفاده از پورت TCP خارجی 443 در معرض دید قرار می دهد.?6. اکنون یک حساب سرویس با استفاده از kubectl create serviceaccount در فضای نام kubernetes-dashboard ایجاد کنید.برای احراز هویت هر فرآیند یا برنامه ای در داخل کانتینر که در پاد قرار دارد به این serviceaccount نیاز دارید.kubectl create serviceaccount dashboard -n kubernetes-dashboard7. رمز سرویس را با اجرای دستور kubectl get secret واکشی کنید. از این توکن برای دسترسی به داشبورد در بخش بعدی استفاده خواهید کرد.8. رول  clusterrolebinding را با استفاده از دستور kubectl create clusterrolebinding ایجاد کنید و نقش cluster-admin را به حساب سرویس ایجاد شده قبلی اختصاص دهید تا دسترسی کامل به کل خوشه داشته باشید.kubectl create clusterrolebinding dashboard-admin -n kubernetes-dashboard  --clusterrole=cluster-admin  --serviceaccount=default:dashboardدسترسی به داشبورد Kubernetesاکنون که داشبورد Kubernetes را نصب و راه اندازی کرده اید، تنها کاری که باید انجام دهید این است که از عملکرد آن لذت ببرید!مرورگر مورد علاقه خود را باز کنید و بهhttps://kuberntes-master-node:NodePort/#/login برویدتا به داشبورد Kubernetes دسترسی پیدا کنید.kuberntes-master-node  میشود آی پی سرور مستر شماNodePort پورتی که در مرحله پنجم بر روی کلاستر خود باز کرده اید.به طور مثال :https://192.168.1.100:30625صفحه اصلی داشبورد Kubernetes از شما می‌خواهد که از طریق یک توکن حامل معتبر یا با یک فایل kubeconfig از قبل موجود احراز هویت کنید.برای این آموزش، از توکن تولید شده در بخش قبل برای دسترسی به داشبورد Kubernetes استفاده خواهید کرد.?مطمئن شوید که Token را انتخاب کرده اید و secret به دست آمده از مرحله هفت در بخش قبل را ارائه دهید. اگر همه چیز خوب پیش رفت، داشبورد باید شما را احراز هویت کند و صفحه خدمات را به شما ارائه دهد.?داشبورد Kubernetes شما اکنون نصب شده و کار می کند. عالی!نتیجهاکنون باید نحوه استقرار و دسترسی به داشبورد Kubernetes را بدانید.داشبورد Kubernetes یک روش بصری برای مدیریت تمام منابع خوشه شما بدون رها شدن به خط فرمان است.اکنون که داشبورد Kubernetes را راه اندازی کرده اید، چه برنامه هایی را در کنار آن قرار می دهید؟منبع :  https://adamtheautomator.com/kubernetes-dashboard/https://enginedevops.com/2022/07/01/install-kubernetes-dashboard/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Sun, 18 Sep 2022 12:29:42 +0430</pubDate>
            </item>
                    <item>
                <title>معرفی فرهنگ Postmortem در DevOps-SRE</title>
                <link>https://virgool.io/@enginedevops/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%81%D8%B1%D9%87%D9%86%DA%AF-postmortem-%D8%AF%D8%B1-devops-sre-uyveyiels1dz</link>
                <description>DevOps Postmortems: چرا و چگونه از آنها استفاده کنیموقتی همه چیز اشتباه می شود، همانطور که گاهی اوقات اتفاق می افتد، مهم است که یک قدم به عقب بردارید و ارزیابی کنید که چرا و چگونه این کار را انجام دادند.اشتباه کردن جزو جدا ناپذیر انسان  است. برای اینکه مطمئن شویم از اشتباهات خود درس می گیریم و سازگار می شویم، نیاز به نظم و انضباط دارد. در این پست، انگیزه معرفی فرهنگ Postmortem ( تشریح حادثه بعد از وقوع)در سازمان DevOps شما را پوشش خواهیم داد. علاوه بر این، ما این را با مثالی از نحوه اجرای Postmortem( تشریح حادثه بعد از وقوع)  در تیم DevOps/SRE تکمیل خواهیم کرد.چرا به انضباط Postmortem نیاز دارم؟همانطور که می دانیم، تغییرات در سیستم باعث ایجاد ناپایداری هایی می شود که باعث بروز حوادث می شود. مهاجرت به DevOps به سازمان‌ها در سرتاسر جهان این امکان را می‌دهد که با افزایش‌های کوچک‌تر و با فرکانس بیشتر منتشر کنند. این باعث کاهش خطر شکست در یک نسخه خاص می شود. از سوی دیگر، افزایش تعداد انتشارها لزوماً تعداد حوادثی را که تیم های آماده به کار باید به آنها پاسخ دهند کاهش نمی دهد. مسئولیت اصلی تیم واکنش به حادثه، تعیین کمیت و در صورت لزوم کاهش تأثیر است. در نتیجه، سرویس به شرایط عملیاتی عادی باز می گردد. تجزیه و تحلیل علت اصلی و اجرای اقدامات پیشگیرانه به این فرآیند تعلق ندارد. حال اگر چنین یادگیری و تحلیلی صورت نگیرد، علل ریشه ای درمان نشده و اقدامات پیشگیرانه اجرا نمی شود. نتیجه: حوادث شروع به افزایش می کنند و خطاهای آبشاری بخشی از روال هفتگی می شوند. در نهایت، مدت زمانی که یک تیم DevOps برای پاسخگویی به حادثه صرف می‌کند، با کیفیت خدمات رو به کاهش، بزرگ‌تر و بزرگ‌تر می‌شود.انجام Postmortemبرای جلوگیری از چنین مارپیچ مرگ، تیم شما باید نیاز به درس گرفتن از گذشته را برای ساختن آینده ای بهتر بپذیرد. این فرآیند یادگیری Postmortem ( تشریح حادثه بعد از وقوع) نامیده می شود. Postmortem باید هر زمان که یک حادثه نیاز به پاسخ از یک مهندس در حال تماس دارد، آغاز شود. یک Postmortem معمولی با ثبت شواهد عینی شروع می شود:ماشه حادثه   Trigger for the incidentتاثیر حادثه Impact of the incidentزمان شناسایی و کاهش آن  Time to detect and mitigateاقدامات انجام شده برای کاهش  Steps taken to mitigateتحلیل علل ریشه ای Root cause analysisبر اساس شواهد فوق، باید تجزیه و تحلیل انجام شود. تجزیه و تحلیل معمولاً توسط یکی از اعضای تیم در حال تماس انجام می شود که به حادثه پاسخ داده است و ممکن است شامل سایر اعضای تیم نیز باشد که به کاهش یا تجزیه و تحلیل علت اصلی کمک کرده اند. فرآیند تحلیل نیاز به یافتن پاسخ برای سوالات زیر دارد:Triggerچه تعداد هشدار برای این حادثه دریافت کردیم؟ آیا ماشه به موقع بود یا می توانستیم آن را زودتر ثبت کنیم؟تأثیر Impactآیا ضربه در وهله اول برای ایجاد یک حادثه کافی بود؟ یا باید ماشه ها را کالیبره کنیم؟آیا اقداماتی برای کاهش تأثیر کافی انجام شد و آیا آنها این روند را دنبال کردند؟ اگر نه، آیا باید روی آموزش سرمایه گذاری کنیم یا دستورالعمل ها را بهبود ببخشیم؟آیا ما به اندازه کافی سریع توانستیم تاثیر را کاهش دهیم؟آیا کاری وجود دارد که بتوانیم برای کاهش زمان کاهش انجام دهیم؟علت ریشه ای Root causeآیا علت اصلی حل خواهد شد یا باید با آن زندگی کنیم؟اگر علت اصلی برطرف شود، برای رفع آن دقیقاً چه کاری باید انجام دهیم؟بر اساس تجزیه و تحلیل، باید خلاصه ای از جمله درس های آموخته شده و کارهای بعدی ثبت و اولویت بندی شود. وظایف بعدی معمولاً عبارتند از:وظایف مهندسی برای حل علت اصلیوظایف مهندسان DevOps برای بهبود تنظیمات نظارتوظایف مدیران برای بهبود فرآیندهامعرفی Postmortemمعرفی Postmortem به سازمانی که از لحاظ تاریخی هیچ اقدامی انجام نداده است آنقدرها هم که به نظر می رسد آسان نیست. مانند هر فرآیند جدید یا در حال تغییر، معرفی و تداوم تغییر نیازمند زمان و تلاش در تمام سطوح سازمان است. با این حال، چند اصل کلیدی وجود دارد که پیروی از آنها تغییر را آسان تر می کند:مطمئن شوید که از سرزنش  و انگشت نشان دادن دوری کنید stay away from blame games and finger pointing.این مهم ترین جنبه برای خارج کردن همه چیز از دروازه است. اگر تجزیه و تحلیل به جای اطمینان از یادگیری و بهبود تیم، بر سرزنش افراد مسبب حادثه متمرکز شود، این ابتکار به جای خیر، باعث آسیب خواهد شد. یک سرنخ اختصاصی تعیین کنید، و هر یک از واکنش های حادثه را برای پایان دادن به پس از مرگ مجبور کنید. این افراد معمولاً از تیم‌های DevOps/on-call می‌آیند و اغلب خودشان رهبران تیم هستند. همکاری کنید و به اشتراک بگذارید. مطمئن شوید که Postmortem را در رسانه ای مناسب برای اشتراک گذاری و یادگیری، مانند ویکی ها، ضبط کنید. از Postmortem ماه گذشته به عنوان مواد آموزشی منظم برای تیم خود استفاده کنید. اجازه همکاری و اظهار نظر در طول و بعد Postmortem را بدهید.مدیریت را درگیر کنید. نشان دادن حمایت مدیریت باعث می شود که بشارت و آموزش در میان مهندسان آسان تر شود. برای درگیر نگه داشتن مدیریت، از قبل با اهداف برنامه ریزی کنید و پیشرفت را در مسیر نشان دهید. می دانید، مدیران چیزی بیشتر از نمودارهایی که به سمت بالا و به سمت راست هستند، دوست ندارند.از کوچک شروع کنید. اگر سازمان بزرگ باشد، فقط با چند سرویس و یک تیم شروع کنید تا نمونه ای بسازید که سایر تیم ها را برای پیروی از آن ترغیب کند. تیم اولیه که پیروزی های خود را جشن می گیرد اغلب برای پیوستن سایر تیم ها به باند کافی است.معرفی تغییر بدون داشتن نمونه مثبت از داخل سازمان بسیار سخت تر است.چک لیست Postmortemما چک لیستی از سوالاتی که باید از خود بپرسید تا Postmortem خود را به بهترین شکل ممکن انجام دهید، آماده کرده ایم.تشخیصتأثیرتاثیر بر کاربران نهاییتاثیر بر بهره وریتاثیر بر زیرساخت هاکاهشزمان کاهشمرحله کاهش شماره 1مرحله کاهش شماره 2تحلیل علل ریشه ایدرس های آموخته شدهپیگیری ها وظیفه شماره 1 (تشخیص / کاهش / پردازش)وظیفه شماره 2 (تشخیص / کاهش / پردازش)وظیفه شماره 3 (تشخیص / کاهش / پردازش)یک فرهنگ Postmortem خوب فقط به اندازه تیم و ابزارهای موجود قوی است. نظارت بر کاربر واقعی  می تواند به شما کمک کند تشخیص دهید که چه تعداد مشتری تحت تأثیر یک مشکل قرار گرفته اند، چه مدت بر آنها تأثیر گذاشته است و این اشکال کجاست. با داشتن این اطلاعات، فرهنگ Postmortem شما سریعتر و قوی تر خواهد شد.منبع :                       https://dzone.com/articles/devops-postmortems-why-and-how-to-use-themhttps://enginedevops.com/2022/08/12/devops-postmortem/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Sun, 18 Sep 2022 12:18:33 +0430</pubDate>
            </item>
                    <item>
                <title>مقایسه زبان Python و Golang</title>
                <link>https://virgool.io/@enginedevops/%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-python-%D9%88-golang-qxswde87p820</link>
                <description>مقایسه زبان Python و Golangدر این مقاله به بررسی تفاوت ها، شباهت ها و موارد استفاده برای Python و Go، دو تا از محبوب ترین زبان های برنامه نویسی در جهان می پردازیم. با این مقایسه سریع این دو شروع کنید، سپس ببینید که چگونه آنها در مورد خوانایی، سرعت، سهولت یادگیری و موارد دیگر در کنار هم قرار می گیرند.Python و Go متفاوت هستند و به طور کلی اهداف متفاوتی دارند. پایتون زبان اصلی در میان دانشمندان داده است، جایی که Go زبانی برای دستورات سمت سرور است. Go زبانی است که برای اجرای نرم افزار استفاده می شود. این زبان سریع‌تر است و با سرعت جاوا و C++ کار می‌کند.پایتون زبانی است که برای کدهای قابل خواندن و اشتراک‌گذاری استفاده می‌شود – از این رو جامعه بزرگ اطراف آن است.از نظر فنی، Go یک زبان رویه ای و کاربردی است که برای سرعت ساخته شده است و پایتون یک زبان شی گرا، امری، کاربردی و رویه ای است. Go از همزمانی، توانایی یک الگوریتم برای اجرای نامرتب مراحل خود پشتیبانی می کند، و پایتون این کار را نمی کند.به طور خلاصه، اگر با داده ها کار می کنید و مخاطبان شما افراد هستند، از پایتون استفاده کنید. اگر با سرورها کار می کنید، از Go استفاده کنید.زبان برنامه نویسی Pythonپایتون برای اولین بار در سال 1991 منتشر شد. طراحی شده توسط Guido van Rossum، فلسفه طراحی پایتون حول محور خوانایی (Readability) کد است.پایتون یک زبان برنامه نویسی تفسیر شده، سطح بالا و هدف عمومی است. شی گرا است.با توجه به طراحی آن بر خوانایی،جامعه پایتون کدهای یکدیگر را بر اساس پایتونی بودن کد درجه بندی می کند.به دلیل خوانایی، پایتون برای موارد زیر عالی است:                                                                           ?آموزش برنامه نویسیبه اشتراک گذاری کد با دیگرانزبان برنامه نویسی GoGo که مخفف Golang است، اولین بار در گوگل توسط Robert Griesemer, Rob Pike, و Ken Thompson در سال 2007 طراحی شد.Go یک زبان برنامه نویسی تایپ شده و کامپایل شده است که منبع باز است و توسط گوگل نگهداری می شود. Go بخشی از زبان های برنامه نویسی C-Family است          ?و از یک جمع کننده زباله  (garbage collector)  برای کنترل نشت حافظه  (memory leaks) استفاده می کند.هنگام طراحی Golang، سازندگان آن می خواستند آنچه را که قبلاً وجود داشت بهبود بخشند و یکی از این عناصر خوانایی بود.خوانایی   Readabilityاستاندارد پایه برای کدهای ناخوانا  Java و C++  است. هم Python و هم Go آرزو داشتند که آنها را بهبود ببخشند.چند تغییر  مشابه پایتون در  Go وجود دارد.، Go این موارد را حذف می کند:کاراکتر کالن : ( colons) انتهای خطوطاستفاده از براکت و پرانتزاگر با زبان‌های سطح C آشنا هستید، این باید بسیار آشنا به نظر برسد:مثال Golang :?package mainimport “fmt”func split(sum int) (x, y int) {x = sum * 4 / 9y = sum – xreturn}func main() {fmt.Println(split(17))}خروجی: ۷۰۱مثال پایتون (غیر پایتونیک):even_numbers = []for number in range(10):if number % 2 == 0:even_numbers.append(number)print(even_numbers)مثال پایتون (پایتونیک):even_numbers = [ x for x in range(10) if x % 2 == 0]print(even_numbers):خروجی[0, 2, 4, 6, 8]رسیدگی به خطا Error handlingاکثر IDE ها به شناسایی خطاها در کد پایتون همانطور که نوشته شده است کمک می کنند. بر خلاف پایتون، Go هیچ گونه رسیدگی به خطا ندارد. این برای افرادی ساخته شده است که قبلاً نحوه کدنویسی را می دانند.در حالی که خواندن و تایپ آسان‌تر است، اما سادگی آن بهای آن است که فضای بیشتری برای خطا در کد ایجاد می‌کند، به این معنی که زمان بیشتری برای رفع اشکال کد صرف می‌شود.سرعت  Speedوقتی صحبت از سرعت به میان می آید، Go سریع است. Go قرار بود سریع باشد، در حالی که این تنها هدف پایتون نیست. در بیشتر بنچمارک ها، Go تا حد زیادی پایتون را شکست می دهد.Go حتی سرعت جاوا را نیز شکست می دهد، که به طور گسترده ای به طور قابل توجهی سریعتر از پایتون در نظر گرفته می شود. اگر نیاز به برنامه ای برای بارگیری سریع نرم افزار است، Go راهی برای انتخاب است.برای نشان دادن، این چیزی است که یکی از کاربران Stack Overflow درباره Go گفت:“ممکن است این را اشتباه اجرا کرده باشم زیرا نتایج منطقی نیستند. من یک برنامه Go دارم که تا 1000000000 حساب می شود. در کمتر از یک ثانیه تمام می شود. از طرف دیگر، من یک اسکریپت پایتون دارم. در عرض چند دقیقه تمام می شود چرا نسخه Go بسیار سریعتر است؟ آیا هر دو تا 100000000 می شمارند یا من چیزی را از دست داده ام؟” پاسخ: Go به همین سرعت است. (بیشتر به دلیل انواع استاتیک در مقابل پویا و کامپایل). در اینجا چند نمونه از آورده شده است :The Computer Language Benchmarks Game:?کتابخانه ها  Librariesپایتون 16 سال از Go قدیمی تر است، بنابراین جامعه بسیار بزرگ تری در اطراف آن ایجاد شده است. با آن انجمن، پشتیبانی زیادی در Stack Overflow دارد که برای همه نوع ها طراحی شده است: مبتدیان، درس ها، آموزش ها و نحوه انجام کار، و در نهایت، کتابخانه ها. به احتمال زیاد، هرگز مجبور نخواهید شد در پایتون از ابتدا شروع کنید.به خصوص کتابخانه های پایتون بسیار وسیع هستند. کاوش جداول داده با Pandas آسان است و یادگیری ماشین با TensorFlow و PyTorch ساده است.https://www.bmc.com/blogs/tensorflow-vs-keras/(Learn more about Python development tools.)Go این پشتیبانی را ارائه نمی دهد. برای جستجو در جداول داده، باید تمام اسکریپت های خود را بنویسید. یادگیری ماشینی تلاش بزرگی برای توسعه در Go خواهد بود. (برترین کتابخانه های Go همگی مربوط به تعمیر و نگهداری سرور هستند که در این برهه از زمان موارد زیادی را در مورد جامعه Go و موارد استفاده Go نشان می دهد. https://www.dunebook.com/best-libraries-for-go-programming-language/)اشتراک گذاری  Sharingه اشتراک گذاری کدهای اجرایی پایتون با نوت بوک های Jupyter یکی از ابزارهای رایج گردش کار در دنیای علم داده است. نوت‌بوک‌های Jupyter و نوت‌بوک‌های Google Colab به کاربران پایتون اجازه می‌دهند تا کد را در یک تجربه بسیار تعاملی، خواندن و نوشتن بخوانند و اجرا کنند.به اشتراک گذاری و نمایش این نوع نمودارها در Go برای راه اندازی و اجرا بسیار دشوار خواهد بود.??آسان برای یادگیری Easy to learnزبان های برنامه نویسی بهتر و هوشمندتر طراحی می شوند. خوانایی هر کدی یادگیری آن را آسان می کند. در دنیای کدنویسی، این حقیقت پذیرفته شده است که اگر یک زبان را یاد بگیرید، می توانید هر زبان دیگری را یاد بگیرید – فقط باید در آن غواصی کنید.بحث در مورد تفاوت‌ها فقط برای افراد حساس و کسانی که می‌توانند به یک زبان بخوانند و بنویسند اهمیت دارد. این تفاوت ها به گونه ای قابل توجه نیستند که باید به انتخاب شخص برای شروع برنامه نویسی مربوط شود. درعوض، این تفاوت‌ها فقط در هنگام انتخاب زبان برای اجرای یک تابع مهم هستند.در آخر  Go یا Python ؟Go و Python هم برای استفاده و هم برای یادگیری آسان هستند. Go واقعا سریع است. پایتون از پشتیبانی اجتماعی زیادی برخوردار است. در حال حاضر، در توسعه Go، Go بیشتر برای برنامه های سمت سرور استفاده می شود. پایتون زبان مورد استفاده دانشمندان داده است و احتمالاً برای مدت طولانی در آینده خواهد بود. همه توسعه دهندگان کتابخانه ML وقت خود را صرف توسعه کتابخانه ها برای پایتون می کنند. Go ممکن است به موقع به آنجا برسد، اما در حال حاضر، در جعبه ابزار برنامه نویس فضایی برای دو زبان وجود دارد. از بهترین ها برای مورد استفاده خود استفاده کنید.منبعhttps://enginedevops.com/2022/06/24/python-vs-golang/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Sun, 18 Sep 2022 11:33:41 +0430</pubDate>
            </item>
                    <item>
                <title>Helm چیست؟</title>
                <link>https://virgool.io/@enginedevops/helm-%DA%86%DB%8C%D8%B3%D8%AA-euvvtllmj2s2</link>
                <description>معرفی 6 دقیقه ای HELMساده سازی مدیریت اپلیکیشن Kubernetes“چرا به آن نیاز دارم”شما می‌توانید وابستگی‌ها و نرم‌افزارهای اختصاصی را روی کلاستر K8S خود با یک روش ساده نصب کنید:helm install stable/mysql، صدها نصب در دسترس مانند این وجود دارد، اما می‌توانید این کار را با محصول/خدمات خود نیز انجام دهید!HELM چیست؟سکاندار یا سکاندار شخصی است که کشتی، قایق بادبانی، زیردریایی، انواع دیگر کشتی های دریایی یا فضاپیما را هدایت می کند. – —  ویکیپدیا«مدیر بسته برای کوبرنتیز ; Helm بهترین راه برای یافتن، اشتراک گذاری و استفاده از نرم افزار ساخته شده برای Kubernetes است.” — Helm.shچرا ما به Helm  نیاز داریم؟سوالی که چندین بار از خودم پرسیدم و سعی کردم بفهمم چگونه این نصب کننده جادویی زندگی K8S من را بهتر می کند. خوب، Helm به شما امکان می‌دهد چرخه عمر برنامه‌ها، هم محصولات شخص ثالث و هم محصولات خودتان را واکشی، استقرار و مدیریت کنید. دیگر نیازی به نگهداری گروه‌های تصادفی از فایل‌های YAML (یا موارد بسیار طولانی) که پادها، مجموعه‌های تکراری، سرویس‌ها، تنظیمات RBAC و غیره را توصیف می‌کنند، وجود ندارد. با فرمان، ساختار و قراردادی برای یک بسته نرم‌افزاری وجود دارد که لایه‌ای از قالب‌های YAML و دیگری را تعریف می‌کند. لایه ای که قالب هایی templates  به نام مقادیر values را تغییر می دهد. مقادیر values به قالب‌ها templates تزریق می‌شوند، بنابراین امکان جداسازی پیکربندی را فراهم می‌کنند و مشخص می‌کنند که در آن تغییرات مجاز هستند. کل این بسته یک Helm Chart. نامیده می شود. اساساً شما بسته‌های برنامه‌ای ساخت‌یافته ایجاد می‌کنید که شامل همه چیزهایی است که برای اجرا در یک کلاستر  Kubernetes نیاز دارند. از جمله وابستگی های dependencies مورد نیاز برنامه.Helm یک CLI است, Tiller یک backend آن استاز نظر عملی، Helm یک ابزار CLI است که با سرور پشتیبان خود به نام “Tiller” تعامل دارد. Tiller معمولاً با ارسال helm init نصب می شود و درمحیط  kube-system  ایجاد میشود. این مسئول استقرار نمودارهای درخواست شده توسط helm است. هنگامی که نمودار نصب می شود، Tiller یک “Release” ایجاد می کند و شروع به ردیابی آن برای تغییرات می کند. به این ترتیب Helm نه تنها در نصب شرکت می کند، بلکه یک ابزار واقعی استقرار است که چرخه عمر برنامه ها را در یک کلاستر با استفاده از انتشار نمودارها و ویرایش های آنها مدیریت می کند.مفاهیم Helm  | ChartHelm از Chart ها برای بسته بندی تمام اجزای مورد نیاز K8S برای یک برنامه کاربردی برای استقرار، اجرا و مقیاس استفاده می کند. همچنین جایی است که وابستگی ها تعریف می شوند و پیکربندی ها به روز می شوند و حفظ می شوند.  فقط یک فایل با نام  Chart.yaml باید وجود داشته باشد.می‌تواند به‌صورت اختیاری (و به‌طور پیش‌فرض اگر از helm create استفاده می‌کنید) چند مؤلفه دیگر داشته باشد که به‌زودی در مورد آنها توضیح خواهم داد، اما ابتدا، در اینجا یک ساختار نمودار معمولی به نظر می‌رسد:?در این قسمت، بیایید آن را “web-ui” بنامیم، الگوهایی از یک سرویس و یک replicaset وجود دارد که پس ازhelm install ، با استفاده از values.yaml ایجاد می شود که در آخر قابل مشاهده است. همچنین، نمودار web-ui به Nginx نیاز دارد تا اجرا شود، زیرا nginx یک نمودار فرعی در دایرکتوری chart است و requires.yaml فایلی است که نیاز واقعی را توصیف می‌کند. فایل lock که همچنین بخشی از بسته است، زمانی ایجاد می‌شود که فرمان helm dependency update ، الزامات را نصب می‌کند.یک Chart.yaml شرحی از package است و در واقع تنها فایل مورد نیاز در آن، تنها سه ورودی مورد نیاز وجود دارد:apiVersion, name versionدر اینجا نمونه ای از آنچه به نظر می رسد آورده شده است: (شما می توانید لیست کامل گزینه ها و ورودی های یک نمودار را در اینجا پیدا کنید.)?Templates یک زیرشاخه اختیاری در Chart است که اجزای K8S آن را ترکیب می کند، به عنوان مثال.Service, ReplicaSet, Deployment etc,بیایید نگاهی به یک نمونه قالب جزئی بیندازیم:?که با زبان Go ایجاد شده است.Values در values.yaml شرح داده شده استفایلی که لزوماً یک ساختار yaml است که مقادیری را برای مطابقت با الگوها در خود نگه می دارد. با در نظر گرفتن الگوی بالا، یک فایل مقادیر منطبق به این صورت خواهد بود:?Subcharts همچنین به نام dependencies ، نمودارهای مورد نیاز برای نمودار فعلی هستند. می‌توانید آن را به‌عنوان روش دیگری برای بسته‌بندی برنامه‌ها در نظر بگیرید، به طوری که اگر من برای اجرا به حافظه پنهان Redis نیاز دارد، این راه دیگری برای تنظیم آن است. روش دیگر استفاده از نمودارهای فرعی در نظر گرفتن آن به عنوان مکانیزم ارثی است که امکان واکشی نمودار استاندارد با الگوها را فراهم می کند و از آن به عنوان یک نمودار فرعی در  parent charts  متعدد استفاده می کند که مقادیر را ارائه می دهد.مفاهیم Helm | Repositoryمخازن محل نگهداری و نگهداری نمودارهای فرمان هستند. در اصل، اینها مجموعه ای از الگوها و مقادیر پیکربندی هستند که به عنوان کد ذخیره می شوند (گاهی اوقات به عنوان یک فایل .tar.gz بسته بندی می شوند).زمانیکه دستورhelm install stable/redisاجرا می کنید .به طور پیش‌فرض فرمان به مخزن Helm/Charts در GitHub می‌رسد و در آن جستجو می‌کند.یک مثال عالی برای استفاده از مخزن های مختلف، نمودار ElasticSearch Elastic است که قبلاً توسط شرکت در مخزن Helm/Charts نگهداری می شد. Elastic تصمیم گرفته است که محصول خود را به انبار Helm خود منتقل کند و برای دریافت آخرین نمودار رسمی، اکنون می توانید مخزن خود را به Helm اضافه کنید:helm repo add elastic https://helm.elastic.coو دستور زیر را اجرا نمایید :helm install –name elasticsearch elastic/elasticsearchمفاهیم Helm | Releaseانتشار را به عنوان مکانیزمی برای ردیابی برنامه های نصب شده در یک کلاستر K8S در نظر بگیرید. هنگامی که یک برنامه توسط Helm نصب می شود، یک نسخه در حال ایجاد است. می‌توانید نصب‌های مختلفی از یک محصول ایجاد کنید،نسخه‌ها را می‌توان با helm ls ردیابی کرد، هر کدام یک “revision” دارند که اصطلاحات نسخه‌سازی Helm است. اگر نسخه خاصی به روز شود، به عنوان مثال، حافظه بیشتری به نسخه Redis اضافه شود، “revision” افزایش می یابد. Helm امکان بازگشت به یک ویرایش خاص revision  را فراهم می کند و آن را عملاً مدیر استقرار و کنترل کننده وضعیت تولید می کند.TLSTiller و Helm به راهی برای برقراری ارتباط نیاز دارند. به طور پیش فرض، این اتصال بسیار امن نیست، به این معنی که اگر یکی از نقاط پایانی در معرض خطر قرار گیرد یا برای یک مؤلفه در معرض خطر قابل دسترسی باشد، ترافیک قابل خواندن و تجزیه و تحلیل است. فراتر از بحث در مورد سطح حمله واقعی که ارتباط بین سیستم‌ها را ایمن نمی‌کند، می‌توانیم به راحتی یک اتصال TLS امن با استفاده از یک گواهی تولید خودکار ایجاد کنیم. برای انجام این کار، در اینجا یک اسکریپت وجود دارد که شما را در طول فرآیند هدایت می کند و می تواند در هر جایی پیاده سازی شود.مشارکت ها Contributionsممکن است خودتان (مانند من) با یک نیاز جدید برای یک توانایی یا ویژگی از یک نمودار رسمی تحت github.com/helm/charts مواجه شوید، ممکن است به خوبی یک اشکال باشد . از آنجایی که Helm و نمودارهای آن هر دو پروژه های منبع باز با صدها مشارکت کننده هستند، به شدت فعال هستند. تغییراتی را در نمودار مورد نظر ایجاد کنید و با مشارکت یک روابط عمومی باز کنید، اگر همه الزامات انجام شده باشد و به آنها رسیدگی شده باشد، تیم در عرض چند روز این تغییر را تایید خواهد کرد.در حالی که این روند کاملاً سخت است (و باید سپاسگزار باشیم)، تغییرات به سرعت در حال بررسی و تایید یا رد شدن هستند. درباره مشارکت در پروژه بیشتر بخوانید؛ توجه داشته باشید که اگر فقط تغییرات کوچکی ایجاد می کنید، بیشتر سند مربوطه نیست زیرا الزامات نمودارهای جدید را مشخص می کند.منبع :https://medium.com/prodopsio/a-6-minute-introduction-to-helm-ab5949bf425https://enginedevops.com/2022/06/24/what-is-helm/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Sun, 18 Sep 2022 11:31:56 +0430</pubDate>
            </item>
                    <item>
                <title>دستورات پر کاربرد Helm</title>
                <link>https://virgool.io/@enginedevops/%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA-%D9%BE%D8%B1-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-helm-obkpdjvz8kit</link>
                <description>مقدمهHelm یک مدیر بسته Kubernetes برای استقرار نمودارهای فرمان (مجموعه منابع برنامه از پیش پیکربندی شده Kubernetes) است. تمام دستورات لازم برای مدیریت ساده تر برنامه ها در یک کلاستر Kubernetes را دارد.این آموزش تمام عملیات مهم Helm را پوشش می دهد و مثال هایی برای کمک به درک نحو و ویژگی های آن ارائه می دهد.مفاهیم پایه Helmدستورات Helm با چندین مفهوم مرتبط با Helm کار می کنند.مهمترین مفهوم Helm نمودار Chart است. Chart مجموعه ای از مانیفست های Yaml Kubernetes است که برای دستکاری آسان در کنار هم قرار گرفته اند. نمودارهای Helm امکان استقرار یک برنامه کانتینری را با استفاده از یک فرمان واحد فراهم می کند.Chart در مجموعه های آنلاین به نام مخازن repositories گروه بندی می شوند. هر مخزن دارای یک نام و آدرس اینترنتی است که مکان یابی، دانلود و نصب نمودارها را آسان می کند.Helm Hub مجموعه ای آنلاین از مخازن توزیع شده است که در اینترنت موجود است. این به عنوان یک مرکز اطلاعات کار می کند، جایی که می توانید برنامه ها و آدرس های مخزن آنها را پیدا کنید. از امروز، نصب برنامه به طور مستقیم از Helm Hub امکان پذیر نیست.release یک نمونه منفرد از یک Chart  است که در یک کلاستر Kubernetes مستقر شده است.فهرست فرمان های Helmهنگام کار با Helm در Kubernetes از دستورات فهرست شده در زیر به عنوان یک مرجع سریع استفاده کنید. برنامه ها را نصب و حذف کنید عملکرد اصلی Helm مدیریت برنامه Kubernetes است. علاوه بر عملیات اصلی نصب و حذف برنامه ها، Helm شما را قادر می سازد تا نصب های آزمایشی را انجام دهید و فرآیند نصب را سفارشی کنید.نصب یک برنامه:helm install [app-name] [chart]یک برنامه را در یک فضای نام خاص نصب کنید:helm install [app-name] [chart] –namespace [namespace]مقادیر پیش‌فرض را با مقادیر مشخص‌شده در فایل انتخابی خود جایگرین کنید:helm install [app-name] [chart] –values [yaml-file/url]نصب آزمایشی را برای تأیید و تأیید نمودار اجرا کنید:helm install [app-name] –dry-run –debugحذف نصب نسخه:helm uninstall [release]ارتقاء و بازگشت برنامه را انجام دهیدHelm به کاربران گزینه های متعددی را برای ارتقاء برنامه ارائه می دهد، مانند بازگشت خودکار و ارتقاء به یک نسخه خاص. بازگشت به عقب نیز می تواند به تنهایی اجرا شود. برای دستورالعمل‌های دقیق در مورد نحوه انجام برگشت، نحوه بازگرداندن تغییرات با Helm را بررسی کنید.ارتقاء یک برنامه:helm upgrade [release] [chart]به Helm دستور دهید در صورت عدم موفقیت، تغییرات را به عقب برگرداند:helm upgrade [release] [chart] –atomicیک نسخه را ارتقا دهید. اگر در سیستم وجود ندارد، آن را نصب کنید:helm upgrade [release] [chart] –installارتقا به نسخه مشخص شده:helm upgrade [release] [chart] –version [version-number]بازگرداندن یک نسخه:helm rollback [release] [revision]دانلود اطلاعات انتشارفرمان helm get  به شما امکان می دهد اطلاعات مربوط به یک نسخه را دانلود کنید.دانلود تمام اطلاعات انتشار:helm get all [release]دانلود همه قلاب ها:helm get hooks [release]مانیفست را دانلود کنید:helm get manifest [release]دانلود یادداشت ها:helm get notes [release]دانلود فایل مقادیر:helm get values [release]واکشی تاریخچه انتشار:helm history [release]افزودن، حذف و به روز رسانی مخازنفرمان helm repo به شما کمک می کند تا مخازن نمودار را دستکاری کنید.یک مخزن از اینترنت اضافه کنید:helm repo add [repository-name] [url]یک مخزن را از سیستم خود حذف کنید:helm repo remove [repository-name]به روز رسانی مخازن:helm repo updateفهرست و جستجوی مخازنبرای فهرست کردن و جستجوی مخازن Helm از فرمان های helm repo و helm search استفاده کنید. جستجوی فرمان همچنین به شما امکان می دهد برنامه ها و مخازن را در Helm Hub پیدا کنید.فهرست مخازن نمودار:helm repo listیک فایل فهرست حاوی نمودارهای موجود در فهرست فعلی ایجاد کنید:helm repo indexجستجو برای کلمه کلیدی:helm search [keyword]جستجو در مخازن برای کلمه کلیدی:helm search repo [keyword]جستجوی helm hub:helm search hub [keyword]نظارت بر انتشارفرمان helm list فهرست کردن نسخه‌های منتشر شده در یک کلاستر Kubernetes را بر اساس چندین معیار، از جمله استفاده از عبارات منظم برای فیلتر کردن نتایج، فعال می‌کند. دستوراتی مانند helm status و helm history جزئیات بیشتری را در مورد نسخه ها ارائه می دهند.فهرست همه نسخه‌های موجود در فضای نام فعلی:helm listفهرست همه نسخه‌های موجود در همه فضاهای نام:helm list –all-namespacesلیست همه نسخه ها در یک فضای نام خاص:helm list –namespace [namespace]فهرست همه نسخه‌ها در یک فرمت خروجی خاص:helm list –output [format]مشاهده وضعیت یک نسخه خاص:helm status [release]نمایش تاریخچه انتشار:helm history [release]اطلاعات مربوط به محیط کلاینت Helm را مشاهده کنید:helm envمدیریت پلاگینبا استفاده از دستور helm plugin پلاگین های Helm را نصب، مدیریت و حذف کنید.نصب افزونه ها:helm plugin install [path/url1] [path/url2] …مشاهده لیستی از تمام افزونه های نصب شده:helm plugin listبه روز رسانی پلاگین ها:helm plugin update [plugin1] [plugin2] …حذف افزونه:helm plugin uninstall [plugin]مدیریت نمودارنمودارهای Helm از منابع Kubernetes برای تعریف برنامه استفاده می کنند. برای کسب اطلاعات بیشتر در مورد ساختار و الزامات ایجاد آنها، به نحوه ایجاد نمودار helm مراجعه کنید.یک دایرکتوری حاوی فایل‌ها و فهرست‌های نمودار رایج (chart.yaml، values.yaml، charts/ and templates) ایجاد کنید:helm create [name]بسته بندی نمودار در آرشیو نمودار:helm package [chart-path]برای بررسی نمودار و شناسایی مسائل احتمالی، تست هایی را اجرا کنید:helm lint [chart]نمودار را بررسی کنید و محتوای آن را فهرست کنید:helm show all [chart]نمایش تعریف نمودار:helm show chart [chart]نمایش مقادیر نمودار:helm show values [chart]دانلود نمودار:helm pull [chart]یک نمودار را دانلود کنید و محتویات آرشیو را در یک فهرست استخراج کنید:helm pull [chart] –untar –untardir [directory]نمایش لیستی از وابستگی های نمودار:helm dependency list [chart]راهنما و اطلاعات نسخه را دریافت کنیدنمایش خروجی کمک کلی برای Helm:helm –helpنسخه نصب شده Helm را ببینید:helm versionHelm Cheat Sheet PDFدر زیر می توانید یک برگه مرجع یک صفحه ای حاوی تمام دستورات Helm که در بالا ذکر شده است را بیابید.DOWNLOAD Cheat Sheetمنبع :https://phoenixnap.com/kb/helm-commands-cheat-sheet</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Sun, 18 Sep 2022 11:29:03 +0430</pubDate>
            </item>
                    <item>
                <title>معرفی ابزارها و خدمات AWS DevOps</title>
                <link>https://virgool.io/@enginedevops/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1%D9%87%D8%A7-%D9%88-%D8%AE%D8%AF%D9%85%D8%A7%D8%AA-aws-devops-xs5avdobiasc</link>
                <description>ابزارها و خدمات AWS DevOpsدر هسته خود، DevOps تحویل برنامه ها را کارآمدتر می کند. خدمات وب آمازون (AWS) دارای پلتفرم و خدماتی است تا تغییر کد را تشخیص دهد و تحویل خودکار آن تغییر را از توسعه، از طریق محیط‌های پشتیبانی تا تولید، انجام دهد. با این حال، تحویل کد تنها یکی از جنبه های DevOps است.DevOps چیست؟اصطلاح DevOps هم به موقعیت و هم به ترکیبی از فرآیندهای اعمال شده در یک شرکت اشاره دارد. یک مهندس DevOps معمولاً یک مدیر سیستم با دانش برنامه نویسی خاص است. به عنوان یک قاعده، یک مهندس DevOps مسئول موارد زیر است:برنامه ریزی  نرم افزار ها و زیرساخت های آنهاساخت و نگهداری فرآیند CI/CDنظارت و تامین امنیت توسعهاتوماسیون فرآیند توسعهوجود DevOps در تیم، عرضه روان‌تر و آسان‌تر یک محصول جدید را تضمین می‌کند و از پایداری محصولات موجود پشتیبانی می‌کند.AWS DevOps چیست؟AWS DevOps سهم آمازون در فرهنگ و فلسفه DevOps است. آنها پلتفرم ابری، ابزارها و خدمات خاص خود را برای راه اندازی پلت فرم AWS ایجاد کرده اند. همانطور که افراد AWS می‌گویند: «AWS مجموعه‌ای از خدمات انعطاف‌پذیر را ارائه می‌کند که به شرکت‌ها امکان می‌دهد تا با استفاده از شیوه‌های AWS و DevOps محصولات را با سرعت و اطمینان بیشتری بسازند و تحویل دهند. این خدمات تهیه و مدیریت زیرساخت، استقرار کد برنامه، خودکارسازی فرآیندهای انتشار نرم افزار و نظارت بر عملکرد برنامه و زیرساخت شما را ساده می کند.همانطور که تجربه DevOps من نشان می دهد، آمازون به ایده هایی که آنها صحبت می کنند پایبند است. ابزارها، خدمات و خود ابر AWS کارآمد بودن آنها را ثابت کرده است. ابزارهای توسعه AWS امکان ذخیره ایمن کد منبع برنامه و ایجاد، آزمایش و استقرار خودکار آن را نه تنها در فضای ابری AWS بلکه به صورت محلی فراهم می کند. مزایای اصلی AWS شامل سادگی، مقیاس پذیری، اتوماسیون، امنیت و قیمت گذاری بسته است.جعبه ابزار AWSAWS طیف گسترده‌ای از محصولات ابری جهانی را ارائه می‌کند که از جمله شامل پایگاه‌های داده، ذخیره‌سازی، تجزیه و تحلیل، شبکه‌ها، دستگاه‌های تلفن همراه، ابزارهای توسعه و مدیریت DevOps، اینترنت اشیا، امنیت است. به منظور راحتی، AWS خدمات DevOps خود را بر اساس عملکرد آنها تقسیم کرده است. فراوانی ابزارها و خدمات DevOps که AWS ارائه می‌دهد، بسیار غنی است. در اینجا ما کمی به موارد اصلی، موجود و محبوب برای DevOps و نه تنها اهداف می پردازیم.Continuous Integration and DeploymentAWS چهار ابزار تخصصی برای CI/CD دارد:AWS CodePipelineبرای پیکربندی، آزمایش و استقرار کد هر بار که تغییر می‌کند استفاده می‌شود.AWS CodeBuildکد منبع را جمع آوری می کند، آزمایش می کند و بسته های نرم افزاری آماده برای استقرار می سازد.AWS CodeDeployاستقرار کد را برای هر نمونه، از جمله Amazon EC2 و خدمات محلی، خودکار می کند.AWS CodeStarیک سرویس ابری است که ابزارهای DevOps را برای توسعه، ایجاد و استقرار آسان برنامه در AWS فراهم می کند.AWS Device Farmیک سرویس تست برنامه است که به شما امکان می دهد کیفیت وب و برنامه های تلفن همراه خود را با آزمایش آنها در مرورگرهای دسکتاپ واقعی و دستگاه های تلفن همراه واقعی بهبود بخشید.AWS Cloud Development Kitیک چارچوب توسعه نرم افزار منبع باز برای تعریف زیرساخت ابری در کد و ارائه آن از طریق AWS CloudFormation است. این یک انتزاع شی گرا در سطح بالا برای تعریف منابع AWS با استفاده از قدرت زبان های برنامه نویسی مدرن ارائه می دهد. (https://github.com/aws/aws-cdk)AWS Microservicesدر مورد میکروسرویس های AWS دو گزینه وجود دارد: کانتینرها و محاسبات بدون سرور.(ECS) Amazon Elastic Container Serviceسرویسی است که برای مقیاس‌بندی کانتینرها استفاده می‌شود که از Docker پشتیبانی می‌کند و اجازه راه‌اندازی و اجرای برنامه‌ها را در یک خوشه نمونه با مدیریت خودکار Amazon EC2 می‌دهد.(EKS) Amazon Elastic Kubernetes Serviceنسخه های به روز نرم افزار منبع باز Kubernetes را اجرا می کند، بنابراین می توانید از تمام افزونه ها و ابزارهای موجود در جامعه Kubernetes استفاده کنید. برنامه‌هایی که در Amazon EKS اجرا می‌شوند، کاملاً با برنامه‌هایی که در هر محیط استاندارد Kubernetes اجرا می‌شوند، چه در مراکز داده داخلی یا در ابرهای عمومی اجرا شوند، سازگار هستند.Amazon Elastic Container Registryبرای نگه داری ایمیج های بیلد شده در ریپوزیتوری مخصوص نگه داری میکند.AWS Fargateیک سرویس مدیریت کانتینر است که به شما امکان می دهد کانتینرهای بدون سرور را اجرا کنید، بنابراین نگرانی در مورد تهیه، پیکربندی و مقیاس بندی خوشه های ماشین های مجازی برای اجرای کانتینرها ندارید. با Fargate، دیگر لازم نیست نگران تهیه منابع محاسباتی کافی برای برنامه های کانتینری خود باشید. Fargate می‌تواند ده‌ها هزار کانتینر را راه‌اندازی کند و به راحتی برای اجرای حیاتی‌ترین برنامه‌های کاربردی شما مقیاس کند.AWS Lambdaکدهایی را بدون سرورهای اختصاصی اجرا می کند. شما به سادگی کد خود را آپلود می‌کنید و به Lambda اجازه می‌دهید همه چیز مورد نیاز برای اجرا را انجام دهد و اجرا را برای برآورده کردن منحنی تقاضای واقعی شما با در دسترس بودن بالا تنظیم کند. این بدان معنی است که هیچ اداره زیرساخت مورد نیاز نیست. Lambda از چندین زبان برنامه نویسی پشتیبانی می کند و می تواند از سایر سرویس های AWS فعال شود یا مستقیماً از هر برنامه وب یا تلفن همراه تماس گرفته شود. یکی از بزرگترین مزیت های AWS Lambda این است که می توانید به سرعت حرکت کنید: می توانید بر منطق کسب و کار خود تمرکز کنید زیرا AWS امنیت و مقیاس بندی را مدیریت می کند. رویکرد نظری لامبدا، پلتفرم مقیاس‌پذیر را هدایت می‌کند.Infrastructure as codeزیرساخت به عنوان کد رویکردی است که از چهار بخش برای مدیریت AWS با کمک کد و قالب تشکیل شده است:AWS CloudFormationگروه هایی از منابع AWS مرتبط ایجاد می کند و آنها را مدیریت می کند. می توان از قالب های موجود استفاده کرد یا قالب های سفارشی ایجاد کرد.AWS OpsWorksیک سرویس مدیریت پیکربندی است که نمونه های اتوماسیونی مانند Chef و Puppet را ارائه می دهد.AWS Systems Managerقابلیت مشاهده و کنترل زیرساخت AWS شما را فراهم می کند. همچنین می تواند به تعمیر سیستم عامل، ایجاد نمونه های اولیه سیستم و راه اندازی سیستم عامل های ویندوز و لینوکس کمک کند.AWS Configبه انجام تجزیه و تحلیل امنیت، مدیریت تغییرات و رفع هرگونه خطای تعمیر و نگهداری کمک می کند.MonitoringDevOps آن را نظارت می کند و یک ثبت گزارش نگه می دارد. برای انجام آن، آمازون سه ابزار ارائه می دهد:Amazon CloudWatchیک سرویس نظارتی است. این برنامه داده ها و برخی اطلاعات مفید دیگر را برای نظارت بر سلامت برنامه ها و ایجاد یک ایده جامع از وضعیت کلی آنها در اختیار DevOps قرار می دهد.AWS X-Rayیک سرویس DevOps است که ردپای برنامه‌ها را رصد می‌کند و یک نمای کلی از اجزای اصلی آن ارائه می‌دهد.AWS CloudTrailیک سرویس وب است که تماس‌های AWS API را برای حساب شما ضبط می‌کند و فایل‌های گزارش را ذخیره می‌کند. به هر حال، Slack نیز از این فناوری استفاده می کند.AWS Platform as a ServiceAWS Elastic Beanstalkبرای استقرار پشته برنامه، به‌ویژه برای محصولاتی که با استفاده از Java، .NET، PHP، Node.js، Python، Ruby، Go و Docker، سرورهای Apache، Nginx، Passenger و IIS توسعه یافته‌اند، استفاده می‌شود.AWS Versions ManagementAWS CodeCommitمی تواند برای مدیریت نسخه مفید باشد. این امکان ذخیره و کنترل کد منبع را فراهم می کند. این سرویس DevOps همچنین کار با مخازن Git را آسان‌تر می‌کند و امکان ادغام ابزارهای شما در GIT را فراهم می‌کند.منبع :https://medium.com/@serdalkepil/aws-devops-tools-and-services-a98c635cbf20</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Sun, 18 Sep 2022 11:25:36 +0430</pubDate>
            </item>
                    <item>
                <title>مقایسه Terraform و Ansible</title>
                <link>https://virgool.io/@enginedevops/%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-terraform-%D9%88-ansible-qq3x8cf6ekmf</link>
                <description>Terraform vs Ansible: کدام ابزار DevOps برای تجارت شما بهترین است؟Terraform و Ansible هر دو ابزار محبوب DevOps هستند. این مقایسه ویژگی Terraform و Ansible را بخوانید.هر دو Terraform و Ansible ابزارهای DevOps هستند، اما این ابزار DevOps چگونه متفاوت است؟ به طور خلاصه، Terraform یک پلت فرم متن باز، زیرساخت به عنوان کد است، در حالی که Ansible یک ابزار مدیریت پیکربندی منبع باز است که بر پیکربندی آن زیرساخت متمرکز شده است. اغلب موضوع بحث در مورد اینکه آیا باید از Terraform یا Ansible برای مدیریت زیرساخت استفاده کرد. خوشبختانه، پاسخی وجود دارد که در ناحیه گری نهفته است. این پاسخ زمانی که از افرادی که تجربه کار در هر دو ابزار را دارند پرسیده می شود یکسان به نظر می رسد. این پست شباهت‌های بین Terraform و Ansible را برجسته می‌کند، تفاوت‌ها را بررسی می‌کند و با بهترین راه برای مدیریت زیرساخت نتیجه‌گیری می‌کند.شباهت هادر سطح بسیار بالایی، با توجه به قابلیت های هر دو محصول، Terraform و Ansible به عنوان ابزارهای مشابه در نظر گرفته می شوند. هر دوی آنها می‌توانند زیرساخت ابری جدید را فراهم کنند و همان را با اجزای برنامه مورد نیاز پیکربندی کنند. هر دو Terraform و Ansible قادر به اجرای دستورات از راه دور بر روی ماشین مجازی هستند که به تازگی ایجاد شده است. این بدان معناست که هر دو ابزار بدون عامل هستند. برای اهداف عملیاتی نیازی به استقرار عوامل روی ماشین ها نیست. Terraform از API های ارائه دهنده ابر برای ایجاد زیرساخت استفاده می کند و وظایف پیکربندی اولیه با استفاده از SSH انجام می شود. در مورد Ansible هم همینطور است – از SSH برای انجام تمام وظایف پیکربندی مورد نیاز استفاده می کند. اطلاعات “وضعیت” برای هر دو نیازی به یک مجموعه زیرساخت جداگانه برای مدیریت ندارد، بنابراین هر دو ابزار بدون استاد هستند.تفاوتبخش قبل یک نمای کلی از این دو ابزار در گسترده ترین شباهت هایشان ارائه می دهد. در سطح بالا، به نظر می رسد که هر دو Terraform و Ansible قادر به تهیه و مدیریت پیکربندی هستند. با این حال، فرورفتن عمیق‌تر در آنها باعث می‌شود به مزایای یکی نسبت به دیگری در زمینه‌های خاص پی ببریم. به طور کلی، هر دو ابزار به روش های خاص خود عالی هستند. وقتی صحبت از مدیریت زیرساخت به میان می آید، عملکردها همپوشانی دارند. مدیریت زیرساخت به طور گسترده شامل 2 جنبه – ارکستراسیون و مدیریت پیکربندی است. Terraform و Ansible روش‌های خاص خود را برای مدیریت هر دو دارند – با نقاط قوت و ضعف در مورد همپوشانی‌ها. بنابراین، بررسی جزئیات هر دو ابزار برای انتخاب “عالی” یا ترکیبی با مرزها مهم است.Terraform چیست؟HashiCorp Terraform یک زیرساخت منبع باز به عنوان ابزار مدیریت کد است که عمدتاً برای هماهنگی و ارائه در محیط های مرکز داده تخصصی است. Terraform مستقیماً برنامه ها یا نرم افزارها را پیکربندی یا نصب نمی کند. در عوض، سرورها را ایجاد، تغییر یا از بین می‌برد تا به وضعیت نهایی برسد. Terraform از یک رویکرد اعلامی برای مقابله با مدیریت شبکه استفاده می کند، به این معنی که کاربر یک حالت پایانی را تنظیم می کند که باید حفظ شود، و Terraform اقدامات لازم برای حفظ آن حالت را انجام می دهد.Ansible چیست؟Red Hat Ansible همچنین یک ابزار مدیریت IaC است، اما از یک رویکرد رویه ای استفاده می کند، که تفاوت اصلی آن را از Terraform متمایز می کند. از طریق رویکرد رویه ای Ansible، مراحل تعریف شده توسط کاربر در یک پیکربندی برای دستیابی به وضعیت یا تغییر مورد نظر استفاده می شود. این بدان معنی است که برای افزودن نصب یا نرم افزار در بالای شبکه های موجود مناسب است. Ansible یک سیستم بدون عامل است و از SSH یا سایر روش های احراز هویت برای برقراری ارتباط استفاده می کند. این باعث می شود سبک و کارآمد باشد. Ansible نیاز به نصب پایتون روی اهداف دارد، زیرا ماژول های کوچک را با استفاده از JSON نصب می کند، اما این ماژول ها پس از اجرا توسط Ansible به طور خودکار حذف می شوند.مقایسه سر به سر: Terraform در مقابل AnsibleMasterlessهر دو Terraform و Ansible ابزارهای مدیریتی Masterless هستند. آنها به سرور مرکزی برای ذخیره وضعیت زیرساخت شما نیاز ندارند.بدون نماینده  Agentlessهر دو از یک سیستم Agentless استفاده می کنند. با Terraform، دستورات به سرویس‌های ابری ارسال می‌شوند که سپس از عوامل خود برای انجام عملکردها استفاده می‌کنند. Ansible از شما می خواهد که SSH Daemon را اجرا کنید و همچنین یک ماژول کوچک پایتون را هنگام اجرای اکشن ها نصب می کند، اما این ماژول های ساده پس از اجرا حذف می شوند.متن باز  Open sourceهر دوی این ابزارها متن باز هستند. آنها همچنین دارای جوامع بزرگی از کاربران هستند که به‌روزرسانی‌ها را به اشتراک می‌گذارند و به ساختن به‌روزرسانی‌ها کمک می‌کنند، و همچنین پشتیبانی ارائه می‌دهند و به سرعت مشکلات امنیتی را پیدا می‌کنند. Ansible به زبان محبوب پایتون نوشته شده است، در حالی که Terraform از زبان پیکربندی HashiCorp یا HCL استفاده می کند.?1) ارکستراسیون در مقابل مدیریت پیکربندی – Orchestration vs. Configuration Managementارکستراسیون/تامین فرآیندی است که در آن ما زیرساخت ایجاد می کنیم – ماشین های مجازی، اجزای شبکه، پایگاه های داده و غیره. در حالی که، از سوی دیگر، مدیریت پیکربندی فرآیندی است برای خودکارسازی نصب اجزای نرم افزار نسخه شده، وظایف پیکربندی سیستم عامل، پیکربندی شبکه و فایروال، و غیره.هر دو Terraform و Ansible قادر به انجام هر دو کار هستند. با این حال، Terraform یک راه حل جامع برای مدیریت زیرساخت ارائه می دهد. Terraform از APIهای ارائه‌دهنده ابری برای تهیه و حذف زیرساخت بر اساس منابع اعلام شده استفاده می‌کند.از سوی دیگر، Ansible همچنین قادر به ارائه زیرساخت ابری است اما به اندازه کافی جامع نیست. عمدتاً به سمت مدیریت پیکربندی طراحی شده است. مدیریت پیکربندی فرآیندی برای به روز نگه داشتن برنامه ها و وابستگی ها است. اینجاست که Ansible در مقایسه با Terraform واقعا می درخشد. هر دو ابزار می توانند هر دو نوع فعالیت را انجام دهند. با این حال، هنگام اجرای مدیریت پیکربندی با استفاده از Terraform و اتوماسیون زیرساخت با استفاده از Ansible محدودیت‌هایی وجود دارد. آنها در مورد مدیریت زیرساخت پیچیده به اندازه کافی انعطاف پذیر نیستند. به طور منطقی، می‌توانیم ارکستراسیون را به عنوان فعالیت روز 0 و مدیریت پیکربندی را به عنوان فعالیت روز اول شناسایی کنیم. Terraform برای فعالیت های روز 0 و Ansible برای فعالیت های روز 1 و به بعد بهترین کار را دارد.2) اعلامی در مقابل رویه ای – Declarative vs. ProceduralTerraform برای نوشتن زیرساخت به عنوان کد (IaC) استفاده می شود. از HCL (زبان پیکربندی Hashicorp) استفاده می‌کند که ماهیت اعلامی دارد. فرقی نمی کند کد در کدام دنباله نوشته شود. کد همچنین می تواند در چندین فایل پراکنده شود. مهم نیست که چگونه کد را می نویسید، Terraform وابستگی ها و زیرساخت ها را شناسایی می کند. نوشتن یا ترجمه زیرساخت های موجود به کد در Terraform آسان است. Ansible از سینتکس YAML برای تعریف رویه برای انجام در زیرساخت هدف استفاده می کند. اسکریپت های Ansible YAML ماهیت رویه ای دارند – به این معنی که وقتی اسکریپت را می نویسید، از بالا به پایین اجرا می شود. به اسکریپت‌های Ansible   «ansible playbooks» می‌گویند. هنگامی که شما باید یک سری از وظایف را انجام دهید، همان را در کتاب بازی تعریف می کنید. وظایف به ترتیبی که نوشته شده اند انجام خواهند شد. به عنوان مثال، برای نصب یک سرور آپاچی بر روی ماشین مجازی داده شده به عنوان یک کاربر root ، باید مرحله ایجاد کاربر را قبل از تعریف وظیفه نصب بنویسید.3) قابل تغییر در مقابل غیر قابل تغییر- Mutable vs. Immutableگردش کار استقرار برنامه شامل تهیه زیرساخت و نصب نسخه مناسب کد منبع و وابستگی ها به زیرساخت ارائه شده است. تغییرپذیری یک ویژگی مرتبط با زیرساخت اساسی است که نحوه استقرار نسخه‌های جدیدتر برنامه‌ها و سرویس‌ها را مشخص می‌کند. استقرار یا بر روی زیرساخت های موجود انجام می شود، یا می توانیم مجموعه ای کاملاً جدید از زیرساخت ها را برای آن فراهم کنیم. شیوه‌های استقرار معمولاً تعیین می‌کنند که آیا زیرساخت قابل تغییر است یا تغییرناپذیر. هنگامی که نسخه های جدیدتر برنامه ها بر روی یک زیرساخت منتشر می شوند، به آن mutable می گویند. با این حال، اگر استقرار در زیرساخت های کاملاً جدید در طول انتشار اتفاق بیفتد، گفته می شود که تغییر ناپذیر است.تغییرپذیری راحت به نظر می رسد، اما خطر شکست مرتبط با آن بیشتر است. هنگامی که تنظیمات برنامه مجدداً روی همان زیرساخت اعمال می شود، مراحل اضافی حذف نصب نسخه قبلی و سپس نصب نسخه مورد نظر وجود دارد. مراحل بیشتر همچنین احتمال شکست بیشتری را معرفی می کند. انجام این کار برای ناوگانی از سرورها می تواند منجر به پیکربندی های ناهموار و رفتار غیرقابل پیش بینی شود. در عوض، اگر با نادیده گرفتن روش حذف نصب و اجرای نصب بر روی منابع زیرساخت جدید، بر کاهش این تعداد مراحل تمرکز کنیم – این فرصت را خواهیم داشت که در صورت شکست، استقرار جدید را آزمایش کرده و برگردانیم. در نظر گرفتن زیرساخت به عنوان تغییرناپذیر از این طریق کنترل بیشتری بر ایجاد تغییرات فراهم می کند.با این حال، هیچ قانون طلایی تعریف نشده است که از یک رویکرد بر دیگری حمایت کند. از آنجایی که قدرت Terraform در مدیریت چرخه عمر زیرساخت نهفته است، تغییر ناپذیری زیرساخت را بهتر پشتیبانی می کند. فراهم کردن یک مجموعه کاملاً جدید از زیرساخت ها و حذف مجموعه قدیمی تر با استفاده از Terraform آسان تر است. با این حال، مدیریت تغییرات پیکربندی چیزی نیست که بتوان به کارآمدترین روش انجام داد. تا آنجا که به تغییرات پیکربندی مربوط می شود، Ansible برنده مسابقه است زیرا در درجه اول یک ابزار مدیریت پیکربندی است. Ansible با ارائه ایجاد تصویر VM از تغییر ناپذیری زیرساخت پشتیبانی می کند. با این حال، حفظ این تصاویر اضافی نیاز به تلاش بیشتری دارد. توصیه می شود از رویکرد زیرساخت تغییرناپذیر پیروی کنید، جایی که Terraform از مدیریت زیرساخت مراقبت می کند و Ansible به اعمال پیکربندی تغییر یافته کمک می کند. این همچنین به عنوان استراتژی استقرار آبی/سبز شناخته می شود که در آن خطر شکست پیکربندی کاهش می یابد.4) State ManagementTerraform کل چرخه حیات منابع تحت مدیریت خود را مدیریت می کند. نگاشت منابع زیرساخت را با پیکربندی فعلی در فایل های حالت حفظ می کند.State Management نقش بسیار مهمی در Terraform ایفا می کند. حالت ها برای ردیابی تغییرات در پیکربندی و ارائه همان استفاده می شوند. همچنین می‌توان منابع موجود را تحت مدیریت Terraform با وارد کردن زیرساخت‌های دنیای واقعی در فایل‌های حالت وارد کرد. در هر زمان، امکان پرس و جو از فایل های حالت Terraform برای درک مؤلفه زیرساخت و ویژگی های آنها در حال حاضر وجود دارد. برخلاف این، Ansible هیچ گونه مدیریت چرخه حیات را پشتیبانی نمی کند. از آنجایی که Ansible عمدتاً با مدیریت پیکربندی سر و کار دارد و با در نظر گرفتن پیش‌فرض زیرساخت غیرقابل تغییر، هر تغییری که در پیکربندی ایجاد می‌شود به طور خودکار بر روی منبع هدف اجرا می‌شود.کدام ابزار IaC بهتر است؟یک کسب و کار باید بر اساس نیازهای دقیق خود و زیرساخت های موجود، بین Terraform یا Ansible یکی را انتخاب کند. با توجه به اینکه Terraform بر اساس یک رویکرد اعلامی ساخته شده است، بهترین عملکرد را برای حفظ یک وضعیت ثابت در زیرساخت شما بدون دخالت زیاد دارد. این همچنین برای ساختن یک زیرساخت از ابتدا و رسیدن به یک وضعیت خاص صادق است. رویکرد رویه‌ای Ansible برای کسانی است که نیاز دارند زیرساخت‌های خود را به گونه‌ای مدیریت و پیکربندی کنند که آن را در طول زمان در حال تکامل و تغییر ببینند. مواردی مانند افزودن نرم افزار یا به روز رسانی در یک محیط از قبل پیکربندی شده جایی است که Ansible نسبت به Terraform برتری دارد.هنگامی که صحبت از سادگی به میان می آید، Ansible به طور گسترده ای به عنوان ساده تر از این دو در نظر گرفته می شود. اگرچه بر اساس یک رابط خط فرمان، یک رابط کاربری جدید مبتنی بر وب وجود دارد، اما ویژگی های کامل ابزار خط فرمان را ندارد. با این حال، Terraform نیز بسیار ساده و شهودی است. بنابراین Ansible در اینجا فقط یک مزیت جزئی پیدا می کند. همانطور که گفته شد، این دو ابزار هر کدام برای کارهای مختلف مناسب هستند. هر دو کاملاً برجسته و ایمن هستند، بنابراین واقعاً به این بستگی دارد که آیا به ابزاری نیاز دارید که بر تأمین و هماهنگی متمرکز باشد یا مدیریت پیکربندی خاص.نتیجه :همانطور که تاکنون می دانیم، Terraform با ارکستراسیون بهترین عملکرد را دارد و Ansible در مدیریت پیکربندی عالی است. البته آنها توانایی انجام وظایف یکدیگر را دارند، هرچند به صورت محدود. در چنین شرایطی، به جای انتخاب قاطع، بهتر است از هر دو ابزار برای مدیریت زیرساخت، بر اساس نقاط قوت آنها استفاده شود. پاسخ به سوال “از کدام ابزار استفاده کنیم؟” است – بستگی دارد. این بستگی به نحوه شکل گیری فرآیند مدیریت زیرساخت در حال حاضر دارد. یافتن توازن مناسب بین ارکستراسیون و مدیریت پیکربندی برای تعیین مسئولیت های روشن به ابزارهای مربوطه بسیار مهم است.منبع :  https://spacelift.io/blog/ansible-vs-terraformhttps://www.techrepublic.com/article/terraform-vs-ansible/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Sun, 18 Sep 2022 11:22:16 +0430</pubDate>
            </item>
                    <item>
                <title>مقایسه فریم ورک های پایتون Django vs Flask vs FastAPI</title>
                <link>https://virgool.io/@enginedevops/%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-%D9%87%D8%A7%DB%8C-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-django-vs-flask-vs-fastapi-lftiykxfqzqp</link>
                <description>Django vs Flask vs FastAPI – راهنمای مقایسه ای برای چارچوب های وب پایتوناهداف Django این است که توسعه وب سایت های پیچیده مبتنی بر پایگاه داده را آسان کند، flask یک میکروفریمورک است زیرا نیازی به کتابخانه یا ابزار خاصی ندارد، fastAPI به عنوان یکی از سریع ترین چارچوب های پایتون در نظر گرفته می شود.فریمورک  های زیادی در توسعه برنامه های کاربردی وب استفاده می شود که هر کدام  مزایا و محدودیت های خاص خود را دارند. برای توسعه یک برنامه وب مبتنی بر  پایتون، از سه فریمورک بسیار رایج استفاده می‌شود: Django، Flask و  FastAPI. در اینجا در مقاله، این سه فریمورک مورد استفاده برای توسعه  برنامه های کاربردی وب مبتنی بر پایتون را مورد بحث قرار خواهیم داد. در  کنار شناخت این چارچوب ها، سعی خواهیم کرد مزایا و معایب آنها را نیز درک  کنیم. در نهایت، بر اساس چند پارامتر مهم، تحلیل مقایسه ای این چارچوب ها  را انجام خواهیم داد. نکات اصلی زیر که در این مقاله به آنها خواهیم  پرداخت.Django جنگوفریمورک جنگو چیست؟  What is Django frameworkجنگو  یک چارچوب وب مبتنی بر پایتون است که رایگان و منبع باز است. الگوی معماری  که از آن پیروی می کند، الگوی معماری مدل-قالب-نما است. این فریمورک توسط  Holovaty و Simon Willison در سال 2003 ایجاد شد. امروزه به دلیل رفتار قوی  خود یکی از محبوب ترین فریم ورک ها در جهان است. یکی از اهداف اولیه جنگو  این است که توسعه وب سایت های پیچیده مبتنی بر پایگاه داده را آسان کند.  این توسط برخی از وب سایت های غول پیکر مانند Instagram، Mozilla، Nextdoor  و Clubhouse استفاده می شود. دلیل معروف بودن کد کمتر، low coupling و  قابلیت استفاده مجدد و قابلیت اتصال قطعات در زمان توسعه است. همچنین این  ویژگی ها به توسعه سریع کمک می کنند.مزایای جنگو  Advantages of Djangoبا  وجود نامگذاری خاص خود، پاسخ های HTTP را تولید می کند و همچنین هسته  چارچوب را می توان به عنوان معماری MVC (مدل-نما-کنترلر) در نظر گرفت. جایی  که معماری معمولاً برای توسعه رابط های کاربری متشکل از سه جزء اصلی  استفاده می شود. ساختار اصلی و اجزای معماری MVC در تصویر زیر نشان داده  شده است.?در  جایی که مدل داده های برنامه را مدیریت می کند، view رابط کاربری مدل را  ارائه می دهد و کنترل کننده ورودی و تعامل بین کاربر و مدل را کنترل می  کند.این  فریم ورک شامل ORM (نقشه‌نگار شی رابطه‌ای)، پایگاه داده رابطه‌ای، سیستم  قالب‌بندی وب و توزیع‌کننده‌های URL است. جایی که ORM بین مدل‌ها پیوند  می‌یابد، درخواست‌های HTTP توسط پایگاه داده رابطه‌ای و. URL dispatcher  کنترل کننده مبتنی بر عبارات منظم است.بسته  contib چارچوب جنگو برای بسته بندی تعدادی از برنامه ها استفاده می شود.  ما می توانیم با استفاده از سیستم پیکربندی جنگو، کد را در یک پروژه در حال  اجرا مجاز کنیم. از قرارداد برنامه قابل استفاده مجدد پیروی می کند.این  چارچوب به طور خودکار امنیت را در برابر بیشتر حملات معمولی وب مانند جعل  درخواست بین سایتی، اسکریپت بین سایتی، تزریق SQL، شکستن رمز عبور فعال می  کند. همچنین می توان آن را به عنوان ابزاری برای تولید نقشه سایت گوگل و  اپلیکیشن های GIS در نظر گرفت.جنگو  چارچوب بقیه را با عملکرد قدرتمند API فراهم می کند. چارچوب rest دارای یک  مرورگر API داخلی برای آزمایش نقاط پایانی است و جنگو با چارچوب rest  تسهیلات احراز هویت و قوانین مجوز را با فریم‌ورک فراهم می‌کند.معایب جنگو   Disadvantages of Djangoفریمورک  های جنگو هیچ قراردادی ندارند. اغلب هنگام پیکربندی “on-the-go” باعث می  شود که اجزا با هم هماهنگ نباشند. از آنجایی که همه چیز باید در این فرآیند  به خوبی تعریف شود، این منجر به کندتر شدن سرعت توسعه می شود.گاهی اوقات جنگو برای پروژه های کوچک با ویژگی های کم مناسب نیست زیرا عملکرد فریم ورک می تواند توسعه دهنده را گیج کند.تعداد  بسیار کمی از وابستگی‌های چارچوب، جنگو را یکپارچه می‌سازد که در آن توسعه  باید چارچوب را به عنوان یک بسته واحد در نظر بگیریم. تعداد کمتر وابستگی  ها باعث می شود که توسعه با مقدار زیادی کد تکمیل شود.جنگو دارای ویژگی ها و پیکربندی های زیادی است که به همین دلیل است که کاربر نمی تواند سریع آن را یاد بگیرد.درخواست برای هر فرآیند فردی، روند توسعه جنگو را کندتر می کند.Flaskفریم ورک Flask چیست؟Flask  یک چارچوب وب است که در پایتون توسعه یافته است. flask یک microframework  است زیرا نیازی به کتابخانه یا ابزار خاصی در توسعه وب با آن نیست. عملکرد  مشترک ارائه شده توسط کتابخانه های شخص ثالث از قبل موجود. با کمک Flask  می‌توانیم با زبان برنامه‌نویسی پایتون برنامه‌های وب بسازیم. هدف اصلی این  فریم ورک توسعه اپلیکیشن های سبک وزن با ویژگی های کمتر به روشی آسان و  سریع است. Flask بر اساس werkzeug، jinja، MarkupSafe، ItsDangerous است. که همگی بخشی از پروژه های  pallet هستند.مزایای Advantages of Flaskبه دلیل سادگی و مینیمال بودن Flask می توانیم اکثر قطعات را با خیال راحت و به راحتی تغییر دهیم.ما  می‌توانیم چندین برنامه یا سرور با استفاده از کدهای ماجولار Flask  ایجاد  کنیم که می‌توانند در سراسر شبکه بزرگ هر کدام با وظایف خاصی توزیع شوند.  این باعث می شود برنامه ها کارآمدتر و عملکرد بهتری داشته باشند.با درک بهتر پایتون، توسعه برنامه های Flask آسان می شود.برنامه  توسعه یافته Flask نسبت به برنامه یکپارچه مقیاس پذیرتر است. زیرا طبق روش  های جدید برنامه در کانتینرها با مقیاس خودکار اجرا می شود. برنامه های  یکپارچه به خودی خود مقیاس نمی شوند.معایب Disadvantages of FlaskFlask  در بیشتر سازمان ها استاندارد نیست. دانش در مورد هر فریموری که با  استفاده از Flask به دست می آوریم، در فریمورک های دیگر مانند جنگو کمکی  نمی کند. بنابراین گاهی اوقات تغییر از Flask به هر چارچوب دیگری دشوار می  شود.عدم  وجود ابزار کمتر باعث می‌شود یک توسعه‌دهنده چیزهای بیشتری را به تنهایی  توسعه دهد یا برای تکمیل استقرار نیاز به جستجوی زیادی برای کتابخانه‌ها و  برنامه‌های افزودنی داریم.اکثر  اوقات شبکه های برنامه ها دارای یک منبع واحد هستند که نیاز به رسیدگی به  درخواست ها یکی پس از دیگری بدون توجه به درخواست های متعدد در یک زمان  دارد که باعث می شود برنامه زمان بیشتری را صرف کند.FastAPIFastAPI چیست؟FastAPI  یک چارچوب مدرن، سریع و قوی است که به ساخت API با نسخه‌های پایتون 3.6+  کمک می‌کند. این یکی از سریع ترین فریم ورک های پایتون در نظر گرفته می  شود. این چارچوبی است که با اشکالات کمتری که توسط توسعه دهندگان ایجاد می  شود کدنویسی سریع دارد.تمرکز اصلی FastAPI، در این موارد است :توسعه سریعاشکالات کمترعملکرد بالا و سریع.شرکت  هایی مانند Netflix و Uber از این چارچوب استفاده می کنند که به طور کامل  از برنامه نویسی ناهمزمان پشتیبانی می کند و می تواند با WSGI (رابط دروازه  وب سرور) و ASGI (رابط دروازه سرور ناهمزمان) اجرا شود.FastAPI یک عنصر حیاتی است که Starlette، Pydantic، OpenAPI و JSON Schema را با هم ترکیب می کند.مزایای FastAPIFastAPI به اعتبارسنجی نوع داده از سوی توسعه‌دهنده حتی در درخواست‌های JSON تودرتو کمک می‌کند.این ویژگی تکمیل خودکار را ارائه می دهد که به تولید برنامه ها با تلاش کمتر و همچنین زمان کمتر در اشکال زدایی کمک می کند.این  مبتنی بر OpenAPI است و همچنین با OpenAPI سازگار است (یک API باز یک رابط  برنامه نویسی کاربردی در دسترس عموم است که به توسعه دهندگان دسترسی  برنامه نویسی به یک برنامه نرم افزاری اختصاصی یا سرویس وب را فراهم می  کند)، JSON Schema (JSON Schema واژگانی است که به شما امکان می دهد حاشیه  نویسی کنید و اسناد JSON را تأیید کنید).FastAPI ساخت یک GraphQL API را با یک کتابخانه پایتون به نام graphene-python آسان می کند.FastAPI به خوبی با OAuth 2.0 و ارائه دهندگان خارجی ادغام می شود.معایب FastAPIFastAPI  یک چارچوب نسبتا جدید است، بنابراین جامعه دستورالعمل کوچک است. ما  اطلاعات آموزشی خارجی کمتری مانند کتاب‌ها، دوره‌ها یا آموزش‌ها داریم.از  آنجایی که در توسعه برنامه ها باید همه چیز را در برنامه FastAPI به هم  متصل کنیم که باعث می شود فایل اصلی بسیار طولانی یا شلوغ شود.مقایسه Django- Flask – FastAPIهمانطور  که قبلاً در مقاله بحث کردیم که هر چارچوبی مزایا و معایب خاص خود را  دارد، بیایید آنها را بر اساس پارامترهای زیر مقایسه کنیم:Packages:همانطور  که دیدیم، Django بیش از 2500 بسته در کتابخانه خود دارد که می تواند به  عنوان چارچوب توسعه وب تمام پشته در نظر گرفته شود. Flask یک  microframework است و FastAPI نیز بسته های پایین تری نسبت به Django دارد.Community:از  آنجایی که فریم ورک Django کاربردهای متنوعی دارد، زودتر از Flask و  FastAPI منتشر شده است، بنابراین مهم ترین جامعه را در بین همه این فریم  ورک ها دارد. ما تعداد زیادی آموزش برای فریمورک جنگو داریم و بعد از آن  آموزش های زیادی برای Flask داریم. از آنجایی که FastAPI یک چارچوب مدرن  است، تعداد کمی اطلاعات خارجی دارد.Performance:از  آنجایی که FastAPI تمرکز اصلی خود را بر روی کارایی بالا دارد، می‌توان  گفت که سریع‌ترین فریمورک در بین همه آنها است، Flask همچنین به دلیل ویژگی  میکرو فریمورک خود یک API با کارایی بالا است و عملکرد بالاتری نسبت به  Django ارائه می‌دهد.Flexibility:در  حین توسعه یک برنامه، تمرکز هر توسعه‌دهنده‌ای بر انعطاف‌پذیری چارچوب است  تا در صورت نیاز به تغییرات بیشتر، در آینده بتواند بخش‌هایی از برنامه را  تغییر دهد. در مورد انعطاف‌پذیری، Flask  تقریباً در هر بخش از برنامه‌ها از تغییرات پشتیبانی می‌کند، بنابراین می‌توان گفت که در اینجا انعطاف‌پذیرترین است.کلمات پایانیاز  طریق این مقاله، با سه فریمورک وب معروف جهانی مبتنی بر پایتون آشنا شدیم.  همه آنها بهترین چیز را در مورد خودشان دارند، مثلاً اگر به عملکرد بالا  در برنامه نیاز داشته باشیم، می توانیم FastAPI را انتخاب کنیم، یا در صورت انعطاف پذیری، هیچ چیز انعطاف پذیرتر از Flask در بین همه این فریم ورک ها نیست. هنگامی که ما در مورد Django صحبت می کنیم، می توانیم از این فریم ورک به عنوان یک full-stack development استفاده کنیم زیرا امکانات مختلفی را ارائه می دهد که به دلیل رفتار قوی  آن می تواند در توسعه تعداد زیادی از عملکردها در یک برنامه بسیار مفید  باشد.منبع :https://enginedevops.com/2022/07/01/django-vs-flask-vs-fastapi/ https://analyticsindiamag.com/django-vs-flask-vs-fastapi-a-comparative-guide-to-python-web-frameworks</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Tue, 02 Aug 2022 10:26:41 +0430</pubDate>
            </item>
                    <item>
                <title>42 نکته برای خوب شدن در DevOps و زندگی</title>
                <link>https://virgool.io/@enginedevops/42-%D9%86%DA%A9%D8%AA%D9%87-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AE%D9%88%D8%A8-%D8%B4%D8%AF%D9%86-%D8%AF%D8%B1-devops-%D9%88-%D8%B2%D9%86%D8%AF%DA%AF%DB%8C-k4b8aqd7uphn</link>
                <description>42 نکته برای خوب شدن در DevOps &amp; Lifeمی‌پرسید چرا 42 نکته؟زیرا، این پاسخ به پرسش نهایی زندگی، جهان و همه چیز است.بدون هیچ حرفی شروع کنیم ?آب کافی بنوشید?اول از همه، شما باید هیدراته بمانید.  بدن انسان بالغ تا 60 درصد آب دارد و آب فواید زیادی دارد. مطمئنم تا الان  یکی بهت گفته بود نکته مهم این است که نسبت به آن آگاه باشید. از یک برنامه  یا آن بطری اندازه گیری خنک برای نوشیدن آب کافی هر روز استفاده کنید.2.به اندازه کافی بخوابید?شما نمی توانید مولد باشید مگر اینکه احساس شادابی کنید.همه ما اسپرینت های گاه به گاه یا تمام شب ها را که می خواهید تمام خطوط انتقال داده را به یکباره ایجاد کنید، درک می کنیم.اما سعی کنید یک برنامه روتین در مورد  زمان خواب خود داشته باشید. در میان بسیاری از فواید سلامتی آن، باعث می  شود احساس شادی بیشتری داشته باشید و استرس کمتری داشته باشید.3. تمرکز را یاد بگیرید ?زمانی که منجر به تسلط بر یک فناوری  جدید می شود به شدت تمرکز شما بستگی دارد. پس خوب تمرکز کن در صورت نیاز از  برنامه های فوکوس مانند Forest یا گوش دادن به موسیقی مراقبه استفاده  کنید. به کاوش ادامه دهید تا زمانی که متوجه شوید چه چیزی برای تمرکز بیشتر  شما مفید است. این مهارتی است که اگر بخواهید بهتر شوید نمی توانید از آن  اجتناب کنید.4. مرخصی بگیرید ?رسانه های اجتماعی پر از فرهنگ شلوغی  هستند. تحت تأثیر آن قرار نگیرید، می توانید هر از چند گاهی تعطیلات  آگاهانه داشته باشید. این به عنوان یادآوری است که زندگی خارج از استقرار  کد و کانتینرها وجود دارد. و تنها نقطه تماس برای تمام زیرساخت های برنامه  خود نباشید. ?5. یک مربی پیدا کنید ?DevOps همیشه با سرعتی در حال پیشرفت  است. بله، اکنون می‌توانید به ویدیوهای یوتیوب دسترسی داشته باشید که به  شما نکاتی را می‌دهند، اما هیچ چیز نمی‌تواند جایگزین مربی‌ای شود که سفر  را از نزدیک دیده است. یک ترفند ساده این است که به دنبال افرادی در  موقعیت‌هایی بگردید که می‌خواهید چند سال آینده در جای  آنها باشید. همچنین  در تماس با ما دریغ نکنید. بسیاری از مردم از کمک کردن به روش درست بدشان  نمی آید.6. به یادگیری ادامه دهید ?این برای بیشتر کارهایی که در زندگی  انجام می دهیم صدق می کند. نکته کلیدی این است که طرز فکر مبتدیان را داشته  باشیم و از کثیف کردن دست خود ابایی نداشته باشیم. اگر ابزار جدید یا  فناوری جدیدی وجود دارد که در حال افزایش است، از یادگیری آن نترسید. شما  می توانید یادگیری را به فرآیندی تبدیل کنید که آنقدرها دلهره آور به نظر  نرسد.7. برای بیش از آنچه که فکر می کنید توانایی دارید ثبت نام کنیدگاهی اوقات نمی دانیم چه توانایی هایی  داریم. ممکن است چالش‌های بیشتری در محل کار شما وجود داشته باشد یا شغلی  که فکر می‌کنید نباید برای آن درخواست دهید زیرا معیارهای آن‌ها را برآورده  نمی‌کنید. حدس بزنید، بسیاری از افراد موفق مسئولیت هایی را بر عهده گرفته  اند که هرگز فکر نمی کردند. بدترین چیزی که ممکن است اتفاق بیفتد چیست؟8. متواضع باشیدمتواضع ماندن از شما انسان خوبی می  سازد. و مهم نیست که چقدر باتجربه هستید. فروتنی، رویارویی با چالش ها را  آسان تر می کند. شما تعجب نمی کنید که کجا اشتباه کرده اید و بیشتر روی حل  مشکل در دستتان تمرکز کنید.9. بر روی اصول تمرکز کنید ?در DevOps، همیشه ابزارهای جدید زیادی  برای یادگیری وجود خواهد داشت. اما مفاهیم زیربنای ابزارها تغییر چندانی  نمی کند. اگر اصول شما قوی باشد، به راحتی می توانید چیزهای جدید را درک  کنید. به عنوان مثال، اگر نحوه کار اینترنت، شبکه های کامپیوتری و پروتکل  های مختلف را بدانید، درک نحوه عملکرد شبکه Docker برای شما آسان تر خواهد  بود. اگر ویژگی‌های هسته لینوکس را بدانید، می‌توانید نحوه عملکرد  کانتینرسازی را تجزیه و تحلیل کنید.10. بلند مدت فکر کنید ?رم در یک روز ساخته نشده است، بنابراین  حرفه DevOps شما نیز خواهد بود. نکته کلیدی این است که هر روز حاضر شوید و  به یادگیری ادامه دهید. شما باید دید بلندمدتی داشته باشید که می‌خواهید  زندگی‌تان به کجا می‌رود و با استفاده از آن به‌عنوان قطب‌نما، به مسیریابی  ادامه دهید.11. عادات خوب را تمرین کنید ?عادت های خوب سخت هستند. مغز ما برای  پاداش‌های کوتاه‌مدت طراحی شده است. اما عادات خوبی مانند زود بیدار شدن،  داشتن یک رژیم غذایی سالم می تواند کمک زیادی به بهره وری شما کند. فقط  باید به یاد داشته باشید که گاهی اوقات در آن شکست خواهید خورد، در آن  لحظات خیلی به خودتان سخت نگیرید. و دوباره سعی کن. بسیاری از برنامه های  خطی وجود دارند که می توانند به فریب دادن روانشناسی انسان کمک کنند. می  توانید برنامه سازنده را بررسی کنید.12. مدیتیشن منظم ?اغلب در حالی که به عنوان یک متخصص  جوان شروع به کار می کنیم، اهمیت سلامت روان را درک نمی کنیم. با وجود  آگاهی بیشتر در مورد سلامت روان در حال حاضر، هنوز راه زیادی در پیش است. یک شغل DevOps می تواند از نظر ذهنی بسیار سخت باشد. شما احساس خواهید کرد که همه چیز همیشه در حال شکستن است، بنابراین نکته  کلیدی این است که آرام بمانید. تمرینات تنفسی ساده را یاد بگیرید و اگر  بتوانید مدیتیشن را تمرین کنید بهتر است.13. خودتان را با دیگران مقایسه نکنید ??ما در فضای رقابت بزرگ می شویم. حرفه  نیز تا حدودی در مورد رقابت است. اما در نهایت، باید روی سفر خود تمرکز  کنید نه دیگران. ممکن است گاهی احساس کنید که عقب مانده اید و بدانید که  اشکالی ندارد. خط پایان برای همه یکسان است. سعی کنید وقتی می بینید کسی در  زندگی موفق شده است، الهام بگیرید و خودتان را قضاوت نکنید یا شرایطتان را  به خاطر نبودنتان سرزنش نکنید.14. دلیل ? را درک کنیدیاد بگیرید که اعمال خود را زیر سوال  ببرید. اگر دستورالعملی برای انجام کاری در شغل خود دریافت می کنید، دلیل  مرتبط بودن آن را درک کنید. گاهی اوقات، این موضوع مرتبط نخواهد بود، اما  باید از آن آگاه باشید. تجربه، شهودی است که شما در طول زمان با مشاهده و  پرسش از چیزهای اطراف خود می سازید.15. کمک بخواهید ?در حرفه خود احساس خواهید کرد که باید  همه چیزهایی را که به شما داده شده است دریابید. این درست است، اما به این  معنی نیست که نمی توانید کمک بخواهید. کتابخانه‌های متن‌باز نمونه‌ای عالی  از این واقعیت است که شخصی با مشکل مشابهی مواجه شده است،پس مواظب افرادی باشید که فکر می کنید می توانند به شما کمک کنند وقتی در مسائل گیر می کنید.16 .یاد بگیرید چه زمانی کمک بخواهید ?ما نباید کورکورانه کمک بخواهیم. یک  چارچوب فکری خوب می‌تواند فهرست کردن همه چیزهایی باشد که فکر می‌کنید ممکن  است برای مشکل مورد نظر مفید باشند. اگر لیست تمام شد و دیگر چیزی برای  امتحان ندارید، به دنبال کمک باشید. به این ترتیب، می‌توانید با فردی که به  او نزدیک می‌شوید و از او کمک بگیرید، بحث سالمی داشته باشید و او متوجه  شود که شما تلاش کرده‌اید.17. ارزش خودتان را پایین نیاوریدارزش خودتان بدانید. این نکته باید با  مقایسه نکردن خود با دیگران متعادل شود. اما شما مجبور نیستید چشمان خود را  بسته نگه دارید. شما باید بدانید که در صنعت چه می گذرد و بهترین فرصت ها  کجا هستند. ممکن است فکر کنید که لیاقتش را ندارید، اما  به من اعتماد کنید و دنبال آن چیزها بروید. بدترین اتفاقی که می تواند  بیفتد این است که در نهایت از زمینه هایی که باید بهبود ببخشید آگاهی  بیشتری پیدا می کنید.18. با همه چیز منتظر نتیجه نباشید ??گاهی اوقات چیزهایی که امتحان می‌کنید  نتیجه‌ای ندارند. و چیزهایی وجود خواهد داشت که فقط برای سرگرمی و یادگیری  باید آنها را امتحان کنید. این چیزها راه عجیبی برای کمک به ما در راه هایی  دارند که انتظارش را نداریم. بنابراین انتظار نداشته باشید که همه چیز به  نتیجه برسد، چیزهایی را برای سرگرمی یاد بگیرید.19. صبور باشید ?هر چیزی که ارزش داشتن را داشته باشد  در زندگی زمان می برد. میانبری وجود ندارد. صنعت فناوری بسیار سریع است. در  عرض 5 سال، شما می توانید دستاوردهای زیادی داشته باشید. نکته کلیدی این  است که در آن جدول زمانی صبر داشته باشید.20. مدیریت پروژه را یاد بگیرید ?شما بخشی از اسکرام ها و اسپرینت های  متعدد خواهید بود. هیچ شغلی جادو نیست، بلکه مجموعه ای از مراحل شکسته شده  برای رسیدن به یک نقطه عطف است. تنظیم CI/CD برای کل سازمان شما ممکن است  دلهره آور به نظر برسد، اما می توان آن را انجام داد. همچنین سعی کنید برخی  از اصول مدیریت پروژه را در زندگی شخصی خود نیز اعمال کنید.21. مالکیت را در دست بگیرید ?وقتی همه چیز بد پیش می‌رود، آسان است  به دنبال مقصر بگردید. اما این راه درستی برای رشد نیست. وقتی مالکیت را  شروع می کنید، خواهید دید که افراد بیشتری به شما تکیه می کنند و این کار  شما را ارتقا می دهد.22. سعی نکنید همه چیز را همزمان یاد بگیریدو اینجاست که نقشه راه توسعه دهندگان  کمک می کند. شما باید شغل خود را مانند دوران مدرسه برنامه ریزی کنید.  همیشه قبل از سطح 2 یک سطح 1 وجود دارد.23. از سندرم imposter (وانمود کننده)  آگاه باشید ?سندرم ایمپوستر بیشتر از آن چیزی است  که فکر می کنید. ابتدا باید با خودتان گفت و گو کنید وقتی از درون احساس  تقلب می کنید. بسیاری از اوقات، شما فقط باید بپذیرید که دلیلی وجود دارد  که چرا اینگونه پاسخ می دهید و به جلو حرکت کنید. همچنین به ایجاد رابطه  مثبت با شکست کمک می کند.24. یاد بگیرید که با خودتان در صلح باشید ?شغل شما ممکن است نامرتب و آشفته به نظر برسد، اما بخشی از زندگی است.25. از تغییر نترسیدصنعت فناوری به قدری سریع است که ممکن  است در یک بازه شغلی 5 ساله احساس کنید منسوخ شده اید. این بسیار واقعی  است، اما باید به خود یادآوری کنید که چرا وارد این نقش شده اید. می‌دانم  که این انتخاب شغلی خوبی است، اما همچنین می‌خواهم باور کنم که به این دلیل  بود که شما کنجکاو بودید. این زمینه چیزهای زیادی برای  ارائه دارد، و هر چیزی که خیلی زودگذر باشد، تغییرات زیادی را در بر خواهد  داشت. تغییر تنها ثابت است، پس با آن راحت باشید.26 به جامعه برگردید ?بسیاری از افراد در DevOps به دلیل  جامعه می توانند وارد این حرفه شوند. و خوبی در مورد عصر اینترنت این است  که شما می توانید از راحتی در خانه خود به آن جامعه دسترسی داشته باشید.  بنابراین، در حالی که به خاطر کسی در جامعه یاد می گیرید و رشد می کنید،  سعی کنید به آنها هم پس بدهید. اگر می توانید راهنمایی ارائه دهید، و اگر  ترفند جالبی را در به کارگیری آخرین خوشه Kubernetes خود یاد گرفتید، آن را  با جهان به اشتراک بگذارید.27. تا جایی که امکان دارد frontloading انجام دهید ?با انجام یک کار، نیاز این است که فقط  به آن بپرید و آن را تمام کنید. اما اگر قبل از اقدام فکر کنید، برای شما  مفید خواهد بود. مراحل مورد نیاز برای انجام یک کار را تجسم و یادداشت کنید  و خواهید دید که در دراز مدت زمان زیادی را ذخیره می کند. بهترین راه این  است که تمام مسدود کننده هایی را که فکر می کنید ممکن است برای دستیابی به  چیزی در مسیر شما قرار گیرند، فهرست کنید.28. یک ژورنال حرفه ای داشته باشید ?مدیران و رهبران در محل کار همیشه به  همه می گویند که چگونه تصمیمات آگاهانه داده را بگیرند. ما سوگیری های  زیادی داریم و ادبیات علمی زیادی برای اثبات آن وجود دارد. و داده ها به  کاهش نویز کمک می کنند. اما کسی نیست که با داده‌های مربوط به حرفه‌تان در  سفر حرفه‌ای‌تان به شما توصیه کند. فقط شما قادر به انجام آن هستید.  نگهداری یک مجله به مستندسازی آموخته های شما و تصمیم گیری بهتر در آینده  کمک می کند. می‌توانید با برنامه‌ریزی برای سه ماه از کار خود و سپس بازتاب  آنچه که پس از پایان دوره به خوبی پیش رفت، شروع کنید.29. رزومه خود را به طور منظم به روز کنید ?این فقط راه دیگری برای حفظ ژورنال  حرفه ای شماست. اگر رزومه خود را هر سه ماه یکبار و هر 6 ماه یکبار به روز  کنید، از نکات برجسته ای که در محل کار ایجاد می کنید آگاه خواهید شد.30. راضی نباشید ?ما مخلوق اهمال کاری هستیم. این مقاله  هفته‌ها قبل از نوشتن آن در ذهن من بود. منظورم این است که آن را قلم  بزنید. شما در فعال بودن شکست خواهید خورد، اما نکته مهم این است که به  تلاش ادامه دهید، به خودتان فشار بیاورید تا از خود راضی نباشید.۳۱. همکاری با توسعه دهندگان را یاد بگیرید ?شما به عنوان مهندسان DevOps اغلب بخشی  از آنچه تغییر فرهنگی نامیده می شود خواهید بود. ممکن است در محل کار شما  مرزبندی مشخصی از تیم ها وجود داشته باشد یا ممکن است وجود نداشته باشد.  اما می‌توانید با مهارت‌های همکاری به‌ویژه با تیم توسعه‌دهنده خود در هر  محیطی حرکت کنید. آنها به نوعی کاربران نهایی شما هستند، پس با آنها رابطه  سالم داشته باشید.۳۲. در مورد کانتینر ? بیاموزیددر شرکت‌های چند ابری، ترکیبی و مقیاس  اینترنتی، کانتینری‌سازی همه‌جا فراگیر شده است. جدا از دستورات ترمینال و  نوشتن فایل‌های docker، درک واضحی از کانتینرها به دست آورید. زیرساخت ابری  می تواند غیرقابل پیش بینی باشد و این وظیفه شماست که آن را قابل پیش بینی  کنید. این کمک خواهد کرد که درک کاملی از اجزای سازنده آن داشته باشید.33. از دوره های رایگان، یوتیوب استفاده کنید و از دوره های پولی استفاده کنید ?منابع رایگان کافی در اینترنت وجود  دارد که به شما کمک می کند اولین شغل DevOps خود را دریافت کنید. اینترنت  کلاس درس شماست، تا حد امکان از آن استفاده کنید. در عین حال حواستان باشد  که در دام آموزش ها نیفتید. تجربه عملی کسب کنید.34. با یک ابزار برای هر موردخیلی خوب یاد بگیرید?مراحل مختلفی از DevOps وجود دارد و  برای هر مرحله بیش از یک ابزار محبوب وجود دارد. غرق نشوید فقط محبوب ترین  را انتخاب کنید و با آن خوب شوید. مفاهیم اساسی یکسان هستند و شما قادر  خواهید بود یک ابزار جدید را در زمان جدید درک کنید.35. نحوه انجام POC را یاد بگیرید ?به عنوان یک مهندس DevOps، از شما  خواسته می شود که POC (اثبات مفهوم) را به طور منظم انجام دهید. مهلت هایی  برای آن وجود خواهد داشت، و شما باید در پایان آن با توصیه هایی همراه  باشید. یک نکته خوب برای انجام یک POC موثر این است که با مستندات خوب  شوید. و این نکته بعدی است.36. با مستندات راحت باشید ?هرچه بیشتر مستندسازی کنید، می‌توانید ایده‌های خود را به طور مؤثرتری به هم تیمی‌های خود منتقل کنید،از رهبری استقبال کنید و افراد جدید را سریع وارد کنید.. چیزی به نام بیش از حد اسناد وجود ندارد.37.  ذهن باز داشته باشید ?ممکن است فرد جدیدی در تیم شما وجود  داشته باشد که به همه بگوید که چقدر ابزاری در محل کار قبلی او بوده و شما  باید آن را امتحان کنید. در آن مواقع شما می خواهید خود را به عنوان فردی  که همه چیز را می شناسید مطرح کنید. اما امیدوارم این کار را نکنید، داشتن  ذهنی باز همیشه خوب است. این همچنین برای بسیاری از سناریوهای دیگر صدق می  کند.38. کدنویسی کافی یاد بگیرید ?کد نویسی هسته اصلی نقش DevOps نیست،  اما به شما یک مزیت می دهد. و به هر حال، شما نمی توانید به طور کامل از آن  اجتناب کنید. پس با آن راحت باشید و بهترین زمان برای آن دیروز بود. من  Golang را پیشنهاد می کنم زیرا بسیاری از ابزارهای جدید در قلمرو DevOps  مبتنی بر Go هستند، اما بله Python نیز یک انتخاب عالی است.39.  اقدامات خوب را کورکورانه دنبال نکنید?وقتی می نشینید و در مورد شیوه های خوب  برای پیاده سازی در محل کار خود تحقیق می کنید، با روش های خوب زیادی  روبرو می شوید. نیازی نیست کورکورانه آنها را دنبال کنید. شما محیط تولید  خود را بهتر می شناسید، روش های کدنویسی خود را بهتر می شناسید. تعدادی از  آنها را انتخاب کنید، اجرا کنید و سپس مشاهده کنید. به تکرار ادامه دهید تا  سیستم های خود را با SLA های مورد انتظار تنظیم کنید.40. اجرا کنید، مشاهده کنید و سپس تکرار کنید تا بهتر شوید?شما مواردی را گسترده می کنبد، و آنها  را دوباره جمع  می‌گردانید. باید عضله ذهنی انجام سریع تکرارها را بسازید و  بدانید که طبیعی است.41. از تصمیمات کوچک آگاه باشید ?به‌عنوان یک مهندس DevOps، تصمیمات شما  می‌تواند به میزان زیادی بر هزینه کل فناوری تأثیر بگذارد. پس با آگاهی  کامل تصمیم بگیرید. به عنوان مثال، ابزار نظارتی را انتخاب کنید که تیم  مهندسی شما را در مورد دریافت داده ها دچار پارانویا نکند.42. در حل مسئله بهتر شوید ?اکثر مشکلات قابل حل هستند اگر بتوانیم  آن را به مراحل کوچک عملی تقسیم کنیم. و با در نظر گرفتن این موضوع، مدام  خود را درگیر مشکلات کنید. بسیاری از رویکردهای دیگر نیز وجود دارد. برای  مشکلات ناشناخته، من شخصاً تفکر اصول اولیه را دوست دارم. این همان چیزی  است که ایلان ماسک نیز توصیه می کند ??امیدوارم این نکات یادآوری خوبی برای مراقبت از خود و شغلتان باشد. در نظرات به این لیست اضافه کنید.ما محتوای DevOps بیشتری را در دسته توییتر خود به اشتراک می گذاریم. اگر این را دوست داشتید، بیایید در توییتر با هم دوست باشیم ?منبع :https://enginedevops.com/2022/07/30/tips-for-getting-good-at-devops-life/https://dev.to/signoz/43-tips-for-getting-good-at-devops-life-55cp</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Tue, 02 Aug 2022 10:16:59 +0430</pubDate>
            </item>
                    <item>
                <title>نقشه راه DevOps و SRE</title>
                <link>https://virgool.io/@enginedevops/%D9%86%D9%82%D8%B4%D9%87-%D8%B1%D8%A7%D9%87-devops-%D9%88-sre-jrebkxksgwvq</link>
                <description>The 2022 DevOps Engineer and SRE RoadMapراهنمای مصور برای تبدیل شدن به یک مهندس DevOps و SRE در سال 2022 با پیوندهایی به دوره های مربوطهDevOps و SRE در حال حاضر واقعا داغ هستند و بیشتر دوستان، همکاران و توسعه دهندگان ارشد من که می شناسم سخت  کار می کنند تا مهندس DevOps شوند و خود را به عنوان قهرمان DevOps در  سازمان خود معرفی کنند. در حالی که من واقعاً مزایای DevOps را که مستقیماً  با توسعه و استقرار نرم‌افزار بهبود یافته مرتبط است، تأیید می‌کنم، از  تجربه محدودم می‌توانم بگویم که این کار آسانی نیست. انتخاب مسیر درست در میان این همه ابزار و تمرین بسیار دشوار است.بسیاری  از خوانندگان من اغلب از من سؤالاتی می پرسند مانند اینکه چگونه مهندس  DevOps شوم، چه ابزارهایی را باید یاد بگیرم؟ کدام شیوه ها را باید دنبال  کنم؟ آیا یادگیری Maven و Jenkins باید برای یک  DevOps باشد؟ Docker و  Kubernetes چطور؟ آیا اتوماسیون زیرساخت بخشی از DevOps است؟ آیا Chef, Puppet, یا  Ansible  را یاد بگیرم، تنها برخی از آن سوالاتی است که همیشه برای من مطرح می شود.امروز می‌خواهم منبع فوق‌العاده‌ای را با شما به اشتراک بگذارم که به شما کمک می‌کند تا به مهندس DevOps تبدیل شوید که همیشه می‌خواستید باشید، نقشه راه DevOps 2022.نقشه راه DevOps 2022 برای توسعه دهندگان?اکنون،  بیایید گام به گام نقشه راه را مرور کنیم و دریابیم که چگونه می‌توانید  مهارت‌های ضروری برای تبدیل شدن به یک DevOps در سال 2022 را بیاموزید:1. یک زبان برنامه نویسی یاد بگیریدبدیهی  است و من فرض می کنم شما بچه ها قطعا یکی از سه زبان برنامه نویسی اصلی  یعنی جاوا، پایتون یا جاوا اسکریپت را می دانید. هرچند من قویاً به شما  پیشنهاد می‌کنم حداقل یکی از این سه زبان برنامه‌نویسی عمده را یاد بگیرید.1.1 Java1.2 Python1.3 JavaScript1.4 Golang2. مفاهیم مختلف سیستم عامل را درک کنیداینجا  جایی بود که قسمت Ops وارد شد، قبلاً فقط توسط افراد و افراد sysadmin که  مسئول دانستن سیستم عامل و سخت افزار بودند پشتیبانی می شد، اما با DevOps،  اکنون توسعه دهنده نیز باید آنها را بشناسد. شما حداقل باید در مورد  مدیریت فرآیند، رشته ها و همزمانی، سوکت ها، مدیریت ورودی/خروجی، مجازی  سازی، ذخیره سازی حافظه و سیستم های فایل همانطور که در نقشه راه پیشنهاد  شده است بدانید.3. زندگی در ترمینال را بیاموزیدبرای یک  DevOps، داشتن فرمان خوب در خط فرمان مهم است، به خصوص اگر در لینوکس کار می کند. دانستن برخی از پوسته لینوکس مانند Bash یا Ksh و ابزارهایی مانند find، grep، awk، sed، lsof و دستورات شبکه مانند nslookup و netstat الزامی است.4. شبکه و امنیتدر  دنیای امروز، همه چیز به همه چیز متصل است که شبکه و امنیت را بسیار مهم  می کند. برای تبدیل شدن به یک مهندس DevOps خوب، باید در مورد مفاهیم اولیه  شبکه و امنیت مانند DNS، مدل OSI، HTTP، HTTPS، FTP، SSL، TLS و غیره بدانید.5.  ماهیت سرویس ها چیست و چگونه راه اندازی میشودبه عنوان یک قهرمان DevOps، باید  بدانید که چه چیزی در دستگاه شما تنظیم شده است و چگونه می توانید آن را  تنظیم کنید، فقط می توانید به خودکارسازی آن فکر کنید. به طور کلی، یک  مهندس DevOps باید بداند که چگونه یک وب سرور مانند IIS، Apache و Tomcat راه اندازی کند. او همچنین باید در مورد CachingServer، LoadBalancer، ReverseProxy و Firewall و غیره اطلاعات داشته باشد.6. زیرساخت را به عنوان کد یاد بگیریداین احتمالاً مهمترین چیز برای یک  مهندس DevOps است و همچنین منطقه بسیار وسیعی است. به عنوان یک مهندس  DevOps، باید در مورد کانتینرهایی مانند Docker و Kubernetes، ابزارهای مدیریت پیکربندی مانند Ansible، Chef، Salt و Puppet، تجهیزات زیرساخت مانند Terraform و Cloud formation اطلاعات داشته باشید.7. برخی از ابزارهای یکپارچه سازی و تحویل مداوم (CI/CD) را بیاموزیداین  یکی دیگر از موارد بسیار مهم برای مربیان و قهرمانان DevOps است، یعنی راه  اندازی  فرایند برای یکپارچه سازی و تحویل مداوم. ابزارهای زیادی در ناحیه  CI/CD وجود دارد به عنوان مثال. Jenkins, TeamCity, Drone ,Gitlab و غیره اما، اکیداً توصیه می‌کنم حداقل  Jenkins را یاد بگیرید، زیرا این ابزار پرکاربردترین و احتمالاً بالغ‌ترین ابزار CI/CD در بازار است.8. نظارت بر نرم افزار و زیرساخت را یاد بگیریدجدای از راه‌اندازی و استقرار، Monitoring یکی دیگر از جنبه‌های مهم DevOps است و به همین دلیل است که برای یک مهندس  DevOps مهم است که در مورد زیرساخت و نظارت بر برنامه‌ها بیاموزد.  ابزارهای زیادی در این فضا وجود دارد به عنوان مثال. Nagios، Icing، Datadog، Zabbix، Monit، AppDynanic، New Relic و غیره. بسته به اینکه کدام یک در شرکت شما استفاده می شود.9. درباره   Cloud Provides بیاموزیدCloud  چیز بزرگ بعدی است و دیر یا زود باید برنامه خود را به ابر منتقل کنید، از  این رو برای یک مهندس DevOps مهم است که حداقل درباره برخی از ارائه  دهندگان ابر محبوب و اصول اولیه آنها بداند. در حالی که AWS به وضوح پیشرو در فضای ابری است، تنها نیست، Google Cloud و Azure به آرامی در حال پیشرفت هستند و سپس ما بازیکنان دیگری مانند Heroku، Cloud Foundry و Digital Ocean را داریم.یادداشت های پایانیبا  تشکر از خواندن این مقاله تا کنون. ممکن است فکر کنید چیزهای زیادی برای  یادگیری وجود دارد، دوره های زیادی برای پیوستن وجود دارد، اما نیازی نیست  نگران باشید. احتمال زیادی وجود دارد که شما ممکن است از قبل بیشتر موارد  را بدانید، و همچنین منابع رایگان مفید زیادی وجود دارد که می توانید از  آنها استفاده کنید، من همچنین آنها را اینجا و آنجا به همراه بهترین منابع  پیوند داده ام که مطمئنا رایگان نیستند. اما ارزش پول من یکی از طرفداران  خاص دوره های Udemy هستم، زیرا آنها بسیار مقرون به صرفه  هستند و ارزش زیادی را در مقدار بسیار کمی ارائه می دهند، اما شما آزاد  هستید که دوره مورد نظر خود را انتخاب کنید. در پایان باید دانش و تجربه  کافی در مورد موارد ذکر شده در اینجا داشته باشید.در سفر DevOps خود موفق باشید! مطمئناً کار آسانی نیست، اما با پیروی از این نقشه راه و راهنما، یک قدم به مهندس DevOps  که دوست داشتید تبدیل شوید.   منبع:  https://enginedevops.com/2022/07/02/devops-sre-roadmap/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Tue, 02 Aug 2022 10:12:39 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش Docker Compose</title>
                <link>https://virgool.io/wptips/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-docker-compose-ihps3jfilshq</link>
                <description>آموزش Docker Composedocker compose برای تعریف و اجرای برنامه هایی که از چند کانتینر تشکیل شده اند بکار میرود. با استفاده از این ابزار میتوان یک یا چند کانتینر را به همراه تمام پارامترهای لازم برای اجرای آنها در یک فایل YAML به نام کامپوزفایل (docker-compose.yml) تعریف کرد و سپس همه آنها را با استفاده از تنها یک دستور ایجاد و راه اندازی نمود. در این فایل هر یک از این کانتینرها یک سرویس نامیده میشود که تعریف دقیق آن به این صورت است هر سرویس یک کانتینر است که به شکلی با کانتینرهای دیگر در تعامل است و مشخصات زمان اجرای خاص خود را دارد.برای اطلاع میتوانید از لینک زیر دوره را به صورت رایگان دریافت نمایید.https://enginedevops.com/product/learning-docker-compose/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Fri, 24 Jun 2022 16:25:23 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش کوبرنتیز Kubernetes</title>
                <link>https://virgool.io/@enginedevops/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D9%88%D8%A8%D8%B1%D9%86%D8%AA%DB%8C%D8%B2-kubernetes-mzetqzlg3ut8</link>
                <description>کوبرنتیز چیست ؟ (Kubernetes) کوبرنتیز یک پلتفرم متن‌باز مدیریت کانتِینِر (Container) است که توسط کمپانی گوگل توسعه‌یافته و در ژوئن 2014 در دسترس عموم قرارگرفته است. هدف از طراحی و عرضه کوبرنیتز این بوده که پیاده‌سازی و مدیریت سیستم‌های توزیع‌شده پیچیده برای توسعه‌دهندگانی که به کانتینرهای لینوکس علاقه‌مند هستند، ساده‌تر شود. برای اطلاع میتوانید دوره آموزش کوبرنتیز زا در لینک زیر مشاهده نمایید.https://enginedevops.com/product/learning-kubernetes/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Fri, 24 Jun 2022 16:22:49 +0430</pubDate>
            </item>
                    <item>
                <title>مفهوم DevOps</title>
                <link>https://virgool.io/Rocket/%D9%85%D9%81%D9%87%D9%88%D9%85-devops-u93pzd6qdqh4</link>
                <description>Develop System Not SoftwareDevOps یکی از بزرگترین کلمات کلیدی جهان فن آوری در اواخر اخیر است زیرا این سازماندهی برای کوتاه کردن چرخه توسعه نرم افزار ، فواید زیادی را در اختیار سازمان ها قرار می دهد.DevOps  چیست؟در مورد سوال DevOps چیست؟ هیچ تعریف واحدی یا جواب درست وجود ندارد.DevOps ابزاری ، فناوری یا چارچوبی نیست. این بیشتر یک فلسفه و یک مفهوم است. این مجموعه ای از شیوه ها است که ترکیبی از توسعه نرم افزار (Dev) و عملیات  (Ops) است که به کوتاه کردن چرخه توسعه سیستم و کمک به ادغام مداوم و تحویل با کیفیت نرم افزار کمک می کند.مزایای DevOpsهمکاری و ارتباطات بهبود یافتهتحویل سریعتر نرم افزار یا محصولکاهش مداوم هزینهروند بهبود یافتهحل سریعتر مسائلدر دنیای DevOps هیچ ابزار جادویی واحدی وجود ندارد که متناسب با تمام نیازها باشد. این در مورد انتخاب ابزار مناسب است که متناسب با نیاز سازمان باشد.ابزارهای DevOpsPlanning &amp; CollaborationJiraیکی از ابزارهای مدیریت محبوب پروژه است که توسط Atlassian استفاده شده است و برای پیگیری مسئله ، اشکال و ردیابی پروژه استفاده می شود. این امکان را به کاربر می دهد تا پروژه را ردیابی و وضعیت صادر کند. این نرم افزار می تواند علاوه بر سایر ابزارهای DevOps مانند جنکینز ، به راحتی با سایر محصولات اطلس مانند Bitbucket یکپارچه شود.SlackSlack یک ابزار همکاری مبتنی بر ابر freemium است که امکان ارتباط و همکاری تیم را در یک مکان فراهم می کند. این ابزار همچنین می تواند برای به اشتراک گذاشتن اسناد و سایر اطلاعات در بین اعضای تیم استفاده شود. این همچنین می تواند به راحتی با ابزارهای دیگری مانند GIT ، Jenkins ، JIRA و غیره ادغام شود.ZoomZoom  یک بستر کنفرانس وب و اشتراک گذاری صفحه است. می توانید از طریق صدا یا ویدیو با تیم خود ارتباط برقرار کنید.مهم نیست تیم شما چقدر بزرگ باشد ، zoom قادر است حداکثر 1000 گیرنده را در یک جلسه آنلاین قرار دهد.ClarizenClarizen یک نرم افزار مشترک و مدیریت پروژه است که در پیگیری مسئله ، مدیریت وظیفه و مدیریت سبد پروژه کمک می کند. به راحتی قابل تنظیم است و دارای رابط کاربری تعاملی کاربر پسند است.AsanaAsana یک برنامه موبایل و مبتنی بر وب است که برای کمک به تیم ها در یک کارآمد و سازماندهی ، پیگیری و مدیریت کار خود را ایجاد می کند. این برای ردیابی کارهای روزانه تیم و پشتیبانی از پیام رسانی و ارتباطات در سراسر سازمان استفاده می شود.Source Code ManagementSVNSVN یک نسخه کنترل شده و منبع کنترل ابزار است که توسط آپاچی تولید شده است. این به توسعه دهندگان کمک می کند تا نسخه های مختلف کد منبع را حفظ کنند و یک تاریخچه کامل از همه تغییرات را حفظ کنند.GitGit یک سیستم کنترل نسخه توزیع شده است که با هدف سرعت ، یکپارچگی داده ها ، پشتیبانی از گردش کار توزیع شده و غیرخطی انجام می شود. به غیر از مدیریت کد منبع نیز می توان از آن برای پیگیری تغییرات در هر مجموعه فایل استفاده کرد.BitbucketBitbucket یک بستر میزبانی مبتنی بر وب است که توسط Atlassian ساخته شده است. Bitbucket همچنین یک سیستم مرور کد مؤثر را ارائه می دهد و هر تغییری در کد را پیگیری می کند. این به راحتی با سایر ابزارهای DevOps مانند Jenkis ، Bamboo قابل ادغام است.GitHubGitHub یک سیستم عامل میزبانی کد است که برای کنترل نسخه و همکاری نسخه طراحی شده است. این کلیه قابلیت های کنترل نسخه توزیع شده و مدیریت کد منبع (SCM) عملکرد Git را علاوه بر ویژگی های آن ارائه می دهد.این کنترل دسترسی و ویژگی های همکاری مانند ردیابی اشکال ، ایجاد ویژگی و درخواست ، مدیریت کار و غیره را برای پروژه ارائه می دهد.‌buildAntApache Ant ابزاری ساخت و استقرار مبتنی بر جاوا است. از فرمت فایل XML پشتیبانی می کند. این چندین کار داخلی وجود دارد که به ما امکان می دهد برنامه های جاوا را کامپایل ، مونتاژ ، آزمایش و اجرا کنیم.MavenMaven ابزاری برای اتوماسیون ساخت است که عمدتاً برای پروژه های جاوا استفاده می شود. این شامل یک فایل XML است که پروژه نرم افزاری در حال ساخت ، وابستگی آن به سایر مؤلفه ها و ماژول های خارجی ، دنباله ساخت ، دایرکتوری ها و سایر افزونه های مورد نیاز را توصیف می کند.GruntGrunt یک ابزار خط فرمان جاوا اسکریپت است که به ساخت برنامه های کاربردی کمک می کند و به توسعه دهندگان کمک می کند تا کارهای تکراری مانند تلفیق ، تست واحد ، پوشش دادن کد و اعتبار سنجی و غیره را به صورت خودکار انجام دهند و گزینه های مناسبی برای ابزارهایی مانند Make و Ant است.GradleGradle یک سیستم اتوماسیون ساخت منبع باز است که بر اساس مفاهیم Apache Maven و Apache Ant ساخته شده است. این برنامه از زبان برنامه نویسی مناسب Groovy به جای فایل پیکربندی XML پشتیبانی می کند. این برنامه با تعیین خودکار قسمت های ساخت به روز ، از ساخت های افزایشی پشتیبانی می کند.Configuration ManagementPuppetPuppet ابزاری برای مدیریت پیکربندی منبع باز است که برای پیکربندی ، استقرار و مدیریت سرورهای بی شماری مورد استفاده قرار می گیرد. این ابزار از مفهوم زیرساخت به عنوان کد پشتیبانی می کند و در Ruby DSL نوشته شده است. همچنین از مقیاس پویا بالا و پایین ماشین آلات بر اساس نیاز پشتیبانی می کند.ChefChef ابزاری برای مدیریت پیکربندی منبع باز است که توسط Opscode با استفاده از Ruby برای مدیریت زیرساخت ها در ماشین های مجازی یا فیزیکی ساخته شده است. همچنین در مدیریت زیرساختهای پیچیده  بر روی ماشینهای مجازی ، فیزیکی و ابری نیز کمک می کند.AnsibleAnsible یک مدیریت پیکربندی فناوری اطلاعات منبع باز ، تهیه نرم افزار ، Orchestration و ابزار استقرار برنامه است. این یک ابزار ساده و در عین حال قدرتمند برای خودکارسازی برنامه های کاربردی فناوری اطلاعات چند لایه ساده و پیچیده است.SaltStackSaltStack یک نرم افزار منبع باز است که به زبان پایتون نوشته شده است و از مدل push برای اجرای دستورات از طریق پروتکل SSH استفاده می کند. همچنین از الگوهای YAML برای نوشتن هرگونه اسکریپت پشتیبانی می کند.TerraformTerraform ابزاری منبع باز برای ساخت و ساز ، تغییر ، استقرار و نسخه سازی زیرساخت ها با خیال راحت و کارآمد است. این ابزار برای مدیریت ارائه دهندگان خدمات موجود و محبوب و همچنین راه حل های سفارشی در خانه استفاده میشود. و کمک می کند تا زیرساخت ها را در پیکربندی / کد تعریف کنیم و کاربر را قادر می سازد تا به آسانی بازسازی / تغییر و پیگیری تغییرات زیرساخت ها را انجام دهد.VagrantVagrant یکی از ابزارهای محبوب در ساخت و مدیریت ماشین های مجازی (VM) است. این یک گردش کار با کاربرد آسان و قابل تنظیم است که روی خودکارسازی متمرکز است.  و همچنین به کاهش زمان تنظیم محیط توسعه و افزایش تولید کمک میکند.Continuous IntegrationJenkinsJenkins یکی از محبوب ترین ابزارهای منبع باز DevOps برای پشتیبانی از ادغام مداوم و تحویل از طریق DevOps است. این امر به ادغام مداوم و تحویل مداوم پروژه ها ، صرفنظر از كاربران پلتفرم ، با كمك پردازش های همزمان مختلف ساخت و استقرار ، اجازه می دهد. جنکینز می تواند با چندین ابزار آزمایش و استقرار یکپارچه شود.Travis CITravis CI یک سیستم عامل ادغام پیوسته و یکپارچه توزیع شده است که برای ساخت و آزمایش پروژه هایی که در GitHub و Bitbucket میزبان هستند ، توزیع شده است. با افزودن پرونده YAML پیکربندی شده است.می توان آن را به صورت رایگان برای پروژه های منبع باز و به صورت هزینه ای برای یک پروژه خصوصی آزمایش کرد.BambooBamboo یکی از محصولات محبوب است که توسط Atlassian برای حمایت از ادغام مداوم یکپارچه ساخته شده است. بیشتر عملکرد آن از قبل ساخته شده است و این بدان معنی است که ما نیازی به بارگیری افزونه های مختلف مانند جنکینز نداریم. همچنین از ادغام یکپارچه با سایر محصولات اطلس مانند JIRA و Bitbucket پشتیبانی می کند.HudsonHudson نرم افزاری رایگان است که به زبان JAVA نوشته شده و در یک ظرف سرویس مانند GlassFish و Apache Tomcat اجرا می شود. این امکان را فراهم می کند که مجموعه اتوماسیون خود را با هرگونه تغییر در سیستم مدیریت منبع مربوطه مانند GIT ، SVN ، و غیره ترکیب کنید و همچنین پشتیبانی از کلیه پروژه های پایه و جاوا را نیز پشتیبانی می کند.TeamCityTeamCity یکپارچه سازی مداوم مبتنی بر سرور است و یک ابزار مدیریتی ایجاد شده توسط JetBrains ایجاد می کند. این رابط کاربری ساده و آسان برای استفاده (UI) دارد و پیشرفت در ساخت ، ایجاد اطلاعات و اطلاعات مربوط به تاریخ را برای کلیه تنظیمات و پروژه ها فراهم می کند.CircleCICircleCI به صورت راه حل های مبتنی بر ابر و همچنین فرضیه های آماده برای ادغام مداوم در دسترس است. شروع و پشتیبانی آسان از تنظیمات YAML که به راحتی قابل خواندن است ، آسان و سریع است.Continuous SecuritySnykSnyk برای یافتن و رفع آسیب پذیری های امنیتی منبع آزاد ، به طور خودکار ، Snyk را در چرخه توسعه بپیچید. این نرم افزار از JS ، .Net ، PHP ، NPM ، jQuery ، پایتون ، جاوا و غیره پشتیبانی می کند و می تواند در برنامه نویسی ، مدیریت کد ، CI / CI ، کانتینر و استقرار یکپارچه شود.Snyk  بزرگترین پایگاه داده آسیب پذیری منبع باز را شامل میشود.NetsparkerNetsparker به طور خودکار برنامه شما را برای نقص امنیتی اسکن می کند و گزارش های طبقه بندی شده عملی را ارائه می کند ، بنابراین می توانید براساس اولویت اقدام کنید. سناریوی امنیتی DevOps بررسی تعهد جدید و گزارش اشکال مستقیماً در سیستم ردیابی مانند Jira یا GitHub خواهد بود و یک بار توسط توسعه دهنده برطرف می شود.TestingSeleniumSelenium محبوب ترین و ابزار تست منبع باز است. این پشتیبانی از اتوماسیون تست در مرورگرهای مختلف و دستگاه های عامل. به راحتی می توانید با ابزارهای مدیریت آزمون مانند ALM ، JIRA و همچنین با سایر ابزارهای DevOps مانند جنکینز ، Teamcity ، بامبو و غیره یکپارچه شوید.TestNGTestNG یک چارچوب تست منبع باز است که از Junit و Nunit طراحی و الهام گرفته شده است. به راحتی می توان آن را با درایور وب سلنیوم یکپارچه کرد تا اسکریپت های تست اتوماسیون را پیکربندی و اجرا کند. همچنین گزارشهای تست مختلفی مانند HTML یا XSLT تولید می کند.JUnitJUnit یک چارچوب تست واحد منبع باز است که توسط توسعه دهندگان برای نوشتن و اجرای موارد آزمون قابل تکرار استفاده می شود. این برنامه از حاشیه نویسی های مختلف تست استفاده می کند ، با استفاده از آن هر توسعه دهنده می تواند یک مورد تست واحد یکپارچه را بنویسد. به راحتی با سایر ابزارهای DevOps مانند جنکینز ، GIT و غیره قابل ادغام است.MonitoringNagiosNagios یک منبع باز و یکی از محبوب ترین ابزار برای نظارت مداوم است. ناجیوس برای نظارت بر سیستم ها ، برنامه ها ، خدمات و روند کار در فرهنگ DevOps به شما کمک می کند. این هشدار را به کاربران هشدار می دهد که اگر مشکل زیرساختی پیش آمد ، به آنها هشدار می دهد و همچنین وقتی این مشکل برطرف شده است ، به آنها هشدار می دهد.GrafanaGrafana یک سکوی تحلیلی منبع باز است که بر تمام معیارها از زیرساخت ها ، برنامه ها و دستگاه های سخت افزاری نظارت می کند. می توانید داده ها را تجسم کنید ، داشبورد ایجاد کرده و به اشتراک بگذارید ، هشدارهایی تنظیم کنید و همکاری کنید. می توانید داده ها را از بیش از 30 منبع ، از جمله Prometheus ، InfluxDB ، Elasticsearch ، AWS CloudWatch و غیره بکشید.SensuSensu ابزاری برای نظارت بر منبع باز است که به روبی نوشته شده است و به راحتی و به طور مؤثر در نظارت بر سرورها ، خدمات ، برنامه ها ، زیرساخت های ابری کمک می کند. مقیاس بسیار آسان است به طوری که می توانیم به راحتی هزاران سرور را رصد کنیم.New RelicNew Relic محصولی برای تجزیه و تحلیل نرم افزار برای نظارت بر عملکرد برنامه (APM) است که داده های زمان واقعی و گرایش در مورد عملکرد برنامه وب و سطح رضایت از کاربران نهایی را با آن ارائه می دهد. این برنامه از یک پایان برای ردیابی تراکنش پشتیبانی می کند و آنها را با انواع نمودارها ، نمودارها و گزارش های رنگی نمایش می دهد.DatadogDatadog یک ابزار متریک سرور مبتنی بر عامل است. این برنامه از ادغام با سرورهای مختلف وب ، برنامه ها و سرورهای مختلف پشتیبانی می کند. سرویس داشبورد آن نمودارهای مختلفی را درباره نظارت بر زمان واقعی در زیرساخت ها ارائه می دهد.ELKELK  مجموعه ای از سه محصول منبع باز – Elasticsearch ، Logstash و Kibana است که همگی توسط شرکت Elastic ساخته و مدیریت می شوند. این امکان را به کاربران می دهد تا از هر منبع ، به هر فرمت ، داده را بدست آورند ، و سپس آن داده ها را در زمان واقعی جستجو ، تجزیه و تحلیل کنند.Cloud HostingAWSAWS یک بستر میزبانی وب است که توسط آمازون ایجاد شده است و راه حل های قابل انعطاف ، قابل اعتماد ، مقیاس پذیر ، آسان برای استفاده ، مقیاس پذیر و مقرون به صرفه را ارائه می دهد. با استفاده از این بستر ابری ، دیگر نیازی به نگرانی در مورد راه اندازی زیرساخت های فناوری اطلاعات نداریم که معمولاً زمان معقولی را برای راه اندازی آن می گیرد.AzureAzure یک سیستم عامل محاسبات ابری است که توسط مایکروسافت برای ایجاد ، استقرار ، آزمایش و مدیریت برنامه ها و خدمات از طریق شبکه جهانی مراکز داده خود طراحی شده است. خدمات ارائه شده توسط مایکروسافت آزور به صورت PaaS (Platform as a service) و IaaS (زیرساخت به عنوان یک سرویس) استGCPGoogle Cloud مجموعه کاملی از خدمات میزبانی و رایانش ابری عمومی است که توسط Google.it ارائه شده است. خدمات گسترده ای را برای محاسبات ، ذخیره سازی و توسعه برنامه هایی که از Google Hardware استفاده می کنند پشتیبانی می کند.Containerization/OrchestrationDockerDocker ابزاری برای ایجاد ، استقرار و اجرای برنامه ها با استفاده از کانتینر است. این کانتینر به توسعه دهنده این امکان را می دهد تا برنامه ای را با کلیه مؤلفه ها و زیرمجموعه های مورد نیاز مانند کتابخانه ها و سایر وابستگی ها بسته بندی کند و همه موارد را به صورت یک بسته واحد ارسال کند.KubernetesKubernetes یک سیستم ارکستر سازی کانتینر با منبع آزاد است که در ابتدا توسط گوگل طراحی شده است و اکنون توسط بنیاد رایانش ابری Cloud نگهداری می شود. این برای خودکارسازی استقرار برنامه ، مقیاس گذاری و مدیریت برنامه استفاده می شود. با سایر ابزارهای کانتینر و همچنین از جمله داکر کار می کند.https://enginedevops.com/2022/01/05/what-is-devops/</description>
                <category>enginedevops</category>
                <author>enginedevops</author>
                <pubDate>Fri, 24 Jun 2022 16:20:01 +0430</pubDate>
            </item>
            </channel>
</rss>