احمد رفیعی
احمد رفیعی
خواندن ۱۷ دقیقه·۸ ماه پیش

چه عمقی از لینوکس برای دواپس لازمه؟

Linux for DevOps
Linux for DevOps

سلام و درود

امیدوارم که عالی باشید. در ادامه‌ی مسیری که داریم می‌ریم رسیدیم به تشریح هر تیکه از این پازل بزرگ دواپس که امروز می‌خوام در مورد لینوکس صحبت کنم. موضوعی که خودم خیلی دوستش دارم. به نظرم لینوکس و یادگیریش می‌تونه یکی از بهترین تفریح‌هایی باشه که تجربش می‌کنید. شاید خندتون بگیره ولی جدی می‌گم این که لینوکس کلی عمق داره و می‌تونید هر بار یه چیز جدید ازش یاد بگیرید و یه جوری ازش استفاده کنید که قبلا فکر می‌کردید اصلا وجود نداره. همچین امکانی خیلی هیجان داره و برای آدم انگیزه ایجاد می‌کنه که جلو بره و ادامه بده.

خب یه مروری کنیم پست‌های قبلی رو:

توصیه می‌کنم که حتما این پست‌ها رو هم مطالعه کنید.

Linux
Linux

چرا لینوکس لازمه و کدوم توزیع:

قبلا زیاد در مورد این صحبت می‌شد که ویندوز یا لینوکس که الان دیگه انتخاب سخت نیست و تقریبا همه اتفاق نظر دارن که لینوکس برای دواپس بهترین انتخاب است. البته BSD هم خیلی مناسبه و فوق‌العاده‌ استیبل‌ هست. من تجربه‌ی پایداری و اسکیلی که تو FreeBSD تجربه کردم رو تو هیچ جای دیگه ندیدم. اما خب جامعه‌ی کوچکتری داره و تقریبا تنها هستی ولی اگر بخوام یه سیستم‌عامل جامع و عمومی برای دواپس معرفی کنم حتما لینوکس رو معرفی می‌کنم. پر کاربردترین سیستم‌عامل است از دیوایس‌های کوچیک یا هوشمند مثل تلویزیون یا یخچال هوشمند تا پر استفاده‌ترین دیوایس‌ها مثل گوشی هوشمند و کامپیوترهای بزرگ و عظیم همه و همه از لینوکس دارن استفاده می‌کنند.

از دلایل خودم بخوام بگم:

  • رایگان و متن باز هست که امکان خیلی مهمی است
  • جامعه‌ی خیلی بزرگی داره و کمک می‌کنه که به راحتی مشکلاتتون حل بشه
  • قابلیت سفارشی سازی خیلی خوبی داره یعنی می‌تونی برای هر کاری به خوبی Customizeاش کنید
  • تمام ابزارهای دواپس خصوصا Cloud و Orchestration برای لینوکس توسعه پیدا کردند
  • به خوبی می‌تونید امنش کنید (Hardening) و می‌تونید کاراییش رو بیشتر کنید (Tuning)
  • خط فرمان (CLI) که خیلی قدرتمنده و هر کاری که بخواید رو می‌تونید اونجا انجام بدید
Linux Distributions
Linux Distributions

حالا چه توزیعی رو باید انتخاب کنیم.

انتخاب توزیع از مهمترین تصمیم‌ها بعد از انتخاب سیستم‌عامل است. تو پروژه‌های بزرگ مثل Kubernetes یا Openstack یا Ceph این انتخاب خیلی می‌تونه مسیر پروژه را تغییر بده. پس خیلی مهمه که اول پروژه‌ انتخاب کنید که چه توزیعی از لینوکس رو برای سرورهای‌ خودتون استفاده می‌کنید.

Debian 12
Debian 12


