Information Technology Broadcasting - اطلاع‌رسانی فناوری اطلاعات
407 subscribers
13.9K photos
41 videos
505 files
489 links
Information Technology, Cloud computing, Digital transformation, IoT, Edge computing, IT governance, Fog computing, IT security, IT regulation, IT trends, Programming، Big data, Monitoring, Databases, Api, Service
Download Telegram
Forwarded from Hadi
خدمات محاسبات ابری معمولا دارای مدل مبتنی بر استفاده هستند که در آن پرداخت فقط بازای منابعی که استفاده می‌شود انجام می‌گیرد. در صورتی که نیاز به منابع بیشتری داشته باشید، تا حد ظرفیت ابر می‌توانید دریافت کنید و هزینه آن را پرداخت نمایید. خدماتی نظیرS3 و EC2 آمازون از این مدل قیمت‌گذاری استفاده می‌کنند. از مزایای این نوع قیمت‌گذاری می‌توان به عدم نیاز به سرمایه گذاری اولیه و دسترسی به ظرفیت مورد نیاز در زمان نیاز اشاره کرد. این مزایا باعث می‌شود که از یک سو تنها وقتی نیاز احساس شد، سرویس را تقاضا کرد و از سوی دیگر بتوان یک روز از 100 کاربر و روز دیگر از 10000 کاربر پشتیبانی کرد. به‌عنوان مثال فرض کنید شما نیاز به 100 سرور برای 3 سال دارید. یک روش این است که هر کدام از آنها را ساعتی 0.6 دلار اجاره کنید که تقریبا هزینه¬ای به این شکل خواهد داشت:

100 servers * $0.60 instance-hour * 3 years * 8,760 hours/year = $1,555,200

حال فرض کنید که هر سرور را به قیمت 1500 دلار خریداری کنید. به این ترتیب 2 نفر برای مدیریت و نگهداری شبکه نیاز دارید که فرض می کنیم سالیانه 100000 دلار دستمزد بگیرند. هر یک از سرورها 150 وات مصرف می‌کنند که با هزینه 0.1 دلار بازای هرکیلووات، سالیانه برای این 100 سرور 13140 دلار خواهد شد. سایر هزینه های مربوط به ایجاد زیرساخت مرکز داده (راک، روتر، سوئیچ، اتصالات، سرمایش، پهنای باند و ...) را 500000 دلار فرض می¬کنیم. به این ترتیب خواهیم داشت:


100 servers * $1,500 + 3 years * $13,140 electricity/year + 3 years * 2 staff * $100,000 salary/year + 500,000 $ other costs = $1,289,420

پس اگر قرار باشد که در طول این مدت، از 100 درصد توان سرورها استفاده کنید، خرید 100 سرور مناسب‌تر خواهد بود. ولی اگر از کمتر از 75 درصد توان سرورها استفاده کنید، استفاده از مدل ابری مناسب‌تر خواهد بود. چرا که در این صورت هزینه مورد نیاز، حداقل به میزان 25 درصد کاهش خواهد یافت:

$1,555,200* 0.75% = $1,166,400

لازم به ذکر است که در حالت ابری، این هزینه در طول مدت 3 سال پرداخت خواهد شد ولی در حالت غیرابری، بخش عمده ای از هزینه باید همان ابتدا پرداخت شود. نمودار مقایسه سه حالت فوق در شکل مقابل نشان داده شده است.

اهمیت اصلی رایانش ابری از نظر اقتصادی، مربوط به همین عدم نیاز به سرمایه گذاری اولیه است. اما همانطور که مشاهده می شود، در دراز مدت، اگر منابع به خوبی مدیریت نشوند، مجموع هزینه های ابری بسیار بیشتر خواهد شد.
Forwarded from Hadi
Cloud native applications are service-oriented.

Computing Paradigm Programming Paradigm
:
Mainframe>>>> Imperative
Client/Server >>>>>Object Oriented
Cloud Computing >>>>>Service Oriented
Forwarded from Hadi
Characteristics of Cloud-native Applications

A cloud-native application is composed of multiple services and each service is elastic, resilient, and composable. Let’s dissect this a bit:

The Application is composed of multiple services: what looks like a single application to the end user, for example a Software-as-a-Service (SaaS) human resources application, or a streaming music service, is actually delivered by a set of co-operating services. Clients interact with the application as a whole; typically via a single API. However, internally the application is made up of multiple cooperating services, much like an object-oriented application is made up of multiple cooperating objects.

Each service is elastic: this means that each service can scale-up or scale-down independently of other services. Ideally the scaling is automatic, based on load or other defined triggers. Cloud computing costs are typically based on usage, and being able to dynamically manage scalability in a granular manner enables efficient use of the underlying resources.

Each service is resilient: this means that each service is highly-available and can survive infrastructure failures. This characteristic limits the failure domain, due to software bugs or hardware issues.

Each service is composable: this implies that the service is designed to allow it to be part of other applications. At the minimum, each Service has an Application Programming Interface (API) that is uniform and discoverable, and in addition can have well defined behaviors for registration, discovery, and request management.
Forwarded from Hadi
مجازی سازی جزئی (Para Virtualization)
در گذشته سخت‌افزار x86 از استراتژی های مجازی‌سازی پشتیبانی نمی‌کرد. زیرا پردازش های CPU بطور متفاوت بستگی به این داشت که در حالت privileged باشد یا نه و یک پردازنده مجازی شده نمی‌توانست در حالت privileged کار کند (زیرا اولویت بالاتر از پردازنده فیزیکی بدست می‌آورد و باعث یک ریسک امنیتی می شد). به همین علت، نرم‌افزار مجازی‌سازی باید با دستورات از ماشین مهمان کار می‌کرد و آنها را با مجموعه دستورات جدیدی جایگزین می‌کرد که مطمئن باشد به درستی توسط سخت‌افزار ماشین فیزیکی خوانده می‌شود. در نتیجه بازنویسی دستورالعمل‌ها از پردازنده ماشین مجازی مهمان سربار زیادی را ایجاد می‌کرد که باعث می‌شد کارها کند انجام شود. Para-virtualization یک تغییر در سیستم عامل بود (معمولا در سطح هسته) بطوریکه بیشتر شبیه سخت‌افزار واقعی در ماشین فیزیکی شود و کارآیی بیشتری در مجازی‌سازی بدست بیاید. اگرچه راه‌حل Para-virtualization کاملا کارآمد است، اما سیستم عامل های کمی از آن پشتیبانی می‌کنند، که این مشکل اصلی آن است.
Forwarded from Hadi
(Hardware assisted Virtualization)
این نوع دوم راه‌حل مجازی‌سازی است که اکثر سیستم عامل های مبتنی بر لینوکس از آن استفاده می‌کنند. برای استفاده از این تکنولوژی یا باید پردازنده مجهز به Intel VT یا پردازنده مجهز به AMD-V در اختیار داشت تا بتوان ویژگی مورد نظر را در آنها فعال کرد. با استفاده از این پردازنده‌ها، دستورات می‌توانند بدون هیچگونه جایگزینی از ماشین مجازی مهمان خوانده شوند. واضح است که این روش نسبت به حالت جایگزینی دستورالعمل‌ها کارآمدتر است و سیستم‌های عامل ها بدون تغییر می‌توانند روی ماشین‌های مجازی نصب شوند، زیرا پردازنده فیزیکی می‌تواند با دستورالعمل‌های پردازنده‌های مجازی کار کند (بجای اینکه با هسته سیستم عامل کار کند). در حال حاضر دو تکنولوژی مبتنی بر لینوکس وجود دارد که هر دوی آنها مجازی‌سازی کامل سخت‌افزاری را انجام داده‌اند. این دو تکنولوژی Xen و KVM نام دارند.
Forwarded from Hadi
حامل ها (Containers)
از این تکنولوژی تحت عنوان مجازی‌سازی در سطح سیستم عامل نیز نام می‌برند و در حقیقت یک راه‌حل مجازی‌سازی نیست. Container ها محیط‌های کاربر مجزا هستند اما همه در یک هسته واحد اجرا می‌شوند. به این معنا که آنها بطور کامل از هم مجزا نیستند. اما نکته خوب آنها این است که container ها کمترین سربار را در مقایسه با راه‌حل‌های مجازی‌سازی تحمیل می‌کنند، زیرا نیازی نیست که کل هسته، پردازنده‌ها و... را شبیه‌سازی کنند. توزیع‌های مختلف لینوکس می‌توانند در container های مختلف نصب شوند که یک مزیت خوب دیگر برای آنهاست.

