29
Технологии больших веб-проектов завтра и послезавтра. Никита Семенов SECL Group / Internet Sales Technologies

Технологии больших веб проектов завтра и послезавтра

Embed Size (px)

Citation preview

Page 1: Технологии больших веб проектов завтра и послезавтра

Технологии больших веб-проектов завтра и послезавтра.

Никита Семенов

SECL Group / Internet Sales Technologies

Page 2: Технологии больших веб проектов завтра и послезавтра

Рассуждение: технологии сточки зрения бизнеса.

Page 3: Технологии больших веб проектов завтра и послезавтра

Из прошлого в будущее

10 лет назад

PHP, Java, Perl, С# и т.д.

Сегодня

JS, Python, Ruby, C#, PHP,Java и т.д.

Через 10 лет

JS, Scala, Go, Java, ХХХ?

Page 4: Технологии больших веб проектов завтра и послезавтра

Тренды за последние 2 года

JavaScript(ES6)

Python

Scala

Go

Swift

Page 5: Технологии больших веб проектов завтра и послезавтра

Антитренды за последние 2 года

PHP

Ruby

Java

Objective-C

Perl

Page 6: Технологии больших веб проектов завтра и послезавтра

Смотрим в завтра

Angular2 + Webpack + Firebase(BaaS)

Page 7: Технологии больших веб проектов завтра и послезавтра

Ресурсы или сколько стоят технари?

C# – 2100$

Java – 2200$

JS – 2100$

PHP – 1700$

Python – 2200$

Ruby – 2300$

Scala – 3200$

Page 8: Технологии больших веб проектов завтра и послезавтра

А сколько на западе?

Page 9: Технологии больших веб проектов завтра и послезавтра

Кого сейчас не хватает на западе?

Page 10: Технологии больших веб проектов завтра и послезавтра

Native language, Framework или CMS?

VS

Page 11: Технологии больших веб проектов завтра и послезавтра

Команда проекта

VSСвоя Внешняя

Page 12: Технологии больших веб проектов завтра и послезавтра

Проектирование и динамика

Page 13: Технологии больших веб проектов завтра и послезавтра

Технологии больших проектов

Page 14: Технологии больших веб проектов завтра и послезавтра

Технологии больших проектов

Page 15: Технологии больших веб проектов завтра и послезавтра

Архитектор — тот, кто знает разницу между тем,

что можно сделать, и тем, что следует сделать

© L. McVoy

Page 16: Технологии больших веб проектов завтра и послезавтра

Архитектура Instagram (данные Insight IT)

UbuntuLinux 11.04 - основная операционная системаPython - основной язык программирования серверной частиDjango - фреймворкnginx - второй уровень балансировки входящих HTTP-запросовgunicorn - WSGI-серверHAProxy - балансировка нагрузки внутри системыPostgreSQL - основное хранилище данныхpostgis - поддержка гео-запросовpgfouine - отчеты на основе логовpgbouncer - создание пула соединенийRedis - дополнительное хранилище данныхMemcached - кэшированиеGearman - очередь задачSolr - гео-поискmunin, statsd, pingdom - мониторингFabric - управление кластеромxfs - файловая система

Page 17: Технологии больших веб проектов завтра и послезавтра

Архитектура Tumblr(данные Insight IT)

CentOS на серверах, Mac OS X для разработкиApache - основной веб-серверPHP, Scala, Ruby - языки программированияFinagle - асинхронный RPC сервер и клиентMySQL, HBase - СУБДmemcached, Redis - кэшированиеVarnish, nginx - отдача статикиHAProxy - балансировка нагрузкиkestrel, gearman - очередь задачThrift - сериализацияKafka - распределенная шина сообщенийHadoop - обработка статистикиZooKeeper - хранение конфигурации и состояний системыgit - система контроля версийenkins - непрерывное тестирование

Page 18: Технологии больших веб проектов завтра и послезавтра

Архитектура YouTube (данные Insight IT)

Linux - операционная системаApache - основной HTTP-серверlighttpd - отдача видео из YouTube CDNZookeeper - распределенные блокировки, хранение конфигурацийPython:wiseguy - FastCGI-прослойка между Apache и Pythonpycurl - лучшая доступная реализация HTTP-клиента, но в итоге все равно заменили на самописное низкоуровневое решение, выиграв 8% в потреблении вычислительных ресурсов.spitfire - высокопроизводительный шаблонизатор на основе абстрактного синтаксического дерева с регулируемым уровнем оптимизации (как в gcc)bson в качестве формата сериализацииBigTable - хранение изображенийMySQL - используется просто как хранилище данных, версия 5.1.52 с InnoDBVitess - система для масштабирования MySQL-кластера

Page 19: Технологии больших веб проектов завтра и послезавтра

Сравнение технологий для Front endПараметр

Сообщество

Популярность

Функциональность

Гибкость

Производительность

Открытые наработки

Зрелость

Документация

Года выпуска

Итого:

AngularJS

9

9

8

7

7

10

9

9

2009

68

BackboneJS

10

6

6

9

8

9

8

7

2010

63

EmberJS

8

10

9

6

8

7

7

6

2011

61

KnockoutJS

7

6

7

7

7

6

7

7

2010

54

CanJS

6

5

8

8

10

6

8

9

2012

60

Page 20: Технологии больших веб проектов завтра и послезавтра

Сравнение технологий для Back end: PHP, Python, Java, Ruby, JS

Параметр

Сообщество

Возможности

Гибкость

Документация

Производительность

Скорость разработки

Открытые наработки

Зарплата разработчика

Зрелость

Итого

PHP

10

4

5

10

2

10

10

2600$

8

59

PYTHON

5

8

6

9

5

10

5

3000$

4

52

JAVA

9

10

9

10

9

7

10

3500$

9

73

RUBY

3

7

6

10

5

9

3

3000$

4

47

JS

10

3

3

7

8

5

6

3200$

6

48

Page 21: Технологии больших веб проектов завтра и послезавтра

Примеры высоконагруженных сайтов

PHP: Facebook, Вконтакте, КиноПоиск

Python: Instagram, Pinterest, Reddit

Java: Ebay, Amazon, Alibaba

Ruby: 500px, Groupon, Airbnb

JS: LinkedIn, Walmart, PayPal

Page 22: Технологии больших веб проектов завтра и послезавтра

БД. SQL VS NoSQL

Select

Insert

Update

Insert with configuration

Update with configuration

PostgreSQL

6

503

38

494

38

MySQL

4

1914

50

1914

50

MongoDB

34

633

3

633

2

Page 23: Технологии больших веб проектов завтра и послезавтра

QA. Как много в этом слове

Page 24: Технологии больших веб проектов завтра и послезавтра

Unit тесты увеличивают работу программиста

на 30-50%

Page 25: Технологии больших веб проектов завтра и послезавтра

Mobile. Кроссплатформенностьили нативные?

Page 26: Технологии больших веб проектов завтра и послезавтра

Сервера и нагрузки

Page 27: Технологии больших веб проектов завтра и послезавтра

На чем сделаны проекты запоследние 10 лет?

Airbnb – Ruby

Instagram – Python

Pinterest – Python

Foursquare – Python

Groupon – Ruby > JS

Twitter – Ruby > Scala

Uber - JS

Page 28: Технологии больших веб проектов завтра и послезавтра

Технологии сильно меняютсякаждые 2-3 года

Page 29: Технологии больших веб проектов завтра и послезавтра

Спасибо за внимание!

S: www.secl.com.ua

E: [email protected]

M: +380 (99) 009-70-37

S: seclskype

F: https://www.facebook.com/semenov.nikita.andreevich

© Никита Семенов