من پیشنهادم Debian است. قبلا تا وقتی که Centos بود شاید رقابت خیلی جدی بین Debian و Centos بود اما الان که دیگه اون رقیب دوست‌داشتنی نیست و به نظرم بهترین انتخاب Debian است. حالا چرا Debian چون طی این سال‌های اخیر خیلی پایدار بوده و اصلا تغییر خاصی نداشته که باعث اختلال بشه. من خودم قبلا تو پروژه‌هام از Ubuntu LTS استفاده می‌کردم اما با تغییراتی که داشت دیگه کلا مزایای Ubuntu رو رها کردم و دیگه فقط از Debian استفاده می‌کنم. Debian یکم از Ubuntu دیرتر آپدیت می‌گیره اما به شدت پایدارتر هست و پیشنهاد می‌کنم که حتما ازش استفاده کنید. البته یکم ممکنه سلیقه‌ تو این انتخاب دخیل باشه. ولی چیزی که مهمه اینکه قبل از شروع پروژه حتما انتخاب توزیع لینوکس رو باید انجام بدید و دلایل کاملی برای اون انتخاب داشته باشید. یه نکته‌ی ریزی اینجا بگم که لینوکس در اصل اون kernel هست که تو همه توزیع‌ها یکسان هست. این چیزی که ما بهش داریم الان لینوکس می‌گیم در اصل کرنل لینوکس به همراه ابزارها و پکیج‌هایی هست که کنار اون قرار گرفته و یه توزیع رو شکل داده. ولی چون اونقدر متداول هست دیگه ما هم بهش می‌گیم لینوکس و نکته‌ی دیگه‌ اینکه شما هم می‌تونید توزیع لینوکس خودتون رو داشته باشید.

حالا دیگه سیستم‌عامل و توزیع اون رو انتخاب کردیم. بریم ببینم چه مواردی رو باید تو لینوکس بدونیم.

نکته‌ی مهم: با حضور و بروز کلاد پروایدرها شاید الان دیگه کمتر به دانش عمیق لینوکس لازم باشه. فکرش رو بکنید خود پروایدر مثلا آمازون داره بهتون کوبرنتیز مدیریت شده می‌ده. خودش سیستم‌عامل رو کامل سفارشی کرده تا بهترین عملکرد رو تو کلاستر داشته باشه. اما من متقعدم که با توجه به این شرایط هم شما باید دانش خوب و کافی در مورد لینوکس داشته باشید. با توجه به این موضوع بریم که ادامه بدیم.

چه مواردی از لینوکس رو باید بدونیم:

بازم جا داره تا بهش اشاره کنم که لینوکس منحصر به این مواردی که می‌گم نیست و خیلی گسترده هست و خوبه که حتما براش وقت بذارید و حتما توصیه می‌کنم که کتاب How linux works رو بخونید. یه چیز دیگه‌ که توصیه می‌کنم آموزش‌های آقا مرتضی باشسیز هست که خیلی خوب و روان لینوکس و کلی چیز دیگه درس داده و کاملا رایگان در اختیارتون هست. حتما ویدئو‌های آقا مرتضی رو ببینید و ازش یاد بگیرد. خودم هم تو آروان آکادمی یه قسمت لینوکس گفتم که سعی کردم تا این موارد رو پوشش بدم.

APT Package Manager
APT Package Manager

Package Management:

یکی از جاهایی که لینوکس رو خیلی قدرتمند کرده Package Manager هست. شما تمام موارد پیرامون یک پکیج از جستجو، دانلود، نصب، آپدیت و پاک کردن آن رو می‌تونید با استفاده از پکیج منیجرها انجام بدید. هر توزیع از لینوکس رو که انتخاب می‌کنید باید کار کردن با پکیج منیجر اون رو به خوبی بدونید و بتونید کارهایی که لازم دارید رو با آن انجام بدید. Debian از apt استفاده می‌کنه که یکی از قدرتمند ترین پکیج‌ منیجرها هست و به راحتی می‌تونید تمام کارهایی که لازم دارید رو با آن انجام بدید. این موضوع از معدود مواردی هست که با توجه به توزیع لینوکس متفاوت است و موارد دیگه اکثرا distro less هست و تو تمام توزیع‌های لینوکس کاملا برقرار می‌باشد.

  • apt (Debian/Ubuntu) or yum (CentOS/RHEL): Package management commands for installing, updating, and removing software packages.
  • dpkg (Debian/Ubuntu) or rpm (CentOS/RHEL): Package management commands for querying package information and managing individual packages.
linux process state
linux process state

Process and System Management:

بررسی و مدیریت پروسه‌ها تو لینوکس خیلی اهمیت داره. ما باید بتونیم پروسه‌های داخل لینوکس رو بررسی و مدیریت کنیم. اینکه الان کدوم پروسه داره بیشترین منابع رو مصرف می‌کنه یا اینکه کدوم پروسه‌ تو چه وضعیتی هست خیلی مهمه و لازمه که بدونیم و بتونیم باهاشون کار کنیم. تو لینوکس یه سرویس به عنوان اولین سرویس راه‌اندازی می‌شه که اونم systemd هست و اون میاد تمام سرویس‌های دیگه رو مدیریت و سامان‌دهی می‌کنه. کار با systemd رو هم لازمه که بدونیم تا بتونیم وضعیت سرویس‌ها رو بررسی کنیم و به خوبی آنها رو مدیریت کنیم.

  • ps: View running processes.
  • top: Monitor system resources and processes in real-time.
  • htop: interactive process viewer.
  • atop : advanced interactive monitor to view the load on a Linux system.
  • lsof : list open files.
  • kill: Terminate processes.
  • bg: To send a process to the background
  • fg: run a stopped process in the foreground
  • jobs: Display status of jobs​
  • systemctl: Manage system services.
  • jornalctl: Query the systemd journal
  • free: Display system memory usage.
  • uptime: Show system uptime and load averages.

Monitoring, Logging, and viewing file:

مانیتورینگ و لاگینگ خیلی مهمه. من همیشه گفتم مثل چشم و گوش ما تو سرورها هستن. معمولا تو پروژه‌ها ما سامانه‌ی مستقل برای مانیتورینگ و لاگینگ داریم. اما لازمه که داخل سیستم‌عامل هم بتونیم لاگ بخونیم و منابع اون رو مانیتور کنیم. ما ابزارهای زیادی داریم که بتونیم باهاش لاگ پروسه‌ها و سرویس‌هایی که داریم رو بررسی و اونها رو مانیتور کنیم. پس دونستن این ابزارها خیلی مهمه. حتی با وجود سامانه‌ی مانیتورینگ و لاگینگ گه‌گاه پیش میاد که ما نیاز داریم به خود سرور لاگین کنیم و اونجا پروسه‌ها رو بررسی و مدیریت کنیم. پس دونستن این موارد نه تنها مهمه بلکه الزامی هست.

  • cat: Concatenate and display file contents.
  • grep: Search for patterns in files.
  • head: Display the beginning of a file.
  • tail: Display the end of a file.
  • less: View file contents interactively.
  • sed: Stream editor for text manipulation.
  • awk: Text processing and data extraction tool.
  • nmon : A system monitor tool for Linux and AIX systems.
  • iostat : A tool that reports CPU statistics and input/output statistics for devices, partitions and network filesystems.
  • sar : A system monitor command used to report on various system loads, including CPU activity, memory/paging, device load, network.
  • vmstat : A tool that reports virtual memory statistics.
  • sort : A command-line utility for sorting lines of text files.
  • cut : A command-line utility for cutting sections from each line of files.
  • uniq : A command-line utility for reporting or omitting repeated lines.
  • echo : A command-line utility for displaying a line of text.
  • wc : A command-line utility for printing newline, word, and byte counts for files.
Linux networking tools
Linux networking tools

Linux Networking Tools:

کلا تو لینوکس اونقدر شما قابلیت سفارشی سازی دارید و این سیستم‌عامل توانمند هست که می‌تونید حتی به عنوان یه روتر یا سوئیچ ازش استفاده کنید. تو نتورک دستمون کامل بازه و لازمه که یه مقداری از نتورک رو بدونیم و با ابزارهایی که در اختیار داریم تمام ارتباطات بین سرور خودمون با جاهایی دیگه رو کامل بررسی کنیم. خیلی از موارد پیش میاد که ما نیاز داریم تا Tshoot کنیم و مشکلاتی که وجود داره رو بررسی کنیم. معمولا از طریق نتورک ما به سرویس‌های داخل لینوکس ارتباط داریم و دونستن ساختار نتورک و توانایی بررسی نتورک خیلی اهمیت داره که حتما باید دانش خوبی تو این زمینه داشته باشیم. داشتن یه دانش ابتدایی از نتورک برای کار دواپس می‌تونیم بگیم که الزامی است. شما باید پروتکل‌ها و نحوه‌ی کار آنها رو بدید. دونستن این موضوع موقع استفاده از اون پروتکل خیلی می‌تونه بهتون کمک کنه. پیشنهاد می‌کنم حتما کتاب +network رو مطالعه کنید. برخی از پروتکل‌ها مهم عبارتند از:


  • TCP/IP: These are a set of standard rules that allows different types of computers to communicate with each other
  • UDP: UDP (User Datagram Protocol) is a connectionless, unreliable transport layer protocol
  • httpor https: a protocol used for transferring web pages and other resources on the World Wide Web
  • DNS: a protocol that translates human-readable domain names into IP addresses
  • SMTP: a protocol for sending and receiving email
  • POPand IMAP: POP and IMAP are protocols used by email clients to retrieve messages from a server
  • SSH: a protocol that provides secure, encrypted communication between devices over an insecure network
  • SNMP: a protocol used for managing and monitoring network devices, such as routers, switches, and servers
  • BGP: a protocol used to exchange routing information between autonomous systems on the Internet
  • DHCP: a protocol that automates the process of assigning IP addresses to devices on a network
  • ARP: A protocol used to map IP addresses to MAC addresses on a local network
  • FTPor sftp: a protocol designed for transferring files between computers
  • ICMP: a network protocol that is used to send error messages and operational information about network conditions
  • NTP: A protocol used to synchronize the clocks on devices on a network