همانطور که مشاهده کردید، تکنولوژی‌های مبتنی بر لینوکس مختلفی وجود دارد. مجازی‌سازی واقعی بدست نمی‌آید مگر با روش های سخت‌افزاری. در عین حال container ها هم می‌توانند در جای خود برای سازمان‌های کوچک یا کاربران خانگی برای ایجاد فضاهای کاری مختلف در ماشین فیزیکی شان، بدون نیاز به سایر روش های مجازی‌سازی و هدر دادن بخشی از منابع خود استفاده شوند.
Forwarded from Hadi
مجازی سازی میزکار ( Desktop Virtualization)
مجازی‌سازی محیط کار (Desktop) در سیستم‌های کاربران نهایی انجام می‌شود. این کار باعث می‌شود تا مدیران بهتر ماشین‌های کاربران نهایی را مدیریت کنند و محیط مربوط هر کاربر را از راه دور سفارشی کنند. امروزه دو نوع از مجازی‌سازی Desktop وجود دارد. یکی از آنها Client-Hosted Desktop Virtualization است و دیگری VDI نام دارد.
Forwarded from Hadi
مجازی سازی نرم افزار (Software Virtualization)
مجازی‌سازی نرم‌افزار نوعی دیگر از مجازی‌سازی برنامه کاربردی یا برنامه‌های رایانه‌ است. تفاوت عمده بین مجازی‌سازی نرم‌افزار و مجازی‌سازی برنامه کاربردی این است که در مجازی سازی برنامه‌های کاربردی، اجرای برنامه مجازی می‌شود ولی در مجازی سازی نرم‌افزار منابع مورد استفاده برنامه نیز مجازی می‌شوند. یکی از رایج ترین این نمونه برنامه‌ها، SVS است که توسط Altiris توسعه داده شده است. این مفهوم مشابه Hardware virtualization است که در آن ماشین فیزیکی بصورت یک ماشین مجازی شبیه‌سازی می‌شود. مجازی‌سازی نرم‌افزار شامل ایجاد یک لایه مجازی یا فضای دیسک سخت مجازی است که برنامه بتواند در آن نصب شود. از این فضای مجازی، برنامه‌ها می‌توانند همانند برنامه‌های عادی که روی سیستم عامل میزبان نصب شده است، اجرا شوند.

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

امکان اجرای برنامه‌های کاربردی بدون تغییر دائمی رجیستری یا کتابخانه ها
امکان اجرای چندین نسخه از یک برنامه یکسان
امکان نصب برنامه‌هایی که ممکن است با همدیگر تداخل داشته باشند (با ایجاد چندین لایه مجازی)
امکان تست برنامه‌های جدید در یک محیط ایزوله شده و مجزا
مجازی‌سازی نرم‌افزاری مزایای زیادی دارد و به سادگی پیاده‌سازی می‌شود. یک مزیت جالب این است که شما می‌توانید مجازی‌سازی نرم‌افزاری را خودتان با دریافت و نصب برنامه Altiris SVS بطور کاملا رایگان امتحان کنید.
Forwarded from Hadi
مجازی سازی ذخیره سازی (Storage Virtualization)
مجازی‌سازی ذخیره‌سازی شامل مجازی‌سازی تجهیزات ذخیره‌سازی فیزیکی است. این تکنیکی است که به کاربران و برنامه‌های کاربردی مختلف این امکان را می‌دهد تا بدون در نظر داشتن محل تجهیزات ذخیره‌سازی و نوع آنها، بتوانند به آن ها دسترسی داشته باشند. وقتی ذخیره‌سازی مجازی می‌شود، همانند یک حافظه استاندارد و محلی برای ماشین‌های میزبان مشاهده می‌شود، حتی اگر این فضای ذخیره‌سازی بصورت توزیع شده در مکان‌های مختلف قرار داشته باشد و از انواع مختلف باشد.

