آیا میخواهید که وب سایت شما سریعتر نمایش داده شود؟ در این کتاب 14 راهکار برای سریعتر کردن زمان پاسخ گویی بین 25 تا 50 درصد ارائه شده است. نویسنده این کتاب یعنی Steve Souders در شغل خود به عنوان سرپرست کارایی Yahoo این best practiceها را به هنگام بهینه سازی صفحات پر بازدید وب جمع آوری کرده است. حتی سایت هایی که هم اکنون کاملا بهینه شده اند به مانند جست و جوی یاهو یا صفحه اصلی یاهو، میتوانند به سادگی از این نکات برای افزایش کارایی خود بهره مند شوند.
The rules include how to:
• Make Fewer HTTP Requests
• Use a Content Delivery Network
• Add an Expires Header
• Gzip Components
• Put Stylesheets at the Top
• Put Scripts at the Bottom
• Avoid CSS Expressions
• Make JavaScript and CSS External
• Reduce DNS Lookups
• Minify JavaScript
• Avoid Redirects
• Remove Duplicates Scripts
• Configure ETags
• Make Ajax Cacheable
If you're building pages for high traffic destinations and want to optimize the experience of users visiting your site, this book is indispensable.
"If everyone would implement just 20% of Steve's guidelines, the Web would be a dramatically better place. Between this book and Steve's YSlow extension, there's really no excuse for having a sluggish web site anymore."
-Joe Hewitt, Developer of Firebug debugger and Mozilla's DOM Inspector
"Steve Souders has done a fantastic job of distilling a massive, semi-arcane art down to a set of concise, actionable, pragmatic engineering steps that will change the world of web performance."
-Eric Lawrence, Developer of the Fiddler Web Debugger, Microsoft Corporation
1. Chapter 1 The Importance of Frontend Performance
1. Tracking Web Page Performance
2. Where Does the Time Go?
3. The Performance Golden Rule
2. Chapter 2 HTTP Overview
1. Compression
2. Conditional GET Requests
3. Expires
4. Keep-Alive
5. There's More
3. Chapter 3 Rule 1: Make Fewer HTTP Requests
1. Image Maps
2. CSS Sprites
3. Inline Images
4. Combined Scripts and Stylesheets
5. Conclusion
4. Chapter 4 Rule 2: Use a Content Delivery Network
1. Content Delivery Networks
2. The Savings
5. Chapter 5 Rule 3: Add an Expires Header
1. Expires Header
2. Max-Age and mod_expires
3. Empty Cache vs. Primed Cache
4. More Than Just Images
5. Revving Filenames
6. Examples
6. Chapter 6 Rule 4: Gzip Components
1. How Compression Works
2. What to Compress
3. The Savings
4. Configuration
5. Proxy Caching
6. Edge Cases
7. Gzip in Action
7. Chapter 7 Rule 5: Put Stylesheets at the Top
1. Progressive Rendering
2. sleep.cgi
3. Blank White Screen
4. Flash of Unstyled Content
5. What's a Frontend Engineer to Do?
8. Chapter 8 Rule 6: Put Scripts at the Bottom
1. Problems with Scripts
2. Parallel Downloads
3. Scripts Block Downloads
4. Worst Case: Scripts at the Top
5. Best Case: Scripts at the Bottom
6. Putting It in Perspective
9. Chapter 9 Rule 7: Avoid CSS Expressions
1. Updating Expressions
2. Working Around the Problem
3. Conclusion
10. Chapter 10 Rule 8: Make JavaScript and CSS External
1. Inline vs. External
2. Typical Results in the Field
3. Home Pages
4. The Best of Both Worlds
11. Chapter 11 Rule 9: Reduce DNS Lookups
1. DNS Caching and TTLs
2. The Browser's Perspective
3. Reducing DNS Lookups
12. Chapter 12 Rule 10: Minify JavaScript
1. Minification
2. Obfuscation
3. The Savings
4. Examples
5. Icing on the Cake
13. Chapter 13 Rule 11: Avoid Redirects
1. Types of Redirects
2. How Redirects Hurt Performance
3. Alternatives to Redirects
14. Chapter 14 Rule 12: Remove Duplicate Scripts
1. Duplicate Scripts—They Happen
2. Duplicate Scripts Hurt Performance
3. Avoiding Duplicate Scripts
15. Chapter 15 Rule 13: Configure ETags
1. What's an ETag?
2. The Problem with ETags
3. ETags: Use 'Em or Lose 'Em
4. ETags in the Real World
16. Chapter 16 Rule 14: Make Ajax Cacheable
1. Web 2.0, DHTML, and Ajax
2. Asynchronous = Instantaneous?
The rules include how to:
• Make Fewer HTTP Requests
• Use a Content Delivery Network
• Add an Expires Header
• Gzip Components
• Put Stylesheets at the Top
• Put Scripts at the Bottom
• Avoid CSS Expressions
• Make JavaScript and CSS External
• Reduce DNS Lookups
• Minify JavaScript
• Avoid Redirects
• Remove Duplicates Scripts
• Configure ETags
• Make Ajax Cacheable
If you're building pages for high traffic destinations and want to optimize the experience of users visiting your site, this book is indispensable.
"If everyone would implement just 20% of Steve's guidelines, the Web would be a dramatically better place. Between this book and Steve's YSlow extension, there's really no excuse for having a sluggish web site anymore."
-Joe Hewitt, Developer of Firebug debugger and Mozilla's DOM Inspector
"Steve Souders has done a fantastic job of distilling a massive, semi-arcane art down to a set of concise, actionable, pragmatic engineering steps that will change the world of web performance."
-Eric Lawrence, Developer of the Fiddler Web Debugger, Microsoft Corporation
1. Chapter 1 The Importance of Frontend Performance
1. Tracking Web Page Performance
2. Where Does the Time Go?
3. The Performance Golden Rule
2. Chapter 2 HTTP Overview
1. Compression
2. Conditional GET Requests
3. Expires
4. Keep-Alive
5. There's More
3. Chapter 3 Rule 1: Make Fewer HTTP Requests
1. Image Maps
2. CSS Sprites
3. Inline Images
4. Combined Scripts and Stylesheets
5. Conclusion
4. Chapter 4 Rule 2: Use a Content Delivery Network
1. Content Delivery Networks
2. The Savings
5. Chapter 5 Rule 3: Add an Expires Header
1. Expires Header
2. Max-Age and mod_expires
3. Empty Cache vs. Primed Cache
4. More Than Just Images
5. Revving Filenames
6. Examples
6. Chapter 6 Rule 4: Gzip Components
1. How Compression Works
2. What to Compress
3. The Savings
4. Configuration
5. Proxy Caching
6. Edge Cases
7. Gzip in Action
7. Chapter 7 Rule 5: Put Stylesheets at the Top
1. Progressive Rendering
2. sleep.cgi
3. Blank White Screen
4. Flash of Unstyled Content
5. What's a Frontend Engineer to Do?
8. Chapter 8 Rule 6: Put Scripts at the Bottom
1. Problems with Scripts
2. Parallel Downloads
3. Scripts Block Downloads
4. Worst Case: Scripts at the Top
5. Best Case: Scripts at the Bottom
6. Putting It in Perspective
9. Chapter 9 Rule 7: Avoid CSS Expressions
1. Updating Expressions
2. Working Around the Problem
3. Conclusion
10. Chapter 10 Rule 8: Make JavaScript and CSS External
1. Inline vs. External
2. Typical Results in the Field
3. Home Pages
4. The Best of Both Worlds
11. Chapter 11 Rule 9: Reduce DNS Lookups
1. DNS Caching and TTLs
2. The Browser's Perspective
3. Reducing DNS Lookups
12. Chapter 12 Rule 10: Minify JavaScript
1. Minification
2. Obfuscation
3. The Savings
4. Examples
5. Icing on the Cake
13. Chapter 13 Rule 11: Avoid Redirects
1. Types of Redirects
2. How Redirects Hurt Performance
3. Alternatives to Redirects
14. Chapter 14 Rule 12: Remove Duplicate Scripts
1. Duplicate Scripts—They Happen
2. Duplicate Scripts Hurt Performance
3. Avoiding Duplicate Scripts
15. Chapter 15 Rule 13: Configure ETags
1. What's an ETag?
2. The Problem with ETags
3. ETags: Use 'Em or Lose 'Em
4. ETags in the Real World
16. Chapter 16 Rule 14: Make Ajax Cacheable
1. Web 2.0, DHTML, and Ajax
2. Asynchronous = Instantaneous?
3. Optimizing Ajax Requests
4. Caching Ajax in the Real World
17. Chapter 17 Deconstructing 10 Top Sites
1. Page Weight, Response Time, YSlow Grade
2. How the Tests Were Done
3. Amazon
4. AOL
5. CNN
6. eBay
7. Google
8. MSN
9. MySpace
10. Wikipedia
11. Yahoo!
12. YouTube
https://www.dropbox.com/s/4v2n71dpc7vjk0l/high_performance_web_sites.pdf?dl=0
#server #linux #high_performance_web_sites #speed #webserver @unixmens
4. Caching Ajax in the Real World
17. Chapter 17 Deconstructing 10 Top Sites
1. Page Weight, Response Time, YSlow Grade
2. How the Tests Were Done
3. Amazon
4. AOL
5. CNN
6. eBay
7. Google
8. MSN
9. MySpace
10. Wikipedia
11. Yahoo!
12. YouTube
https://www.dropbox.com/s/4v2n71dpc7vjk0l/high_performance_web_sites.pdf?dl=0
#server #linux #high_performance_web_sites #speed #webserver @unixmens
Dropbox
high_performance_web_sites.pdf
Shared with Dropbox
Forwarded from Academy and Foundation unixmens | Your skills, Your future (yashar esmaildokht 🐧)
Forwarded from Academy and Foundation unixmens | Your skills, Your future (yashar esmaildokht 🐧)
کتابی که در مورد openstreetmap نوشتم تقدیم عزیزان , جامعه متن باز نیازمند مشارکت همگان جهت بهبود و توسعه نقشه های باز هست , در این راه به یکدیگر و خودمان کمک کنیم , نقشه باز کاربردهای گسترده و بسیار زیاد دارد , هرگونه انتقاد و پیشنهاد را در مورد کتاب پذیرا هستم
با تشکرات فراوان
یاشار اسمعیل دخت
با تشکرات فراوان
یاشار اسمعیل دخت
Forwarded from Academy and Foundation unixmens | Your skills, Your future (yashar esmaildokht 🐧)
Forwarded from Academy and Foundation unixmens | Your skills, Your future (yashar esmaildokht 🐧)
مقاله ایجاد و مدیریت ، محدودیت در منابع در لینوکس https://www.dropbox.com/s/97q0h8l400edham/ulimit.pdf?dl=0 #yashar_esmaildokht #resource #linux @unixmens
همکاری به عنوان مدیر سیستم (Linux Sys Admin)
تخصص ها و مهارت های مورد نیاز
تسلط کامل بر روی سیستم عامل لینوکس(CentOS)، نگهداری و مانیتورینگ سرورها
تجربه کار با فایل سیستمها(GlusterFS)
آشنایی کامل با سیستم های Virtualization و Cloud
تجربه راه اندازی و نگهداری Docker Swarm
توانایی بالا در حفظ امنیت سرورها
آشنایی کامل با High Availability & Load Balancing و راه کارهای Scalability
آشنایی با پیکر بندی سرویس های تحت لینوکس و شبکه نظیر DNS و Webserver(NGINX)
آشنایی با مفاهیم TCP/IP و Network Protocols
آشنا به پیاده سازی روش های Backup و Disaster Recovery
موقعیت مکانی: تهران، شرکت وصل
سایت:vasl.ir
نوع همکاری: تمام وقت
متقاضیان میتوانند رزومه خودشان را به آدرس تلگرام زیر ارسال فرمایید
@EsmaeelNemati
#jobs #linux @unixmens
تخصص ها و مهارت های مورد نیاز
تسلط کامل بر روی سیستم عامل لینوکس(CentOS)، نگهداری و مانیتورینگ سرورها
تجربه کار با فایل سیستمها(GlusterFS)
آشنایی کامل با سیستم های Virtualization و Cloud
تجربه راه اندازی و نگهداری Docker Swarm
توانایی بالا در حفظ امنیت سرورها
آشنایی کامل با High Availability & Load Balancing و راه کارهای Scalability
آشنایی با پیکر بندی سرویس های تحت لینوکس و شبکه نظیر DNS و Webserver(NGINX)
آشنایی با مفاهیم TCP/IP و Network Protocols
آشنا به پیاده سازی روش های Backup و Disaster Recovery
موقعیت مکانی: تهران، شرکت وصل
سایت:vasl.ir
نوع همکاری: تمام وقت
متقاضیان میتوانند رزومه خودشان را به آدرس تلگرام زیر ارسال فرمایید
@EsmaeelNemati
#jobs #linux @unixmens
از عمده ترین چالش هایی که در حوزه فناوری اطلاعات مطرح می گردد تعداد بیش از اندازۀ سرویس دهنده های تک منظوره Single Purpose Server می باشد. در ظاهر افزایش تعداد سرورها چالش چندان بزرگی به حساب نمی آید اما در فرآیند توسعه سازمان، افزایش بی رویه سرورها موجب تحمیل هزینه های سنگین پنهانی می گردد. هزینه هایی چون نگهداری و پشتیبانی سخت افزار، تامین UPS، تجهیزات خنک کننده، محل نگهداری سرورها و از همه مهمتر افزایش کارشناسان خبرهای که وظـیفه مدیـریت سیستمها را بر عهده دارند، مدیران را مجاب می کند که تجمیع سرویسدهندهها Server Consolidation را به عنوان یک اصل و مجازی سازی Virtualization را به عنوان راهکاری موثر بپذیرند.
با استفاده از مجازی سازی Downtime به عنوان یکی از بارزترین مخاطرات عملکرد سرویس دهنده ها در مفاهیمی چون Availability و Fault Tolerance مرتفع، و امکان انتقال سرویس ، پردازش ها و همچنین اختصاص منابع و جابجایی یک ماشین مجازی از یک هاست به هاست دیگر به صورت داینامیک ( پویا ) میسر گردیده است و همچنین در سایه تکنولوژی مجازی سازی مفهوم Disaster Recovery ارتقاء چشمگیری داشته و در ابعاد وسیعی نیازهای سازمان ها را در جهت پایداری سرویس ها مرتفع ساخته است.
در مسیر پیاده سازی ساختارهای مجازی سازی Virtualization، سازمانها از ویژگیهایی فراوانی بهرمند می شوند که هر یک به نوبه خود امکانات و قابلیت های فراوانی را برای سازمانها ایجاد می نماید.
استفاده بهینه از منابع سخت افزاری
قابلیت تقسیم بار، برروی هاست ها و تجهیزات ذخیره سازی
مجزا بودن ماشین های مجازی
عدم وابستگی ماشین های مجازی به منابع سخت افزاری
تحمل خطا و کاهش Downtime سرویس دهنده ها
تعیین سطوح دسترسی کاربران و مدیران به زیرساخت پیاده سازی شده
HA) High Availability)
FT) Fault Tolerance)
سهولت در پیاده سازی ساختارهای Disaster Site
امکان پیاده سازی High Availability در لایه Application
سهولت در پشتیبان گیری از ماشین ها مجازی
امکان برگرداندن سرویس دهند ها در سریع ترین زمان ممکن به حالت سرویس دهی در زمان بروز مشکل
امکان مجازی سازی در لایه تجهیزات ذخیره سازی(Storage)
امکان مجازی سازی در لایه تجهیزات زیرساختی
امکان پیاده سازی Desktop Virtualization
#linux #virtualization @unixmens
با استفاده از مجازی سازی Downtime به عنوان یکی از بارزترین مخاطرات عملکرد سرویس دهنده ها در مفاهیمی چون Availability و Fault Tolerance مرتفع، و امکان انتقال سرویس ، پردازش ها و همچنین اختصاص منابع و جابجایی یک ماشین مجازی از یک هاست به هاست دیگر به صورت داینامیک ( پویا ) میسر گردیده است و همچنین در سایه تکنولوژی مجازی سازی مفهوم Disaster Recovery ارتقاء چشمگیری داشته و در ابعاد وسیعی نیازهای سازمان ها را در جهت پایداری سرویس ها مرتفع ساخته است.
در مسیر پیاده سازی ساختارهای مجازی سازی Virtualization، سازمانها از ویژگیهایی فراوانی بهرمند می شوند که هر یک به نوبه خود امکانات و قابلیت های فراوانی را برای سازمانها ایجاد می نماید.
استفاده بهینه از منابع سخت افزاری
قابلیت تقسیم بار، برروی هاست ها و تجهیزات ذخیره سازی
مجزا بودن ماشین های مجازی
عدم وابستگی ماشین های مجازی به منابع سخت افزاری
تحمل خطا و کاهش Downtime سرویس دهنده ها
تعیین سطوح دسترسی کاربران و مدیران به زیرساخت پیاده سازی شده
HA) High Availability)
FT) Fault Tolerance)
سهولت در پیاده سازی ساختارهای Disaster Site
امکان پیاده سازی High Availability در لایه Application
سهولت در پشتیبان گیری از ماشین ها مجازی
امکان برگرداندن سرویس دهند ها در سریع ترین زمان ممکن به حالت سرویس دهی در زمان بروز مشکل
امکان مجازی سازی در لایه تجهیزات ذخیره سازی(Storage)
امکان مجازی سازی در لایه تجهیزات زیرساختی
امکان پیاده سازی Desktop Virtualization
#linux #virtualization @unixmens
قبل از هر اقدامی نیاز به کسب اطلاعات در مورد این ساختار هست که سخت افزار ما این روند را پشتیبانی می کند یا نه .
اما چگونه می توان پی به آن برد ؟
قبل از هر چیز بررسی میکنیم که مجازی ساز ی در سی پی یو ما ساپورت میشود یا نه ؟
less /proc/cpuinfo |grep -i -E 'svm|vmx' –color
نکته :در اینتل : vmx ودر ا ام دی : svm
flags
: fpu tsc msr pae mce cx8 vmx apic mtrr mca cmov pat
pse36 clflush
dts acpi mmx fxsr sse sse2 ss ht tm syscall lm constant_tsc pni
monitor ds_cpl
vmx est tm2 cx16 xtpr lahf_lm
flags
: fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36
clflush
mmx fxsr sse sse2 ht syscall nx mmxext svm fxsr_opt lm 3dnowext
3dnow pni cx16
lahf_lm cmp_legacy svm cr8legacy ts fid vid ttp tm stc
و در استفاده از مجازی ساز kvm باید اطمینان کسب کنیم که ماٰول های مربوط به kvm برای ما لود شده است یا نه
# lsmod | grep kvm
خروجی میتواند این موا د باشد :
kvm_intel or kvm_amd
#linux #virtualization #kvm @unixmens
اما چگونه می توان پی به آن برد ؟
قبل از هر چیز بررسی میکنیم که مجازی ساز ی در سی پی یو ما ساپورت میشود یا نه ؟
less /proc/cpuinfo |grep -i -E 'svm|vmx' –color
نکته :در اینتل : vmx ودر ا ام دی : svm
flags
: fpu tsc msr pae mce cx8 vmx apic mtrr mca cmov pat
pse36 clflush
dts acpi mmx fxsr sse sse2 ss ht tm syscall lm constant_tsc pni
monitor ds_cpl
vmx est tm2 cx16 xtpr lahf_lm
flags
: fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36
clflush
mmx fxsr sse sse2 ht syscall nx mmxext svm fxsr_opt lm 3dnowext
3dnow pni cx16
lahf_lm cmp_legacy svm cr8legacy ts fid vid ttp tm stc
و در استفاده از مجازی ساز kvm باید اطمینان کسب کنیم که ماٰول های مربوط به kvm برای ما لود شده است یا نه
# lsmod | grep kvm
خروجی میتواند این موا د باشد :
kvm_intel or kvm_amd
#linux #virtualization #kvm @unixmens
مجازی در فلسفه به معنای غیر حقیقی است.در علوم کامپیوتر مجازی به معنای “محیطی سخت افزاری که به صورت فیزیکی وجود ندارد” است.در اینجا ما کارکرد سخت افزار فیزیکی را شبیه سازی می کنیم و آن را به یک سیستم عامل ارائه می کنیم .تکنولوژی که با استفاده از آن این کار انجام می گیرد تکنولوژی مجازی سازی نام دارد. سیستم فیزیکی که نرم افزار مجازی سازی (hypervisor یا Virtual machine monitor) را اجرا می کند میزبان (Host) و ماشین های مجازی که بر روی Hypervisor اجرا می شوند میهمان (Guest) نام دارند.
مجازی سازی اولین بار به شکل UML (User mode Linux) در لینوکس ظاهر شد و انقلابی که لازم بود تا لینوکس توسط آن به رقابت مجازی سازی قدم بگذارد را ایجاد کرد. امروزه گزینه های زیادی برای مجازی سازی در لینوکس وجود دارد تا با استفاده از آنها یک کامپیوتر را به چندین کامپیوتر تبدیل کنیم.از جمله راهکارهای محبوب مجازی سازی لینوکسی می توان به KVM ،Xen،QEMU وVirtual Box اشاره کر. بازبودن، انعطاف پذیری وبازدهی بالا ازجمله فاکتور های اصلی هستند که کاربران را به مجازی سازی مبتنی بر لینوکس جذب می کنند.
مانند هر نرم افزار متن باز دیگر نرم افزار های مجازی سازی نیز به شکل گروهی توسعه داده شده اند.این امر به طور غیر مستقیم مزیت های مدل متن باز را برای کاربر به ارمغان می آورد.به طور مثال در مقایسه با یک نرم افزار متن بسته ،نرم افزارهای متن باز کمک های بیشتری از سمت کاربران دریافت می کنند که باعث می شود به طور غیر مستقیم مخارج تحقیق وتوسعه کاهش پیدا کند وکارایی،بهره وری و بازدهی نیز افزایش یابد.م دل متن باز همیشه مشوق نوآوری است.
موارد زیر شاخصه های دیگری است که مدل متن باز ارائه می دهد:
راهکارهایی برای مشکلات واقعی از طرف کاربران
پشتیبانی از طرف بقیه کاربران
حق انتخاب برای زیرساخت
کنترل داشتن بر اطلاعات و امنیت بالا،بدلیل اینکه کد نرم افزار در دسترس همگان است امکان خواندن و دستکاری آن در موقع نیاز امکان پذیر است.
عدم محدودیت در هنگام مهاجرت کردن به محصولات مشابه و جلوگیری از موانع ناشی از عدم هماهنگی محصولات سازندگان مختلف
انواع مجازی سازی:
بطور ساده مجازی سازی فرآیند شبیه سازی سخت افزار، شبکه، ذخیره ساز (Storage)،برنامه و… می باشد.بنابرین مجازی سازی می تواند در همه ی این اجزاء اتفاق بیفتد. از این زاویه مجازی سازی فرآیند مخفی کردن سخت افزار فیزیکی سیستم است تا امکان استفاده ی چندین سیستم عامل از آن بوجود بیاید. این عمل به مجازی سازی پلتفرم نیز معروف است.بطور خلاصه این عمل یک لایه به نام hypervisor یا VMM بین سخت افزار فیزیکی و سیستم عاملی که بر روی آن در حال اجراست اضافه می کند. سیستم عاملی که بر روی Hypervisor درحال اجراست ماشین مجازی یا میهمان نامیده می شود.
ادغام سرورها: کاملا قابل درک است که مجازی سازی باعث کاهش مصرف و دخیره سازی انرژی می شود.مجازی سازی همچنین باعث کاهش مصرف در کل مراکزداده و نیز کاهش تعداد سرورها و دیگر تجهیزات فیزیکی از جمله رک (Rack)ها می شود. این امر موجب کاهش میزان مساحت مورد نیاز مراکزداده ،کاهش مصرف انرژی و… می گردد .که در نهایت منجر به کاهش هزینه ها و بهبود در مصرف انرژی می شود.اما آیا مجازی سازی باعث بهره وری بیشتر در سخت افزار نیز می شود؟ با استفاده از مجازی سازی می توان دقیقا به همان اندازه که ماشین مجازی نیاز به پردازنده(CPU) ،حافظه(Ram) و منابع ذخیره سازی (Storage resources) دارد به آن منابع اختصاص داد در نتیجه باعث افزایش بهره وری شد.
جداسازی سرویس ها: فرض کنید که مجازی سازی وجود نداشت در این شرایط راه حل شما برای جداسازی سرویس ها چه بود؟تنها راه حل جدا کردن فیزیکی سرورهاست با وجود اینکه با این روش میتوان از جداسازی سرویس ها اطمینان حاصل کرد اما آیا باعث رشد بی رویه ی سرورها و کاهش بهره وری و افزایش هزینه ها نمی شود؟مجازی سازی منجر به ایزوله سازی نرم افزارها و همچنین رفع مشکل عدم مطابقت برنامه ها می شود.این امر همچنین مدیریت سرویس ها را نیز آسانتر می کند.
راه اندازی سریعتر سرورها: راه اندازی سرور فیزیکی زمان بر است ،اما با مجازی سازی ،میتوان با استفاده از یک image از قبل تهیه شده یا از یک snapshot یک سرور مجازی راه اندازی کنید.
مجازی سازی اولین بار به شکل UML (User mode Linux) در لینوکس ظاهر شد و انقلابی که لازم بود تا لینوکس توسط آن به رقابت مجازی سازی قدم بگذارد را ایجاد کرد. امروزه گزینه های زیادی برای مجازی سازی در لینوکس وجود دارد تا با استفاده از آنها یک کامپیوتر را به چندین کامپیوتر تبدیل کنیم.از جمله راهکارهای محبوب مجازی سازی لینوکسی می توان به KVM ،Xen،QEMU وVirtual Box اشاره کر. بازبودن، انعطاف پذیری وبازدهی بالا ازجمله فاکتور های اصلی هستند که کاربران را به مجازی سازی مبتنی بر لینوکس جذب می کنند.
مانند هر نرم افزار متن باز دیگر نرم افزار های مجازی سازی نیز به شکل گروهی توسعه داده شده اند.این امر به طور غیر مستقیم مزیت های مدل متن باز را برای کاربر به ارمغان می آورد.به طور مثال در مقایسه با یک نرم افزار متن بسته ،نرم افزارهای متن باز کمک های بیشتری از سمت کاربران دریافت می کنند که باعث می شود به طور غیر مستقیم مخارج تحقیق وتوسعه کاهش پیدا کند وکارایی،بهره وری و بازدهی نیز افزایش یابد.م دل متن باز همیشه مشوق نوآوری است.
موارد زیر شاخصه های دیگری است که مدل متن باز ارائه می دهد:
راهکارهایی برای مشکلات واقعی از طرف کاربران
پشتیبانی از طرف بقیه کاربران
حق انتخاب برای زیرساخت
کنترل داشتن بر اطلاعات و امنیت بالا،بدلیل اینکه کد نرم افزار در دسترس همگان است امکان خواندن و دستکاری آن در موقع نیاز امکان پذیر است.
عدم محدودیت در هنگام مهاجرت کردن به محصولات مشابه و جلوگیری از موانع ناشی از عدم هماهنگی محصولات سازندگان مختلف
انواع مجازی سازی:
بطور ساده مجازی سازی فرآیند شبیه سازی سخت افزار، شبکه، ذخیره ساز (Storage)،برنامه و… می باشد.بنابرین مجازی سازی می تواند در همه ی این اجزاء اتفاق بیفتد. از این زاویه مجازی سازی فرآیند مخفی کردن سخت افزار فیزیکی سیستم است تا امکان استفاده ی چندین سیستم عامل از آن بوجود بیاید. این عمل به مجازی سازی پلتفرم نیز معروف است.بطور خلاصه این عمل یک لایه به نام hypervisor یا VMM بین سخت افزار فیزیکی و سیستم عاملی که بر روی آن در حال اجراست اضافه می کند. سیستم عاملی که بر روی Hypervisor درحال اجراست ماشین مجازی یا میهمان نامیده می شود.
ادغام سرورها: کاملا قابل درک است که مجازی سازی باعث کاهش مصرف و دخیره سازی انرژی می شود.مجازی سازی همچنین باعث کاهش مصرف در کل مراکزداده و نیز کاهش تعداد سرورها و دیگر تجهیزات فیزیکی از جمله رک (Rack)ها می شود. این امر موجب کاهش میزان مساحت مورد نیاز مراکزداده ،کاهش مصرف انرژی و… می گردد .که در نهایت منجر به کاهش هزینه ها و بهبود در مصرف انرژی می شود.اما آیا مجازی سازی باعث بهره وری بیشتر در سخت افزار نیز می شود؟ با استفاده از مجازی سازی می توان دقیقا به همان اندازه که ماشین مجازی نیاز به پردازنده(CPU) ،حافظه(Ram) و منابع ذخیره سازی (Storage resources) دارد به آن منابع اختصاص داد در نتیجه باعث افزایش بهره وری شد.
جداسازی سرویس ها: فرض کنید که مجازی سازی وجود نداشت در این شرایط راه حل شما برای جداسازی سرویس ها چه بود؟تنها راه حل جدا کردن فیزیکی سرورهاست با وجود اینکه با این روش میتوان از جداسازی سرویس ها اطمینان حاصل کرد اما آیا باعث رشد بی رویه ی سرورها و کاهش بهره وری و افزایش هزینه ها نمی شود؟مجازی سازی منجر به ایزوله سازی نرم افزارها و همچنین رفع مشکل عدم مطابقت برنامه ها می شود.این امر همچنین مدیریت سرویس ها را نیز آسانتر می کند.
راه اندازی سریعتر سرورها: راه اندازی سرور فیزیکی زمان بر است ،اما با مجازی سازی ،میتوان با استفاده از یک image از قبل تهیه شده یا از یک snapshot یک سرور مجازی راه اندازی کنید.
بازیابی از حادثه(Disaster Recovery): هنگامی که شما یک مرکزداده مجازی داشته باشید بازیابی از حوادث بسیار ساده خواهد بود.مجازی سازی این امکان را به شما می دهد که snapshot های بروز از سرورهای خود داشته باشید .این Snapshot ها میتوانند به سادگی بازیابی و پیکربندی شوند تا سرورها به وضعیت قبل حادثه خود بازگردند.همچنین مجازی سازی قابلیت هایی مانند مهاجرت ماشین مجازی (Vm Migration ) بصورت آنلاین و آفلاین را در اختیار شما قرار می دهد بنابرین شما همیشه می توانید ماشین های مجازی خود را به نقطه دیگری در مرکزداده منتقل کنید.این انعطاف پذیری کمک می کند تا یک طرح بازیابی با قابلیت اجرا ومیزان موفقیت بالاتری داشته باشیم.
تنظیم بار پویا(Dynamic load balancing): مجازی سازی این قابلیت را در اختیار ماشین های مجازی قرار می دهند تا بر اساس سیاست هایی که اعمال می کنید با تغییر بار سرورها ،سرویس ها از سروری که منابع آن بیش از اندازه درحال استفاده است به سروری که منابع آزاد دارد منتقل شوند (Live migration)، اکثر راهکارهای مجازی سازی دارای چنین سیاست هایی برای کاربران هستند.این شیوه تنظیم بار پویا باعث بالا رفتن بهره وری درمنابع سرورها می شود.
محیط های آزمایشی و توسعه ی سریعتر: اگر بخواهید محیطی را بشکل موقت تست کنید پیکربندی آن بر روی سرور فیزیکی دشوار است همچنین بدلیل موقت بودن آن ارزش چندانی هم ندارد.اما با استفاده از مجازی سازی راه اندازی محیط آزمایشی یا توسعه بسیار آسان است .با استفاده از یک سیستم عامل میهمان امکان پیکربندی سریع را با استفاده از جداسازی برنامه در یک محیط شناخته وکنترل شده به شما می دهد.
این کار همچنین باعث حذف بسیاری از فاکتور های ناشناخته مانند کتابخوانه (Libraries) های ناشناخته که از نصب نرم افزارهای بیشمار ناشی می شود را حذف می کند.مخصوصا اگر این محیط یک محیط آزمایشی یا توسعه باشد در هنگام اجرای آزمایش میتوان انتظار از کار افتادن سرور را داشت درصورتیکه اینکار در یک سرور فیزیکی انجام شود بازگردانی سرور احتیاج به ساعت ها نصب و پیکربندی دوباره سرور است درحالیکه با استفاده از سرور مجازی تنها احتیاج به یک فایل ایمیج مجازی است تا دوباره سرور را راه اندازی کنید.
بهبود امنیت و پایداری سیستم: راهکارهای مجازی سازی یک لایه انتزاعی(Abstraction layer) میان سخت افزار فیزیکی و ماشین های مجازی اضافه می کنند.بسیار شایع است که داده های روی دیسک فیزیکی آسیب ببینند و کل سرور را تحت تاثیر قرار دهند اما اگر این اطلاعات بر روی هارددیسک ماشین مجازی ذخیره شوند با آسیب دیدن اطلاعات ، دیسک فیزیکی از آسیب مصون می ماند و هارددیسک های مجازی هم نیازی به نگرانی ندارند.
در موارد مشابه نیز مجازی سازی میتواند مانع از کارافتادن سیستم بخاطر آسیب دیدن حافظه توسط نرم افزارهایی مانند درایورها شود.مدیرسیستم (Administrator) امکان این را دارد که که ماشین مجازی را در محیطی مجزا و مستقل پیکربندی کند.این پیکربندیِ سندباکسِ (Sandbox) ماشین های مجازی امنیت بیشتری به زیرساخت سیستم می دهد زیرا مدیر سیستم از این انعطاف پذیری برخوردار است تا بهترین تنظیمات ممکن را انتخاب کند. اگر مدیر تشخیص دهد که یک ماشین مجازی نیازی به دسترسی به اینترنت یا شبکه های دیگر ندارد می تواند ماشین مجازی را به آسانی به نحوی تنظیم کند تا از دسترسی به اینترنت منع شود.این امر به کاهش ریسک آلوده شدن یک سیستم که در ادامه باعث آلوده شدن سیستم های دیگر یا ماشین های مجازی نیز می شود کمک می کند.
جلوگیری از وابستگی به سخت افزار: مجازی سازی یک لایه ی انتزاعی مابین سخت افزار وسیستم عامل ایجاد میکند.اینکار باعث میشود تا از مشکلات ناشی از وابستگی به یک سازنده بخصوص (Vendor lock-in) جلوگیری شود،مخصوصا هنگامی که ماشین های مجازی به سخت افزاری که بر روی آن اجرا می شوند وابستگی خاصی نداشته باشند،به همین دلیل مدیران مراکزداده انعطاف پذیری بیشتری در هنگام انتخاب تجهیزات سرورها داشته خواهند داشت.بطور خلاصه مزیت مجازی سازی مستقل بودن آن از سخت افزار و جداسازی ماشین های مجازی از سخت افزار سیستم فیزیکی است.این خاصیت به در دسترس بودن سیستم(Availability) و تداوم کار کمک میکند. یکی از نکات قوت راهکار مجازی سازی ایجاد لایۀ انتزاعی مابین سخت افزار و نرم افزار سیستم است.
#linux #virtualization #kvm @unixmens
تنظیم بار پویا(Dynamic load balancing): مجازی سازی این قابلیت را در اختیار ماشین های مجازی قرار می دهند تا بر اساس سیاست هایی که اعمال می کنید با تغییر بار سرورها ،سرویس ها از سروری که منابع آن بیش از اندازه درحال استفاده است به سروری که منابع آزاد دارد منتقل شوند (Live migration)، اکثر راهکارهای مجازی سازی دارای چنین سیاست هایی برای کاربران هستند.این شیوه تنظیم بار پویا باعث بالا رفتن بهره وری درمنابع سرورها می شود.
محیط های آزمایشی و توسعه ی سریعتر: اگر بخواهید محیطی را بشکل موقت تست کنید پیکربندی آن بر روی سرور فیزیکی دشوار است همچنین بدلیل موقت بودن آن ارزش چندانی هم ندارد.اما با استفاده از مجازی سازی راه اندازی محیط آزمایشی یا توسعه بسیار آسان است .با استفاده از یک سیستم عامل میهمان امکان پیکربندی سریع را با استفاده از جداسازی برنامه در یک محیط شناخته وکنترل شده به شما می دهد.
این کار همچنین باعث حذف بسیاری از فاکتور های ناشناخته مانند کتابخوانه (Libraries) های ناشناخته که از نصب نرم افزارهای بیشمار ناشی می شود را حذف می کند.مخصوصا اگر این محیط یک محیط آزمایشی یا توسعه باشد در هنگام اجرای آزمایش میتوان انتظار از کار افتادن سرور را داشت درصورتیکه اینکار در یک سرور فیزیکی انجام شود بازگردانی سرور احتیاج به ساعت ها نصب و پیکربندی دوباره سرور است درحالیکه با استفاده از سرور مجازی تنها احتیاج به یک فایل ایمیج مجازی است تا دوباره سرور را راه اندازی کنید.
بهبود امنیت و پایداری سیستم: راهکارهای مجازی سازی یک لایه انتزاعی(Abstraction layer) میان سخت افزار فیزیکی و ماشین های مجازی اضافه می کنند.بسیار شایع است که داده های روی دیسک فیزیکی آسیب ببینند و کل سرور را تحت تاثیر قرار دهند اما اگر این اطلاعات بر روی هارددیسک ماشین مجازی ذخیره شوند با آسیب دیدن اطلاعات ، دیسک فیزیکی از آسیب مصون می ماند و هارددیسک های مجازی هم نیازی به نگرانی ندارند.
در موارد مشابه نیز مجازی سازی میتواند مانع از کارافتادن سیستم بخاطر آسیب دیدن حافظه توسط نرم افزارهایی مانند درایورها شود.مدیرسیستم (Administrator) امکان این را دارد که که ماشین مجازی را در محیطی مجزا و مستقل پیکربندی کند.این پیکربندیِ سندباکسِ (Sandbox) ماشین های مجازی امنیت بیشتری به زیرساخت سیستم می دهد زیرا مدیر سیستم از این انعطاف پذیری برخوردار است تا بهترین تنظیمات ممکن را انتخاب کند. اگر مدیر تشخیص دهد که یک ماشین مجازی نیازی به دسترسی به اینترنت یا شبکه های دیگر ندارد می تواند ماشین مجازی را به آسانی به نحوی تنظیم کند تا از دسترسی به اینترنت منع شود.این امر به کاهش ریسک آلوده شدن یک سیستم که در ادامه باعث آلوده شدن سیستم های دیگر یا ماشین های مجازی نیز می شود کمک می کند.
جلوگیری از وابستگی به سخت افزار: مجازی سازی یک لایه ی انتزاعی مابین سخت افزار وسیستم عامل ایجاد میکند.اینکار باعث میشود تا از مشکلات ناشی از وابستگی به یک سازنده بخصوص (Vendor lock-in) جلوگیری شود،مخصوصا هنگامی که ماشین های مجازی به سخت افزاری که بر روی آن اجرا می شوند وابستگی خاصی نداشته باشند،به همین دلیل مدیران مراکزداده انعطاف پذیری بیشتری در هنگام انتخاب تجهیزات سرورها داشته خواهند داشت.بطور خلاصه مزیت مجازی سازی مستقل بودن آن از سخت افزار و جداسازی ماشین های مجازی از سخت افزار سیستم فیزیکی است.این خاصیت به در دسترس بودن سیستم(Availability) و تداوم کار کمک میکند. یکی از نکات قوت راهکار مجازی سازی ایجاد لایۀ انتزاعی مابین سخت افزار و نرم افزار سیستم است.
#linux #virtualization #kvm @unixmens
فردا در مورد دستور virsh مطالبی خواهم نوشت ، که یکی از دستورات کاربردی در حوزه مجازی سازی است ، لطفا دوستان و علاقه مندان را به کانال خودتان معرفی کنید
Forwarded from Academy and Foundation unixmens | Your skills, Your future
کانالی در حوزه اپن سورس ، گنو/لینوکس ، امنیت و ... دوست داشتین عضو بشین یا به دیگران معرفی کنید
@unixmens
@unixmens
متاسفانه هنوز کسی به سوالات چالشی پاسخ نداده اند
https://t.iss.one/unixmens/4715
https://t.iss.one/unixmens/4695
https://t.iss.one/unixmens/4715
https://t.iss.one/unixmens/4695
Telegram
(اشتراک گذاری های مهندس اسمعیل دخت)
#سوال چالشی :
زمانی که در مجازی ساز قدرتمند proxmox یک دیسک برای ایجاد ماشین مجازی ایجاد میکنیم برای هر ماشین در ساختار lvm یک lv اضافه میکند // حال چطور می توان تعغیر انجام داد که ساختار بصورت esxi بوده و دیسک ماشین مجازی در فایل ایجاد شود ؟
جایزه…
زمانی که در مجازی ساز قدرتمند proxmox یک دیسک برای ایجاد ماشین مجازی ایجاد میکنیم برای هر ماشین در ساختار lvm یک lv اضافه میکند // حال چطور می توان تعغیر انجام داد که ساختار بصورت esxi بوده و دیسک ماشین مجازی در فایل ایجاد شود ؟
جایزه…