یکی از مهمترین مواردی که تو نتورک مد نظر هست نحوه‌ی ارتباط با سرورها می‌باشد که بهترین و شاید تنها راه درست ارتباط با سرور استفاده از پروتوکل ssh است و اونم تنها با کلید که تمام این موارد در دستور ssh و سرویس ssh قرار داره. یکی از نکات مهم امن سازی سرورها هم همینه که این درگاه رو باید امن کنیم.

  • ping: Send ICMP echo requests to a host.
  • curl or wget: Download files from the web.
  • ssh: Securely connect to remote systems.
  • scp: Securely copy files between systems.
  • ssh-keygen: OpenSSH authentication key utility
  • netstat or ss: Network statistics and connections.
  • ifconfig or ip: Network interface configuration.
  • telnet: user interface to the TELNET protocol
  • mtror traceroute: network diagnostic tool
  • digor nslookup: DNS lookup utility
  • rsync: a fast, versatile, remote (and local) file-copying tool
  • nmap: Network exploration tool and security / port scanner
  • tcpdump: dump traffic on a network
  • route: show / manipulate the IP routing table
Linux Firewall
Linux Firewall

Linux Firewall:

فایروال یا دیواره‌ی آتش یکی از مهمترین موارد تو مدیریت سرورها است. سرور بدون فایروال یعنی خطر از دست دادن سرور و اطلاعات آن. شما تمام سرورهایی که کانفیگ می‌کنید باید دارای فایروال باشند. لینوکس با استفاده از netfilter کرنل فرآیند packet filtering رو برای ما به صورت کامل انجام می‌دهد. اونقدر قوی و کامل است که می‌تونیم لینوکس خودمون رو طوری کانفیگ کنیم که به عنوان فایروال نقش ایفا کند. اینترفیس ارتباط با netfilter ابزار iptables هست. خیلی ابزار قدرتمندی هست و باهاش خیلی خوب می‌شه فایروال لینوکس رو کانفیگ کرد. ابزارهای دیگه مثل ufw یا firewalld کار با iptables رو برای ما ساده‌تر کردن و همه‌ی اونها هم ruleهای iptables می‌زنند. من توصیه می‌کنم حتما حتما کار با iptables رو یاد بگیرد و فایروال تمام سرورهای خودتون رو کانفیگ کنید. به صورت کلی من همیشه دوست دارم مستقیم با خود اون ابزار کار کنم تا یه اینترفیس دیگه جلوی اون بنابراین بهتون توصیه می‌کنم که حتما با خود iptables کار کنید.

  • ufw and firewalld - Firewall management tools.
  • iptables and nftables - Firewall management tools.

File, Directory, and Disk Management:

Linux Directory
Linux Directory

داخل لینوکس همه چی دارای ساختار مشخصی هست که خوب دونستن اون خیلی لازمه. اینکه ساختار فایل‌ها به چه صورت است و هر دایرکتوری برای چه‌ کاری می‌باشد خیلی مهمه. دسترسی‌ها و مدیریت ‌آنها هم موضوع مهم دیگه‌ای هست که باید بدونید و باهاش بتونید کار کنید.

Linux Filesystem
Linux Filesystem