بزرگترین مزیت مجازی‌سازی ذخیره‌سازی این است که امکان دسترسی ماشین‌ها و سرورهای مختلف را به تجهیزات ذخیره‌سازی توزیع شده فراهم می آورد. به این ترتیب یک ماشین که به آن فضا دسترسی پیدا می‌کند، آن را مانند یک فضای ذخیره‌سازی بسیار بزرگ (همانند یک دیسک واحد بسیار حجیم) می‌بیند نه به صورت تعدادی دیسک پراکنده.

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

یکی از نمونه های رایج استقرار این نوع تکنولوژی مجازی‌سازی، SAN است. همانطور که از نام آن پیداست، یک SAN یک شبکه بزرگ از تجهیزات ذخیره‌سازی است. این تجهیزات ذخیره‌سازی معمولا در rack نگهداری می‌شوند و مستقل از هر سرور یا ماشینی هستند و در عوض بطور مستقیم به شبکه سازمان متصل هستند. با استفاده از SAN یک کسب و کار می‌تواند قابلیت انعطاف را افزایش دهد. برای مثال اندازه یک SAN می‌تواند به آسانی با افزودن دیسک های جدید افزایش پیدا کند. آنها می‌توانند بعنوان راه‌حل‌های مناسب تهیه کپی پشتیبان مورد استفاده قرار بگیرند. مثلاً می‌توان کپی پشتیبان از داده‌ها در یک مکان دور از سازمان تهیه کرد. نهایتا اینکه SAN ها می‌توانند بهره‌وری بهتری را از فضای ذخیره‌سازی فراهم کنند. معنای آن این است که بجای داشتن یک دیسک سخت در هر سرور، یک سرور می‌تواند داده‌ها را در چندین دیسک سخت یا درایو پخش کند. این بسیار کارآمدتر از استفاده از هارد دیسک ها است، زیرا چندین دیسک سخت می‌توانند بار کاری خود را به اشتراک بگذارند که به این ترتیب طول عمر هر یک از هارد دیسک ها افزایش پیدا می‌کند.
Forwarded from Hadi
مجازی سازی ذخیره سازی داده (Data Storage Virtualization)
از آنجایی که ذخیره‌سازی داده یکی از نیازمندی‌های هر کسب و کار است و حجم این داده به مرور افزایش پیدا می‌کند، مدیریت آن به مرور مشکل تر می‌شود. به همین ترتیب به مرور زمان تکنولوژی‌ها و راه‌حل‌ها زیادی برای غلبه بر این مشکلات توسعه داده شده‌اند که در نهایت به گونه‌ای متحول شدند که Data Storage Virtualization نام گرفت. اولین مرحله برای این راه‌حل، حذف اختلاف بین منابع محلی و شبکه است. با این کار، منابع ذخیره‌سازی شبکه شده مانند منابع محلی برای یک ماشین قابل استفاده خواهند بود. سپس این منابع ذخیره‌سازی می‌توانند بصورت عادی توسط هریک از ماشین‌ها به سادگی مورد دسترسی قرار بگیرند.

مزیت این کار برای شرکت‌ها واضح است. اول اینکه کل فضای ذخیره‌سازی داده در یک محل متمرکز نگهداری می‌شود. این کار مدیریت داده را برای مدیران بسیار ساده‌تر می‌کند و همچنین تهیه کپی‌های مختلف، تهیه کپی پشتیبانی یا آرشیو داده را نیز ساده‌تر می‌کند. دوم این که شبکه ذخیره‌سازی (SAN) با حجم بسیار زیادی می‌تواند ایجاد شود. این شبکه به سازمان‌ها امکان اجرای راه‌حل‌هایی که نیاز به فضای ذخیره‌سازی زیادی دارند را نیز می‌دهد. برای مثال، یک سرور می‌تواند تعدادی دیسک سخت داشته باشد اما نهایتا در تعداد دیسک هایی که می‌تواند پشتیبانی کند محدودیت وجود دارد. اما SAN ها می‌توانند شامل تعدادی rack باشند که در هر کدام تعداد زیادی دیسک وجود دارد و محدودیتی در تعداد rack ها و نیز تعداد دیسک ها وجود نخواهد داشت. تنها محدودیتی که در این حالت برای سازمان وجود دارد، میزان هزینه‌ای است که برای تهیه فضای ذخیره‌سازی اختصاص می‌دهند.

