Що ж таке Scalability?
Scalability на нашу мову
перекладається як «маштабовність» і є здатністю\властивістю системи, мережі,
процесу обробити більший обсяг роботи або бути легко розширеною без значної
втрати продуктивності(Performance). Але визначити scalability системи як правило дуже тяжко, оскільки
потрібно визначати специфічні вимоги для масштабованості(Scalability) системи. Існує 2 вида Scalability – вертикальна і горизонтальна. Вертикальна – то покращення однієї машини(збільшення
памяті, швидший процессор). Горизонтальна – це розподіл нагрузки\процесів на
декілька машин.
Scalability
і Performance пов’язані
між собою. Якщо система погано розширюється то
питання строїть в продуктивності. Отже на сам перед потрібно чітко визначити
вимоги до системи, яку ми плануємо проектувати. Не забувати, що продукт можемо
писати для 10 юзерів, які часто переростають в десятки тисяч, і з неправильно
продуманою системою з’являється багато роботи для
програмістів переробляти і переробляти код і систему для досягнення нових
цілей. Як писати код для оптимальної продуктивності я описувати не буду, оскільки недавно
гарно про це було написано в нашому блозі(http://dotnetbanda.blogspot.com/2014/07/c.html).
Якщо
притримуватися гарного коду і принципів правильного написання – то вже наша система
бути мати хороший показник масштабованості. Але існують ще техніки для
покращення її.
Від Майкрософта поради:
- Не
чекайте – процес не повинен чекати довше чим потрібно
- Не
боріться за ресурси – Займайте ресурси якомога пізніше, але звільняйте їх
якомога швидше
- Дизайн
для замінності – дві або більше операції називаються замінними якщо вони можуть
бути застосовані в будь-якому порядку і отримати той самий результат
- Дизайн
для взаємозамінності – управління ресурсами, так, щоб вони могли бути
взаємозамінними
- Розподіл
ресурсів і активностей – мінімізуйте відносини між ресурсами і активностями
Цікаві ссилки:
Комментариев нет:
Отправить комментарий