В нынешнем году трендами ИТ-менеджмента являются «API как полноправные продукты», безсерверные архитектуры и «legacy in a box» (унаследованные системы, упакованные в образ виртуальной машины или контейнера), говорится в ежегодном отчете компании ThoughtWorks по зарождающимся технологиям.
Отчет охватывает большую группу техник, языков, фреймворков, инструментов и платформ. Я имел возможность расширить свой кругозор в беседе с Майком Мэйсоном, глобальным директором ThoughtWorks по технологии, который поделился своими представлениями о том, в каком направлении сегодня развивается мир корпоративных разработок.
Машинное обучение оказывает огромное влияние на деятельность корпоративных разработчиков, говорит Мэйсон: «Машинное обучение находится на взлете благодаря совместному действию ряда сил. Во-первых, развернувшаяся в последние годы активная реклама больших данных внушила организациям, что они располагают огромными массивами данных, которые могут представлять ценность и которые нельзя выбрасывать. Эти данные образуют фундамент для полезного применения машинного обучения». Кроме того, произошло то, что Мэйсон называет демократизацией алгоритмов: «Google выпустила TensorFlow как систему с открытым исходным кодом, так что теперь любой может построить модель машинного обучения, обучить ее, используя облако или ферму GPU, и быстро ее перевести на мобильный телефон пользователя».
Тем не менее, продолжает он, не стоит надеяться, что в обозримом будущем машинное обучение станет помогать разработчикам в их собственных трудах: «С высокоуровневыми языками было много попыток, в которых разработчики хотели просто объяснять свои намерения, чтобы машинное обучение или искусственный интеллект волшебным образом рождали соответствующий код. До практического применения этих методов еще очень далеко».
В то же время Мэйсон указывает на «другие проблемы разработок, которые трудны, но могут стать легче благодаря машинному обучению». В качестве примера он приводит ситуацию, когда разработчикам «противостоит имеющийся комплекс корпоративных систем — со сложными взаимодействиями между системами и компонентами, сложными связями и схемами доступа к данным и так далее. Разбирая эти системы и применяя затем машинное обучение, мы смогли бы разобраться в сути дел и улучшить корпоративную архитектуру — „эта система является горячей точкой“, „эта система не особо используется“, „эти две системы всегда ведут себя взаимосвязанно и, может быть, лучше сделать из них одну“ и так далее».
Несколько удивляет, что в отчете ThoughtWorks слово «облако» упоминается всего лишь несколько раз, хотя ясно, что внедрение этого способа вычислений повсеместно расширяется. По словам Мэйсона, это связано с тем, что облако сегодня уже используется везде и для всевозможных целей. «Облако де-факто служит стандартом вычислений независимо от того, какая при этом действует форма инфраструктуры, публичная (Amazon, Microsoft, IBM или др.), частная (Pivotal Cloud Foundry, Red Hat OpenShift) или частное облако в заказном варианте».
Хотя облака и стали вездесущими, в обозримой перспективе не стоит ожидать, что это уменьшит потребности в кодировании внутри организаций, добавляет Мэйсон. «Дискуссии „создавать самим или покупать“ существовали всегда, и они продолжаются, хотя покупка может означать и использование сервиса со стороны. Также есть масса продуктов для машинного обучения и искусственного интеллекта, которые доступны через API, и организации может быть выгоднее интегрировать один их них, чем пытаться создавать ту же функциональность своими силами».
В ряде случаев «продукт домашней разработки может работать хуже, так как основанные на данных сервисы лучше всего работают, когда они умеют оперировать с большими хранилищами данных из более чем одного источника, так что сервис машинного обучения от Google может давать лучшие результаты, чем домашняя версия».
Однако самые главные преимущества заключаются в том, что «облако открывает больше возможностей, а используя сервисы и API, разработчики могут выстраивать более амбициозные решения, так как в этом случае они стоят на плечах гигантов».
Мэйсон также прокомментировал рост использования микросервисов и контейнеров, которые «оказывают огромное влияние на корпоративные системы». Он сообщил, что клиенты его компании «почти во всех случаях хотят внедрять микросервисы и интересно, что это влечет за собой не только технические, но и организационные перемены. Мы видим тенденцию, что крупные технологические управленцы из Кремниевой долины нередко перебираются в более традиционные организации и затем перестраивают их ИТ в „модель Amazon“. Это модель небольших независимых групп „two-pizza team“ (выражение основателя Amazon.com Джеффа Безоса, который говорил, что численность группы должна быть максимум такой, чтобы ее можно было накормить двумя порциями пиццы), нацеленных и наделенных полномочиями единственно на повышение ключевых показателей эффективности (KPI) бизнеса».
По словам Мэйсона, важность модели two-pizza team «определяется не столько размерами групп, сколько их полномочиями в отношении KPI. Это означает ваше право владения своим ПО по принципу „вы это сделали и вы с этим работаете“ и вашу свободу в выборе путей взаимодействия с другими группами, включая, например, такие вещи, как „API в виде продукта“ или отношение к другим частям организации, как если бы они были вашими пользователями, хотя бы и внутренними. Чтобы реализовать на практике такие стили поведения и взаимодействия, по идее требуются микросервисы плюс контейнеры, плюс платформы с самообслуживанием, так что, на наш взгляд, эти вещи тесно взаимосвязаны».
Последний отчет ThoughtWorks рекомендует список технологий и решений, которые в ближайший год стоит запланировать либо к внедрению, либо к внимательному рассмотрению и апробации.
Техники
Внедрение:
- Конвейеры как код
Апробация:
- API как продукт
- Отвязка управления секретами от исходного кода НОВОЕ
- Хранение персональной информации на территориях стран Европы
- Legacy in a box НОВОЕ
- Lightweight Architecture Decision Records (техника захвата архитектурных решений)
- Progressive Web Applications НОВОЕ
- Прототипирование интерфейсов в InVision и Sketch НОВОЕ
- Безсерверная архитектура
Платформы
Внедрение:
- HSTS
- Linux Security Modules
Апробация:
- Apache Mesos
- Auth0
- AWS Device Farm НОВОЕ
- AWS Lambda
- OpenTracing НОВОЕ
- Использование Unity помимо игр
Инструменты
Внедрение:
- fastlane
- Grafana
Апробация:
- Airflow НОВОЕ
- Cake and Fake НОВОЕ
- Galen
- HashiCorp Vault
- Pa11y
- Scikit-learn
- Serverless Framework НОВОЕ
- Talisman
- Terraform
Языки и фреймворки
Внедрение:
- Ember.js
- Python 3
- ReactiveX
- Redux
Апробация:
- Avro НОВОЕ
- Elixir
- Enzyme
- Hangfire НОВОЕ
- Nightwatch НОВОЕ
- Phoenix
- Quick and Nimble
- Vue.js