اما اگرچه SAN ها می‌توانند خیلی برای سازمان‌ها مفید باشند، اما ضرورتاً کارها را برای کاربران ساده‌تر نمی‌کنند. زیرا پروتکل های مختلف برای استفاده از آنها مورد استفاده قرار می‌گیرد و هنوز باید مکان فیزیکی داده مشخص باشد. اینجاست که مفهوم مجازی‌سازی فضای ذخیره‌سازی می‌تواند مورد استفاده قرار بگیرد تا کاربران درگیر پروتکل ها و پیکربندی‌ها نشوند. در حقیقت در این روش یک لایه بین فرآیند های فیزیکی و منطقی ذخیره‌سازی داده قرار می‌گیرد و همه چیز را استاندارد می‌کند بطوریکه از دید منطقی همه فضا بصورت یکپارچه دیده شود. مجازی‌سازی فضای ذخیره‌سازی مزایای زیادی برای کسب‌و‌کار‌ها دربر دارد. برخی از مزایای اصلی به این شرح می‌باشد:

امکان مدیریت ساده‌تر راه‌حل‌های ذخیره‌سازی داده: به کمک این روش پیچیدگی هایی که در برخورد با داده‌های با حجم زیاد معمولا پیش می‌آید بسیار کاهش می‌یابد و راه‌حل‌های مختلف کار با داده‌های حجیم از طریق یک بستر استاندارد به راحتی قابل پیاده‌سازی خواهند بود.
مستقل از فروشنده شدن تکنولوژی‌های ذخیره‌سازی: در گذشته SAN ها سخت‌افزارهایی بودند که توسط فروشندگان مختلف با تکنولوژی‌های مختلف ارائه می‌شدند و پیاده‌سازی آنها خیلی ساده نبود و از پروتکل های مختلفی استفاده می‌کردند. با مجازی‌سازی می‌توان استفاده از این تکنولوژی‌ها را ساده کرد زیرا در نهایت همه چیز بصورت استاندارد مورد استفاده قرار می‌گیرد.
امکان صرفه‌جویی در هزینه‌ها: مدیریت ذخیره‌سازی فیزیکی هنوز هم در مراکز داده یک کار خسته کننده است. زمان و مهارت افراد می‌تواند بصورت مفیدتر بکار گرفته شود. با مجازی‌سازی داده می‌توان بصورت کارآمد نیاز به متخصصین IT را برای انجام کارهای دستی مدیریت ذخیره‌سازی فیزیکی برطرف کرد. نکته دیگر این است که سخت‌افزار لازم نیست وابسته به یک فروشنده خاص باشد و می‌توان تکنولوژی‌های ذخیره‌سازی را از فروشنده‌های مختلف خریداری کرد.
شرکت‌های بسیاری از این روش پشتیبانی می‌کنند: شرکت‌های مهم بسیاری درگیر توسعه تکنولوژی‌های مجازی‌سازی فضای ذخیره‌سازی شده‌اند که می‌توان به HP، VMware، EMC و IBM اشاره کرد. برای مثال VMware تکنولوژی مجازی‌سازی ذخیره‌سازی را در برخی از محصولات خود نظیر VMware Workstation بکارگرفته است. EMC راه‌حل خود را بنام Information Lifecycle Management ارائه کرده است. IBM هم راه‌حل مجازی‌سازی داده خود را بنام Total Storage توسعه داده است. آنها یک کنترلر SAN خاص را ارائه کرده‌اند که می‌تواند بسیاری از کارهای مدیریت SAN را انجام دهد و بار کاری مدیران مرکز داده را به شدت کاهش می‌دهد و امکان بهره‌وری بیشتر را از نظر زمان و منابع فراهم می‌آورد.
Forwarded from Hadi
مجازی سازی سیستم عامل (OS Virtualization)
مجازی‌سازی سیستم عامل اگرچه شبیه به روش full virtualization است اما در حقیقت کاملا با آن متفاوت است. روش full virtualization شامل مجازی‌سازی کل سخت‌افزار یک ماشین است. سپس هر محیط مجازی در سیستم عامل خود و هسته مربوط به خود اجرا می‌شود. اما مجازی‌سازی در سطح سیستم عامل متفاوت است و در آن محیط‌های مجزا، هسته های مجزا ندارند، بلکه همه محیط‌ها (که به آن ها container گفته می‌شود) در یک هسته واحد اجرا می‌شوند.