یکی از موارد دیگه دیسک و مدیریت آن است. کار با دیسک خیلی مهمه اینکه چطوری دیسک‌ها رو مدیریت کنیم و چه فایل‌سیستمی رو برای اون انتخاب کنیم خیلی اهمیت داره. مثلا اینکه دیسک خودمون رو چطور پارتیشن‌بندی کنیم. کدوم دایرکتوری‌ها رو تو پارتیشن جدا قرار بدیم. کدوم یکی از اونها رو LVM کنیم. اینها همه موضوعاتی هست که لازمه بهش دید داشته باشیم و بدونیم. براتون یه مثال از تجربه‌ی خودم بزنم. گاهی پیش میاد که تو پروژه لازم می‌شه یه دیسک جدید به سرور اضافه کنیم. نکته‌ی مهم اینه که اگر تو فایل etc/fstab/ پارتیشن‌ها رو با UUID مشخص و معرفی نکرده باشیم ممکنه که سیستم‌عامل ما کلا بوت نشه و دیسک جدید بالاتر از دیسک قبلی قرار بگیره و سیستم‌عامل بخواد از روی اون بوت بشه. پس دونستن این موارد برای کار با لینوکس خیلی اهمیت داره.

LVM Structure
LVM Structure
  • ls: List files and directories.
  • cd: Change the current directory.
  • pwd: Print the current working directory.
  • mkdir: Create a new directory.
  • rm: Remove files and directories.
  • cp: Copy files and directories.
  • mv: Move or rename files and directories.
  • find: Search for files and directories.
  • chmod: Change file permissions.
  • chown: Change file ownership.
  • lsattr: list file attributes on a Linux second extended file system
  • chattr: change file attributes on a Linux file system
  • fdisk: manipulate disk partition table
  • lsblk: list block devices
  • mkfs: build a Linux filesystem
  • lvm: LVM2 tools
  • df: Display disk space usage.
  • du: Estimate file and directory disk usage.
  • ncdu: NCurses Disk Usage
  • mount: mount a filesystem
  • parted: a partition manipulation program
  • cfdisk: display or manipulate a disk partition table
  • blkid: locate/print block device attributes
Vim Editor
Vim Editor

Linux Editor:

تو لینوکس همه‌ چیز فایل است. وقتی همه چی فایله پس کار با فایل‌ها خیلی اهمیت پیدا می‌کنه. به صورت کلی من توصیه می‌کنم که حتما شما کار با یه CLI Editor و یک GUI Editor رو بدونید و بهش مسلط باشید. این که شما چه چیزهایی رو انتخاب می‌کنید سلیقه‌ای است اما لازمه که حتما کار با آنها رو بدونید. حتما تو CLI Editor این توصیه رو دارم که حتما ادیتوری رو انتخاب کنید که معمولا روی سرورها نصب است تا همواره بتونید باهاش فایل‌ها رو بررسی و کانفیگ کنید. من خودم پیشنهادم استفاده از vim برای CLI و از Vscode برای GUI هست که هر دو ادیتورهای قدرتمندی هستن. Vscode یکی از معدود محصولات Microsoft هست که من خیلی دوستش دارم و ازش استفاده می‌کنم. :) پس لازمه که حتما کار با ادیتورها رو بدونید و بتونید نیازهای خودتون رو باهاش برطرف کنید.

  • vi: a programmer's text editor
  • vim: Vi IMproved, a programmer's text editor
  • nano: Nano's another editor, inspired by Pico
Bash Script
Bash Script

‌Bash Scripting:

بش اسکریپتینگ یکی از راه‌هایی هست که ما می‌تونیم تسک‌ها و مواردی که تو لینوکس می‌خواهیم انجام بدیم رو خودکار کنیم. این خودکار سازی بهمون کمک می‌کنه که کارهای تکراری که لازمه انجام بشه رو به راحتی انجام بدیم. تو استفاده از بش اسکریپت ما تمام امکانات خط فرمان رو داریم و دستمون کامل بازه. یه نکته‌ی کوچیک بگم اینکه امروزه با قدرتمند شدن Configuration managementها و ظهور Infrastructure as code شاید استفاده و کاربرد bash script کمتر شده باشه اما هنوز برای خیلی از موارد داخل سیستم‌عامل مثل بکاپ گرفتن و .... کاربردی هست و ازش استفاده می‌شه.

 Nginx
Nginx

Web Servers:

