DevOps که از ترکیب دو واژه انگلیسی Development (به معنای توسعه) و Operations (به معنای عملیات و اجرا) ایجاد شده، حرکت و فرهنگی است که بر همکاری و ارتباط عمیق توسعهدهندگان نرمافزار و سایر متخصصان حوزه فناوری اطلاعات (IT)، در فرایند ارایه محصول نرمافزاری تأکید میکند. این حرکت تلاش دارد تا محیطی را فراهم کند که در آن امکان ساخت، آزمایش و ارایه نرمافزار با سرعت بیشتر و با پایداری بالاتر تحقق یابد. در گذشته، بکارگیری زیرساختها و بهروزرسانی اپلیکیشنها، باعث کند شدن چرخه عمر آنها میشد. امروز که تکنولوژی رایانش ابری به سازمانها اجازه میدهد منابع را به جای چند ماه در چند دقیقه فراهم کنند، وقت آن رسیده که چرخه عمر اپلیکیشنها هم به تناسب تغییر کند. در این زمینه، DevOps میتواند کمک کند، اما تنها در صورتی که فراتر از تغییرات فرهنگی و گسترش مداوم حرکت کند. DevOps (ترکیبی از دو کلمه Development به معنی توسعه و Operation به معنی عملیات)، روشی برای تولید نرمافزار است که بر ارتباطات، مشارکت و ادغام بین تولیدکنندگان نرمافزار و متخصصین IT تأکید میکند. در واقع، DevOps واکنشی به وابستگی متقابل تولید نرمافزار و عملیات IT است. هدف آن کمک به سازمانها است تا بتوانند به سرعت محصولات و خدمات نرمافزاری تولید کنند. واضح است که تکنولوژی رایانش ابری تغییرات بزرگی را در اپلیکیشنها وارد و ممکن میسازد. برخی مقالات تاکنون بر تغییرات فنی که رایانش ابری بر ساختار اپلیکیشنها تحمیل میکند، متمرکز بودهاند. این تغییرات همگی برای پشتیبانی از تغییرپذیری افزایش یافته مقیاس و بار، انتظار عملکرد بهتر و قیمتگذاری تغییریافته که رایانش ابری ایجاد میکند، طراحی شدهاند. اما چیزی که این مقالات به آن نپرداختهاند، فرضیه سنتی دیگری در مورد اپلیکیشنها است که رایانش ابری در حال از بین بردن آن است: چرخه عمر اپلیکیشن. به طور خاص، تکنولوژی ابری نیازمند ریتم به شدت تندتری از مدیریت اپلیکیشن است که تغییر را در سازمانهای IT اعمال میکند. ظاهراً مشخص نیست چرا قابلیت فنی رایانش ابری در سازمانهای IT و فرایندهای کاری آنها تحول ایجاد میکند. به هر حال، اتوماسیون که شالوده اصلی قابلیت فنی رایانش ابری است هم نیازمند تسریع چرخه عمر اپلیکیشنها است. در دوره آموزشی Packt Learning Path: Modern DevOps با مباحث و سرفصل های دواوپس مدرن آشنا می شوید.
جاوا اسکریپت زبان برنامه نویسی می باشد که درون کدهای HTML قرار می گیرد و بر روی مرورگر بازدید کننده اجرا می شود. جاوا اسکریپت توانایی تغییر در محتویات المانهای نمایش داده شده را بر روی مرورگر فرد بازدید کننده دارد بطوریکه امکان پویا سازی یا دینامیک شدن صفحات بوجود می آید. جاو ااسکریپت زبان برنامهنویسی اسکریپت مبتنی بر اشیاء است که توسط NetScape تولید شدهاست. این زبان، یک زبان شیگرا است که بر اساس استاندارد ECMA-262 Edition 3 نوشته شدهاست. علیرغم اشتباه عمومی، زبان جاوااسکریت با زبان جاوا ارتباطی ندارد، اگر چه ساختار این زبان به سی پلاس پلاس(++C) و جاوا شباهت دارد؛ که این امر برای یادگیری آسان در نظر گرفته شدهاست. از همین رو دستورهای متداول مانند if, for, try..catch ,"while" و... در این زبان هم یافت میگردند. Grunt به معنای خرخر کردن [خوک] است. اما جدای از نحوه تلفظ و معنایش، گرانت یک ابزار جادویی است که می تواند برنامه (task) های نوشته شده به زبان جاوا اسکریپت را اجرا کند. درواقع ذهنیت اکثر افراد درباره جاوا اسکریپت به پویانمایی صفحات و کتابخانه jquery ختم می شود (که کاملا اشتباه است، اصلا از زمانی که گرانت ایجاد شده این موضوع نقض می شود). در دوره آموزشی Packt Learning Path: Efficient JavaScript Application Development با توسعه کارآمد و موثر اپلیکیشن های جاوا اسکریپت با استفاده از Node.js و گرانت آشنا می شوید.
PHP مخفف PHypertext Preprocessor یک زبان قدرتمند ( Cross-Platform , Html embeded ) برای ساخت وب سایت های پویا و داینامیک است. یک زبان سمت سرور که اسکریپت های آن بر روی سرور اجرا می شود. با استفاده از زبان php، شما می توانید سایت ها و پورتال های بزرگ سازمانی را با قدرت طراحی و برنامه نویسی کنید. php در نسخه های مختلفی به بازار عرضه شد که در حال حاضر نسخه ۵ آن توسط توسعه دهندگان php به کاربران و برنامه نویسان ارائه شده است. با آمدن php 5 تحول جدیدی در php ایجاد شد به صورتی که Microsoft سازنده زبان Asp بار دیگر از رقیب خود یعنی php عقب افتاد. در دوره آموزشی O'Reilly Learning Path: Learn Web Programming with PHP با نحوه برنامه نویسی وب با استفاده از زبان پی اچ پی آشنا می شوید.
Apache Spark ، یک چارچوب محاسباتی برای داده های عظیم است. Spark از MapReduce به عنوان موتور اجرای خودش، استفاده نمی کند اما بخوبی با هادوپ یکپارچه است. در واقع Spark میتواند در Yarn اجرا شود و با فرمت دادهای هادوپ و HDFS کار کند. Spark بیشتر بخاطر توانایی نگه داشتن مجموعه های دادهای بین کارها، در حافظه، شناخته می شود. این قابلیت Spark سبب میشود تا سریعتر از جریان کاری MapReduce معادل که مجموعه های داده های همیشه از دیسک بار می شوند، عمل کند. دو نوع کاربردی که از مدل پردازشی Spark بهره می برند، الگوریتمهای تکرار شونده (که یک تابع بر روی مجموعه دادهای بصورت تکراری تا حصول شرط خروج، اعمال می گردد، و تحلیل تعاملی(که یک کاربر مجموعه ای از پرس و جوهای اکتشافی تک کاره را بر روی مجموعهی دادهای، اعمال می کنند) است. همچنین اسپارک APIهایی در زبانهای Java، Scala و Python، ارایه می کند. پروژه Apache Spark شامل ماژول هایی یادگیری ماشین(MLlib)، پردازش گراف (GraphX)، پردازش جریانی( (Spark Streaming)، و SQL (Spark SQL است. در دوره آموزشی O'Reilly Learning Path: Getting Up and Running with Apache Spark با آپاچی اسپارک و امکانات آن آشنا می شوید.
Python (پایتون) یک زبان برنامه نویسی تفسیری، داینامیک و شیءگرا می باشد که می توان از آن در محدوده وسعیی از نرم افزار ها و تکنولوژی ها بهره برد. این زبان برنامه نویسی روش های بسیار قدرتمند و حرفه ای را برای کار با زبان ها و ابزار های مختلف را با آسانی هر چه تمام تر فراهم می کند. بدین منظور این زبان داره کتابخانه هایی بسیار گسترده می باشد که یادگیری و استفاده از آن ها در عرض چند روز ممکن می باشد. این زبان، یک زبان آزاد و متن باز (Open Source) می باشد. کد های نوشته شده در این زبان در محدوده ای وسیع از پلتفرم ها چون لینوکس، ویندوز، مک، حتی گوشی های موبایل و ... قابل اجرا می باشد . هم اکنون پایتون در شرکت ها و سازمان های بزرگی چون ناسا، گوگل، یاهو و ... به صورت گسترده مورد استفاده قرار می گیرد. نرم افزارهای Blender، Mailman، Civilization IV، BitTorrent و ... از نرم افزارهایی هستند که به وسیله این زبان خلق شده اند. در دوره آموزشی Packt Learning Path: Python Web Development با توسعه انواع وب سایت ها با استفاده از چارچوب های مختلف پایتون مانند فلاسک و جنگو آشنا می شوید.
معماری نرمافزار در واقع انتخاب یک ساختار کلی برای پیاده سازی یک پروژه نرمافزاری بر مبنای مجموعه ای از نیازهای کاربری و تجاری یک سیستم نرمافزاری است تا هم بتوان کاربردهای مورد نظر را پیاده سازی کرد و هم بتوان کیفیت نرمافزار، تولید آن و نگهداری آن را نیز بهینه کرد و سرعت بخشید. به عبارتی دیگر: معماری نرم افزار یک برنامه یا سیستم محاسباتی، ساختار یا ساختارهای آن سیستم محاسباتی است که خصوصیات قابل رویت از بیرون، عناصر و ارتباطات بین آن ها را نشان می دهد. از بدو مطرح شدن نرم افزار تاکنون ، معماری های متفاوتی بمنطور طراحی و پیاده سازی ارائه شده است. معماری های فوق از یکطرف برخاسته از امکانات و ماهیت سخت افزار ها در زمان خود و از طرف دیگر نمایانگر نوع و نگرش انتظارات طرح شده توسط کاربران است. در دوره ی آموزشی O'Reilly Learning Path: Issues and Next Steps in Software Architecture با مفاهیم مطرح شده در زمینه معماری نرم افزار ها، مسائل و مشکلات آنها و مراحل بعدی در طراحی معماری نرم افزار آشنا می شوید.
لینوکس (Linux) سیستمعاملی شبه یونیکسی است که بخش عمدهٔ آن سازگار با استاندارد پازیکس است. از دید فنی لینوکسْ تنها نامی است برای هستهٔ سیستمعامل و نه کل آن. هستهای که نخستین بار در سال ۱۹۹۱ میلادی توسط لینوس توروالدز منتشر شد. اما به طور معمول این نام اطلاق میشود به سیستمعاملهایی که از همنهش (composition) لینوکس (به عنوان هسته سیستمعامل) با نرمافزارهای آزاد و متنباز بدست میآیند. درحالیکه بنیاد نرمافزار آزاد سیستمعامل حاصل از این همنهش را «گنو/لینوکس» مینامد اما همانطور که گفته شد به طور معمول آنرا لینوکس میخوانند. این دوگانگی در نام نهادن منجر به بحث نامگذاری گنو/لینوکس شدهاست. لینوکس از سختافزارهای مختلفی پشتیبانی میکند از جمله ساعت (Linux Watch)، تلفنهای همراه، تبلتها، مسیریابها، و کنسولهای بازی تا رایانههای رومیزی، رایانههای بزرگ و ابررایانهها. به سیستمعامل بنا شده با هسته لینوکس، توزیع لینوکس (linux distribution) میگویند که به طور معمول شامل ابزارهای گسترش نرمافزار، پایگاههای داده، سرویس دهندههای وب مثل آپاچی، محیطهای رومیزی مانند گنوم و کیدیئی و اکسافسیای و مجموعههای اداری مانند اُپن آفیس هستند. در دوره آموزشی Packt Learning Path: Linux Sysadmin Basics با اصول و مقدمات مدیریت سیستم در لینوکس آشنا می شوید.
MongoDB را میتوان یکی از پرمخاطبترین پایگاههای داده موجود در جمع اعضای خانواده NoSQL دانست که بنابر برخی آمارهای جمعآوری شده، لقب پرمخاطبترین را نیز بهخود اختصاص داده است. این پایگاه داده یک مدل منعطف، پویا و سندگرا را ارائه میکند که ساختاری با خروجی بسیار بالا و قابلیت مقیاسپذیری آسان را دارا است. Node.js این امکان را به شما می دهد که در سمت سرور هم از زبان javascript استفاده کنید؛ و هزینه ی یادگیری یک زبان دیگر را از دوش شما بر میدارد. به علاوه خاصیت NoSQL بودن MongoDB به شما کمک می کند که بدون نگرانی لایه ی داده را عوض کنید. و بالاخره این تکنولوژی جامعه ی پشتیبانی قوی دارد که باعث می شود کار کردن با این تکنولوژی راحت باشد. در دوره آموزشی Packt Learning Path: MongoDB Unlocked در دو بخش ابتدا با مفاهیم و امکانات مانگو دی بی آشنا می شوید، سپس به طراحی وب سایت با استفاده از نود جی اس و مانگو دی بی می پردازیم.
گو (Go) یک زبان برنامهنویسی ترجمهشده و همروند است که در شرکت گوگل و توسط رابرت گریسمر، راب پایک و کن تامپسون توسعه داده میشود. این زبان در نوامبر ۲۰۰۹ معرفی شد و در حال حاضر در چند سامانهٔ اجرایی گوگل استفاده میشود. کامپایلر گو از لینوکس، مک او اس، ویندوز و انواع سیستمهای عامل بیاسدی مانند FreeBSD پشتیبانی میکند. از لحاظ معماری پردازنده نیز، معماری x86، معماری x64، معماری ARM و معماری POWER که مخصوص به شرکت آیبیام است، توسط کامپایلر گو پشتیبانی میشوند. اهداف ایجاد زبان گو کارایی زبانهای ترجمهشده دارای سامانه نوع ایستا،آسانی برنامه نویسی زبانهای پویا، امنیت نوعها و حافظه، پشتیبانی برای همروندی و ارتباط، و کامپایل سریع است. در زبان گو، ارثبری نوعها وجود ندارد. در دوره آموزشی O'Reilly Learning Path: Go Fundamentals با اصول و مبانی زبان برنامه نویسی گو آشنا می شوید.
Node.js یک پلتفرم کدنویسی سمت سرور است که بر پایه موتور جاوا اسکریپت مرورگر گوگل کروم کدنویسی شده است. این پلتفرم توسط رایان داهل در سال ۲۰۰۹ ایجاد شده است. بر اساس اعلان مستندات رسمی تعریف Node.Js به شکل زیر عنوان میشود. Node.js یک پلتفرم ایجاد شده بر پایه موتور جاوا اسکریپت گوگل کروم است که باعث سهولت ایجاد و مقیاسپذیری برنامههای تحت شبکه میشود. این پلتفرم از یک مدل I/O رویداد محور استفاده میکند که مسدود نشونده (non-blocking) است و همین امر باعث کاهش فشار موجود بر روی سرور و افزایش کارآیی میشود و این امر برای اجرای برنامههای مبتنی بر داده که بصورت بلادرنگ (Real-Time) بر روی سرورهای نامتمرکز استفاده میشوند بسیار مناسب است. Node.js یک پلتفرم کد باز برای گسترش برنامههای سمت سرور و تحت شبکه است. این پلتفرم بر اساس زبان جاوا اسکریپت نوشته شده است و قابلیت پیادهسازی بر روی سیستمعاملهای ویندوز، لینوکس و سیستم عامل کامپیوترهای اپل را دارد. این فریم ورک کتابخانهای عظیم از ماژولهای مختلف جاوا اسکریپت را فراهم میکند که سهولت در گسترش وباپلیکیشن ها را تا حد زیادی فراهم میآورد. در دوره آموزشی O'Reilly Learning Path: Node for Frontend Developers با طراحی رابط کاربری وب سایت با استفاده از نود جی اس آشنا می شوید.