Transcript

Эволюция разработки

Процесс развития, состоящий из постепенных качественных изменений, без резких скачков.

Эволюция

Википедия. «Эволюция»

• Хранение данных• Инструменты• Клиент разработка• Мобильная технологии

Эволюция в Mail.Ru

• Начало 1998 год• Perl• C• Apache 1.3 + mod_perl• MySQL 3.23

• Nginx? Nosql?

Экскурс в историю

Хранение данных

Mysql:

• Дешевизна• Простота• Привычность• Скорость

Скорость

• Неуправляемый кеш• Сброс всего при обновлении• Тяжелая реализации HEAP-таблиц

Memcached

NoSQL

• Производительность• Отсутствие «лишнего»• Масштабируемость• Богатство выбора

Tarantool, Redis, Cassandra, MongoDB

Языки разработки

• C/C++• Perl

• C#• Java• Php• asp .NET

Языки разработки

• Python• Ruby

• Django• Rails

А что в Mail.Ru?

• C• C++• Perl• Java• C#• Python• Ruby• Objective-c

Клиент. История.

• 1991 - http 0.9 текстовые страницы• Mosaic• GET /• Lynx – 1992

Клиент. История.

• 1991 - http 0.9 текстовые страницы• Mosaic• GET /• Lynx – 1992• Netscape3/IE3

Клиент. История.

Конец 90х:• HTML 3• DHTML/JavaScript• <Iframe• XMLHTTP Control от Microsoft в IE5• Flash• CSS

Клиент. История.

Середина 2000:• WebKit• Canvas• HTML 5• Ajax• Firefox + plugins• JS - фреймворки

Клиент. История.

Сейчас:• 5 браузеров• HTML 5 vs Flash• JS – библиотеки на любой вкус

Переписали клиент полностью

NodeJS + javascript

• Кросплатформенный код• Универсализация разработчиков• Доступность библиотек• Объектный язык с простым синтаксисом

NodeJS + javascript

var http = require('http'); http.createServer(

function (req, res { res.writeHead(200, {'Content-Type':

'text/plain'}); res.end('Hello World\n'); }).listen(1337, ”serv"); console.log('Server running at http://127.0.0.1:1337/');

Результат Эволюции

• JS• NoSQL• NodeJS• XHTML

• Perl• Mysql• Apache• HTML

Мобильные

• Низкая пропускная способность канала• WML• Слабые возможности телефонов

• XHTML• IE от Microsoft• Nokia s60• Opera

Мобильные

• Iphone + Safari• Android + WebView + V8 js engine+Flash• Ipad + Safari• Bada +WebKit+Flash• Windows Phone + IE mobile (ie9 engine)

Плохие новости

• Всего за 10 лет у нас поменялись технологии.• Высокопроизводительный сервис – требователен

к выбору• «Минимальный набор» сильно вырос• Специализация «кирпичиков».• Катастрофически расширился список устройств• Технологическое обновление сервиса раз в три

года

Игорь Ермаков[email protected]

СПАСИБО!