چهل منبع مهم دریافت مقالات علمى:
1. ieeexplore.ieee.org
2. acm.org
3. link.springer.com
4. wiley.com
5. sciencedirect.com
6. acs.org
7. aiaa.org
8. aip.org
9. ajpe.org
10. aps.org
11. ascelibrary.org
12. asm.org
13. asme.org
14. bioone.org
15. birpublications.org
16. bmj.com
18. emeraldinsight.com
19. geoscienceworld.org
20. icevirtuallibrary.com
21. informahealthcare.com
22. informs.org
23. ingentaconnect.com
24. iop.org
25. jamanetwork.com
26. joponline.org
27. jstor.org
28. mitpressjournals.org
29. nature.com
30. nrcresearchpress.com
31. oxfordjournals.org
32. royalsocietypublishing.org
33. rsc.org
34. rubberchemtechnol.org
35. sagepub.com
36. scientific.net
37. spiedigitallibrary.org
38. springermaterials.com
39. tandfonline.com
40. theiet.org
دانلود رایگان کتاب
www.ketabnak.com
www.urbanity.ir
www.98ia.com
www.takbook.com
www.irpdf.com
www.parsbook.org
www.irebooks.com
www.farsibooks.ir
www.ketabesabz.com
www.readbook.ir
سایتهای مهم علمی،پژوهشی
www.digitallibraryplus.com
www.daneshyar.net
باrapberry_pythonاعاتی
www.umi.com/pqdauto
www.search.ebscohost.com
www.sciencedirect.com
www.emeraldinsight.com
www.online.sagepub.com
www.springerlink.com
www.scopus.com
http://apps.isiknowledge.com
www.anjoman.urbanity.ir
پایان نامه های داخلی و خارجی
www.irandoc.ac.ir
www.urbanity.ir
www.umi.com/pgdauto
www.mhrn.net
www.theses.org
مقالات فارسی
www.urbanity.ir
www.shahrsaz.ir
www.magiran.com
www.civilica.com
www.sid.ir
کتابخانه ملی ایران، آمریکا و انگلیس
www.nlai.ir
www.loc.gov
www.bl.uk
دسترسی آزاد روانشناسی و آموزش و پرورش
http://eric.ed.gov
اطلاعات عمومی کشورها
www.worldatlas.com
پایگاه اطلاعات اسلامی
www.seraj.ir
مقالات رایگان کتابداری و اطلاع رسانی
www.infolibrarian.com
آرشیو مقالات از سال ۱۹۹۸
www.findarticles.com
کتابخانه الکترونیک
www.digital.library.upenn.edu/books
رایانه و بانکهای اطلاعاتی فارس
www.srco.ir
دانشنامه آزاد اینترنتی
www.wikipedia.org
دایره المعارف بریتانیکا
www.brit
:دانشگاه اهايو
https://etd.ohiolink.edu/ap:1:100766165341125
florida:
http://etd.lib.fsu.edu/ETD-db/
دسترسي به متن
کامل پايان نامه هاي 435 دانشگاه
از24 کشور اروپايي
http://www.dart-europe.eu/basic-search.php
دسترسي رايگان به بانک مقالات
دانشگاه کاليفرنيا
http://escholarship.org/
دسترسي رايگان به بانک مقالات
دانشگاه TENNESSEE
http://www.lib.utk.edu:90/cgi-perl/dbBro...i?help=148
دسترسي رايگان به 1,550,632 مقاله ي
دانشگاهي
http://www.oalib.com/
دسترسي به پايان نامه هاي
الکترونيکي دانشگاه ناتينگهام
http://etheses.nottingham.ac.uk/
دسترسي رايگان به کتاب ها و ژورنال
هاي سايت In Tech
http://www.intechopen.com/
دسترسي رايگان به مقالات علمي دانشگاه McGill
http://digitool.library.mcgill.ca/R
دسترسي رايگان به مقالات علمي مقالات 1753 ژورنال-دانشگاه استنفورد
http://highwire.stanford.edu/
Directory of Open Access Journals
http://www.doaj.org/
دسترسي به مقالات و متون علمي
پايگاه Proceeding of the National Academy
of Sciences
ايالت متحده ي آمريکا
http://www.pnas.org
روزنامه ها و مجلات انگليسي
روزنامه گاردين
http://www.guardian.co.uk
روزنامه نيويورك تايمز
http://www.nytimes.com
روزنامه واشنگتن تايمز
http://www.washtimes.com
روزنامه واشنگتن پست
http://www.washpost.com/index.shtml
روزنامه تايمز
http://www.the-times.co.uk/news
سايتهاي انگليسي بازرگاني
E.L. Easton Business English
http://eleaston.com/biz/bizhome.html
Business English-lessons for Adults
http://www.better-english.com/ exerciselist.html
BUSINESS ENGLISH
http://www.nonstopenglish.com/allexercises/business_english
Business English for EFL-ESL-TESL-ESP-ELT
http://www.wfi.fr/volterre/businessenglish. html
Business English Certificates
http://www.englishexams.net/BEC_Vantage.html
@BIMining کانال
1. ieeexplore.ieee.org
2. acm.org
3. link.springer.com
4. wiley.com
5. sciencedirect.com
6. acs.org
7. aiaa.org
8. aip.org
9. ajpe.org
10. aps.org
11. ascelibrary.org
12. asm.org
13. asme.org
14. bioone.org
15. birpublications.org
16. bmj.com
18. emeraldinsight.com
19. geoscienceworld.org
20. icevirtuallibrary.com
21. informahealthcare.com
22. informs.org
23. ingentaconnect.com
24. iop.org
25. jamanetwork.com
26. joponline.org
27. jstor.org
28. mitpressjournals.org
29. nature.com
30. nrcresearchpress.com
31. oxfordjournals.org
32. royalsocietypublishing.org
33. rsc.org
34. rubberchemtechnol.org
35. sagepub.com
36. scientific.net
37. spiedigitallibrary.org
38. springermaterials.com
39. tandfonline.com
40. theiet.org
دانلود رایگان کتاب
www.ketabnak.com
www.urbanity.ir
www.98ia.com
www.takbook.com
www.irpdf.com
www.parsbook.org
www.irebooks.com
www.farsibooks.ir
www.ketabesabz.com
www.readbook.ir
سایتهای مهم علمی،پژوهشی
www.digitallibraryplus.com
www.daneshyar.net
باrapberry_pythonاعاتی
www.umi.com/pqdauto
www.search.ebscohost.com
www.sciencedirect.com
www.emeraldinsight.com
www.online.sagepub.com
www.springerlink.com
www.scopus.com
http://apps.isiknowledge.com
www.anjoman.urbanity.ir
پایان نامه های داخلی و خارجی
www.irandoc.ac.ir
www.urbanity.ir
www.umi.com/pgdauto
www.mhrn.net
www.theses.org
مقالات فارسی
www.urbanity.ir
www.shahrsaz.ir
www.magiran.com
www.civilica.com
www.sid.ir
کتابخانه ملی ایران، آمریکا و انگلیس
www.nlai.ir
www.loc.gov
www.bl.uk
دسترسی آزاد روانشناسی و آموزش و پرورش
http://eric.ed.gov
اطلاعات عمومی کشورها
www.worldatlas.com
پایگاه اطلاعات اسلامی
www.seraj.ir
مقالات رایگان کتابداری و اطلاع رسانی
www.infolibrarian.com
آرشیو مقالات از سال ۱۹۹۸
www.findarticles.com
کتابخانه الکترونیک
www.digital.library.upenn.edu/books
رایانه و بانکهای اطلاعاتی فارس
www.srco.ir
دانشنامه آزاد اینترنتی
www.wikipedia.org
دایره المعارف بریتانیکا
www.brit
:دانشگاه اهايو
https://etd.ohiolink.edu/ap:1:100766165341125
florida:
http://etd.lib.fsu.edu/ETD-db/
دسترسي به متن
کامل پايان نامه هاي 435 دانشگاه
از24 کشور اروپايي
http://www.dart-europe.eu/basic-search.php
دسترسي رايگان به بانک مقالات
دانشگاه کاليفرنيا
http://escholarship.org/
دسترسي رايگان به بانک مقالات
دانشگاه TENNESSEE
http://www.lib.utk.edu:90/cgi-perl/dbBro...i?help=148
دسترسي رايگان به 1,550,632 مقاله ي
دانشگاهي
http://www.oalib.com/
دسترسي به پايان نامه هاي
الکترونيکي دانشگاه ناتينگهام
http://etheses.nottingham.ac.uk/
دسترسي رايگان به کتاب ها و ژورنال
هاي سايت In Tech
http://www.intechopen.com/
دسترسي رايگان به مقالات علمي دانشگاه McGill
http://digitool.library.mcgill.ca/R
دسترسي رايگان به مقالات علمي مقالات 1753 ژورنال-دانشگاه استنفورد
http://highwire.stanford.edu/
Directory of Open Access Journals
http://www.doaj.org/
دسترسي به مقالات و متون علمي
پايگاه Proceeding of the National Academy
of Sciences
ايالت متحده ي آمريکا
http://www.pnas.org
روزنامه ها و مجلات انگليسي
روزنامه گاردين
http://www.guardian.co.uk
روزنامه نيويورك تايمز
http://www.nytimes.com
روزنامه واشنگتن تايمز
http://www.washtimes.com
روزنامه واشنگتن پست
http://www.washpost.com/index.shtml
روزنامه تايمز
http://www.the-times.co.uk/news
سايتهاي انگليسي بازرگاني
E.L. Easton Business English
http://eleaston.com/biz/bizhome.html
Business English-lessons for Adults
http://www.better-english.com/ exerciselist.html
BUSINESS ENGLISH
http://www.nonstopenglish.com/allexercises/business_english
Business English for EFL-ESL-TESL-ESP-ELT
http://www.wfi.fr/volterre/businessenglish. html
Business English Certificates
http://www.englishexams.net/BEC_Vantage.html
@BIMining کانال
eric.ed.gov
ERIC - Education Resources Information Center
ERIC is an online library of education research and information, sponsored by the Institute of Education Sciences (IES) of the U.S. Department of Education.
منظور از DevOps (دوآپس) چیست؟ @BIMining
اگر شما هم در زمینهٔ توسعهٔ نرمافزار فعالیت داشته باشید، ممکن است آگهیهای استخدام مهندس DevOps نظر شما را به خود جلب نموده یا حداقل سبب شده باشند تا از خود یا اطرافیان بپرسید که دوآپس چیست و یک متخصص این حوزه چه مسئولیتهایی دارا است و این همان چیزی است که در این این مقاله قصد داریم به بررسیاش بپردازیم.
برای درک بهتر این موضوع که مهندسان DevOps دقیقاً چه کاری انجام میدهند، بهتر است به چرخهٔ تولید نرمافزار نگاهی داشته باشیم اما پیش از آن، نیمنگاهی به تعریف این اصطلاح از ویکیپدیا خواهیم داشت:
در واقع DevOps یک فرایند تولید نرمافزار است که بر مبنای ارتباط و همکاری هرچه بیشتر میان تیمهای تولید و توسعهٔ نرمافزار و تیمهای اجرایی بنا شده است که در طی این فرآیند عملیاتی مانند Integration ،Testing و Deployment و همچنین اِعمال تغییرات زیرساختی به صورت خودکار درمیآیند و در کل هدف از چنین فرایندی ایجاد فرهنگی است که در آن تولید، تست و انتشار نرمافزار به شیوهای سریع، مداوم و مطمئن انجام شود.
حال بپردازیم به بررسی فرایند توسعهٔ نرمافزار به طوری که این فرایند را میتوان به پنج مرحلهٔ اصلی تقسیم کرد که عبارتند از Planning ،Development ،Testing ،Deployment و Maintenance که در این میان، دو مرحلهٔ Planning و Maintenance بیشترین زمان مهندسین دوآپس را به خود اختصاص میدهند.
📌 طرح ریزی یا Planing
در این مرحله از کار، تیمی متشکل از دولوپرها، مدیران تولید و … اهداف پروژه را تعریف و ترسیم نموده و ساختار کلی نرمافزار را تعیین میکنند و در این مرحله مهندس دوآپس باید از دانش فنی اعضای تیم و تسلط آنها بر پلتفرمهای مورد استفاده بهره برده و بررسی نماید که چگونه میتوان در قالب یک سیستم جامع و یکپارچه به تمام اهداف مورد نظر تیم جامهٔ عمل پوشاند (در کل، این مرحله از کار یکی از مراحل زمانبر است.)
پس از اینکه شِمای کلی سیستم اولیه پیادهسازی و اجرا شد، مهمترین مسئله هدایت تیم در جهت نحوهٔ افزودن قابلیتها و تکنولوژیهای از قبل تولیدشده به این سیستم است. در واقع، مهندس دوآپس همواره باید به دنبال راهکارهایی برای انجام خودکار فرآیندهای مختلف باشد تا بار انجام این کارها تا حد امکان از دوش اعضای تیم برداشته شود. در این مرحله، مهندس دوآپس باید پاسخ سؤالات زیر را بیابد:
- دو سرویس مختلف چگونه میتوانند با هم در تعامل باشند؟
- برای مرتبط کردن این دو سرویس، از چه پروتکلی باید استفاده نمود؟
- آیا سختافزاری که در اختیار ما قرار دارد پاسخگوی نیاز ما هست؟
- برای اینکه بتوانم در امر تولید به مهندسان کمک کنم، نیاز به چه چیزهایی دارم؟
- آیا سرویس مذکور به اصطلاح Production-Ready خواهد بود؟
- آیا تمام دیپندنسیهای مورد استفاده در نرمافزار برای ما ملموس هستند؟
- چه چیزی را لازم است بسازیم و چه چیزی را باید خریداری کنیم؟
- آیا یک تَسک خاص را میتوان به صورت خودکار انجام داد؟
- چهطور میتوان در آینده از این نرمافزار پشتیبانی نمود؟
📌 توسعه یا Development
در این مرحله، ترکیببندی کلی کار مشخص شده و دیگر نوبت دولوپرها است که کد بزنند و قابلیتهای پیشبینی شده را برای نرمافزار ایجاد کنند و هدف عمدهٔ مهندس دوآپس در این مرحله این است که به دنبال راههایی برای سریعتر انجام شدن کارها باشد. به عبارتی، وی باید راهی پیش پای دولوپرها بگذارد تا بتوانند بهترین کار را در کمترین زمان ممکن انجام دهند و این دقیقاً با هدف نهایی کار، یعنی تولید نرمافزار، هماهنگ و سازگار است. @BIMining
در حقیقت، در این پروسه مهندس دوآپس به دولوپرها میگوید که از چه ابزاری استفاده کنند و همچنین ابزارهای جدید را در اختیار آنها قرار میدهد تا کارشان تسهیل گردد. همچنین این مهندس دوآپس است که باید بخشهای مختلف کدهایی که توسط دولوپرها و در محیط توسعه نوشته شدهاند را مانند قطعات پازل در کنار هم قرار داده و آنها را با محیط نهایی نرمافزار هماهنگ کند و این کاری است که هر دولوپری از عهدهٔ آن بر نمیآید و شاید اگر مهندس دوآپس نمیبود، بسیاری از نرمافزارها قدرت، جلوه و شکوه امروزی خود نداشتند! سؤالاتی که یک مهندس دوآپس در این مرحله ممکن است با آن مواجه شود عبارتند از:
- چگونه میتوانم دولوپرها را در فضایی مشابه فضای محصول نهایی نگاه دارم؟
- چهطور به دولوپرها اجازه دهم تا از ابزارهای مورد علاقهٔ خود استفاده کنند؟
- چگونه میتوانم بهرهوری و کارایی دولوپرها را افزایش دهم؟
- چهطور باید برای دولوپرها توضیح دهم که محیط نهایی نرمافزار چگونه خواهد بود؟ @BIMining
اگر شما هم در زمینهٔ توسعهٔ نرمافزار فعالیت داشته باشید، ممکن است آگهیهای استخدام مهندس DevOps نظر شما را به خود جلب نموده یا حداقل سبب شده باشند تا از خود یا اطرافیان بپرسید که دوآپس چیست و یک متخصص این حوزه چه مسئولیتهایی دارا است و این همان چیزی است که در این این مقاله قصد داریم به بررسیاش بپردازیم.
برای درک بهتر این موضوع که مهندسان DevOps دقیقاً چه کاری انجام میدهند، بهتر است به چرخهٔ تولید نرمافزار نگاهی داشته باشیم اما پیش از آن، نیمنگاهی به تعریف این اصطلاح از ویکیپدیا خواهیم داشت:
در واقع DevOps یک فرایند تولید نرمافزار است که بر مبنای ارتباط و همکاری هرچه بیشتر میان تیمهای تولید و توسعهٔ نرمافزار و تیمهای اجرایی بنا شده است که در طی این فرآیند عملیاتی مانند Integration ،Testing و Deployment و همچنین اِعمال تغییرات زیرساختی به صورت خودکار درمیآیند و در کل هدف از چنین فرایندی ایجاد فرهنگی است که در آن تولید، تست و انتشار نرمافزار به شیوهای سریع، مداوم و مطمئن انجام شود.
حال بپردازیم به بررسی فرایند توسعهٔ نرمافزار به طوری که این فرایند را میتوان به پنج مرحلهٔ اصلی تقسیم کرد که عبارتند از Planning ،Development ،Testing ،Deployment و Maintenance که در این میان، دو مرحلهٔ Planning و Maintenance بیشترین زمان مهندسین دوآپس را به خود اختصاص میدهند.
📌 طرح ریزی یا Planing
در این مرحله از کار، تیمی متشکل از دولوپرها، مدیران تولید و … اهداف پروژه را تعریف و ترسیم نموده و ساختار کلی نرمافزار را تعیین میکنند و در این مرحله مهندس دوآپس باید از دانش فنی اعضای تیم و تسلط آنها بر پلتفرمهای مورد استفاده بهره برده و بررسی نماید که چگونه میتوان در قالب یک سیستم جامع و یکپارچه به تمام اهداف مورد نظر تیم جامهٔ عمل پوشاند (در کل، این مرحله از کار یکی از مراحل زمانبر است.)
پس از اینکه شِمای کلی سیستم اولیه پیادهسازی و اجرا شد، مهمترین مسئله هدایت تیم در جهت نحوهٔ افزودن قابلیتها و تکنولوژیهای از قبل تولیدشده به این سیستم است. در واقع، مهندس دوآپس همواره باید به دنبال راهکارهایی برای انجام خودکار فرآیندهای مختلف باشد تا بار انجام این کارها تا حد امکان از دوش اعضای تیم برداشته شود. در این مرحله، مهندس دوآپس باید پاسخ سؤالات زیر را بیابد:
- دو سرویس مختلف چگونه میتوانند با هم در تعامل باشند؟
- برای مرتبط کردن این دو سرویس، از چه پروتکلی باید استفاده نمود؟
- آیا سختافزاری که در اختیار ما قرار دارد پاسخگوی نیاز ما هست؟
- برای اینکه بتوانم در امر تولید به مهندسان کمک کنم، نیاز به چه چیزهایی دارم؟
- آیا سرویس مذکور به اصطلاح Production-Ready خواهد بود؟
- آیا تمام دیپندنسیهای مورد استفاده در نرمافزار برای ما ملموس هستند؟
- چه چیزی را لازم است بسازیم و چه چیزی را باید خریداری کنیم؟
- آیا یک تَسک خاص را میتوان به صورت خودکار انجام داد؟
- چهطور میتوان در آینده از این نرمافزار پشتیبانی نمود؟
📌 توسعه یا Development
در این مرحله، ترکیببندی کلی کار مشخص شده و دیگر نوبت دولوپرها است که کد بزنند و قابلیتهای پیشبینی شده را برای نرمافزار ایجاد کنند و هدف عمدهٔ مهندس دوآپس در این مرحله این است که به دنبال راههایی برای سریعتر انجام شدن کارها باشد. به عبارتی، وی باید راهی پیش پای دولوپرها بگذارد تا بتوانند بهترین کار را در کمترین زمان ممکن انجام دهند و این دقیقاً با هدف نهایی کار، یعنی تولید نرمافزار، هماهنگ و سازگار است. @BIMining
در حقیقت، در این پروسه مهندس دوآپس به دولوپرها میگوید که از چه ابزاری استفاده کنند و همچنین ابزارهای جدید را در اختیار آنها قرار میدهد تا کارشان تسهیل گردد. همچنین این مهندس دوآپس است که باید بخشهای مختلف کدهایی که توسط دولوپرها و در محیط توسعه نوشته شدهاند را مانند قطعات پازل در کنار هم قرار داده و آنها را با محیط نهایی نرمافزار هماهنگ کند و این کاری است که هر دولوپری از عهدهٔ آن بر نمیآید و شاید اگر مهندس دوآپس نمیبود، بسیاری از نرمافزارها قدرت، جلوه و شکوه امروزی خود نداشتند! سؤالاتی که یک مهندس دوآپس در این مرحله ممکن است با آن مواجه شود عبارتند از:
- چگونه میتوانم دولوپرها را در فضایی مشابه فضای محصول نهایی نگاه دارم؟
- چهطور به دولوپرها اجازه دهم تا از ابزارهای مورد علاقهٔ خود استفاده کنند؟
- چگونه میتوانم بهرهوری و کارایی دولوپرها را افزایش دهم؟
- چهطور باید برای دولوپرها توضیح دهم که محیط نهایی نرمافزار چگونه خواهد بود؟ @BIMining
📌 تست کردن یا Development
در این مرحله، دولوپرها و مسئولین کنترل کیفیت (QC) کدهای نوشته شده را تست نموده و آنها را برای یکپارچه شدن با سورسکد اصلی آماده میکنند که در این مرحله ممکن است از ابزارها و اسکریپتهایی به منظور انجام خودکار تستها استفاده شود اما هنوز هم برای اجرای دستی کدها بر روی سیستمهای داخلی شرکت به حضور دولوپرها و مسئولین کنترل کیفیت نیاز است.
در اینجا است که دوباره پای مهندس دوآپس به میان میآید به طوری که در این مرحله وظیفهاش این است که برای تکرار خودکار تستها راهی بیابد؛ او میتواند از ابزارهایی مانند Jenkins ،Bamboo و یا Drone استفاده کند (اینها ابزارهای Continuous Integration یا به اختصار CI هستند که تست مداوم کدها را آسانتر میکنند.) در این مرحله لازم است تا به سؤالات زیر پاسخ داده شود:
- چگونه میتوان به اصطلاح چندین Client Environment تکرارپذیر ایجاد نمود؟
- از کجا بدانم تست مورد نظر در مورد کدام نسخه از سرویس در حال انجام است؟
- چگونه تاریخچهٔ تستها را دنبال کنم و با استفاده از آن به روندهای موجود پی ببرم؟
- چگونه پس از تست نمودن کدها، مشکلات احتمالی را به دولوپرها اعلام کنم؟
- دادههای تست را از کجا به دست آورم؟
📌 استقرار یا Deployment
در واقع Deployment به معنای قرار دادن کدها روی سرور اصلی نرمافزار است. به طور کلی، این مرحله در مورد این است که کدهای نوشته شده چهطور و با چه نظمی در محصول نهایی قرار بگیرند تا کاربر نرمافزار قادر به استفاده از سرویس ما گردد. در این مرحله نیز مهندسان دوآپس از ابزارهای CI مشابه آنچه که در بخش قبل معرفی شد استفاده میکنند و بعضی از مهمترین سؤالاتی که در این مرحله باید پاسخ داده شوند عبارتند از:
- چه زمانی یک نسخهٔ نهایی نشده از نرمافزار آمادهٔ دیپلوی شدن است؟
- چگونه بدون اینکه کاربر متوجه شود، سرویسی را دیپلوی نمایم؟
- چگونه مطمئن شوم که سرویسی که به تازگی دیپلوی شده، سبب ایجاد اختلال نمیشود؟
- چگونه فرآیند دیپلوی شدن را به صورت خودکار در آورم؟
- چگونه در صورت لزوم در فرآیند دیپلوی خودکار، مراحلی را به صورت دستی و غیرخودکار انجام دهم؟
- چگونه فرآیند دیپلوی را با روشی تکرارپذیر انجام دهم؟
معمولاً این مرحله زمان زیادی را از مهندسان دوآپس نمیگیرد اما بخشی که این مهندسین باید بیشترین زمان و انرژی خود را صرف آن کنند، مرحلهٔ بعدی، یعنی Maintenance، است.
📌 نگهداری یا Maintenance
همانطور که قبلاً گفتیم، مرحلهٔ نگهداری از نرمافزار یکی از مراحلی است که بیشترین زمان یک مهندس دوآپس را به خود اختصاص میدهد و این مرحله تماماً در مورد انجام کارهایی است که در نهایت موجب در دسترس قرار گرفتن یک سیستم و حفظ کارایی آن میشوند. در این مرحله سؤالاتی مانند موارد زیر باید پاسخ داده شوند:
- چگونه میتوانم از مشکلات و باگهای موجود در محصول یا سرویس آگاه شوم؟
- چگونه باگهای مختلف موجود در محصول یا سرویس را به تیمهای مناسب ارجاع دهم؟
- چگونه باگهای زیرساختی موجود در محصول را برطرف کنم؟
- من به عنوان یک مهندس دوآپس چگونه میتوانم از سلامت و کارایی همهٔ سرویسها مطمئن شوم؟
سخن پایانی
در واقع DevOps آمیزه و مخلوطی از چندین نقش بوده و هدف نهایی آن در کنار هم قرار دادن دولوپرها و مهندسان اجرایی است. فرهنگ DevOps ویژگیها و قابلیتهای جدید محصول را با زیرساختهای آن سازگار مینماید و سبب میشود تا این دو بتوانند در کنار هم به خوبی عمل کنند. @BIMining
در این مرحله، دولوپرها و مسئولین کنترل کیفیت (QC) کدهای نوشته شده را تست نموده و آنها را برای یکپارچه شدن با سورسکد اصلی آماده میکنند که در این مرحله ممکن است از ابزارها و اسکریپتهایی به منظور انجام خودکار تستها استفاده شود اما هنوز هم برای اجرای دستی کدها بر روی سیستمهای داخلی شرکت به حضور دولوپرها و مسئولین کنترل کیفیت نیاز است.
در اینجا است که دوباره پای مهندس دوآپس به میان میآید به طوری که در این مرحله وظیفهاش این است که برای تکرار خودکار تستها راهی بیابد؛ او میتواند از ابزارهایی مانند Jenkins ،Bamboo و یا Drone استفاده کند (اینها ابزارهای Continuous Integration یا به اختصار CI هستند که تست مداوم کدها را آسانتر میکنند.) در این مرحله لازم است تا به سؤالات زیر پاسخ داده شود:
- چگونه میتوان به اصطلاح چندین Client Environment تکرارپذیر ایجاد نمود؟
- از کجا بدانم تست مورد نظر در مورد کدام نسخه از سرویس در حال انجام است؟
- چگونه تاریخچهٔ تستها را دنبال کنم و با استفاده از آن به روندهای موجود پی ببرم؟
- چگونه پس از تست نمودن کدها، مشکلات احتمالی را به دولوپرها اعلام کنم؟
- دادههای تست را از کجا به دست آورم؟
📌 استقرار یا Deployment
در واقع Deployment به معنای قرار دادن کدها روی سرور اصلی نرمافزار است. به طور کلی، این مرحله در مورد این است که کدهای نوشته شده چهطور و با چه نظمی در محصول نهایی قرار بگیرند تا کاربر نرمافزار قادر به استفاده از سرویس ما گردد. در این مرحله نیز مهندسان دوآپس از ابزارهای CI مشابه آنچه که در بخش قبل معرفی شد استفاده میکنند و بعضی از مهمترین سؤالاتی که در این مرحله باید پاسخ داده شوند عبارتند از:
- چه زمانی یک نسخهٔ نهایی نشده از نرمافزار آمادهٔ دیپلوی شدن است؟
- چگونه بدون اینکه کاربر متوجه شود، سرویسی را دیپلوی نمایم؟
- چگونه مطمئن شوم که سرویسی که به تازگی دیپلوی شده، سبب ایجاد اختلال نمیشود؟
- چگونه فرآیند دیپلوی شدن را به صورت خودکار در آورم؟
- چگونه در صورت لزوم در فرآیند دیپلوی خودکار، مراحلی را به صورت دستی و غیرخودکار انجام دهم؟
- چگونه فرآیند دیپلوی را با روشی تکرارپذیر انجام دهم؟
معمولاً این مرحله زمان زیادی را از مهندسان دوآپس نمیگیرد اما بخشی که این مهندسین باید بیشترین زمان و انرژی خود را صرف آن کنند، مرحلهٔ بعدی، یعنی Maintenance، است.
📌 نگهداری یا Maintenance
همانطور که قبلاً گفتیم، مرحلهٔ نگهداری از نرمافزار یکی از مراحلی است که بیشترین زمان یک مهندس دوآپس را به خود اختصاص میدهد و این مرحله تماماً در مورد انجام کارهایی است که در نهایت موجب در دسترس قرار گرفتن یک سیستم و حفظ کارایی آن میشوند. در این مرحله سؤالاتی مانند موارد زیر باید پاسخ داده شوند:
- چگونه میتوانم از مشکلات و باگهای موجود در محصول یا سرویس آگاه شوم؟
- چگونه باگهای مختلف موجود در محصول یا سرویس را به تیمهای مناسب ارجاع دهم؟
- چگونه باگهای زیرساختی موجود در محصول را برطرف کنم؟
- من به عنوان یک مهندس دوآپس چگونه میتوانم از سلامت و کارایی همهٔ سرویسها مطمئن شوم؟
سخن پایانی
در واقع DevOps آمیزه و مخلوطی از چندین نقش بوده و هدف نهایی آن در کنار هم قرار دادن دولوپرها و مهندسان اجرایی است. فرهنگ DevOps ویژگیها و قابلیتهای جدید محصول را با زیرساختهای آن سازگار مینماید و سبب میشود تا این دو بتوانند در کنار هم به خوبی عمل کنند. @BIMining
عنوان کتاب : داده های بزرگ برای همه
ناشر : ناقوس تعداد صفحات : 388
سال نشر : 1397
عنوان اصلی :Big Data for Dummies
نویسنده: Judith S. Hurwitz
انتشارات : John Wiley & Sons, Inc
@BIMining
ناشر : ناقوس تعداد صفحات : 388
سال نشر : 1397
عنوان اصلی :Big Data for Dummies
نویسنده: Judith S. Hurwitz
انتشارات : John Wiley & Sons, Inc
@BIMining
✳️اینستاگرام با استفاده از روش هاي يادگيري ماشين، فالوور و کامنتهای تقلبی را حذف میکند
🔹برای پیاده سازی هرچه بهتر این فرایند از ابزارهای مبتنی بر یادگیری ماشینی استفاده می شود که اکانت های مشکوک به استفاده از این سرویس را شناسایی کرده و تمامی لایک ها و فالوورهای ساختگی را پاک می کند.
🔹از این پس هر اکانتی که به عنوان کاربر اپلیکیشن های خرید لایک و فالوور اینستاگرام شناسایی شود، هشداری مبنی بر تغییر رمزعبور برای جلوگیری از دسترسی غیر مجاز فروشندگان لایک و فالوور را دریافت خواهد کرد.
☑️ @BIMining
🔹برای پیاده سازی هرچه بهتر این فرایند از ابزارهای مبتنی بر یادگیری ماشینی استفاده می شود که اکانت های مشکوک به استفاده از این سرویس را شناسایی کرده و تمامی لایک ها و فالوورهای ساختگی را پاک می کند.
🔹از این پس هر اکانتی که به عنوان کاربر اپلیکیشن های خرید لایک و فالوور اینستاگرام شناسایی شود، هشداری مبنی بر تغییر رمزعبور برای جلوگیری از دسترسی غیر مجاز فروشندگان لایک و فالوور را دریافت خواهد کرد.
☑️ @BIMining
✳️☑️هشت سايت ارزشمند دوره هاي آموزشي
1. سایت Lynda وب سایتی که بیش از 4 میلیون نفر در آن مشغول گذراندن دوره های آموزشی هستند.
2. سایت Codecademy : در این مدرسه آنلاین می توانید کار با Java ، PHP ، Python و بسیاری دیگر را بیاموزید.
3. سایت EdX : در این وب سایت دوره های آنلاین متعددی شامل دوره برنامه نویسی ارایه می شود.
4. سایت Udacity : در دوره های رایگان آنلاین و با تدریس سباستین تران ، کد نویسی را بیاموزید.
5.سایت ITunes U :دانشگاه های برتری مانند هاروارد و یل پادکست های کلاس های خود را در اینجا به اشتراک می گذارند.
6. سایت MIT open courseware : برای یادگیری مقدمات کد نویسی با دانشگاه MIT همراه شويد.
7. سایتDataMonkey : در این سایت SQL و Excel را بیاموزید.
8. سایتAcademic Earth : دوره های پیشرفته دانشگاهی از سال 2009 تا کنون در این سایت در دسترس هستند.
@BIMining
1. سایت Lynda وب سایتی که بیش از 4 میلیون نفر در آن مشغول گذراندن دوره های آموزشی هستند.
2. سایت Codecademy : در این مدرسه آنلاین می توانید کار با Java ، PHP ، Python و بسیاری دیگر را بیاموزید.
3. سایت EdX : در این وب سایت دوره های آنلاین متعددی شامل دوره برنامه نویسی ارایه می شود.
4. سایت Udacity : در دوره های رایگان آنلاین و با تدریس سباستین تران ، کد نویسی را بیاموزید.
5.سایت ITunes U :دانشگاه های برتری مانند هاروارد و یل پادکست های کلاس های خود را در اینجا به اشتراک می گذارند.
6. سایت MIT open courseware : برای یادگیری مقدمات کد نویسی با دانشگاه MIT همراه شويد.
7. سایتDataMonkey : در این سایت SQL و Excel را بیاموزید.
8. سایتAcademic Earth : دوره های پیشرفته دانشگاهی از سال 2009 تا کنون در این سایت در دسترس هستند.
@BIMining
#منبع #کورس #پایتون
✳️☑️چندتا کورس رایگان خوب:
کورس1:
Introduction to Computer Science and Programming Using Python
https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-11
ارائه شده توسط دانشگاه MIT
کورس 2:
Introduction to Python for Data Science
https://www.edx.org/course/introduction-python-data-science-microsoft-dat208x-8
ارائه شده توسط Microsoft
کورس3:
Using Python for Research
https://www.edx.org/course/using-python-research-harvardx-ph526x-0
ارائه شده توسط دانشگاه هاروارد
کورس 4 و 5 و6:
Applied Data Science with Python
https://cognitiveclass.ai/learn/data-science-with-python/
که توسط شرکت ibm ارائه شده و برخلاف 3 کورس قبلی مدرکش هم رایگانه . سه تا کورسه به ترتیب:
Python for Data Science [Effort: 5 hours,Level: Beginner]
Data Analysis with Python[Effort: 8 hours, Level: Beginner]
Data Visualization with Python[ Effort: 10 hours, Level: Beginner ]
—------------—
کورس 1 برای Module های 1و2و3درس آزمایشگاه
کورس 2 برای ماژول های 4 و 5 و
و کورس های چهار برای ماژول های 4 تا 13 درس خوب است.
کورس دو خلاصه بوده و خیلی زود شما را با پایتون آشنا میکنه و توصیه شدید می شود
@BIMining
✳️☑️چندتا کورس رایگان خوب:
کورس1:
Introduction to Computer Science and Programming Using Python
https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-11
ارائه شده توسط دانشگاه MIT
کورس 2:
Introduction to Python for Data Science
https://www.edx.org/course/introduction-python-data-science-microsoft-dat208x-8
ارائه شده توسط Microsoft
کورس3:
Using Python for Research
https://www.edx.org/course/using-python-research-harvardx-ph526x-0
ارائه شده توسط دانشگاه هاروارد
کورس 4 و 5 و6:
Applied Data Science with Python
https://cognitiveclass.ai/learn/data-science-with-python/
که توسط شرکت ibm ارائه شده و برخلاف 3 کورس قبلی مدرکش هم رایگانه . سه تا کورسه به ترتیب:
Python for Data Science [Effort: 5 hours,Level: Beginner]
Data Analysis with Python[Effort: 8 hours, Level: Beginner]
Data Visualization with Python[ Effort: 10 hours, Level: Beginner ]
—------------—
کورس 1 برای Module های 1و2و3درس آزمایشگاه
کورس 2 برای ماژول های 4 و 5 و
و کورس های چهار برای ماژول های 4 تا 13 درس خوب است.
کورس دو خلاصه بوده و خیلی زود شما را با پایتون آشنا میکنه و توصیه شدید می شود
@BIMining
edX
MITx: Introduction to Computer Science and Programming Using Python
An introduction to computer science as a tool to solve real-world analytical problems using Python 3.5.
☑️✳️ پنجمين كنفرانس بين المللي مهندسي مبتني بر دانش و نوآوري در دانشگاه علم و صنعت تهران @BIMining
☑️✳️موتور جستجوي ديتاست google Dataset Search
موتور جستجویی با هدف کمک به محققان در یافتن دیتاستهای مختلف
هدف گوگل از این کار، ارائه تمامی دیتاست های معتبر حوزه علوم داده یادگیری ماشین و تمامی حوزه های مرتبط با هوش مصنوعی است.
https://toolbox.google.com/datasetsearch
@BIMining
موتور جستجویی با هدف کمک به محققان در یافتن دیتاستهای مختلف
هدف گوگل از این کار، ارائه تمامی دیتاست های معتبر حوزه علوم داده یادگیری ماشین و تمامی حوزه های مرتبط با هوش مصنوعی است.
https://toolbox.google.com/datasetsearch
@BIMining
👍1
#لینوکس
اتصال به لینوکس از طریق remote desktop
برای اتصال از راه دور و گرافیکی به سیستم عامل لینوکس، می توان از برنامه های مختلفی استفاده کرد. یکی از این برنامه ها، remote desktop می باشد که معمولا برای اتصال از راه دور به محیط ویندوز استفاده می شود.
برای اتصال به محیط لینوکس از طریق این برنامه، ابتدا باید بسته xrdp را در سرور(یا ماشین) نصب کرد:
rpm -ivh xrdp-0.6.1-2.el7.nux.x86_64.rpm
systemctl start xrdp.service
همچنین برای راه اندازی(استارت) خودکار این سرویس بعد از reboot شدن سرور، می توان از دستور زیر استفاده کرد:
systemctl enable xrdp.service
این سرویس فایل پیکربندی مشخصی هم دارد که در ان می توان نام کاربری، رمز عبور، پورت و ... را به مقدار ثابتی تعیین نمود یا با استفاده از عبارت ask، تعیین این مشخصات را به زمان ورود به سرور موکول کرد:
[root@ ol7 ~]# vi /etc/xrdp/xrdp.ini
[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=ask-1
بعد از انجام این مراحل، باید مطمئن شد که سرویس فایروال و selinux در برقراری این ارتباط، ممانعتی را ایجاد نمی کنند. به این جهت، دو راهکار وجود دارد:
راهکار اول انکه در صورت عدم نیاز به این سرویسها، باید انها را از کار انداخت:
غیرفعال کردن فایروال:
systemctl stop firewalld
systemctl disable firewalld
غیرفعال کردن selinux:
[root@ol7 ~]# vi /etc/sysconfig/selinux
SELINUX=disabled
[root@kartdb ~]# sestatus
تنظیم فایروال:
firewall-cmd –permanent –zone=public –add-port=3389/tcp
firewall-cmd –reload
تنظیم selinux:
chcon —type=bin_t /usr/sbin/xrdp
chcon —type=bin_t /usr/sbin/xrdp-sesman
بعد از انجام این تنظیمات، با اجرای برنامه remote desktop در محیط ویندوز، ip مربوط به سرور لینوکس را وارد می کنیم:
@BIMining
اتصال به لینوکس از طریق remote desktop
برای اتصال از راه دور و گرافیکی به سیستم عامل لینوکس، می توان از برنامه های مختلفی استفاده کرد. یکی از این برنامه ها، remote desktop می باشد که معمولا برای اتصال از راه دور به محیط ویندوز استفاده می شود.
برای اتصال به محیط لینوکس از طریق این برنامه، ابتدا باید بسته xrdp را در سرور(یا ماشین) نصب کرد:
rpm -ivh xrdp-0.6.1-2.el7.nux.x86_64.rpm
1:xrdp-0.6.1-2.el7.nux ################################# [100%]
بعد از ان باید این سرویس را استارت نمود:systemctl start xrdp.service
همچنین برای راه اندازی(استارت) خودکار این سرویس بعد از reboot شدن سرور، می توان از دستور زیر استفاده کرد:
systemctl enable xrdp.service
این سرویس فایل پیکربندی مشخصی هم دارد که در ان می توان نام کاربری، رمز عبور، پورت و ... را به مقدار ثابتی تعیین نمود یا با استفاده از عبارت ask، تعیین این مشخصات را به زمان ورود به سرور موکول کرد:
[root@ ol7 ~]# vi /etc/xrdp/xrdp.ini
[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=ask-1
بعد از انجام این مراحل، باید مطمئن شد که سرویس فایروال و selinux در برقراری این ارتباط، ممانعتی را ایجاد نمی کنند. به این جهت، دو راهکار وجود دارد:
راهکار اول انکه در صورت عدم نیاز به این سرویسها، باید انها را از کار انداخت:
غیرفعال کردن فایروال:
systemctl stop firewalld
systemctl disable firewalld
غیرفعال کردن selinux:
[root@ol7 ~]# vi /etc/sysconfig/selinux
SELINUX=disabled
[root@kartdb ~]# sestatus
SELinux status: disabled
در صورت نیاز به هر کدام از این سرویسها، باید راهکار دوم که تنظیم فایروال و selinux می باشد را برگزید البته به شکلی که بتوان از سرویس xrdp استفاده کرد:تنظیم فایروال:
firewall-cmd –permanent –zone=public –add-port=3389/tcp
firewall-cmd –reload
تنظیم selinux:
chcon —type=bin_t /usr/sbin/xrdp
chcon —type=bin_t /usr/sbin/xrdp-sesman
بعد از انجام این تنظیمات، با اجرای برنامه remote desktop در محیط ویندوز، ip مربوط به سرور لینوکس را وارد می کنیم:
@BIMining
نام کاربری و کلمه عبور را وارد کرده(البته در صورت عدم تنظیم ان در فایل xrdp.ini) و مقدار پیش فرض پورت که برابر با -1 می باشد را به عدد 5910 تغییر می دهیم. @BIMining
یکی از بهترین توزیع های لینوکس بعنوان سرور شبکه توزیع CentOS می باشد.در این کتاب راه اندازی سرویس های مختلف شبکه به کمک این سیستم عامل محبوب را یاد خواهید گرفت. @BIMining
✳️☑️میزان درآمد متوسط سالانه متخصصین حوزه علم داده در سطح دنیا @BIMining