0
Обложка: Разработчик облачных решений: что важно знать в начале пути

Разработчик облачных решений: что важно знать в начале пути

Облачные решения — одна из самых перспективных технологий в ИТ-сфере. По прогнозам IDC, к 2025 году расходы на публичные облака в России превысят $3 млрд. Сегодня рынок труда предлагает множество вакансий как в малые, так и в крупные облачные компании. При этом чем больше облачное решение, тем выше специализация членов команды. Рассказываем, с чего стоит начать обучение программистам, заинтересованным в работе с облачными технологиями.

Сергей Ивченков
Сергей Ивченков
.NET Developer в международном облачном провайдере Serverspace

Направления разработки

В обязанности облачных программистов входит не только разработка, но и анализ бизнес-требований, тестирование и администрирование систем. В вакансиях с одинаковыми названиями должностей может встречаться разный набор компетенций. Поэтому предлагаю разделить их на три традиционных направления: Backend, Frontend, Fullstack.

  • Backend-разработчики разрабатывают и поддерживают облачные решения, но иногда вовлекаются в процесс работы frontend-разработчиков.
  • Frontend-разработчики отвечают за интерфейс и взаимодействие пользователя с облачным сервисом.
  • Fullstack-разработчики могут работать как с облачными сервисами, так и с пользовательским интерфейсом, но, как и при любой универсализации, не так глубоко погружаются в детали, как профильные специалисты каждого из этих направлений.

Языки программирования

Выбирая язык программирования для работы с облачными вычислениями, стоит обращать внимание на его распространенность и стек связанных с ним технологий. Если в процессе разработки возникает какая-то проблема, для более популярных языков будет гораздо проще найти ответ на Stack Overflow.

Также стоит учитывать, что современные облачные технологии предоставляют сервисы не только для конечных пользователей, но и для других облачных решений. Если провести аналогию с развитием промышленности, то в облачных технологиях появилось «производство инструментов производства». Таким образом, внешние сервисы могут компенсировать недостатки выбранного стека технологий.

Ниже — несколько универсальных языков программирования, имеющих ключевые преимущества для работы с облачными вычислениями.

Python

Python идеально подходит для создания сценариев автоматизации, без которых нельзя обойтись в облачных вычислениях. Например, в облаке хранится база данных. Каждые полчаса вам необходимо создавать ее резервную копию, а затем удалять ее через месяц. Чтобы каждый раз не проводить эту операцию вручную, проще написать скрипт на Python, который будет выполнять эти задачи автоматически. Кроме того, в облачных вычислениях Python может использоваться для организации данных, их ускоренного анализа и потоковой передачи приложений. И все-таки причина такой популярности Python кроется в мощнейшей рекламной кампании этого языка. Такая же история в свое время произошла с Windows. Эта ОС не была лучшей среди аналогов, но за счет грамотной рекламы выбилась в лидеры. Так происходит и с Python.

Порог вхождения. Python считается простым для освоения. Это действительно так, однако здесь есть подводные камни — с увеличением сложности приложения резко возрастают требования к квалификации программиста. Кроме того, может потребоваться знание Go для оптимизации узких мест. Из-за этого многие новички застревают на начальном уровне.

Распространенность. По данным индекса TIOBE, Python стал самым популярным языком программирования в октябре 2022 года.

Доступность учебных материалов. Существует множество профессиональной литературы и курсов для освоения Python. Средняя стоимость обучения до уровня уверенного джуниора — 90 000 руб. Поскольку Python свободный и открытый язык, онлайн-документацию могут править не совсем компетентные люди, поэтому иногда там встречаются существенные ошибки.

Доступность «батареек». Существует множество библиотек для решения однотипных задач. Выбор богатый, но библиотеки часто содержат ошибки, а исправления могут месяцами лежать в пул-реквестах.

Бренды, которые работают с языком. Google, Dropbox (святая святых Python-программистов. В компании работал и сам создатель языка Гвидо ван Россум), Netscape, Yandex, Microsoft, Intel. Из сервисов можно упомянуть YouTube, который написан на Python и Go.

Уровень дохода специалистов. Около 60 000 руб. После прохождения курсов можно найти вакансию с заработком 100 000 руб. Обучение на курсах занимает в среднем 8-9 месяцев и заменяет примерно 2-3 года работы в отрасли.

Мобильность. Существуют редакторы Python даже для планшетов. Они не поддерживают последние версии языка, но часто это и не нужно. Таким образом, достаточно иметь ноутбук среднего ценового диапазона, чтобы писать там, где удобно. Для джуниоров есть вакансии с удаленной работой.

Перспективы. Поскольку Python свободный язык, никто никогда не запретит вам его использовать.

Java

Это объектно-ориентированный язык, который позволяет создавать большие, гибкие и масштабируемые приложения, а также поддерживает полиморфизм, наследование и статическую типизацию. Кроме того, благодаря поддержке AOT-компиляции Java уменьшает размер дистрибутива и решает проблему «холодного» запуска. Еще одно важное преимущество — безопасность. Java обладает рядом функций, которые защищают систему и позволяют автоматически устанавливать обновления. Однако в последнее время Java сдает позиции. Это может быть связано с провалами в лицензионной политике Oracle.

Порог вхождения. Довольно высокий, особенно для начинающих программистов.

Распространенность. По данным Statista, Java входит в десятку самых распространенных языков программирования. Главная причина — универсальность.

Доступность учебных материалов. База учебных материалов достаточно широка, курсы освоения языка до уровня джуниор стоят в среднем 90 000 руб.

