Информация об изменениях

Сообщение Промышленный подход к разработке ПО от 06.06.2019 10:21

Изменено 06.06.2019 11:08 drVanо

Промышленный подход к разработке ПО
Хочу поделиться нашим опытом по внедрению "промышленного" подхода к разработке и продаже ПО.

1. Билдсервер.

Первый сервак собрали на базе десктопного железа (пять лет назад вышло примерно в $2700):
— проц Intel Core i7-4820K
— мать ASUS P9X79 LE
— память Kingston 4 x 8 GB 1600
— 4 x Samsung 256GB SSD 840 PRO
— 2 x HDD WD5003AZEX
— хороший корпус, кулер и бесперебойник

Софт (все крутилось под управлением ESXi 5.5):
— администрирование через VMWare vSphere Client
— Виртуальные Windows (лицензия + Visual Studio 2015), OSX 10.8, XUbuntu для сборки ПО разные операционки
— Репозиторий на базе "Git for windows"
— HTTP сервер на базе IIS 7 (MSSQL + JIRA + Confluense + Bamboo)

Такое железо у нас беспроблемно прожило 5 лет (за все время сдох один БП и USB порт на материнке).

2. Продажи

Для ведения продаж написана небольшая БД под MSSQL. Далее все это автоматизировано следующим образом:

— Все платежи принимаются через PayPro
— В панели настроен IPN, который дергает скрипт на HTTP сервере
— Скрипт парсит все параметры из IPN, дальше по email ищет покупателя из БД и регистрирует покупку (если что-то пошло не так — отправляет на внутреннюю почту письмо с темой "Exception Notification" )
— При создании новой записи в о покупке запускается скрипт в Bamboo, который создает лицензию, собирает нужный продукт, выкладывает на FTP и шлет ссылку на закачку конченому пользователю.
— На сервере также существует возможность создать запись о покупке у ручном режиме (сделана соотвествующая форма, которая в итоге дергает тотже самый IPN скрипт)

3. Refund/Chargeback

— IPN отслеживает не только покупки, но и возвраты (со статусом OrderRefunded/OrderChargedBack). По такому запросу ищутся все активные покупки покупателя, которые переводятся в статус "аннулирована" и в дальнейшем сборка ПО ним не производится
— Также на сервере есть возможность добавить email покупателя в черный список (помимо аннулирования всех лицензий происходит блокировка покупателя)

4. Новое железо

Итак, через 5 лет использования сервера на базе десктопа решили перейти на следующий уровень (вышло в $4400):
— платформа SuperServer 5019S-WR
— проц Intel Xeon E3-1270V6
— память 4 х 16GB, ECC UDIMM, DDR4-2666
— 4 х Intel SSD S4610 Series SATA 2,5" 480Gb
— LSI MegaRAID SAS 9341-4i
— 2 сетевых порта + IPMI

Сервак крутится под ESXI 6.7, доступ к админке/виртуалкам через браузер.

Все это дело теперь стоит в ЦОД (стоимость размещения — 2000 руб./месяц + 200 руб. за 2 дополнительных белых IP).

5. Планы на будущее

Хотим перетащить на сервер почту и сайт, тем более что железо позволяет использовать отдельный от билдсервера IP.
Промышленный подход к разработке ПО
Хочу поделиться нашим опытом по внедрению "промышленного" подхода к разработке и продаже ПО.

1. Билдсервер.

Первый сервак собрали на базе десктопного железа (пять лет назад вышло примерно в $2700):
— проц Intel Core i7-4820K
— мать ASUS P9X79 LE
— память Kingston 4 x 8 GB 1600
— 4 x Samsung 256GB SSD 840 PRO
— 2 x HDD WD5003AZEX
— хороший корпус, кулер и бесперебойник

Софт (все крутилось под управлением ESXi 5.5):
— администрирование через VMWare vSphere Client
— Виртуальные Windows (лицензия + Visual Studio 2015), OSX 10.8, XUbuntu для сборки ПО разные операционки
— Репозиторий на базе "Git for windows"
— HTTP сервер на базе IIS 7 (MSSQL + JIRA + Confluence + Bamboo)

Такое железо у нас беспроблемно прожило 5 лет (за все время сдох один БП и USB порт на материнке).

2. Продажи

Для ведения продаж написана небольшая БД под MSSQL. Далее все это автоматизировано следующим образом:

— Все платежи принимаются через PayPro
— В панели настроен IPN, который дергает скрипт на HTTP сервере
— Скрипт парсит все параметры из IPN, дальше по email ищет покупателя из БД и регистрирует покупку (если что-то пошло не так — отправляет на внутреннюю почту письмо с темой "Exception Notification" )
— При создании новой записи в о покупке запускается скрипт в Bamboo, который создает лицензию, собирает нужный продукт, выкладывает на FTP и шлет ссылку на закачку конченому пользователю.
— На сервере также существует возможность создать запись о покупке у ручном режиме (сделана соотвествующая форма, которая в итоге дергает тотже самый IPN скрипт)

3. Refund/Chargeback

— IPN отслеживает не только покупки, но и возвраты (со статусом OrderRefunded/OrderChargedBack). По такому запросу ищутся все активные покупки покупателя, которые переводятся в статус "аннулирована" и в дальнейшем сборка ПО ним не производится
— Также на сервере есть возможность добавить email покупателя в черный список (помимо аннулирования всех лицензий происходит блокировка покупателя)

4. Новое железо

Итак, через 5 лет использования сервера на базе десктопа решили перейти на следующий уровень (вышло в $4400):
— платформа SuperServer 5019S-WR
— проц Intel Xeon E3-1270V6
— память 4 х 16GB, ECC UDIMM, DDR4-2666
— 4 х Intel SSD S4610 Series SATA 2,5" 480Gb
— LSI MegaRAID SAS 9341-4i
— 2 сетевых порта + IPMI

Сервак крутится под ESXI 6.7, доступ к админке/виртуалкам через браузер.

Все это дело теперь стоит в ЦОД (стоимость размещения — 2000 руб./месяц + 200 руб. за 2 дополнительных белых IP).

5. Планы на будущее

Хотим перетащить на сервер почту и сайт, тем более что железо позволяет использовать отдельный от билдсервера IP.