محیط هر container در مجازی‌سازی سیستم عامل از دیگر container ها ایزوله خواهد بود و مانند یک سرور فیزیکی عمل می‌کند. در محیط یک container برنامه‌ها می‌توانند اجرا شوند. نتیجه نهایی در این سطح از مجازی‌سازی شبیه full virtualization است، اما روند انجام کار متفاوت است. مجازی‌سازی سیستم عامل چند نمونه تجربه عملی دارد. این روش مدت ها در محیط‌های میزبانی مجازی مورد استفاده قرار می‌گرفته است. میزبانی مجازی شامل میزبانی بیش از یک نام دامنه بر روی یک ماشین فیزیکی یکسان بوده است. با استفاده از مجازی‌سازی سیستم عامل، میزبان‌های وب می‌توانستند محیط‌های مجزا و امنی را برای نام های دامنه مختلف ایجاد کنند. این کار واقعا سودمند است زیرا اگر منابع فقط به یک دامنه اختصاص داده شود، بخش عمده آن به هدر می‌رود.

دیگر مزایای استفاده از مجازی‌سازی سیستم عامل شامل تفکیک برنامه‌ها با امکان مدیریت آسان منابع است. برای مثال می‌توانید یک گروه از برنامه‌ها را در container های مختلف دسته بندی کنید یا جدا کنید. به این ترتیب منابع نرم‌افزاری نسبت به حالتی که همه برنامه‌ها با هم در یک محیط قرار داشته باشند، بهتر قابل مدیریت خواهند بود. به نظر می‌رسد که مجازی‌سازی سیستم عامل بسیار مفید بوده است و شاید جای تعجب داشته باشد که چرا اکثر سازمان‌ها امروزه بجای آن از full virtualization استفاده می‌کنند. هر دو راه‌حل اگر چه با هم متفاوتند ولی نتیجه یکسان دارند و هر دو مزایا و معایب خودشان را نیز دارند.

مزیت اصلی مجازی‌سازی سیستم عامل بر full virtualization این است که سربار بسیار کمتری دارد و در نتیجه بهره‌وری آن بسیار بیشتر است زیرا نیاز به شبیه‌سازی سخت‌افزار ندارد. از طرفی اشکال آن این است که نمی‌تواند سیستم‌های عاملی غیر سیستم عامل میزبان را اجرا کند. اگر بخواهید یک محیط لینوکسی را در سیستم عامل ویندوز اجرا کنید، مجازی‌سازی سیستم عامل برای شما مناسب نخواهد بود.

محیط Container محدودیت‌هایی نیز دارد. برای مثال، یک Container نمی‌تواند هسته خود را مستقیما تغییر دهد. نمی‌توان سیستم فایل‌ها را mount یا dismountکرد و نمی‌توان دیگر فعالیت های سطح بالا را انجام داد. یک روش full virtualization به کاربر دسترسی بدون محدودیتی را به محیطی که در آن سیستم عامل های مختلف می‌تواند نصب شود می‌دهد. بنابر این قابلیت انعطاف full virtualization باعث شده است که به یک راه‌حل استاندارد برای مجازی‌سازی تبدیل شود. همراه با تکنولوژی‌های دیگر hardware-assisted virtualization و Para-assisted virtualization، این روش کارآیی و بهره‌وری در حد مجازی‌سازی سیستم عامل را بدست آورده است. اما با این حال تکنولوژی مجازی‌سازی سیستم عامل هنوز بطور گسترده (برای مثال در محیط‌های میزبانی وب) مورد استفاده قرار می‌گیرد و در آینده نیز استفاده خواهد شد.
Forwarded from Hadi
کتاب استانداردهای طراحی وب به زبان فارسی
Forwarded from Hadi
سه کتاب مرجع برای طراحی وب....html,css,javascript-jQuery