Доступность «батареек». Для Java есть много отлаженных библиотек. Их единственный минус — слабое развитие анализа данных и связанных тем.

Бренды, которые работают с языком. Amazon, LinkedIn, eBay, Yahoo!. Официальный сайт Пентагона использует Java.

Уровень дохода специалистов. Около 60 000 руб. После прохождения курсов можно найти вакансию с заработком 100 000 — 150 000 руб. Обучение на курсах занимает в среднем 8-9 месяцев и заменяет примерно 2-3 года работы в отрасли.

Мобильность. Для комфортной работы требуется ноутбук верхнего ценового диапазона. Вакансии с удаленкой для джуниоров крайне редки.

Перспективы. Языком владеет корпорация Oracle, были прецеденты изменения лицензионной политики, препятствующие дальнейшему развитию.

C#

C# — это простой современный объектно-ориентированный язык программирования общего назначения, который используется в миллионах облачных приложений. Он лучше всего интегрируется с продуктами Microsoft. Сегодня C# упрощает программирование за счет использования расширяемого языка разметки (XML) и простого протокола доступа к объектам (SOAP), которые обеспечивают доступ к программному объекту или методу, не требуя от программиста написания дополнительного кода для каждого шага.

Порог вхождения. Выше, чем у Python, но ниже, чем у Java. Есть ряд полезных инструментов для новичков, но пока не все из них доступны для использования.

Распространенность. Заметно менее распространен, чем Java или Python, но все же довольно широко используется программистами.

Доступность учебных материалов. Учебных материалов достаточно для освоения языка, начиная с нулевого уровня и заканчивая профессиональным, вплоть до описания нюансов функционирования платформы.

Доступность «батареек». Доступные библиотеки закрывают большинство потребностей программистов. Конкуренция между либами слабая, альтернативы представлены в основном для мейнстримовых вещей. Большинство библиотек хорошо отлажены и продуманы. Из интересного отмечают хорошо развитую либу для Game Dev Unity.

Бренды, которые работают с языком. Microsoft, Tesla, Stack Overflow, Сбер, Ozon, «Яндекс».

Уровень дохода специалистов. Около 50 000 руб. После прохождения курсов можно найти вакансию с заработком 100 000 — 120 000 руб.

Мобильность. Для комфортной работы требуется ноутбук верхнего ценового диапазона. Вакансии на удаленную работу для джуниоров крайне редки.

Перспективы. Microsoft не один раз довольно неожиданно прекращала поддержку тех или иных продуктов, когда переставала получать выгоду. Двигателем C# и платформы .net является Azure. Если же использование .net приобретет большую популярность, Microsoft может подправить лицензии по примеру Oracle.

Профессиональная литература

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

Migrating Large-Scale Services to the Cloud — Эрик Пассмор (Eric Passmore)

О чем книга: Эрик Пассмор рассказывает личную историю переноса инфраструктуры MSN в облако — компании с 450 миллионами пользователей во всем мире.

Чем полезна: Книга представляет собой практическое руководство с чек-листами и подробным описанием проблем, возникающих в ходе миграции в облако. Ее можно использовать как справочник, поэтому, даже если в ближайшее время вам не предстоит переносить в облако гиганта энтерпрайз-уровня, с ней стоит ознакомиться — и новичкам тоже.

Cloud Native Architectures: Design high-availability and cost-effective applications for the cloud — Том Лащевски (Tom Laszewski), Камаль Арора (Kamal Arora), Эрик Фарр (Erik Farr), Пийюм Зонуз (Piyum Zonooz)

О чем книга: В книге описаны функции облачных архитектур, принципы их проектирования, разработки и внедрения с помощью микросервисов и бессерверных вычислений.

Чем полезна: Книга дает представление о базовом устройстве облачных архитектур, поэтому она отлично подойдет для тех, кто только начинает свой путь в облачном программировании. Практических советов не так много, как хотелось бы, но теоретические основы описаны довольно подробно и доступно. Эта книга переведена на русский, поэтому языковой барьер не станет преградой для глубокого погружения в облачную тему.

Cloud Computing: Theory and Practice — Дэн Маринеску (Dan C. Marinescu)

О чем книга: Это один из первых учебников по теме облачных вычислений, который, как видно из названия, сочетает теоретический и практический подходы к изучению облачных технологий. В практическом плане книга немного устарела, зато в теоретической части подробно разбираются все главные аспекты облачных вычислений — от компьютерных сетей и вычислительных систем до рисков безопасности и интеграции в облако CDN.

Чем полезна: Автор книги университетский профессор компьютерных наук, поэтому написана она довольно сложно и академично. Придется активно гуглить термины и продираться сквозь математические модели и алгоритмы. Если вы через все это пройдете и дочитаете книгу до конца, то получите полное понимание истории эволюции облачных технологий и изучите основные принципы работы с ними.

Ни одна из этих книг не станет для вас главным источником знаний — в любом случае придется ознакомиться с разной литературой от нескольких авторов и самостоятельно переосмыслить предлагаемые ими решения и подходы, чтобы выбрать для себя наиболее подходящий вариант. Также для более глубокого понимания облачных технологий и получения ответов на индивидуальные вопросы можно использовать Stack Overflow и Server Fault — ресурсы вопросов и ответов для программистов.

В итоге

В начале пути к разработке в сфере облачных вычислений стоит серьезно задуматься, для чего вам это нужно. ИТ-специалисты, как никто другой, подвержены влиянию моды и активно следят за новыми технологиями. Однако модные не равно оптимальные конкретно для вас, поэтому следует сохранять холодный рассудок и разбираться в том, что действительно нужно вам как специалисту в сфере ИТ.