<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های شهروز جعفری</title>
        <link>https://virgool.io/feed/@shahrooze</link>
        <description>برنامه نویس</description>
        <language>fa</language>
        <pubDate>2026-06-10 12:57:10</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/47532/avatar/avatar.png?height=120&amp;width=120</url>
            <title>شهروز جعفری</title>
            <link>https://virgool.io/@shahrooze</link>
        </image>

                    <item>
                <title>تفکر سریع و کند</title>
                <link>https://virgool.io/@shahrooze/%D8%AA%D9%81%DA%A9%D8%B1-%D8%B3%D8%B1%DB%8C%D8%B9-%D9%88-%DA%A9%D9%86%D8%AF-fpv5upeblega</link>
                <description>توضیح نحوه فکر کردن انسان ها:ما از دو روش برای فکر کردن استفاده میکنیم:تفکری که به صورت اتوماتیک انجام می دهیم.برای مثال زمانی که عکس یک زن خشمگین را می بینیم به صورت اتوماتیک و بدون. فشار آوردن به خودمان متوجه می شویم که وی خشمگین  است.&lt;سامانه اول&gt;تفکری پر زحمت و که نیازمند صرف انرژی بسیار است.&lt;سامانه دوم&gt;سامانه یک, منبع سرچشمه دریافت ها و احساسات است و در واقع خیلی از انتخاب های ما بر اساس دریافت ها و احساساتی است که سامانه یک به سامانه دو منتقل میکند.قابلیت های سامانه یک بین ما و حیوانات مشترک هستند. به این نکته باید دقت کرد که برخی از فعالیت ها با تمرین و تکرار میتوانند به سامانه یک منتقل شوند.برای مثال ۲+۲سامانه یک میان چیزهای مختلف الگو شناسایی میکند برای مثال پایتخت کشور فرانسه را به پاریس پیوند می زند.یعنی تا به یاد فرانسه بیافتیم پاریس تداعی می شود.همه عملیات هایی که به سامانه دو ربط دارند نیاز به توجه دارند و در صورتیکه توجه از بین برود مختل می شوند.ما در لحظه میتوانیم به یک کار توجه مستقیم کنیم به همین دلیل در صورتیکه دو کار را انجام می دهیم که نیاز به تمرکز دارند نمیتوانیم از پس آن کار به خوبی بر بیاییم.مثلا در رانندگی هنگام سبقت گرفتن ممکن است لحظه ای صحبت مان را با فرد کناریمان قطع کنیم.تمرکز کامل به یک چیز ما ممکن است ما را نسبت به چیزهای دیگر نابینا کند. برای همین است که ممکن است بدیهیات را نبینیم و علاوه نسبت به درک اینکه بعضی از زمان ها نابینا هستیم غافل هم هستیم.سامانه یک و دو دائما با همدیگر صحبت میکنند و معمولا سامانه یک به سامانه دوم پیشنهاداتی را ارائه میدهد. معمولا سامانه یک به سامانه دو پیشنهاد میدهد و سامانه دو آن را به رفتار تبدیل میکند.زمانی که سامانه یک به سختی می افتد از سامانه دو کمک میخواهد که از ظرفیت پردازش آن استفاده کند.سامانه دو زمانی به کار می افتد که شما شگفت زده می شوید. مثلا وقتی گربه ای به جای میو میو واق واق کند.مخلص کلام این که بیشتر کارهای ما را سامانه اول انجام می دهد. اما وقتی به سختی میافتیم سامانه دو زمام امور را به دست میگیرد و حرف آخر را میزند.سامانه یک بسیار در انجام کارهای خود مهارت دارد و بیشتر از سامانه دو در حال انتخاب و انجام کارها است. ولی در سامانه یک خطاهای وجود دارد که باعث سو گیری می شود. همچنین سامانه یک را نمی توان خاموش کرد .سامانه دو مسئول خود کنترلی و نظارت بر خودمان است.ما قاعدتا نمی توانیم همیشه با سامانه دو فکر و عمل کنیم.سامانه یک خودکار است و خاموش کردن آن امکان پذیر نیست.چیزی که میتوانیم انجام دهیم شناسایی این گونه موقعیت ها توهم زا است و تلاش برای دوری جستن از خسارت های اینگونه توهم ها.منبع تفکر کند و سریع</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Tue, 23 Nov 2021 23:47:32 +0330</pubDate>
            </item>
                    <item>
                <title>سوگیری مسئولیت</title>
                <link>https://virgool.io/@shahrooze/%D8%B3%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%B3%D8%A6%D9%88%D9%84%DB%8C%D8%AA-erwhpixhtxwl</link>
                <description>فرض کنید در حال مشارکت در یک تیم هستید و از شما سوال شود چند درصد از مسئولیت های تیم را شما انجام می دهید؟یک آزمایش انجام دهید از افراد یک تیم سه تا شش نفره سوال بالا را بپرسید.احتمال اینکه به جوابی بیشتر از 100درصد برسید زیاد است.به عبارتی افراد میزان سهم خودشان را در قبول مسئولیت، بیشتر از سایر افراد تیم تخمین می زنند.دلیل این سوگیری صرفاً این نیست که افراد میخواهند اعتبار بیشتری از کارهای انجام شده را به نام خود بزنند(البته که امکان دارد بسیاری از افراد برای حفظ جایگاه و از عمد اعتبار بیشتری را از کار به خود نسبت دهند ولی ما فرض را بر این گذاشته ایم که افراد یک تیم به دنبال این موضوع نیستند).در واقع موضوع میزان دسترسی به اطلاعات در دسترس است.به عبارتی ما به اطلاعات و کارهایی که خودمان در یک تیم انجام می دهیم بیشتر دسترسی داریم تا به کارهایی که افراد دیگر تیم انجام میدهند.بنابراین در تخمین اینکه چه کسی در تیم موثرتر است یا چه کسی بار اصلی تیم را به دوش می کشد دچار خطا می شویم.حتی وقتی افراد نیت خوبی دارند معمولا ارزش بیشتری برای فعالیت های خود و ارزش کمتری برای فعالیت های دیگران قائل هستند.رید هافمن(موسس لینکدین)سوگیری مسئولیت یکی از دلایل شکست تیم ها است.خیلی نیاز به توضیح ندارد که وقتی اعضای تیم همیشه به این فکر کنند که بیشتر از بقیه کار میکنند درواقع همیشه در حال جنگ با خودشان و هم تیمی هایشان هستند.مهمترین راهکار متعادل کردن قضاوت های خودمان، تمرکز بر روی فعالیت هایی است که افراد دیگر در تیم انجام می دهند.به عبارتی با کار آنها آشنا شدن.ریزه کاری کارهای آنها را متوجه شدن و حتی تهیه لیستی از کارهایی که اعضای دیگر تیم انجام می دهند.منبع: https://nashrenovin.ir/product/give-and-take-book-adam-grant/ </description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Tue, 20 Apr 2021 09:27:13 +0430</pubDate>
            </item>
                    <item>
                <title>تجاوز به توجه</title>
                <link>https://virgool.io/@shahrooze/%D8%AA%D8%AC%D8%A7%D9%88%D8%B2-%D8%A8%D9%87-%D8%AA%D9%88%D8%AC%D9%87-y8nezddswxub</link>
                <description>زمانیکه در حال استفاده از یک تکنولوژی هستیم اگر آن تکنولوژی در راستای حمایت از ارزش های ما کار نکند در واقع در حال خرج کردن عمرمان هستیم.&quot;مینیمالیسم دیجیتال&quot;زمانیکه در حال چرخ زدن در وبسایت های خبری و یا شبکه های اجتماعی هستیم و ناخودآگاه مدت زمان زیادی را در آن ها می گذرانیم در واقع در حال هزینه کردن توجه و زمان مان هستیم که بزرگترین دارایی هر فرد محسوب می شود.این موضوع هر چه به جلو می رویم رنگ جدی تری به خود میگیرد.این که بتوانیم تکنولوژی را آزادانه انتخاب و استفاده کنیم حق طبیعی هر انسان است ولی به روشهای  مشخص و برنامه ریزی شده ای در حال از دست دادن این حق هستیم.سالانه میلیارد ها دلار توسط شرکت های تکنولوژیک هزینه می شود که پایه ای و اساسی ترین نیاز های ما را هدف قرار دهند تا از طریق آن بتوانند به راحتی ما را به خودشان وابسته کند.به نیاز پذیرفته شدن در جمع فکر کنید.این حس از ابتدا با انسان ها همراه بوده . نبود پذیرش اجتماعی برای هر فرد گران تمام می شده و باعث طرد شدن وی از جامعه می شده.با هر لایکی که میگیریم این حس در ما تقویت می شود.توجه ما دائماً مورد حمله قرار میگیرد.چه زمانیکه در حال چرخ زدن در یک وبسایت خبری هستیم و چه زمانیکه یک notification روی موبایل مان دریافت می کنیم.سوالی که ممکن است برایتان پیش بیاید این است که این موضوع چگونه رخ می دهد؟اولین موضوعی که ممکن به آن توجه نکنید این هست که افراد در وب به راحتی شناسایی می شوند.این به معنای آن نیست که اسم و فامیل و یا اطلاعات شخصی شما در دسترس قرار می گیرند.خیر.این بدان معناست که به راحتی قابل دسته بندی شدن هستیم.برای مثال اینستاگرام خیلی بیشتر از چیزی که فکرش کنید شما را می شناسد.بنابراین وقتی من سلیقه شما را بدانم.بدانم به چه چیزی علاقه دارید و به چه چیزی کمتر علاقه دارید.مکان شما را بدانم.تایم زون شما را بدانم.علاقه مندی دوستان شما را بدانم و ... .آیا کار سختی است که محتوایی برای شما آماده کنم که شما را درگیر خودم کنم؟دومین موضوع تبلیغاتی هستند که تا جای ممکن شخصی سازی شده اند مناسب شما نمایش داده می شوند.این تبلیغات آن قدر با شما هماهنگی دارند که خواسته و ناخواسته درگیرشان خواهید شد.این موضوع نیز از طریق ردپایی که از خود در اینترنت به جای می گذاریم در حال انجام است.برای مثال Google AdSense پارامتر های متفاوتی را برای نمایش یک تبلیغ استفاده می کند و تبلیغی که به من نمایش می دهد با چیزی که شما در یک سایت مشاهده می کنید ممکن است متفاوت باشد.پس به زبان دیگر تبلیغات به راحتی به توجه ما حمله می کنند.سومین موضوع که قبل تر هم به آن اشاره شد نحوه طراحی تکنولوژی های جدید است که تا جای ممکن ما را درگیر خودشان کنند.از تمام تکنیک های روانشناسی و A/B Test های متفاوت استفاده می شود که رفتار کاربران پیش بینی و بیشتر درگیر خودشان کنند.ممکن است سوال این سوال پیش بیاید که  چه اشکالی در این وابستگی و دزدیدن توجه وجود دارد؟مهمترین اشکالی که مطرح می شود عمر ما هست.در واقع این که بابت بدست آوردن چه ارزشی عمرمان خرج می کنیم؟هدفم در این مطلب دادن راه حلی خاص نبود بلکه طرح صورت مسئله ای بود که مدتی است درگیرش هستم.منابعی که برای نوشتن این مطلب خواندم:کتاب قلابکتاب آینده نزدیککتاب مینیمالیسم دیجیتالپرونده کتاب: تاجران توجه؛ تلاشی حماسی برای ورود به مغزها</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Wed, 01 Apr 2020 16:54:29 +0430</pubDate>
            </item>
                    <item>
                <title>نقشه ذهنی مدیریت اثر بخش</title>
                <link>https://virgool.io/@shahrooze/%D9%86%D9%82%D8%B4%D9%87-%D8%B0%D9%87%D9%86%DB%8C-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D8%A7%D8%AB%D8%B1-%D8%A8%D8%AE%D8%B4-nacchvh8vcgd</link>
                <description>نقشه ذهنی زیر را از یکی از مقاله های Harvard Business Review ایجاد کردم.امیداوارم برای شما هم مفید باشه.مثل باقی نقشه های ذهنی که تا به امروز به اشتراک گذاشته ام برداشت خودم را نیز به نقشه اضافه کرده ام.</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Fri, 27 Mar 2020 13:40:37 +0430</pubDate>
            </item>
                    <item>
                <title>سوسیالیسم دیجیتال</title>
                <link>https://virgool.io/@shahrooze/%D8%B3%D9%88%D8%B3%DB%8C%D8%A7%D9%84%DB%8C%D8%B3%D9%85-%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84-j79zhobev80r</link>
                <description>گروهی عقیده دارند که ما به سمت سوسیالیسم دیجیتال در حال حرکت هستیم.در این پست سعی خواهیم کرد این دیدگاه را بیشتر بررسی کنیم.هدف سوسیالیسم لغو مالکیت خصوصی بر ابزارهای تولید و برقراری مالکیت اجتماعی بر ابزارهای تولید است. این «مالکیت اجتماعی» ممکن است مستقیم باشد، مانند مالکیت و ادارهٔ صنایع توسّط شوراهای کارگری، یا غیرمستقیم باشد، از طریق مالکیت و ادارهٔ دولتی صنایع…&quot;ویکی پدیا&quot;در پست قبلی در رابطه با از بین رفتن مالکیت صحبت کردیم.البته جنس این مالکیت،مالکیت روی ابزار تولید نبود و بیشتر تمرکزمان روی سرویس گرفتن بود.اگر بخواهیم واقع بینانه تر به موضوع مالکیت نگاه کنیم متوجه خواهیم شد که مالکیت ابزار تولید نیز در بسیاری از زمینه ها در حال از بین رفتن است.گیت هاب را در نظر بگیرید.هزاران برنامه نویس اکثراً به صورت داوطلبانه و بعضاً بدون دستمزد روی پروژه های مختلف همکاری می کنند.سود حاصل از این پروژه ها (معمولاً در حد رایگان) در اختیار همه افراد قرار میگیرد.در واقع مالکیت ابزار تولید ارزش(در این کیس خاص) در حال حاضر در دست یک نفر یا یک گروه نیست.این موضوع باعث تمرکززدایی شده.تمرکززدایی هم باعث بوجود آمدن ارتباطات گسترده ای شده است که از محصولات آن میتوان به خلاقیت و اجایل بودن در تولید اشاره کرد.یک پروژه روی گیت هاب را شروع میکنید و فقط کافی است پروژه برای یک نفر یا گروهی از افراد جذاب باشد.در این موقعیت شما ارتشی از افراد را دارید که حاضرند بدون دستمزد روی پروژه ای که مالکیت آن به اشتراک گذاشته شده است کار کنند.وقتی مردم ابزار تولید را خودشان در اختیار دارند،به صورت رایگان در راستای هدفی مشخص کار می کنند و از دستاوردهای خودشان بهره می برند غیر منطقی نیست که این موضوع را سوسیالیسم جدید بنامیم.به یوتویوب فکر کنید.چند در صد از محتوای این شبکه توسط مالکان این سرویس تولید میشود؟چیزی نزدیک به صفر.هزاران ساعت ویدئو توسط افراد مختلف اکثراً به صورت رایگان ، روزانه تولید و به اشتراک گذاشته می شود.در واقع کنش اجتماعی در حال رخ دادن است.به صورت غیر متمرکز مردم شروع به کار رایگان می کنند برای اینکه ارزش درست کنند.ویکی پدیا را مرور کنیم.همه چیز در ویکی پدیا در حال تغییر است:محتوا و بستر. حتی سورس کد آن را نیز خود افراد به صورت اشتراکی توسعه می دهند.به عبارتی محتوا،بستر و حتی زیر ساخت های ویکی پدیا توسط جامعه به صورت رایگان و توسط افرادی کاملاً متفاوت توسعه داده می شود.پس می توان گفت که ما به سمت سوسیالیسم دیجیتال در حال حرکت هستیم.البته این سوسیالیسم با چیزی که زمان پدربزرگانمان مطرح بود تفاوت های فاحشی دارند.این سوسیالیسم در آمریکا شروع به رشد کرده و به سرعت به کل دنیا در حال گسترش است.ما در مزارع گروهی در حال کار نیستیم در جهان گروهی فعالیت می کنیم.به جای بیل و کلنگ با اسکریپت ها و API ها سر و کله می زنیم.کسی در این جامعه پیشرفت می کند که کار درست را انجام بدهد.سوسیالیسم دیجیتال از بالا به پایین نیست.به شدت در تغییرات چابک عمل می کند. https://virgool.io/@shahrooze/%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%D9%86%D8%B2%D8%AF%DB%8C%DA%A9-%D9%88%D9%82%D8%AA%DB%8C-%D9%85%D8%A7%D9%84%DA%A9%DB%8C%D8%AA-%D8%B1%D9%86%DA%AF-%D9%85%DB%8C-%D8%A8%D8%A7%D8%B2%D8%AF-fkmj94pgybz4  https://virgool.io/@shahrooze/%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%D9%86%D8%B2%D8%AF%DB%8C%DA%A9%D9%88%DB%8C%DA%98%DA%AF%DB%8C-%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%D8%A8%D9%87-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%A8%D9%88%D8%AF%D9%86-%D8%A8%D8%B1%D8%AA%D8%B1%DB%8C-%D8%AF%D8%A7%D8%B1%D9%86%D8%AF-paxswuafllqr  https://virgool.io/@shahrooze/%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%D9%86%D8%B2%D8%AF%DB%8C%DA%A9-ptgtmbfiaq64 </description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Thu, 19 Mar 2020 23:57:20 +0330</pubDate>
            </item>
                    <item>
                <title>آینده نزدیک &quot;وقتی مالکیت رنگ می بازد&quot;</title>
                <link>https://virgool.io/@shahrooze/%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%D9%86%D8%B2%D8%AF%DB%8C%DA%A9-%D9%88%D9%82%D8%AA%DB%8C-%D9%85%D8%A7%D9%84%DA%A9%DB%8C%D8%AA-%D8%B1%D9%86%DA%AF-%D9%85%DB%8C-%D8%A8%D8%A7%D8%B2%D8%AF-fkmj94pgybz4</link>
                <description>5 سال قبل اگر میخواستیم آخرین موسیقی یک هنرمند را قانونی گوش کنیم تنها راه ،خرید سی دی آن هنرمند بود.امروزه تقریباً اکثر مردم از طریق اپ های استریم موزیک به موسیقی گوشی می دهند و معمولا کسی موزیک دانلود نمی کند.دسترسی آنی به محتوا ، عدم نیاز به ذخیره و همچنین راحتی در دسترسی را شاید بتوان از دلایل مهم این موضوع دانست.این پاردایم شیفت که در ایران هم آغاز شده باعث شده مالکیت نقش کمتری را ایفا کند و شاید بتوان گفت که مالکیت در حال حاضر اولویت کمتری از دسترسی دارد.برای مثال سرویس های استریم فیلم هم به همین صورت هستند.یعنی به جای اینکه من سی دی آخرین قسمت سریال مورد علاقه ام را بخرم هزینه ماهیانه به فیلیمو میدهم و آن را می بینم.به عبارتی اینترنت بستری برای ارائه سرویس های آنی درست کرده که باعث شده مالکیت در مقابل دسترسی سریع حرفی برای گفتن نداشته باشد.تغییر، از مالکیتی که میخرید ،به دسترسی که مشترکش می شوید از روندهایی است که به سرعت به سمت آن حرکت می کنیم.ممکن است زمانی که شما مالکیت یک محصول در اختیار را ندارید از تمام مزایای آن نتوانید استفاده کنید،اما نبود مالکیت نیز خود مزایایی دارد.برای مثال ذخیره و مدیریت کردن فیلم ها و موسیقی ها نیاز به صرف زمان و هزینه بعضاً بالایی دارد،شما با اجاره کردن آن را پرداخت نمی کنید.اجاره دادن چه محصول و چه سرویس از روندهای آینده ما خواهد بود.البته اجاره دادن سرویس از بسیاری از جهات بازی برد برد است:اجاره دادن محصول نیاز دارد که اجاره دهنده به ازای هر نفر که درخواست کالایی را دارند یکی از آن را تهیه کند.این درحالی است که اجاره سرویس به این موضوع نیازی ندارد و به عبارتی مقیاس پذیر است.محصول اجاره ای به مرور زمان فرسوده می شود این درحالی است که شما می توانید بارها و بارها در اپل موزیک ،یک موزیک خاص را با همان کیفیت اولیه گوش دهید.سرویس را می توان شخصی سازی کرد. برای مثال spotify بعد از مدتی سلیقه شما را متوجه می شود و شروع به پیشنهاد موسیقی هایی می کند که احتمالاً شما به آن ها علاقه بیشتری دارید.بنابراین رفتن به سمت ارائه سرویس های اجاره ای برای کسب و کارهای نوپا می تواند ایده خوبی باشد.هر چند ممکن است که اکثر آن ها شکست بخورند اما ایده آن ها ادامه پیدا می کند و رشد می کند.همچنین ساخت سرویس(خدمت) از ساخت محصول ساده تر است.مطالب دیگر از کتاب آینده نزدیک: https://virgool.io/@shahrooze/%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%D9%86%D8%B2%D8%AF%DB%8C%DA%A9%D9%88%DB%8C%DA%98%DA%AF%DB%8C-%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%D8%A8%D9%87-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%A8%D9%88%D8%AF%D9%86-%D8%A8%D8%B1%D8%AA%D8%B1%DB%8C-%D8%AF%D8%A7%D8%B1%D9%86%D8%AF-paxswuafllqr  https://virgool.io/@shahrooze/%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%D9%86%D8%B2%D8%AF%DB%8C%DA%A9-ptgtmbfiaq64 </description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Sun, 08 Mar 2020 15:29:55 +0330</pubDate>
            </item>
                    <item>
                <title>نکاتی در رابطه با Prometheus</title>
                <link>https://virgool.io/@shahrooze/%D9%86%DA%A9%D8%A7%D8%AA%DB%8C-%D8%AF%D8%B1-%D8%B1%D8%A7%D8%A8%D8%B7%D9%87-%D8%A8%D8%A7-prometheus-prometheus-ysuaxdjlxsq5</link>
                <description>چرا به یک سیستم مانیتورینگ نیاز داریم؟اطمینان از دسترس بودناطمینان از سریع بودناطمینان از کارکرد درستاطمینان از کارآمد بودنو ...انواع مانیتورینگ ها:Check base monitoring :اجرای اسکریپت دربازه های مشخص و سنجش سلامت سرویسوجودش از نبودش بهتر است.پایش سیستم به صورت black boxتمرکز این مانیتورینگ به سلامت سیستم در لحظه حال است.در محیط های پیچیده به مشکل میخوریم.مثلا محیط های عملیات داینامیک.Log and events:رکورد کردن تمام لاگ ها مربوط به هر رخداد. برای مثال لاگ های آپاچی سرور.ذخیره جزئیات زیاد.راحتی در راه اندازی.پیاده سازی گران. به خاطر مسائلی از قبیل استوریج و ...برای مثال اگر یک میلیون رکوئست در ثانیه را بخواهیم ذخیره کنیم نیاز به زیر ساخت عظیمی خواهیم داشت.عدم امکان پایش یک رکوئست در کل استک.منظور از کل استک یعنی از زمانی که رکوئست به دست اولین نود ما میرسد تا زمانی که جواب آن را می دهیم.Metrics/time series:پایش مقادیر مجزای عددی در زمان های مشخص. برای مثال دما،میزان رمارزان تر از نوع Log and events است.برای پایش سلامت سرویس مناسب تر از باقی مانیتورینگ ها است.راحتی در راه اندازی.این نوع مانیتورینگ داده های کمتری برای دیباگ کردن به ما می دهد.عدم امکان پایش یک رکوئست در کل استک.Request tracing:پایش یک رکوئست در کل استک.توانایی پایش یک رکوئست.امکان دیباگ کردن یک رکوئست.هزینه پیاده سازی بالامناسب برای مکان هایی که از مدل رکوئیستی استفاده می کنند.مناسب برای مکان هایی که از مدل رکوئیستی استفاده می کنند.Prometheus:یک سیستم مانیتورینگ بر اساس Metrics/time series است که توسط SoundCloud&#x27;s توسعه داده شده است. به این تربیت که تمام داده ها از تمام استک جمع آوری و ذخیره می شود. روی این داده ها میتوانیم هشدار های مورد نیازمان را تعریف کنیم. همچنین می توانیم داشبورد های متفاوتی ایجاد کنیم و یا حتی روی آن ها کوئری بگیریم. این سیستم برای محیط های ابری و داینامیک(container base) ایجاد شده است.Prometheus از google borgmon ( سیستم مانیتورینگ داخلی گوگل) الهام گرفته است.Prometheus برای مانیتور کردن محیط های داینامیک ،محیطهایی که به صورت زمانبندی شده پراسس ها و یا کانتینر هایی را ایجاد می کنند و از بین می برد (از طریق service discovery) مناسب است.Prometheus چه چیزی نیست؟Logging or tracingامکان تشخیص اتوماتیک رفتار مشکوکScaling or durable storageیک شرکت مجزا نیستمعماریPrometheus  به صورت کتابخانه به برنامه های ما importمی شود و یک http endpoint ایجاد می کند که از طریق آن متریک ها را به صورت pulling جمع آوری می کند.در واقع به صورتwhitebox  مانیتورینگ انجام می شود.راه حلی که در بالا توضیح داده شد برای زمانی است که بخواهیم برنامه ای که توسعه دادیم را مانیتور کنیم .Prometheus این امکان را می دهد که به وسیله exporter ها لینوکس و یا mysqlو ... را نیز مانیتور کنیم.Exporter در واقع کارش جمع آوری متریک ها و تبدیل آن ها به زبان Prometheus است.شکل پایین نمای کلی از جمع آوری متریک ها توسط Prometheus را نشان می دهد و همانطور که پیشتر نیز گفته شد Prometheus از pulling استفاده می کند.همانطور که مشاهده می کنید امکان استفاده از ماژول های مختلف برای موضوعاتی از قبلی مدیریت هشدار ها و یا دشبورد و حتی اتوماتیک سازی وجود دارد.Prometheus داده هایش را به صورت time series نگهداری می کند.Identifier یعنی چه متریکی + یک آرایه ای از(زمان و مقدار )را ذخیره می کند.Prometheus برای کوئری گرفتن روی داده از promQL استفاده می کند.از نظر محیط اجرایی Prometheus به خیلی ساده اجرا می شود:</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Fri, 28 Feb 2020 21:24:36 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه یک بنیان گذار بزرگ شویم؟</title>
                <link>https://virgool.io/@shahrooze/%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D8%A8%D9%86%DB%8C%D8%A7%D9%86-%DA%AF%D8%B0%D8%A7%D8%B1-%D8%A8%D8%B2%D8%B1%DA%AF-%D8%B4%D9%88%DB%8C%D9%85-w4dz8ko3rhmc</link>
                <description>نکته:این مطلب چکیده ای از درس &quot;چگونه یک بنیان گذار بزرگ شویم؟&quot; است.این کلاس را Reid Hoffman موسس لینکدین برگزار کرده است.نیازمندی ها و توانایی های یک بنیانگذار:تیمنیاز به تیم دو یا سه نفرهتیم باید طوری باشد که مهارت های اعضای آن مکمل یکدیگر باشنددر زمان بروز مشکلات چند نفری راحت تر می توانیم مشکلات را پیدا و حل کنیمنیاز است که شریکی پیدا کنیم که بتوانیم به آن اعتماد داشته باشیممکانامکان در ارتباط بودن با قدرتمند ترین شبکه ها مرتبط با اهدافماننیازی نیست که حتما در سیلیکون ولی شرکت تاسیس کنیدچه شبکه هایی از کار ما حمایت می کنند؟ باید سعی کنیم نزدیک آن ها کار را شروع کنیمیک دنده درست بودنابتدا باید مد نظر داشته باشیم که از افراد باهوش نظر سنجی کنیماگر ایده ای داریم که همه با آن مخالف هستند نیاز است که از خودمان بپرسیم چه چیزهایی هست که من میدانم ولی دیگران آن را نمیدانندباید در نظر داشته باشیم چرا باقی افراد با ما مخالفت می کنند؟انعطاف پذیر بودنقاطع بودنپرهیز از حاشیهشناسایی مشکل دقیقریسک پذیر بودنتوانایی تقسیم بندی کارهانیاز سنجیپیدا کردن محصولات متناسب با نیاز مشتریان و یا پیدا کردن مشتریان با توجه به نیازی که محصولمان آن را برطرف می کندتوانایی قرار دادن افراد در کنار یکدیگر به منظور رسیدن به هدف مشخصتوانایی یادگیری و سازگاریتوانایی تعیین یک هدف مشخصتوانایی بدست آوردن داده های مورد نیاز از تمامی منابعنکته: باید بدانیم که داشتن یک منحنی رشد تدریجی در کسب و کار بسیار ارزشمند است.چه زمانی باید خودمان کار را انجام دهیم چه زمانی باید کسی را برای انجام کاری استخدام کنیم؟هر دو. این بدان معناست که باید هم به کسان دیگر کار را واگذار کنیم و هم خودمان انجام دهیم.ایمان داشته باشیم یا ترس؟هم به هدف ها ایمان داشته باشیم و هم به نقد ها و نظرات منفی گوش بدهیم و فکر کنیم که آیا این ها روش رسیدن به هدف من را تغییر خواهند داد؟تمرکز روی مسائل داخلی(محصول و هدف) یا تمرکز روی مسائل خارجی(رقبا، شبکه سازی)باید روی هر دو تمرکز کرد و بتوانیم استراتژی را در صورت لزوم تغییر دهیم. بعضی وقت ها روی مسائل داخلی و بعضی وقت ها روی مسائل خارجی می بایست تمرکز کنیم.در واقع بالانسی از هر دو با توجه به شرایط.آیا باید با تصورات و آرمان ها پیش برویم و یا با داده ها؟داده ها زمانی بدست می آیند که ابتدا بر اساس آرمان ها و تصورات خودمانعمل نیمک. داده ها ممکن است که منفی باشند ولی نباید باعث تغییر آرمان و اهداف شوند بلکه فقط می بایست نحوه رسیدن به هدف مان را تغییر دهند. داده ها در چارچوب یک هدف بدست می آیند.آیا کارآفرینان ریسک پذیر هستند؟کارآفرینان می بایست ریسک پذیر باشند زیرا بزرگترین فرصت های زندگی آنهایی هستند، که با ریسک همراه هستند. ولی اصل موضوع این است که حاضریم چه ریسک هایی را بپذیریم. پذیرفتن ریسک درست و حداقل رساندن ریسک های دیگر از هنر کارآفرینان است.داشتن اهداف بلند مدت یا حل مشکلات موجود؟باید بین این دو حرکت کنیم. داشتن هدف بلند مدت کمک می کند که اگر روزی از ریل خارج شدیم مجدد به آن برگردیم. همچنین باید برای حل مشکلی که روبروی مان قرار گرفته نیز تلاش کنیم. داشتن هدف بلند مدت و شکستن آن به اهداف کوتاه مدت اجرایی.آیا در آینده یک موسس بزرگ خواهیم شد؟آیا نیازمندی های زیر را داریم؟داشتن محصول کاربردیمهارت در هدایت شبکهتوانایی قانع کردن دیگرانتشخیص اینکه آیا در مسیر درست قرار گرفته ایم؟</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Thu, 27 Feb 2020 23:32:19 +0330</pubDate>
            </item>
                    <item>
                <title>درک ما از اینترنت</title>
                <link>https://virgool.io/@shahrooze/%D8%AF%D8%B1%DA%A9-%D9%85%D8%A7-%D8%A7%D8%B2-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA-wy6aexbkwge6</link>
                <description>اینترنت به بستری تبدیل شده که به راحتی می تواند انتظارات و تصمیمات ما را کنترل کند.وقتی از چیزی خبر نداریم دل نگران آن نمی شویم حریم خصوصی دقیقاً مثالی از این واژه است.همان طور که به راحتی می توانیم داده هایی را که به آن نیاز داریم بدست آوریم،اینترنت نیز می تواند از ما داده بدست آورد.منظور از اینترنت هم شرکت های بزرگ مثل گوگل و فیسبوک هستند و هم رد پایی که از خودمان در سایت ها به جای می گذاریم.اینترنت پر است از sockpuppet ها.sockpuppet یک هویت جعلی است که مردم را به پذیرش ایده یا اطلاعاتی خاص واداری می کند.یکی از این نمونه های این هویت ها مدیران رستوران و یا کافه هایی هستند که خودشان و کارمندانشان به نفع رستورانشان در سایت ها نظر می دهند و مطلب می نویسند.و یا نویسندگانی که در آمازون با نام های جعلی زیر کتاب هایشان نظر میدهند.دولت چین در سال 2013 متهم شد که با به کارگیری 100ها اکانت توییتری سعی کرده بود مقاصد تبلیغاتی خودش به عمل برساند.ما در اینترنت راحت تر حقایق را نادیده میگیریم.دولت ها در اینترنت سرمایه گذاری عظیمی کرده اند.آن ها از این طریق سعی می کنند جامعه را مدیریت کنند.دیدگاه های سیاسی خودشان را به مردم تفهیم کنند حتی اگر حقایق را نادیده بگیرند.دولت ها برای حفظ بقای خود،ایجاد نظم و امنیت،جلوگری از هراس و کاهش مرارت ها رو به گفتن دروغ می آورند.این دورغ ها را پشت سر هم ادامه میدهند و دیگر نمی توانند جلوی خود را در دروغ گفتن بگیرند.این موضوع مختص به ایران یا آمریکا نیست و اگر نظارتی وجود نداشته باشد این کار همینطور ادامه خواهد یافت و جامعه تا مرز فروپاشی خواهد رفت.هنگامی که در اینترنت گشت گذار می کنیم باید به شدت مراقب باشیم.sockpuppet ها همه جا در آن حضور دارند و سعی می کنند نظرات و عقیده خودشان را به ما تفهیم کنند.ما در حالی در اینترت می چرخیم که در حالت پذیرندگی هستیم.یعنی اطلاعات را جذب می کنیم حتی بدون آن که روی آن ها تفکر کنیم.این باعث می شود که به راحتی خواسته هایمان دستکاری شود.چالش کنونی ما این است که نباید اجازه دهیم ما به ظرفی تبدیل شویم پر از دیدگاه های دیگران.صرفاً نباید دانلود کننده داده در مغزمان باشیم.باید بتوانیم به دید انتقادی به موضوعاتی نگاه کنیم که از اینترنت دریافت می کنیم.این باعث خواهد شد که نه تحت تاثیر کذب قرار بگیریم و نه دنبال چیزی باشیم که ما را تایید کنند.زیرا به صورت ذاتی به دنبال چیز هایی هستیم که بتوانند دانسته های قبل مان را تایید کنند.منابع:اینترنت ما</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Thu, 27 Feb 2020 19:24:40 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه به DevOps دست یابیم</title>
                <link>https://virgool.io/@shahrooze/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A8%D9%87-devops-%D8%AF%D8%B3%D8%AA-%DB%8C%D8%A7%D8%A8%DB%8C%D9%85-t898tpsxyy8p</link>
                <description>هدف دوآپس کم کردن زمان چرخه تحویل ارزش به مشتری و یا کاربر نهایی است و همانطور که در مطالب قبلی نیز ذکر شد دوآپس یک ابزار و یا یک تیم نیست و متشکل از فرایند ها،افراد و ابزارها است.در ادامه لیستی از مواردی که برای رسیدن به مفهوم دوآپس به ما کمک خواهند کرد را نام خواهیم برد.Continuous Integration:اتوماتیک بیلد شدن کدها  و اجرا شدن تست ها هر زمانی که یک نفر از تیم کدی را روی سورس کنترل کامیت کند.این کار به منظور یافتن هر چه سریعتر مشکلات حتی قبل از پابلیش روی محیط های تستی خواهد بود.Continuous Delivery:رویکردی در توسعه نرم افزار که بتوانیم در آن هر زمان که نیاز بود ،نرم افزار را در محیط های تستی و یا عملیات انتشار دهیم.Version Control:به تیم ها کمک می کند که در هر نقطه ای از دنیا که هستند بتوانند به صورت موثر،در فرایند توسعه قرار بگیرند.کار اصلی ورژن کنترل ،نگه داشتن تغییرات و سوابق آنها روی یک فایل و یا یک سری از فایل ها است.Agile planning :تکنیکی که در آن برنامه ریزی به صورتی است که کارها به صورت ایزوله در زمانبندی مشخص و با توجه به ظرفیت تیم انجام می شوند.این کار باعث خواهد شد جوابگویی به تغییرات کسب و کار سریعتر انجام شود.Monitoring and Logging:پایش و ثبت داده های مورد نیاز از نحوه عملکرد نرم افزار به منظور مشخص کردن سلامت سیستم و سنجش فرضیه های کسب و کاری.این داده ها هم به کسب و کار کمک خواهد کرد که فرضیه ها و استراتژی خودشان را ارزیابی کنند و هم به تیم های فنی کمک خواهد کرد که اPublic and Hybrid Clouds:استفاده از زیرساخت های ابری به ما کمک خواهد کرد که هم بهره وریمان بالا تر برود هم در هزینه ها به شدت صرفه جویی خواهد کرد.Infrastructure as Code:مجموعه از روشهایی که در آن میتوانیم ساخت و حذف یک محیط را به صورت اتوماتیک انجام دهیم.فرض کنید تمام مراحل ساخت یک سرور و کانفیگ های آن به صورت کد نوشته شده و در داخل سورس کنترل کامیت می شود.در این صورت هر زمان نیاز به ساخت آن سرور باشد فقط کافی است کد مورد نظر را اجرا کنیم.Microservices:رویکردی در معماری نرم افزار است که در آن به جای ساخت یک سرور بزرگ و همه منظوره از چندین سرویس کوچک تر استفاده می کنیم.این کار باعث می شود در مقیاس پذیری بهینه تر عمل کنیم.Containers:در واقع کانتینر ها نقطه تکامل بعدی مجازی سازی هستند.آنها بسیار از مجازی سازی ساده سریعتر هستند و بسیار راحت تر ایجاد و پیکربندی می شوند.رسیدن به دوآپس با درد همراه است.مانند زمانی که به باشگاه بدن سازی می روید و سعی می کنید تمرینی را انجام دهید ابتدا به سختی و با قبول درد فراوان در آن تمرین مهارت پیدا خواهید کرد.در شروع رویکرد و روشهای دوآپس سعی کنید با آنهایی شروع کنید که تاثیر بیشتری را دارند.روی مواردی تمرکز کنید که با صرف وقت متناسب می توانید به نتایج بزرگتر و ملموس تری دست پیدا کنید.</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Sun, 16 Feb 2020 21:04:33 +0330</pubDate>
            </item>
                    <item>
                <title>آینده نزدیک&quot;ویژگی هایی که به رایگان بودن برتری دارند&quot;</title>
                <link>https://virgool.io/@shahrooze/%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%D9%86%D8%B2%D8%AF%DB%8C%DA%A9%D9%88%DB%8C%DA%98%DA%AF%DB%8C-%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%D8%A8%D9%87-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%A8%D9%88%D8%AF%D9%86-%D8%A8%D8%B1%D8%AA%D8%B1%DB%8C-%D8%AF%D8%A7%D8%B1%D9%86%D8%AF-paxswuafllqr</link>
                <description>چرا ما حاضریم برای چیزی که به رایگان قابل دسترسی است،پول پرداخت کنیم؟این سوال می تواند برای شروع یک کسب و کار سوال مناسبی باشد.در دنیایی که همه چیز را می توان به آسانی چند کلیک کپی کرد باید به دنبال ارزش هایی باشیم که کپی کردن آن ها کار ساده ای نیست.برای مثال اعتماد.اعتماد ذره ذره به دست می آید و قابل کپی کردن هم نیست.اعتماد را می تواند از ستون های ایجاد یک برند دانست.وقتی توانستیم برند سازی کنیم آن وقت می توانیم حتی برای کالایی که به رایگان هم پیدا می شود پول دریافت کنیم.در ادامه هشت ویژگی که به رایگان بودن ارجحیت دارد را توضیح خواهم داد.آنی بودن:ممکن است برای یک موسیقی،حتی با آن که می دانیم بعد از چند ساعت به راحتی قابلیت دانلود رایگان( یا با صرف مقدار کمی پول ) را دارد پول پرداخت کنیم.چون میخواهیم دسترسی آنی داشته باشیم.شخصی سازی:برای یک قرص آسپرین در حد رایگان هزینه می کنیم.اما برای یک قرص آسپرین که با  دی ان ای شما شخصی سازی شده باشد حاضریم تا چند صد دلار هزینه کنیم.تفسیر:نسخه های سیستم عامل را می توانیم به رایگان دانلود می کنیم.ولی برای تفسیر و گرفتن راهنمایی و پشتیبانی از آن به شرکتی مثل رد هت پول پرداخت می کنیم.اصالت :برای یک آلبوم موسیقی با امضای خواننده اصلی آن حاضریم پول بیشتری هزینه کنیم.چون اصالت آن را تضمین می کند.دسترس پذیری:به آی تیونز پول می دهیم زیرا موسیقی را برای ما دسترس پذیر می کند نه اینکه موسیقی را رایگان می کند.نمونه ایرانی مثل فیلیمو نیز به همین صورت است.تجسد :چرا به تئاتر می رویم؟چرا به کنسرت می رویم؟چون میخواهیم تجسد و واقعی بودن را تجربه کنیم.حمایت مالی:اگر بدانیم برای مثال از یک هنرمند با مبلغ ناچیزی می توانیم حمایت کنیم این کار را انجام میدهیم.زیرا این کار باعث برقراری ارتباط با شخص مورد حمایت ما می شود.یافته شدن:پول پرداخت می کنیم تا بتوانیم راحت تر چیزی که به آن نیاز داریم را بیابیم.برای مثال موتور جست جوی نت فلیکس به ما کمک می کند که بهترین فیلمی را که دوست داریم تماشا کنیم.منبع:آینده نزدیک نشر آموخته</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Tue, 11 Feb 2020 20:21:16 +0330</pubDate>
            </item>
                    <item>
                <title>آینده نزدیک &quot;بهتر شدن&quot;</title>
                <link>https://virgool.io/@shahrooze/%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%D9%86%D8%B2%D8%AF%DB%8C%DA%A9-ptgtmbfiaq64</link>
                <description>در حال مطالعه کتاب آینده نزدیک نوشته کلوین کلی هستم.این کتاب توسط نشر آموخته به فارسی ترجمه شده است.سعی خواهم کرد قسمت های مهم این کتاب را با شما به اشتراک بگذارم.&quot;آینده نزدیک&quot; سعی می کند ذهن ما را برای سال 2050 آماده کند.در واقع می کوشد که پیش بینی کند تا 30 سال بعد با چه آینده ای روبرو هستیم.بیشتر فناوری هایی که در سال 2050 به زندگی ما جهت می دهند هنوز اختراع نشده اند.این خبر خوبی است.زیرا می تواند مسیر های جدیدی را به کسانی که دوست دارند آینده را شکل دهند نشان دهد.ما به شکل اجتناب ناپذیری به سمت تکنولوژی های نوظهور در حال حرکت هستیم.ممنوع کردن یک چیز اجتناب ناپذیر همیشه و همیشه نتیجه عکس می دهد.در حال حاضر در دورانی زندگی می کنیم که همه چیز در حال تغییر است.همه چیز در حال بهبود است.ما در حال بهتر شدن هستیم.تمام چیزهایی که می شناسیم برای نگهداری از خودشان به نظم و ترتیب و انرژی خارجی نیاز دارند.پس نیاز به بهبود برای از بین نرفتن ضروری است.دنیا به سمت بهتر شدن رفته است.امروز صبح که از خواب بیدار شدید، به احتمال زیاد نرم افزارهای روی تلفن هوشمند شما،به صورت اتوماتیک بروز شده اند.در این بروزرسانی ها که به صورت روزانه می شود،همه چیز در حال بهتر شدن هستند.ما مجبور هستیم بروز شویم چه خودمان چه نرم افزارهای داخل گوشی درون جیبمان.هر چه بروزرسانی را به تعویق بیاندازیم هزینه بیشتری را پرداخت خواهیم کرد.زمان آن به سر رسیده که یک مهارت پیدا کنیم و چند سالی به آن دست نزنیم.ما روزانه باید بروز شویم.این قانون دنیای کنونی ماست.به عبارتی اگر به سمت جلو در حرکت نباشیم در واقع در حال پسرفت هستیم نه درجا زدن.امروز کمی بهتر از دیروز.این فرایند بهتر شدن به واسطه کند بودنش،ممکن است این حس را به آدمی القا کند که در حال در جا زدن است.زیرا نمیتوان این فرایند را که به آرامی حرکت می کند مشاهده کرد.این بهتر شدن در افق زمانی معنا پیدا می کند.برای مثال فرایند تکامل گوشی های هوشمندتان را در نظر بگیرید .و یا وضعیت بهتر شدن نرم افزار مورد علاقه تان را.بهتر شدن هر روزه چیزها ،ما را به تازه کارانی دائمی تبدیل خواهد کرد.هر روز باید یاد بگیریم و هر روز باید چیزهایی که بلدیم را دور بریزیم.اگر هم دیر بروز شوم هزینه خواهیم داد.در 30 سال آینده همه چیز به اینترنت وصل خواهد شد.همه چیز در اینترنت قابلیت جست جو پیدا خواهد کرد.به نسخه گذشته از هر چیزی می توان سفر کرد.اینترنت سعی خواهد کرد ما را پیش بینی کند.اتصال به اینترنت مثل برق خواهد شد و زمانی متوجه نبود آن می شویم که قطع است.این ها نمونه ای از بهتر شدن هستند.ما به سمت آرمان شهر حرکت نمی کنیم.به سمت ویرانشهر هم در حال حرکت نیستیم.به سمت شهری حرکت می کنیم که هر روز بهتر می شود.فقط کمی بهتر.به صورت روزانه مشکلاتی بوجود می آوریم و بعد سعی می کنیم آن ها را بهبود بدهیم.با این تفاوت که نرخ بهبودهایمان کمی بیشتر از ایجاد مشکلات جدید است.</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Fri, 07 Feb 2020 18:41:54 +0330</pubDate>
            </item>
                    <item>
                <title>Phoenix Server</title>
                <link>https://virgool.io/@shahrooze/phoenix-server-kit5mgedqrus</link>
                <description>کلمه Phoenix به معنای ققنوس است. ققنوس پرنده ایست که از خاکستر دوباره متولد می شود.در قسمت های قبلی در رابطه با سرورهایی صحبت کردیم که به مانند دانه های برف( Snowflake) مستقل بودند.به عبارتی هر سرور به صورت خاص کانفیگ شده و بعد از مدتی غیر قابل نگهداری می شدند.با گذشت زمان طبیعی است که تعداد زیادی کانفیگ در سرورها به صورت دستی اضافه می شود که باعث می شود نگهداری و هر گونه تغییر در سرور به شدت سخت شود.یکی از راه هایی که برای مقابله با این موضوع وجود دارد استفاده از نرم افزارهایی مثل Puppet و Chef که از طریق آن کانفیگ ها به صورت اتوماتیک از پیکربندی هایی که تعریف شده است سینک می شوند.به عبارتی هر کانفیگی که به صورت مجزا و تک منظوره(ad hoc)روی سرور اعمال شود از بین خواهد رفت.که البته با اینکه ممکن است محدودیت هایی را با خود به همراه بیاورد ولی دست آخر در نگهداری و تغییرات کاربردی خواهد بود و کمک خواهد کرد.</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Fri, 31 Jan 2020 18:21:15 +0330</pubDate>
            </item>
                    <item>
                <title>Snowflake Server</title>
                <link>https://virgool.io/@shahrooze/snowflake-server-dudvdlp50c5z</link>
                <description>واژه Snowflake Server به سرور هایی اشاره دارند که مانند دانه های برف به شکل منحصر به فردی ایجاد و نگهداری می شوند.به عبارتی ما با سرورهایی  در تماس هستیم که کانفیگ منحصر به فرد خودشان را دارند و اگر برای آنها مشکل پیش بیاید سرور دیگری به راحتی نمی تواند نقش آنها  سرور را بازی کند و کار عملیاتی را انجام دهد.ممکن است بتوانیم از طریق گرفتن image از سرورها یک سری از این مشکلات را حل کنیم ولی باز هم مشکلات به صورت کامل حل نخواهند شد و ممکن است المان های غیر ضروری در سرورها حفظ شوند.مشکل اصلی سرورهای Snowflake  زمانی رخ می دهد که نیاز داریم در این سرور ها تغییری اعمال کنیم.به مرور زمان این سرورها بسیار غیر قابل فهم خواهند شد.آپگرید کردن یک نرم افزار کوچک در داخل سرور ممکن است باعث بوجود آمدن مشکلات غیر قابل پیش بینی روی آنها شود.دقیقا نمی توانیم تشخیص دهیم که یک کانفیگ مشخص  از مدت ها قبل وجود داشته و در حال حاضر به آن نیاز نیست و یا خیلی ضروری و مهم است.برای نگهداری این سرور ها نیاز به انجام فرایند های دستی ،ایجاد داکیومنت های متفاوتی خواهیم داشت.یک راه برای جلوگیری از بوجود آمدن سرورهای Snowflake ایجاد کانفیگ های اتوماتیک است.این کار با ابزارهای متفاوتی از قبیل Puppet و Chef قابل انجام است.به کمک domain specific language میتوانیم محیط عملیاتی را تعریف یا به عبارتی define کنیم.مهمترین نکته ای که در اتوماتیک کردن کانفیگ ها وجود دارد ،صرفا این نیست که می توانیم یک سرور را مجدد ایجاد کنیم ،بلکه امکان درک درست پیکربندی ها را به ما می دهد.همچنین با توجه به اینکه این کانفیگ ها در فایل های متنی نگهداری خواهند شد می توانیم آن ها را در ورژن کنترل نگهداری کنیم و از مزیت آن نیز بهره مند شویم.اگر بتوانیم دسترسی مستقیم برای اعمال تغییرات را روی سرور ببندیم و آن را منوط کنیم به تغییر در فایل های پیکربندی،این امکان برای ما به وجود خواهد آمد که لاگ تمام تغییرات را داشته باشیم.رویکرد در انتشار نیز باید از اتوماتیک سازی تبعیت کند.نیاز است تمام تغییرات در ورژن کنترل اعمال شوند و به صورت تمام اتوماتیک انتشار پیدا کنند.یک راه برای جلوگیری از سرور Snowflake استفاده از مفهوم phoenix است.استفاده از ورژن کنترل برای تعریف کردن مشخصات و پیکربندی های سرور از قسمت های مهم Continuous Delivery است.</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Fri, 31 Jan 2020 18:16:08 +0330</pubDate>
            </item>
                    <item>
                <title>حریم خصوصی و درک ما از آن</title>
                <link>https://virgool.io/@shahrooze/%D8%AD%D8%B1%DB%8C%D9%85-%D8%AE%D8%B5%D9%88%D8%B5%DB%8C-%D9%88-%D8%AF%D8%B1%DA%A9-%D9%85%D8%A7-%D8%A7%D8%B2-%D8%A2%D9%86-i4wurmmgqfxn</link>
                <description>فردیت عبارت است از حق آزاد بودن از بعضی تجاوزات .این گفته مربوط به  کتاب &quot;اینترنت ما&quot; نوشته مایکل پاتریک لینچ است.فرض کنید به یک فروشگاه اینترنتی سر می زنید و بدون اینکه به کالایی نیاز داشته باشید آن را سفارش می دهید.در اینجا در تصمیم گیری خود آزاد بوده اید ولی استقلال در تصمیم گیری خود نداشته اید.چرا؟ساده است.نحوه تصمیم گیری شما دستکاری شده است.زمانی ما یک تصمیم گیری کامل انجام داده ایم که هم آن را آزادانه انتخاب کرده باشیم و هم مستقل تصمیم گرفته باشیم.برای زیر پا گذاشتن استقلال در تصمیم گیری دو راه وجود دارد.اول اینکه به زور متوسل شویم و یا مثلاً کنترل و تحریف ارزشهای یک شخص(چیزی شبیه به شستشوی مغزی)را در دستور کار قرار دهیم.راه ظریف تری وجود دارد که استقلال یک شخص را در تصمیم گیری نقض کنیم و آن هم این است که کلاً شخص را از جایگاه تصمیم گیرنده منفک کنیم.به عبارتی برای شخص تصمیم بگیریم.عموماً تجاوزاتی که به حریم خصوصی یک شخص می شود از جنس آن هایی هستند که به طور کلی شخص را از جایگاه تصمیم گیرنده به پایین می کشند.فرض کنید اگر من با اکانت تلگرام شما و بدون اطلاع لاگین کرده باشم و پیام های شما را بخوانم حتی اگر شما متوجه نشده باشید در حال ضربه زدن به شما هستم و اساساً توانایی شما را برای کنترل حریم شخصیتان از بین برده ام.در واقع شما دیگر در جایگاه تصمیم گیری نیستید که اطلاعات شما را چه کسی ببیند و چه کسی نبیند.اگر دقیقاً ندانیم که چه اطلاعاتی از ما در حال جمع آوری است در واقع کاملاً بی دفاع خواهیم بود زیرا به راحتی استقلال ما در تصمیم گیری نقض خواهد شد.کسب وکارهایی مثل آمازون و فیسبوک به شدت در حال جمع آوری داده های ما هستند.حتی دولت ها(نمونه بارز آن NSA) هم برای جمع آوری اطلاعات ما میلیون ها دلار هزینه می کنند.مورد دیگری که مهم است به آن اشاره شود این است که امنیت این اطلاعات در بسیاری از موارد به درستی تامین نمی شود.برای مثال می توان به رسوایی فیسبوک در انتخابات آمریکا و یا حتی در ایران نیز به دسترسی آزاد به دیتابیس یکی از شرکت های تاکسی اینترنتی اشاره کرد.یعنی حتی اگر خود شرکت ها نیز از اطلاعات شما سو استفاده نکنند!،این امکان وجود دارد که فرد (یا افراد) ثالثی به آنها دسترسی پیدا کنند و از آنها سواستفاده کند.این که از این اطلاعات در چه مسیری استفاده می شود صورت مسئله را تغییر نمی دهد.حتی اگر فرض کنیم که کسب و کارها برای اینکه بهترین ها را به ما پیشنهاد بدهند این اطلاعات را جمع می کنند و همچنین دولت ها نیز برای امنیت خودمان از آنها استفاده می کنند.این که یک شرکت متوجه شود که دقیقاً شما به چه محرک هایی، چه عکس العمل هایی نشان می دهید آن وقت به راحتی می تواند تصمیم های ما را تغییر دهد.این اطلاعات برای چه منظوری جمع آوری می شوند؟پیش بینی رفتار ما:مثلاً فروشگاه های اینترنتی از این طریق سعی می کنند خرید های بعدی ما یا سفارش های بعدی خودشان را حدس بزنند.کنترل ما:همانطور که بالاتر نیز عنوان شد سعی می کنند ما را کنترل کنند. گاهی با کم کردن استقلال در تصمیم گیری گاهی هم با سعی در تغییر ارزشهای ما.کسب قدرت:داده از جنس دانش است و دانش نیز از جنس قدرت.دست آخر همه آنها سعی خواهند کرد که تصمیم گیری های ما را تغییر دهند.استقلال در تصمیم گیری بخشی از بلوغ یک فرد است.در واقع کسب و کارها و دولت ها فردیت ما را زیر سوال می برند و ما را به اشیایی تنزل می دهند که می بایست آنها را کنترل کنند. و دوباره بر میگردیم به جمله فردیت عبارت است از حق آزاد بودن از بعضی تجاوزات .مسئله حریم خصوصی صرفاً این نیست که در اینستاگرام چه کسی عکس های ما را می بیند و چه کسی نمی بیند.استفاده ای از داده هایی که ما تولید می کنیم در حال انجام است که جایگاه ما را به شی تنزل می دهد و می تواند کاملاً تصمیم گیری های ما را تحت تاثیر قرار دهد.حال اینکه وابستگی به شرکت هایی که فردیت ما را سلب کرده اند آن قدر زیاد شده که نمی توانیم آنها را کنار بگذاریم.ولی باید به این نکته توجه داشته باشیم که سرویسها و نرم افزارهایی که روزانه به صورت رایگان توسط شرکت های متفاوت عرضه می شوند چه داده هایی را از ما جمع آوری می کنند.باید سعی کنیم محصول این شرکت ها نباشیم.باید مراقب باشیم که در ازای چه امکانی حاضریم اطلاعات خودمان را با این شرکت ها به اشتراک بگذاریم.بحث سر استفاده نکردن از محصولات و سرویسهای جدید نیست، بحث بر سر آگاهی به روابطمان با این سرویس هاست.روزانه تکنولوژی در حال بهبود زندگی ما است .این بهبود ها باعث تغییر می شوند.یادگیری روزانه الزامی شده است.چه بخواهیم چه نخواهیم هر روز سعی می کنیم از آخرین نسخه تلگرام ،واتس اپ و یا اینستاگرام استفاده کنیم که شب قبل بدون دانستن ما بروز شده و تغییر کرده است.دیگر نمی توانیم خودمان(نرم افزارهای گوشی،تلویزیون،ماشین و ...) را بروز نکنیم.بروز نکردن روزانه خودمان باعث خواهد شد در طولانی مدت هزینه بسیاری متقبل شویم و بزرگترین هزینه ای که خواهیم داد تنزل فردیت به شی است.منابع:اینترنت ما آینده نزدیک (درک 12 نیروی فناورانه که آینده مان را رقم می زنند)</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Thu, 09 Jan 2020 16:12:51 +0330</pubDate>
            </item>
                    <item>
                <title>فرایند آنالیز متن در Elasticsearch</title>
                <link>https://virgool.io/@shahrooze/%D9%81%D8%B1%D8%A7%DB%8C%D9%86%D8%AF-%D8%A2%D9%86%D8%A7%D9%84%DB%8C%D8%B2-%D9%85%D8%AA%D9%86-%D8%AF%D8%B1-elasticsearch-acowgwg8e9dm</link>
                <description>inverted index:Elasticsearch از ساختاری به اسم inverted index استفاده می کند.این ساختار برای سریعتر انجام دادن عمل full-text search ایجاد شده است. inverted index شامل تمام کلمات به همراه documentی است که در آن وجود دارد.برای مثال دو جمله زیر را در نظر بگیریدThe quick brown fox jumped over the lazy dogQuick brown      foxes leap over lazy dogs in summerحالا اگر کلمه quick brown برای جستجو به elastic-search ارسال شود با دو داکیومنت به صورت زیر مچ می شود.دو داکیومنت بالا مچ می شود ولی داکیومنت اولی بیشتر مچ هست ولی در حال حاضر داری مشکلاتی هستیم:Quick و quick یکسان هستندFox  و foxs همچنین dog  و dogs دارای ریشه های      یکسان هستند.Jumped و leap هم با اینکه دارای      ریشه یکسان نیستند اما معنای یکسان دارند.با توجه به مشکلات بالا +Quick +fox نمیتواند با داکیومنت خاصی مچ شود.نکته:&quot;+&quot; به معنای این است که کلمه حتما در داکیومنت وجود داشته باشد.quick fox و Quick foxes در دو داکیومنت وجود دارد ولی با توجه به کلمه بالا با هیچ داکیومنتی مچ نمی شود.اگر ما کلمات را normalize کنیم در این صورت ممکن است که درخواست کاربر با چیزی که واقعا در ایندکس وجود دارد یکسان نباشد ولی می تواند درخواست کاربر را مچ کند.با این تفاسیر اگر در کلمات تغییرات زیر اعمال شود جستجو می تواند بهتر انجام شود:Quick به صورت کوچک ذخیره شود.Foxes به fox  و همچنین dogs به dogتبدیل شودJumped و leap یکسان هستند بهتر است با jump ایندکس شوند.همچنان کوئری +Quick +fox جواب نمیدهد ولی +quick +foxThis process of tokenization and normalization is called analysis, which we discuss in the next section.Character filter:حذف اضافه و یا تغییر کاراکتر های را Character filter می گویند.برای مثال حذف htmlاز متن و همچنین تغییر کاراکتر های عربی و فارسی به انگلیسی(اعداد)Html strip character filterMapping character filterPattern replace filter  برای مثال گرفتن یک regex و حذف کاراکتر های مورد نظرTokenizer:شکستن جمله به توکن های مجزا که معمولا اشاره به کلمات دارد.Word oriented tokenizer شکستن جمله به کلمات.Letter tokenizer برای مثال کلمه I&#x27;m را به I,m تبدیل می کند.Lower case tokenizer مثل letter      tokenizer است ولی به حروف کوچک نیز تبدیل می کند.White space tokenizer شکستن کلمه به جمله وقتی به اسپیس      برخورد کرد.UAX URL Email TokenizerPartial word tokenizerStructured text tokenizerToken filter:گرفتن توکن ها از فاز Tokenizer و همچنین انجام lowercasing و حذف stopwords و اضافه کردن مواردی مثل synonyms و ...نکته این امکان وجود دارد که از analyzing api  به صورت مجزا استفاده کنیم.AnalyzersElastic search به همراه تعداد زیادی Analyzers آماده عرضه می شود:Standard AnalyzerSimple AnalyzerWhitespace AnalyzerStop AnalyzerKeyword AnalyzerPattern AnalyzerLanguage AnalyzersFingerprint Analyzerنکته:امکان اضافه کردن Analyzers برای یک ایندکسی که از قبل وجود دارد و در آن داکیومنت ذخیره شده است وجود دارد.فقط باید به این نکته توجه داشت که برای اینکه داکیومنت هایی که از قبل موجود هستند اصلاح شوند نیاز است مجدد ایندکس شوند.نکته:بهتر است که stop word ها در فرایند Tokenizer حذف نشوند. قبل تر این کار برای گرفتن نتیجه بهتر انجام می شد ولی امروزه با توجه به وجود الگوریتم های مناسب در elastic search پیشنهاد نمی شود.</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Sun, 05 Jan 2020 14:07:16 +0330</pubDate>
            </item>
                    <item>
                <title>مفاهیم پایه ای در ElasticSearch</title>
                <link>https://virgool.io/@shahrooze/%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85-%D9%BE%D8%A7%DB%8C%D9%87-%D8%A7%DB%8C-%D8%AF%D8%B1-elasticsearch-rco9vr0i1f5a</link>
                <description>نود: هر نود به منزله یک سرور است که داده ها در آن نگهداری می شود. هر نود توانایی تغییر و همچنین اضافه کردن داده ها را برعهده دارد. همچنین جستجو نیز بر عهده نود می باشد.کلاستر: به مجموعه ای از نود ها کلاستر گفته می شود.نکته :می توان یک کلاستر با یک نود داشته باشیم. زمانی به سراغ کلاستر با چند نود می رویم که با حجم عظیمی از داده ها سرو کار داشته باشیم. برای مثال چند ترا بایت داده. هر کلاستر دارای یک نام می باشد.داکیومنت : هر آیتم داده ای که در دیتابیس ذخیره می شود را داکیومنت میگوییم. هر داکیومنت در واقع یک json object است که مشابه یک row در دیتابیس های relational می باشد. هر داکیومنت در حال ذخیره سازی و یا توسط کسی که آن را ذخیره می کند یک شناسه دریافت می کند. هر داکیومنت به وسیله شناسه و ایندکس که در آن ذخیره می شود منحصر به فرد می شود.ایندکس : در هر ایندکس داکیومنت هایی که از جنبه های مشخص شبیه به یکدیگر هستند ذخیره می شوند. برای مثال ایندکس که در آن محصولات ذخیره می شوند. هر ایندکس دارای یک نام lowercase می باشد.Sharding :به وسیله sharding می توانیم ایندکس ها را به قسمت های کوچک تری تقسیم کنیم. به هر کدام از این قسمت ها shard گفته می شود. هر shardقسمتی از داده های یک ایندکس را دارا می باشد که و می توان به آن به منزله یک ایندکس مجزا نگاه کرد.هر shardممکن است که در یک نود مجزا در یک کلاستر ذخیره شود. بنابراین با این قابلیت این امکان وجود دارد که عملیات ها روی shard های مختلف به صورت موازی و همچنین distribute انجام شود. هر ایندکس به صورت پیش فرض از 5 shardاستفاده می کند. اگر یک ایندکس ساخته شده باشد نمی تواند مقدار shardآن را تغییر داد. برای این منظور می بایست یک ایندکس جدید ایجاد کنیم.Replication: در Elasticsearch امکان کپی کردن shard ها وجود دارد به این کار در واقع replication می گوییم. این کار برای محافظت از داده ها انجام می شود.دلایل Replication:HA بالا رفتن کارایی و سرعت در زمان اجرای کوئری های جستجو: به این خاطر که جستجو ها به شکل موازی می توانند در Replica های متفاوت اجرا شوند.نحوه بروز رسانی Replicaنود اصلی در Replication بروز می شود. به عبارتی زمانی که یک عملیات یا تراکنش بر روی داده ها انجام می شود ابتدا نود اصلی ما بروز می شود. بعد از آن عملیات (تغییرات)برای باقی shardها ارسال خواهد شد.اگر نیاز باشد بیشتر از یک نود در Replication داشته باشیم برای تمام آن نود ها عملیات ارسال خواهد شد. زمانیکه در تمام Replicaها عملیات با موفقیت انجام شد در این حالت به کلاینت پاسخ انجام کار داده خواهد شد.توزیع داکیومنت ها در shardهای مختلف:The default value used for _routing is the document’s _id.داکیومنت ها در Elasticsearch به صورت Immutable هستند به عبارتی زمانیکه یک داکیومنت بروز می شود دوباره ایندکس خواهد شد.به بیان دیگر مثل این است که داکیومنت قبلی را پاک کنیم و دوباره اضافه کنیم.Mapping:به فرایند نحوه ذخیره سازی یک سند و فیلدهای آن Mapping گفته می شود. چه رشته ای باید در Full-text search شرکت کند. چه فیلدهایی دارای مقادیر عددی هستند. مقادیر تاریخی به چه صورت ذخیره شوند. همچنین قوانینی که برای ذخیره سازی استفاده می شود.در هنگام ذخیره یک سند به صورت اتوماتیک نوع و نحوه ذخیره فیلد ها شناسایی می شود این کار به وسیله dynamic mapping انجام می شود. در هنگام تعریف mapping میتوان پارامتر های متفاوتی را به آن برای کاربردهای متفاوت اضافه کرد. برای مثال یک پارامتر وجود دارد که می تواند یک فیلد را از ترکیب دو فیلد دیگر درست کند.برای مثال از جمع نام و نام خانوادگی نام کامل به صورت اتوماتیک درون فیلد قرار می گیرد.زمانیکه dynamic mapping را غیر فعال می کنیم اگر برای فیلدی mapping تعریف نکرده باشیم ایندکس نخواهد شد .</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Sun, 05 Jan 2020 13:59:24 +0330</pubDate>
            </item>
                    <item>
                <title>Self-Testing Code</title>
                <link>https://virgool.io/@shahrooze/self-testing-code-ztufiortjoxz</link>
                <description>Self-Testing Code اصطلاحی است که مارتین فولر در کتاب Refactoring خود از آن نام برده است و اشاره به روش هایی دارد که تست های همه جانبه برای کدها نوشته می شود که به وسیله یک command  می توانیم تست ها را اجرا کنیم .این روش باعث می شود که اطمینان حاصل کنیم که تست ها میتوانند باگهای پنهان را آشکار کنند.به عبارتی زمانی که شما در حال نوشتن نرم افزار خود هستید همزمان یک bug detector هم توسعه خواهید داد.به عبارتی تغییرات در کد با اجرای تست ها روی کد،آزمایش می شود و اطمینان از کد بالا خواهد رفت.نوشتن تست برای کد بخش جدایی ناپذیر از فرایند Continuous Integration است.به عبارتی نداشتن تست برای کدها یعنی نداشتن Continuous Integration و به تبع آن نداشتن Continuous Delivery.از مزایای تست نویسی برای کدها کم کردن تعداد باگ در محیط عملیات خواهد بود.فرایند نوشتن تست به این صورت است که همان زمان که برنامه نویس در حال نوشتن کد می باشد،به نوشتن تست نیز فکر کند.اما مزیت اصلی تست نویسی نه صرفا کم کردن تعداد باگها در محیط عملیات،که جلوگیری از بوجود آمدن مشکل در زمان تغییرات خواهد بود.حتی خود اصلاح باگها نیز می تواند باعث بوجود آمدن باگهای جدید در سیستم شود.در همچین شرایطی نه تنها اضافه کردن ویژگی جدید ،که حتی Refactoring که نیز به شدت ترسناک می شود و باعث می شود که بدهی فنی بوجود آوریم .این ما را در یک مارپیچ بدتر شدن قرار می دهد.اما با نوشتن تست داستان کاملا متفاوت خواهد بود.Self-Testing Code  را بعضا با موضوع TDD یکسان در نظر میگیرند ولی TDD رویکردی است که تست نویسی را بهینه تر می کند ولی این بدان معنا نیست که اگر TDD استفاده نکنیم حتما اشتباه کرده ایم.می توان تستها را بعد از نوشتن کد نوشت به شرط آنکه تا زمانی که تست نوشته نشده کار را تمام شده در نظر نگیریم.تست نویسی رویکرد تیم را به رفع باگ تغییر خواهد بود.بدین صورت که ابتدا بعد از اعلام باگ ابتدا تست یا تست هایی نوشته خواهد شد که باگ را شبیه سازی کند سپس به رفع باگ اقدام خواهیم نمود.همچنین در این صورت وجود باگ در عملیات به معنای صرفا مشکل در کد نویسی نیست و باید رویکرد تست نویسی نیز مورد بررسی قرار گیرد.</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Sun, 15 Dec 2019 09:02:03 +0330</pubDate>
            </item>
                    <item>
                <title>Continuous Delivery</title>
                <link>https://virgool.io/@shahrooze/continuous-delivery-euoibm47kn8q</link>
                <description>Continuous Delivery یک رویکرد منضبط در تولید نرم افزار است که در آن نرم افزار را به گونه ای تولید می کنیم که می توانیم  آن را  در هر زمان روی محیط عملیات منتشر کنیم.چه زمانی در حال انجام  Continuous Delivery هستیم؟نرم افزار در سراسر چرخه عمر خود قابل تحویل است.تمرکز و اولویت تیم به روی قابل تحویل نگه داشتن نرم افزار است تا بر بر روی ویژگی های جدید.میتوانیم با فشردن کلید انتشار هر ورژن از نرم افزار را روی هر محیطی که نیاز داریم انتشار دهیم.قابلیت فیدبک گرفتن سریع و اتوماتیک از محیطی که در آن تغییرات داده شده بعد از تغییرات را داریم.زمانی به هدف اصلی continuous delivery می رسیم که بتوانیم  از اجرای Continuous integration توسط تیم توسعه،ساخت برنامه های قابل اجرا و نوشتن تست های اتوماتیک و اجرای تست ها روی آن برنامه ها  برای یافتن خطاها و مشکلات اطمینان حاصل کنیم.همچنین کدهای نوشته شده  روی محیط های شبیه به محیط عملیات به صورت مداوم انتشار پیدا می کنند ،تا اطمینان حاصل کنیم که نرم افزار روی محیط عملیات به درستی کار خواهد کرد.یک سنجه کلیدی برای اینکه بتوانیم مطمئن شویم که آیا رویکرد Continuous Delivery برقرار باشد این است که فرض کنیم یک فرد از کسب و کار نیاز داشته باشد که ورژن جاری که توسعه داده شده است ،روی محیط عملیات انتشار پیدا کند و ما بتوانیم آن کار را بدون ترس انجام دهیم.برای رسیدن به Continuous Delivery  چه کارهایی را باید انجام دهیم؟همکاری بسیار نزدیک بین تمام کسانی که درگیر فرایند تحویل هستند.اتوماتیک کردن وسیع تمام بخش ها از فرایند تحویل.تفاوت  Continuous Delivery و Continuous Deploymentمعمولا دو واژه Continuous Deployment و Continuous Delivery ممکن است کمی گیج کننده به نظر برسند.Continuous Deployment به معنی این است که هر تغییری در طول روز به صورت اتوماتیک در محیط عملیات انتشار  پیدا می کند.به عبارتی تعداد زیادی پابلیش در طول روز خواهیم داشت.Continuous Delivery نیز به این اشاره دارد که می توانیم به صورت مکرر روی محیط عملیات ،تغییرات را منتشر کنیم اما ترجیح ما و یا کسب و کار این است که این کار اتفاق نیافتد و  با نرخ کمتری این کار انجام شود.به عبارتی برای رسیدن به  Continuous Deployment نیاز داریم Continuous Delivery را رعایت کنیم.Continuous IntegrationContinuous Integration به معنای ساخت ،یکپارچگی و تست کدها در محیط توسعه است.مزایای continuous deliveryکم کردن ریسک انتشار:تا زمانی که تغییرات به صورت سریع و کوچک انتشار پیدا می کنند ،ریسک تغییرات کم می شود و در صورت بروز خطا می توانیم به راحتی آن ها را فیکس کنیم.قابلیت اندازه گیری پیشرفت و تعریف دقیق انجام شده:فرض کنید معنی انجام شده (done) به معنای انتشار در محیط عملیات باشد.در این صورت به راحتی می توان پیشرفت در کار را اندازه گرفت.بازخورد کاربران:بزرگترین ریسک برای نوشتن یک نرم افزار ،ایجاد قابلیت هایی است که کاربر نهایی نیازی به آن ها ندارد.با استفاده از انتشار سریع به کاربران میتوانیم بازخورد سریعتری از کاربران دریافت کنیم و تمرکز را روی ویژگی هایی بگذاریم که برای کاربر نهایی ارزش دارند.یک راه مناسب برای رسیدن به Continuous Delivery این است که فرایند کنونی تحویل را مدل کنید و سپس گلوگاه ها،نقاط مناسب برای اتوماتیک سازی و نقاطی که باید در آن همکاری ها افزایش یابد شناسایی و برای آنها برنامه ریزی کنید.</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Wed, 11 Dec 2019 14:07:40 +0330</pubDate>
            </item>
                    <item>
                <title>فرهنگ دوآپس</title>
                <link>https://virgool.io/@shahrooze/%D9%81%D8%B1%D9%87%D9%86%DA%AF-%D8%AF%D9%88%D8%A2%D9%BE%D8%B3-yh6yeok434nm</link>
                <description>در توسعه نرم افزار ممکن است فرایند ها و روال ها ،تیم هایی با زمینه های کاری مجزا و یا به عبارتی دیگر سیلوهای مجزا را به وجود آورد.این سیلوها عبارت اند از،تحلیل نیازمندی ها، تست و توسعه.همچنین انتشار،عملیات و نگهداری نیز جداسازی های مشابهی در فرایند توسعه نرم افزار هستند.حرکت به سمت دو آپس یعنی حذف این سیلو ها و تشویق به همکاری بیشتر بین توسعه و عملیات است.دو آپس یک شعار است اگر که فقط به استفاده از ابزارهای جدید در عملیات توجه کنیم و یا بخواهیم روش های آن را بدون در نظر گرفتن فرهنگ آن تکرار کنیم.هدف اصلی فرهنگ دو آپس بالا بردن همکاری بین تیم های توسعه و عملیات است.تغییراتی برای رسیدن به فرهنگ همکاری در سطح داخلی تیم ها و سطح سازمانی نیاز است.مسئولیت مشترکنگرش  shared responsibility یک رویکرد برای بالا بردن همکاری در DevOps است.برای تیم توسعه ساده است که نرم افزار را در محیط عملیات تحویل یک تیم دیگر دهد و خود را از نگهداری نرم افزار کنار بکشد.اگر مسئولیت نگهداری نرم افزار به صورت مشترک بین تیم توسعه و عملیات تقسیم شود در این صورت تیم توسعه نیز درگیر نگرانی ها و نیازهای محیط عملیات خواهد شد.به عنوان مثال نگرانی هایی از قبیل انتشار راحت تر و یا مفاهیمی مثل لاگ.همچنین تیم توسعه به درک درستی از مانیتورینگ سیستم در محیط عملیات خواهد رسید. اگر تیم عملیات به صورت نزدیک با نیازهای کسب و کار آشنا شود به آنها کمک می کند تا با تیم توسعه همکاری بهتری برای رسیدن به آن نیازمندی ها انجام دهد.در عمل این همکاری باعث می شود درک برنامه نویسان از محیط عملیات بالا برود و همچنین درک تیم عملیات نیز از نیازمندی های کسب و کار بیشتر شود.از بین بردن سیلوهابرای رسیدن به فرهنگ دو آپسی همانطور که پیشتر  نیز گفته شد نیاز است که یک سری تغییرات در سطح سازمان انجام شود.نیاز هست که دیواری بین تیم توسعه و تیم عملیات کشیده نشود و برنامه نویسان و افراد تیم عملیات از ابتدای پروژه همکاری داشته باشند.تحویل پروژه از تیم توسعه به تیم عملیات کمکی به فرهنگ دو آپس نمی کند و بیشتر باعث بوجود آمدن فرهنگ دنبال مقصر گشتن می شود.بنابراین نیاز است تیم عملیات و توسعه با یکدیگر و به صورت مشترک مسئول موفقیت و شکست سیستم باشند.فرهنگ دو آپس باعث کمرنگ شدن خط میان تیم توسعه و تیم عملیات می شود و حتی ممکن است به کل این جداسازی را از بین ببرد.یکی از بدروش هایی که ممکن است در یک سازمان انجام شود این است که یک تیم مجزا به اسم تیم دو آپس تشکیل شود.این کار نه تنها باعث از بین رفتن سیلو هایی که قبل تر از آن نام بردیم نمی شود که از گسترش فرهنگ دو آپس جلوگیری می کند.تیم خودمختاریکی دیگر از نیازمندی های رسیدن به فرهنگ دو آپسی در سازمان داشتن تیم های خودمختار است.به عبارتی تیم هایی که برای اعمال تغییرات بتوانند خودشان تصمیم بگیرند و درگیر فرایندهای پیچیده تصمیم گیری نشوند.البته که این موضوع به راحتی در سازمان قابل پیاده سازی نبوده و نیازمند تیم های قابل اعتماد،ریسک مدیریت شده تغییرات و ایجاد محیطی که در آن ترس از شکست نداشته باشیم است.کیفیتیکی از تاثیرات حرکت به سمت فرهنگ دوآپس این است که کدهای جدید سریعتر در محیط عملیات در دسترس خواهند بود.برای اطمینان از این که کدها در محیط عملیات پایداری لازم را خواهند داشت نیاز است که کیفیت در فرایند توسعه مد نظر قرار گیرد.بدین منظور نیاز است که دغدغه هایی از قبیل امنیت و کارایی مد نظر قرار گیرد.بازخوردنیاز است که برای بازخوردهایی که از محیط عملیات گرفته می شود ارزش قائل شد.برای مثال با استفاده از تحلیل لاگها و رویدادهای مانیتورینگ که از ارزشمندترین بازخوردهای محیط عملیات هستند.اتوماتیک سازییکی دیگر از سنگ بناهای حرکت به سمت دوآپس بحث اتوماتیک سازی است.اتوماتیک کردن،تست ها،پیکربندی ها و فرایند انتشار که باعث می شود از خطاهای انسانی جلوگیری شود.</description>
                <category>شهروز جعفری</category>
                <author>شهروز جعفری</author>
                <pubDate>Wed, 11 Dec 2019 13:30:10 +0330</pubDate>
            </item>
            </channel>
</rss>