Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Никита Козлов «Монолит, немного исходников, 2 р...

Никита Козлов «Монолит, немного исходников, 2 разработчика: ещё одна история миграции приложения в облако»

На примере реального проекта рассмотрим процесс миграции ASP.NET-приложения в Azure Cloud.
Звучит скучно? Тогда добавим вводных:

- килобайты исходников;
- часть приложения в бинарниках;
- рост команды разработки до 30+ человек;
- 3 новых продукта.

Стало интереснее? На закуску — уменьшение стоимости облачного решения и модернизация приложения.

DotNetRu

August 15, 2019
Tweet

More Decks by DotNetRu

Other Decks in Programming

Transcript

  1. New York USA London UK Munich Germany Zug Switzerland Ещё

    одна история миграции приложения в облако
  2. Исходная позиция 4 Компания: Ø не имела собственного IT штата

    Ø разработка велась силами third-party вендора Компания планировала: Ø значительный рост в течение следующих нескольких лет Ø глобальное расширение Ø запуск новых продуктов Ø повышение операционной эффективности за счет инвестиций в ИТ Ø улучшение User Experience
  3. Исходная позиция 5 Компания: Ø прекратила сотрудничество с вендором Ø

    осталась у разбитого корыта с монолитным приложением Ø устаревшие технологии Ø ненадёжное Вендор: Ø не оставил документацию/артефакты Ø не оставил исходных кодов от части приложения
  4. Исходная позиция с точки зрения новой команды разработки 6 Нет

    смысла развивать продукт без значительного re-design: Øотсутствие гибкости – трудно изменить программное обеспечение в соответствии с потребностями бизнеса Øнедостаток информации – никто на самом деле не знает, как это работает, нет документации, руководств, нет доступа к людям, которые его построили Øвысокая стоимость обслуживания – трудно устранять неисправности, трудно поддерживать надежность Øустаревшая технология – высокая стоимость инфраструктуры, сложность при интеграции с другими системами; требует от дорогих людей знания устаревших технологий, вызывает проблемы безопасности, производительности и взаимодействия с пользователем
  5. Стабилизация 10 Ø Построение облачной инфраструктуры Ø Cloud Services Ø

    Virtual Machines (MS SQL, …) Ø Процесс разработки Ø CI/CD (TeamCity, Octopus) Ø Тестовые окружения Ø Git flows Ø Jira, Confluence
  6. Промежуточные итоги 15 Ø CI/CD Ø Octopus Deploy Ø MSSQL

    Servers Ø 78 cloud services Ø 13 Service Fabric Clusters Ø 25 Windows VMs Ø 7 Linux VMs
  7. Оптимизация стоимости 17 Работы с инфраструктурой: Ø Infrastructure as a

    Code (templates, arm, terraform) Ø Start/Stop service instances Изменение типов сервисов: Ø Docker Ø Azure Container Instances Ø Web App (App Services)
  8. Что-то общее 19 Унификация: Ø логирование Ø работа с ошибками

    Ø корреляция вызовов Ø локальная разработка vs облако Ø конфигурации Ø …
  9. Итоги 21 Ø Определить цели и задачи бизнеса перед миграцией

    Ø Разбить процесс миграции на этапы Ø Процесс миграции должен обеспечивать потребности бизнеса на каждом своём этапе Ø Оптимизация инфраструктуры – такой же естественный процесс, как и рефакторинг кода Ø Infrastructure as Code (templates/terraform) – must have! Ø Если делать по уму, то есть простор для создания собственных фреймворков :)