شاید می‌تونست جای وب سرور اینجا نباشه و خودش یه مبحث جداگانه‌ای باشه اما به نظرم با توجه به گستردگی موضوعات اینم اینجا بررسیش کنیم. دونستن وب سرور و کار باهاش خیلی مهمه و لازمه. ما معمولا با استفاده از وب‌سرور سرویس نهایی خودمون رو به کاربر می‌دیم. یکی از بهترین و قوی‌ترین وب‌سرورها جناب Nginx هست که خیلی کار می‌تونید باهاش انجام بدید. شما از nginx می‌تونید برای Reverse proxy، Cache، Load balancer، ایجاد آپلود سرور، ارائه‌ی فایل و فایل سرور و ... استفاده کنید که تو تمام این زمینه‌ها هم از قدرت خوبی برخوردار است.

Traefik Design
Traefik Design

یه ابزار دیگه هم اینجا بهتون توصیه می‌کنم که یاد بگیرد Traefik است که کمک می‌کنه تا Automatic Configuration داشته باشید. البته اگر از داکر یا پروایدرهای دیگه‌ای که پشتیبانی می‌کنه استفاده کنید. کلا دونستن و کار کردن با یک وب سرور برای کار دواپس به نظرم کاملا الزامی است.

Linux Hardening and Tuning
Linux Hardening and Tuning

Hardening and Tuning:

همواره لینوکس به صورت عمومی منتشر می‌شه و تقریبا برای استفاده‌ی خاصی سفارشی نشده است. مگر اینکه توزیع خاصی باشه که برای استفاده‌ی خاصی آماده شده باشه. پس به صورت کلی لینوکس برای استفاده‌ی عمومی آماده شده. پس نیازه که سرور لینوکس رو امن و کاربردی کنیم. امن کردن لینوکس یا Hardening یک سری موارد است که کمک می‌کنه که سرور امن‌تر شود. برخی از اقدامات که در هاردنینگ انجام می‌دیم شامل امن‌کردن SSH سرویس، جدا کردن برخی از پارتیشن‌ها، دسترسی فایل‌ها و دایرکتوری‌ها، کانفیگ درست پکیج‌ منیجر، کانفیگ فایروال، کانفیگ audit logging، غیر فعال کردن قابلیت‌هایی که استفاده نمی‌شه و برخی موارد دیگه که از حوصله‌ی این مستند خارجه. یه ابزار بهتون معرفی می‌کنم به اسم Lynis که کمکتون می‌کنه تا سرور لینوکسی خودتون رو Audit کنید و ببنید که الان تو چه وضعیتی از hardening قرار دارید.

موضوع بعدی Tuning سرور لینوکس هست که کارایی اون رو افزایش می‌ده. مثلا اینکه تعداد فایل دیسکریپتورهای لینوکس رو بیشتر کنیم. حالا سوال پیش میاد اینکه چرا لینوکس به صورت پیش‌فرض این طوری کانفیگ نشده. دلیلش همینه که قبلا گفتم لینوکس برای استفاده‌ی عمومی منتشر می‌شه ولی امکان این رو داره که به صورت کامل برای نیاز شما سفارشی بشه. برخی از آپشن‌ها با توجه به نیازمندی که داریم کاملا می‌تونه از هم متفاوت باشه. مثلا تو یه پروژه من میزان time-wait رو افزایش دادم ولی تو یه پروژه‌ی دیگه میزان اون رو کاهش دادم. پس خیلی از آپشن‌ها به رفتار و نیاز ما بستگی داره.


سخن پایانی:

همان‌طور که دیدید مواردی که باید تو لینوکس یاد بگیریم کم نیست. تازه اینا مواردی هست که به نظرم الزامی هست. کلی موضوع دیگه‌ هست که خیلی می‌تونه مفید باشه ولی دیگه از حوصله‌‌ی این مستند خارج است. من نظرم اینه که هر چقدر برای لینوکس و یادگیری اون وقت بذارید بازم کمه. همیشه می‌تونید از لینوکس عمق بیشتری رو تجربه کنید و ازش یاد بگیرید. کلا شما هر چقدر شما لینوکس رو بهتر و بیشتر درک کرده باشید ابزارها و سرویس‌های دیگه رو هم می‌تونید بهتر و راحت‌تر درک کنید. این موضوع به صورت کاملا ملموس تو استک‌های بزرگ خودش رو نشون می‌ده. مثلا وقتی دارید کوبرنتیز کانفیگ می‌کنید درک درستی از لینوکس خیلی می‌تونه تو رفع مشکلاتی که براتون پیش میاد کمک کنه.

شاد باشید.

linuxdevops
مشاور زیرساخت. موسس سایت آموزشی DockerMe.ir
شاید از این پست‌ها خوشتان بیاید