🚨⚡🚨 Біткоін по $100к. Час встановлювати Trustee Plus і безкоштовно випускати картку для розрахунків 👉
Марія БровінськаУвійти в ІТ
29 серпня 2022, 14:00
2022-08-29
Мануал для джуна. Чим займається Azure Cloud Engineer:
must have навички початківця та список запитань зі співбесід від Lead DevOps Engineer із SoftServe
Джунів, які шукають роботу, проходять купу співбесід та отримують відмови замість оферів, під час війни побільшало. А все тому, що до співбесід необхідно ретельно готуватися. dev.ua розпочинає серію матеріалів про те, що треба знати джунам для проходження співбесіди й отримання омріяного оферу від першого роботодавця.
Богдан Матейко, Lead DevOps Engineer у SoftServе, розповідає, чим займається Azure Cloud Engineer і що треба знати початківцю.
Хмарні обчислення — це спосіб забезпечення доступу до обчислювальних ресурсів в обсязі, який потрібен для бізнесу. Завдяки провайдерам хмарних обчислень в нас є можливість платити тільки за ті потужності (ядра процесора чи гігабайти диска), які нам потрібні, і тільки в той період, коли ми ними користуємось.
Інженер хмарної інфраструктури (cloud infrastructure engineer) — це людина, яка знається на особливостях хмарних обчислень, доступних сервісах одного чи кількох хмарних провайдерів (наприклад, Azure) і будує системи, які відповідають вимогам ціни, доступності, безпеки та швидкості роботи (costs, availability, security, performance) за допомогою цих сервісів. Часто (хоча і не завжди) Infrastructure Engineer — це DevOps із додатковою спеціалізацією на хмарному провайдері.
Якщо ви тільки розпочинаєте свій шлях як Azure Cloud Engineer, то вам знадобиться всебічне розуміння багатьох понять і технологій. Ось мій рекомендований список, який варто знати, щоби успішно пройти свою першу співбесіду.
Хмарні сервіси
Знання принципів роботи хмарних сервісів (cloud computing concepts) і Azure — ключова навичка для такої позиції. Якщо ви тільки починаєте свою кар’єру як Azure Infrastructure Engineer — рекомендую підготуватись до сертифікації Azure Administrator Associate (AZ-104) та опціонально скласти іспит. Після цього ви з легко відповідатимете на популярні питання:
Що таке хмарна платформа і хмарні обчислення?
Що таке IaaS, PaaS, SaaS?
Які бувають типи хмар (cloud deployment models) і чим вони відрізняються? Що таке Public і Private cloud?
Чим відрізняється горизонтальне масштабування від вертикального (або що таке scale-out і scale-up)?
Що таке cloud-init?
Як організовані дата-центри Azure і як можна користуватись цією організаційною структурою? Що таке зони, fault domains і update domains?
Що таке Azure Active Directory тенант? Чим тенант відрізняється від сабскрипшна (subscription)?
Що таке Managed Identity? Які бувають види Managed Identity, і як ними користуватись?
Чим відрізняється Virtual Machine Availability Set від Virtual Machine Scale Set?
Що таке Virtual Machine Extension?
Які сервіси для serverless доступні в Azure? Які в них бувають тригери?
Які бувають типи Azure Storage, і чим вони відрізняються?
Які бувають типи blobs і яка між ними різниця?
Коли слід використовувати Load Balancer, коли Application Gateway, а коли Front Door чи Traffic Manager?
Навіщо Application Insights?
Infrastructure as Code
Infrastructure as Code — важливий аспект роботи інженера, який працює з хмарною інфраструктурою. Завдяки цьому підходу вирішується багато проблем із керуванням:
Оскільки всі зміни виконуються через код, їх набагато легше поширювати, ніж зміни, що виконуються вручну (код потрібно змінити лише один раз, і потім потрібно лише розгорнути його на решті середовищ).
Оскільки безпосередні зміни виконуються за допомогою автоматизованого процесу, можна бути впевненим в мінімальній різниці між тестовим і реальним середовищами. Тобто зміна протестована під час розробки створить проблеми в реальному середовищі з дуже малою ймовірністю.
Якщо інфраструктура визначається кодом, її не треба так детально документувати, оскільки є код.
Набагато легше масштабувати, переносити, чи відновлювати інфраструктуру, оскільки більшість операцій можна виконати за допомогою пари команд в терміналі.
Завдяки всім цим перевагам, більшість компаній впроваджує в себе цей підхід в тому чи іншому вигляді, і в більшості вакансій вимагається розуміння IaC. А знання інструменту, що використовується в компанії, додає кандидату балів на співбесіді.
Ось кілька запитань, відповіді на які варто знати:
Які переваги використання Infrastructure as Code?
Чим відрізняється cloud-agnostic інструмент для IaC від cloud-specific? Іноді, на співбесідах просять порівняти два конкретні інструменти, наприклад, Azure ARM templates і Terraform.
Що таке Configuration as Code?
Чим відрізняються імперативні інструменти від декларативних?
Як працює інструмент, який ви використовуєте? Наприклад, що відбувається, коли ви виконуєте команду terraform apply?
Питання, що стосуються структури конфігураційних файлів інструменту, який вимагається в вакансії. Наприклад:
Які є секції в Azure Resource Manager темплейті?
Що таке Terraform модуль, і що в ньому може бути оголошено?
Програмування
Програмування — це теж корисна навичка для Infrastructure-інженера. Якщо компанія використовує IaC підхід, то досвід в програмуванні дозволяє легше писати хороший код. Наприклад, ви будете більш аргументовано підходити до питання, коли є сенс виділити частину ресурсів у Тераформі в окремий модуль та наскільки цей модуль повинен абстрагувати деталі реалізації від його користувачів.
Іноді Іnfrastructure/DevOps команди пишуть свої плагіни для готових інструментів, і треба бути готовим підтримувати ці плагіни. А іноді вони починають писати власні інструменти чи сервіси. Найчастіше для таких завдань використовують Python і GO.
Якщо ви вказали у CV якусь мову програмування й вона вимагається у вакансії — треба бути готовим проходити співбесіду як розробник. Але це вже окрема велика тема, до того ж специфічна для мови програмування. Загальні запитання можуть виглядати так:
Які бувають типи даних і структури даних?
Які основні принципи ООП?
Системи контролю версій
Базові навички роботи з git є необхідними, якщо ви збираєтесь мати справу з IaC чи програмуванням, або якщо вам потрібно працювати з командою розробників. Якщо обов’язки, описані в вакансії, містять щось із цього, вам треба бути готовим відповісти на такі питання:
Що таке git і навіщо він?
Що таке гілка і коміт?
Які бувають branching strategies?
CI/CD
Як і у випадку з git, розуміння CI та CD спрощує життя, якщо ви працюватимете з IaC чи розробкою. Мабуть, найпопулярніші запитання на цю тему:
Що таке Continuous Integration, Continuous Deployment і Continuous Delivery?
Які бувають стратегії розгортання (deployment strategies)?
Контейнери й оркестрація
Контейнери дозволяють запускати додаток та всі необхідні для нього компоненти (бібліотеки чи файли конфігурацій) в ізольованому середовищі, яке гарантовано буде однаковим, незалежно від комп’ютера, на якому запущений цей контейнер. Завдяки цим перевагам контейнери набрали популярності серед розробників і стали одним зі стандартів при розробці нових систем чи модернізації старих. Але для того, щоб запустити та підтримувати застосунок, що використовує контейнер, потрібно вирішити ряд додаткових задач:
Слідкувати за статусом контейнера і перезапускати його, якщо потрібно
Слідкувати за споживанням ресурсів контейнера і масштабувати додаток за потреби (горизонтально чи вертикально)
Потрібно мати можливість розгортати нові версії застосунку з використанням стратегії, яка підходить під потреби компанії
Ці всі задачі виконують оркестратори контейнерів, наприклад Kubernetes. Завдяки гнучкості контейнерів і зручності роботи з тим рівнем абстракції, який дає Kubernetes, багато компаній використовують їх для того, щоб запускати свої сервіси. А кероване рішення від Azure значно спрощує життя. Але, попри всю простоту роботи з AKS, треба розуміти, як він працює:
Які основні компоненти Kubernetes?
Як вони взаємодіють?
Мережі
Побудова мереж також входить в обов’язки інженера хмарної інфраструктури. Хоча сервіси Azure й абстрагують багато деталей, базове розуміння роботи мереж і знання основних протоколів необхідні для того, щоб будувати надійні та безпечні системи. Питання можуть бути дуже різні, наприклад, такими: опишіть якомога детальніше, що відбувається, коли ви відкриваєте вебсайт у браузері.
Як на мене, цей кейс гарно показує рівень розуміння того, як працюють мережі.
Як бачите, робота Azure Cloud Engineer дуже багатогранна та вимагає достатнього багажу знань. Та я сподіваюсь, що мої приклади питань та кейсів допоможуть новачкам краще підготуватися до розмови з роботодавцем та отримати свій заповітний офер.
«Пастка початківця». 5 найпоширеніших помилок джунів на співбесідах та як їх уникнути
Напевно, кожен хоч раз у своєму житті переживав ситуацію, коли після співбесіди замість запрошення на роботу приходила відмова. «Як же так? Це несправедливо!», — чимало з нас корили долю і не розуміли, що пішло не так. Катерина Нікітіна, SoftServe IT Academy Recruiter, розповіла про п’ять найпопулярніших помилок кандидатів-початківців на співбесідах.
У 18 років «захантив» SoftServe, у 21 — відкрив власну компанію. Історія львівського IT-вундеркінда
Гліб Щур — випускник кафедри систем штучного інтелекту НУ «Львівська політехніка». На молодших курсах його запросила на роботу IT-компанія SoftServe, де він працював майже 3 роки розробником у R&D-відділі. А вже у 2021 році Гліб заснував власну компанію та став CSO у 21 рік. Розповідаємо історію львівського «самородка».