43
Разработка и эксплуатация облачных сервисов Битрикс - изнутри Александр Сербул Руководитель направления контроля качества интеграции и внедрений 1С-Битрикс

Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

  • Upload
    404fest

  • View
    327

  • Download
    1

Embed Size (px)

DESCRIPTION

Особое внимание будет уделено современным способам внутри-командного взаимодействия (инструменты), обмена информацией и лидерству. Как готовить Amazon Web Services — чтобы мясо было мягким. Тонкости работы с NoSQL DynamoDB. Релизный цикл, экстремальное программирование, принципы проектирования и контроль качества. http://2014.404fest.ru/reports/bitrix-teamwork/

Citation preview

Page 1: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Разработка и эксплуатация облачных сервисов Битрикс - изнутри

Александр СербулРуководитель направления контроля качества

интеграции и внедрений 1С-Битрикс

Page 2: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Битрикс24 – облачный сервис для совместной работы

Социальнаясеть

Задачии проекты

Бизнес-чат и видеозвонки

CRM

Мобильноеприложение

Маркетплейс24

Телефония Почтовый сервер

Битрикс24.ДискОнлайн-редактирование

документов

Календари

Page 3: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Битрикс24.Network

Социальнаясеть

Задачии проекты

Бизнес-чат и видеозвонки

CRM

Мобильноеприложение

Маркетплейс24

Телефония Почтовый сервер

Битрикс24.ДискОнлайн-редактирование

документов

Календари

Page 4: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

«Паутина» облачных сервисов

«1С-Битрикс: Управление сайтом»:

- Облачный мониторинг

- Облачный бэкап

- CDN

- Облачный счетчик скорости сайтов

- Мобильные PUSH-уведомления

- Видеозвонки по WebRTC (кластер)

- на подходе: кластер рекомендаций

Page 5: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Нагрузки

Битрикс24 – десятки миллионов хитов в сутки

Push-уведомления – десятки в секунду

Облачный мониторинг – десятки тысяч сайтов

Облачный бэкап – сотни задач на бэкап

одновременно

Облачный счетчик скорости – больше 300 вставок в

секунду

Облачный сервис рекомендаций – десятки

терабайт к новому году

Page 6: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Что будет дальше

Какие нужны люди и сколько

Технологии

Управление проектами

Инструменты

Amazon Web Services

Потом пойдем пить пиво с девушками в бар!

Page 7: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Page 8: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Фетишизм

Фетишизм (fetichisme) — религиозное поклонение

неодушевлённым материальным предметам —

фетишам, которым приписываются сверхъестественные

свойства, получившее распространение у первобытных

племён.

Page 9: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Фетишизм в IT

Нам поможет Agile!

Continuous Integration!!!

Осталось внедрить Git и цель

достингута!

Без Retrospective – успеха не видать!

PHP – отстой, пишем на С++!

Page 10: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Поклоняйтесь людям!

Главный –

разработчик/сисадмин/дизайнер

Менеджер – носит печеньки

От разработки нужно фанатеть!

Влюблять в профессию

Минимизация текучки кадров

Page 11: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Звезды – растят звезд

Открывайте и поощряйте звезд

Делайте их доступными

«Круглая» иерархия

Побеждает «Польза»

Page 12: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Подводные камни у Разработчиков

Ожирение мозга

Виртуализация действительности

«Я не сисадмин»

«Я не программист»

Как писать: TCP или IP?

Page 13: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Цена абстракции

Page 14: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Реляционный McDonalds

SELECT * FROM TABLE1

SELECT … JOIN … JOIN … JOIN … JOIN …

Page 15: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Объектный АДЪ

class CTools extends Cutils …

$h = ObjSingleton::createInstance(new

Config…(…))«Авраам родил Исаака; Исаак родил Иакова; Иаков

родил Иуду и братьев его... 

...Азор родил Садока; Садок родил Ахима; Ахим родил Елиуда; 

Елиуд родил Елеазара; Елеазар родил Матфана;

Матфан родил Иакова;»

Page 16: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Кто эти люди?

Page 17: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Кто эти люди?

Ken Thompson

(sitting) and

Dennis Ritchie at

PDP-11

Page 18: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Родословная

Page 19: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Учим стандарты

RFC (Request for Comments) - «рабочее

предложение», «тема для обсуждения»

Internet Society (ISOC) — общество

Интернета

Internet Engineering Task Force (IETF) —

Инженерный совет Интернета

World Wide Web Consortium (W3C) —

Консорциум Всемирной Паутины

Page 20: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

TCP/IP, SCTP ...

Page 21: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Системные API

Page 22: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

В свободное время

Page 23: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

В свободное время

Page 24: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

В свободное время

Page 25: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Команда

Чем меньше, тем лучше

«Круглая» иерархия

Люди фанатеют

Звезды доступны и согревают

Ситуационное лидерство

Менеджер – носит ПЕЧЕНЬКИ

Page 26: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Полезные «фетиши»

Интенсивный анализ

«Простое» проектирование

Контроль версий (hg, git)

Парное групповое

программирование

Аудит кода

Понимание среды исполнения

Page 27: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Технологии

Адекватность

Shell

C

C++

PHP/Python/Ruby

Java/C#

Page 28: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Инструменты

Консоль

ps, top, lsof

strace, tcpdump

xdebug, xhprof

Page 29: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Инструменты

IDE – по выходным за хорошее

поведение

Page 30: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Инструменты

Wiki

Трекер задач

Море автотестов!!!

Кофемашина

Печеньки

Page 31: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

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

Page 32: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

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

Погружение в предметную область

Как можно проще

Но не проще необходимого

Точки расширения

Page 33: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Page 34: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Управление проектами

Менеджер … в точках риска

Коммуникации

Поиск корня проблемы

Положительная мотивация

Page 35: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Примеры веб-кластеров

Page 36: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Примеры веб-кластеров: «Битрикс24»

Elastic Load Balancing

Web 1

Elastic Load Balancing

Dynamic

Web N

…CloudWatch + AutoScaling

Web 1 Web 2 Web N

…CloudWatch + AutoScaling

S3

management, monitoring,

backup

Static

CDN

js, css

DynamicStatic

CDN

js, css

imag

es

(clie

nts)

imag

es (

clie

nts)

local cache

local cache

local cache

local cache

local cache

control cache: memcached

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

master-master replication

master-master replication

master-master replicationmysqld

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

control cache: memcached

control cache: memcached

control cache: memcached

control cache: memcached

control cache: memcached

Web 2

local cache

Page 37: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Amazon Web Services

Шаблоны проектирования

Enterprise Middleware

Просто, для домохозяек

Page 38: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Page 39: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Ключевые сервисы

S3 – хранение

EC2, ELB – виртуалки, балансер

DynamoDB – NoSQL

Kinesis – буфер потока данных

SQS – очереди сообщений

CloudFront - CDN

Page 40: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Интеграция

AWS SDK for PHP

AWS SDK for Java

Просто, логично, 100% документация

Page 41: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Отказоустойчивость

Датацентры

Балансировщики

Снепшоты

CloudWatch

Архитектура

Page 42: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Page 43: Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри

Спасибо за внимание! Вопросы?

AlexSerbul