По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Итак, вы хотите стать DevOps-инженером? Это впечатляющий, сложный и высокооплачиваемый вариант карьеры, но такая ключевая роль объединяет разработку программного обеспечения и его эксплуатацию. Мы составили дорожную карту DevOps, которая включает в себя все шаги, которые необходимы для того, чтобы занять место эксперта DevOps.
Как вы знаете, DevOps – это набор практик и инструментов для интеграции и автоматизации процессов между IT-командами и командами разработчиков программного обеспечения. Поэтому он фокусируется на общении и сотрудничестве между командами, используя лучшие инструменты автоматизации, доступные для повышения эффективности.
Следующий акцент делается на объединении тех, кто работает в области разработки программного обеспечения с развертыванием ПО, а также на обеспечении высокого уровня структурной и технической поддержки.
Это все означает, что DevOps-инженеры должны знать свое дело, чтобы справиться с этой неподъемной задачей. А что же тогда такое «их дело»? Оказывается, что это не просто их дело, но и дело всех остальных.
Конечно, это может звучать, как что-то невероятное, что мало кто может преодолеть. DevOps-инженеры действительно являются экспертами высокого уровня, и стать одним из них также практически невозможно. Вместе с тем, данное руководство поможет вам четко понять, какие шаги необходимо предпринять, прежде чем начать свое путешествие по DevOps.
Давайте посмотрим.
Зачем вам нужна дорожная карта DevOps?
В нашей статье о DevOps рассказывается о том, почему стать DevOps-инженером так сложно, ведь DevOps-команды включают в себя разработчиков и IT-специалистов, работающих рука об руку на протяжении всего жизненного цикла проекта.
И поэтому, дорожная карта DevOps предполагает высокие навыки и необходимые шаги, которые помогают повысить скорость и качество разработки и развертывания и предотвратить организационную разрозненность. Иногда команды объединяются, чтобы максимизировать эффективность, при этом инженеры работают на протяжении всего жизненного цикла продукта или приложения.
Итак, каковы же эти требования? Вот этот исчерпывающий список для того, чтобы получить эту дорожную карту, которая направит вас на верный путь.
Как стать DevOps-инженером за 14 шагов
1. Изучайте языки программирования
Первый шаг к тому, чтобы стать DevOps-инженером, - это владение одним или несколькими языками программирования. Конечно, вы не будете интегрировать базы данных или автоматизировать процессы разработки и развертывания, отлаживать базы данных, отлаживать код и исправлять возникающие проблемы, но в результате вы должны внести свой вклад в поддержание конвейера непрерывной интеграции/поставки в рабочем состоянии.
Если вы читаете эту статью, то мы можем предположить, что вы владеете хотя бы одним из «больших» языков программирования, таких как Java, JavaScript или Python. Но если все же нет, то мы рекомендуем вам повысить уровень знания до высокого как минимум двух или трех языков программирования из списка ниже:
Python
Perl
Java
JavaScript
Go
Ruby
Rust
C
C++
2. Научитесь работать с разными ОС
DevOps-инженеру необходимо знать, как работают разные операционные системы, а также различия между ними, в основном потому, что вы будете запускать приложения на серверах. В связи с этим, оптимальным решением для такого рода вещей, как правило, является Linux – ее используют большинство компаний и поставщиков серверов. Если вы используете веб-приложение, то оно, вероятнее всего, находится на сервере Linux.
Есть и другие операционные системы, которые не помешает знать:
Windows
Unix
Debian
SUSE Linux
Fedora
Ubuntu
CentOS
RHEL
macOS
FreeBSD
OpenBSD
NetBSD
3. Концепция ОС
Так вот, операционные системы – это лишь часть дорожной карты DevOps. Также вы должны быть в состоянии углубиться, понимая базовую инфраструктуру ОС, которая позволяет вам запускать приложение. Это называется «концепцией операционной системы», и вы должны быть знакомы с:
Управлением запуском
Управлением процессом
Сокетами
Front-end разработкой
Потоками и параллелизмом
Управлением вводом/выводом
Основами POSIX
Виртуализацией
Файловыми системами
Памятью и хранилищем
Управлением службами
Сетью
4. Сетевая безопасность и протоколы
Как DevOps-инженер, вы должны быть всегда спокойны. Сетевая безопасность и протоколы помогут вам обеспечить целостность и безопасность ваших данных. Они определяют процессы и методологии, которые вы будете использовать для защиты вашей сети от попыток несанкционированного доступа.
Вот протоколы, о которых вам следует знать:
HTTP
HTTPS
FTP
Межсетевые экраны
SSH
SSL/TTS
IPsec и VPN
Переадресация портов
AT-TLS
SNMP
Аутентификация OSFP
Прокси-доступ
5. Терминалы – ваш новый дом
Консоль позволяет разработчикам автоматизировать, создавать сценарии и выполнять системные задачи без использования графического пользовательского интерфейса.
В следствие чего, вы должны уметь работать с текстом, создавать bash-сценарии, отслеживать процессы, производительность системы, работать в сети, компилировать приложения из исходника, Vim, Nano, Emacs и Powershell.
Мы готовы поспорить, что, если вы уже привыкли, и вам удобно, создавать файлы .cfg в выбранной вами FPS, то здесь вы будете как дома. И вам в любом случае нужно будет это делать.
6.Веб-серверы
Когда пользователь запрашивает информацию, сервер выполняет запрос. На веб-сервере может размещаться один или несколько веб-сайтов с использованием одного и того же оборудования и ресурсов. Он взаимодействует с веб-браузером через HTTP/HTTPS. Быть DevOps-инженером означает знать, как контролировать сервер.
Вот некоторые распространенные веб-серверы, о который вам стоит узнать:
Apache
Nginx
IIS
Tomcat
Caddy
Istio
Envoy
Consul
Linkerd
7. Инструменты непрерывной интеграции/непрерывной поставки
Конвейер непрерывной интеграции/поставки (CI/CD) необходим для разработки программного обеспечения в рамках DevOps. Как было сказано в предыдущей статье, непрерывная интеграция – это методика разработки программного обеспечения, при которой разработчики объединяют все изменения кода, которые они вносят, в единый репозиторий.
В то время как, непрерывная поставка реализует изменения кода, которые автоматически создаются, тестируются и подготавливаются в производственному выпуску. Ее можно рассматривать как расширение непрерывной интеграции.
Вот некоторые из инструментов, которые вы можете использовать для этой цели:
TravisCI
GitHub
GitLab
Bamboo
Jenkins
TeamCity
Azure DevOps
8. Изучите инфраструктуру как код (IaC)
Пожалуй, это одно из основных направлений работы DevOps-инженеров. Поэтому неудивительно, что эта тема довольно обширная и разнообразная. Знание таких контейнеров, как Kubernetes и Docker, а также различных инструментов управления конфигурацией имеет жизненно важное значение для вашего собственного развития и успеха проектов, которые вы возглавляете.
Вот некоторые DevOps-инструменты, о которых вам следует знать:
Docker
Containers
LXC
Ansible
Salt
Chef
Puppet
Mesos
Kubernetes
Docker Swarm
Nomad
Istio
Service Mesh
Linkerd
Consul Connet
Maesh
Kuma
Terraform
9. Управление приложениями
Управление приложениями относится к процессу измерения доступности, возможностей и производительности приложения. Данные, собираемые в процессе, позволяют выявлять и устранять баги и ошибки до того, как у пользователей возникнут проблемы. Обычно используется такое программное обеспечение, как:
AppDynamic
Instana
New Relic
Jaeger
OpenTracing
10. Управление инфраструктурой
Эта часть дорожной карты DevOps влечет за собой процесс получения как можно большего количества данных о вашей инфраструктуре с целью принятия обоснованных оперативных решений.
В этой связи, используются данные, генерируемые помимо прочего приложениями, серверами и сетевыми устройствами, с целью отслеживание таких показателей, как мощность оборудования, пропускная способность сети и время работоспособности. В свою очередь, эта информация помогает повысить эффективность и устранять ошибки, показывая, какие области требуют большего внимания.
Вот некоторые хорошие инструменты для управления инфраструктурой:
Grafana
Prometheus
Zabbix
Nagios
Datadog
11. Шаблон облачного проектирования
Этот шаблон помогает создавать масштабируемые, надежные и безопасные приложения в облаке. Однако для этого необходимо быть знакомым с одним ли несколькими шаблонами облачного проектирования. На наш взгляд, одними из самыми важными являются следующие:
Источники событий
Посредник
CQRS
Агрегирование на шлюзе
Консолидация вычислительных ресурсов
Внешнее хранилище конфигурации
Уровень защиты от повреждений
Каналы и фильтры
Перенесение в шлюз
Маршрутизация шлюза
Расширение за счет внешних устройств
12. Управление логами
Логи помогают составлять список событий, происходящих в системе, и изучать их детали. Благодаря этому, управление журналами поможет вам, то есть начинающему DevOps-инженеру, улучшить службы и процессы, предотвратить уязвимости и выявить узкие места.
Вот некоторые из инструментов, которые вы так или иначе будете использовать:
Splunk
Elastic stack
Graylog
Papertrail
13. Поставщики облачных услуг и пакеты услуг
Как мы уже поняли, облачные услуги – это то, с чем обязательно нужно быть знакомым DevOps-инженеру. Кроме того, вам необходимо понимать преимущества и особенности каждого поставщика облачных услуг для того, чтобы ваша организация могла сделать верный осознанный выбор. Некоторые из популярных заслуживают того, чтобы их изучили, например:
Google Cloud
AWS
Azure
Digital Ocean
Linode
Alibaba
Конечно, стоит отметить, что эти провайдеры редко работают по фиксированной стоимости. Как правило, цены на эти услуги зависят от необходимого количества доменов и памяти и SSL-сертификатов, требуемых ЦП.
14. Другие технологии
Это лишь краткий список того, что вам нужно сделать, чтобы получить знания на пути к тому, чтобы стать DevOps-инженером.
Таблица кэша
Обратный прокси-сервер
Прокси-сервер переадресации
Межсетевой экран
Балансировка нагрузки
Сервер кэширования
Заключение
Дорожная карта DevOps предназначена для того, чтобы направить вас на правильный путь к профессиональным навыкам DevOps. Конечно, это не означает, что он уже устоявшийся и не подлежит изменению. Технологии меняются ежедневно, и вы должны постоянно быть в курсе новых инструментов и решений. Еще один пункт на пути к становлению DevOps-инженером – это обучение и адаптация, и, пожалуй, самое важное – хорошо выполнять свою работу.
Если вы следуете этой дорожной карте и у вас уже есть солидная база знаний в области компьютерных наук, то вам потребуется всего каких-то шесть месяцев для того, чтобы сдвинуться с той точки, в которой вы сейчас, и дойти до начала своей карьеры DevOps-инженера.
Не забудьте добавить следующие пункты в список того, что нужно выучить:
Языки программирования
Концепции ОС
Терминалы
Сеть и безопасность
Инструменты CI/CD
Веб-сервер
Инфраструктура как код
Управление приложением
Управление инфраструктурой
Шаблон облачного проектирования
Управление журналом
Поставщики облачных услуг и управление службами
Другие технологии
Часто задаваемые вопросы
Чем занимается DevOps-инженер?
DevOps-инженер использует инструменты, процессы и методологии, чтобы удовлетворить все потребности в процессе разработки программного обеспечения, разработки оболочки пользовательского интерфейса и кодирования для развертывания, обслуживания и обновлений.
Сколько времени нужно, чтобы стать DevOps-инженером?
Если у вас уже есть опыт работы с Linux и сетями, и вы следуете дорожной карте DevOps-инженера, то это займет примерно шесть месяцев.
Что такое CI/CD в DevOps?
Это передовая методология DevOps, которая использует автоматизацию разработки приложений, позволяя увеличить скорость разработки и развертывания приложений. CI/CD относится к непрерывной интеграции, поставке и развертыванию.
Компания Cisco сейчас, безусловно, является лидером среди производителей сетевого оборудования, однако немалую часть этого рынка занимает оборудование компаний Huawei и Juniper, в которых команды для CLI отличаются от команд в Cisco IOS. Поэтому, мы собрали в таблицы основные и наиболее часто используемые команды для траблшутинга у Cisco и привели их аналоги в Huawei и Juniper. Поэтому, если вы знакомы с системой IOS, то эта таблица поможет на начальных этапах освоиться в других ОС.
Список основных команд, конечно, шире, поэтому если мы забыли упомянуть какие-то команды, напишите их комментариях.
Cisco
Huawei
show
display
traceroute
tracert
configure terminal
system-view
exit
quit
end
return
no
undo
reload
reboot
erase
delete
hostname
sysname
enable
super
disable
super 0
write memory / copy running-config startup-config
save
show ip route
display ip routing-table
show flash
dir flash:
clear
reset
show logging
display logbuffer
write terminal / show run
display current-configuration
show startup
display saved-configuration
show tech
display diagnostic-information
show ip nat translation
display nat session
enable secret
super pass cipher
snmp-server
snmp-agent
router ospf
ospf
router rip
rip
router bgp
bgp
show ospf neighbours
display ospf peer
show interfaces
display interface
show version
display version
show history
display history-command
show access-list
display acl all
shop ip nat translations
display nat session all
show mac address-table
display mac-address
show spanning-tree
display stp
debug / no debug
debugging / undo debugging
Получается как-то так. А если сравнить команды Cisco и Juniper?
Cisco
Juniper
show run
show configuration
show history
show cli history
show running-config
show configuration
show ip route
show route
show ip interface brief
show interface terse
show controller
show interfaces intfc extensive
show tech-support
request support info
reload
request system reboot
clock set
set date
show ip bgp
show route protocol bgp
show ip bgp neighbors
show ip bgp neighbor
show ip bgp summary
show bgp summary
clear ip bgp
clear bgp neighbor
show ip ospf database
show ospf database
show ip ospf interface
show ospf interface
show ip ospf neighbor
show ospf neighbor
show ip traffic
show system statistic
show logging
show log
no
delete
OpenAPI Spec – излюбленный выбор экспертов по разработке API, особенно если главным приоритетом является безопасность. Инструментарий Swagger в этом отношении кажется хорошим вспомогательным средством. Однако пытаться совместить эти два понятия – настоящая задача. Вы, наверное, уже запутались?
Не беспокойтесь. Эта статья поможет вам во всем разобраться.
OpenAPI: хронология его создания
OpenAPI – это всемирно признанная проектная спецификация RESTful API, разработанная под эгидой OpenAPI Initiative. Лучшие игроки IT-индустрии, такие как Google, Capital One, SmartBear, Microsoft, Apigee и PayPal, вместе запустили этот проект. Сама спецификация также поддерживается Linux Foundation.
OpenAPI также известен как коммерчески нейтральный и независимый от языка интерфейс для RESTful API. Он широко используется для того, чтобы пользователи и машины могли взаимодействовать без фактического доступа к документации, фрагментам исходного кода или аудита перегрузки сети.
Хронология создания
(2009) – OpenAPI и Swagger появились благодаря Тони Тэму, специалисту по программному обеспечению. Первоначально он запустил спецификацию Swagger с открытым исходным кодом для использования в компании.
(2011) – первая версия пользовательского интерфейса Swagger смогла описать JSON API для Wordnik. Она может использовать консоль разработчика/документацию компании, интеграцию кода и функции генерации кода.
(2012) – появилась усовершенствованная, но все же еще бета, версия.
(2014) – самая первая формализованная и официальная версия Swagger Spec0 была представлена публике в 2014 году. Она получила высокую оценку пользователей API.
(2015) – SmartBear приобрела Swagger Spec.
(2016) – Swagger стал «Спецификацией OpenAPI» и был переведен в другой репозиторий Git.
(2017) – входит в OpenAPI Initiative
На сегодняшний день уже доступна версия 3.1.0, которая пока считается лучшей. Для этой версии важно структурирование и форматирование API. Она выполняет процесс аутентификации и авторизации в соответствии со схемами аутентификации HTTP.
Помимо этого, аутентификация и авторизация пользователя могут быть выполнены путем отправки ключей API в качестве заголовка или файлов cookie. Также у вас есть возможность использовать методы обнаружения OAuth 2 или OpenID Connect из версии 3.1.0.
Swagger: история и инструментарий
Swagger – это, по своей сути, тип языка описания интерфейса, разработанный для эффективного определения процедур использования RESTful API. Он использует в своей основе JSON.
Набор инструментов Swagger включает в себя несколько инструментов с открытым исходным кодом и несколько коммерческих инструментов, которые могут использоваться в течение стандартного жизненного цикла API. Говоря без преувеличений, набор инструментов Swagger упрощает написание API. О его популярности можно судить по одному лишь факту – на 2017 год инструменты Swagger загружались более 100 000 раз в день.
В инструментарий Swagger вошли такие инструменты как:
SwaggerCore – это набор библиотек Java для подготовки, использования и развертывания определений OpenAPI.
Конечные пользователи могут использовать Swagger Editor с целью написания или модификации спецификаций OpenAPI на основе YAML через популярные веб-браузеры. С ним вы можете улучшить читаемость документации, провести предварительный просмотр от лица конечных пользователей и модифицировать ее, чтобы устранить ошибки и сделать ее более удобной в использовании.
Страницы HTML, JS и CSS в репозитории Swagger UI упрощают процесс написания документации.
Если вам необходим хороший инструмент для проектирования и документирования, то правильным выбором будет SwaggerHub. Его часто используют специалисты для всех типов проектов OpenAPI.
Swagger Parser позволяет анализировать определения.
Swagger Codegen – это инструмент для создания заглушек сервера API, SDK и других документов.
С помощью Swagger Inspector можно проверить процесс создания определения OpenAPI. Это поможет вам улучшить этот процесс благодаря тщательному тестированию.
Swagger vs OpenAPI: топ-4 отличия
Давайте начнем с основ: OpenAPI = Спецификация для правильного определения и описания RESTful API. Swagger = Набор инструментов, используемый для развертывания спецификаций API.
Swagger допускает комбинацию host+base_path для одного сервера. С другой стороны, OpenAPI позволяет добавлять несколько URL-адресов серверов и путей поддоменов для того, чтобы упростить вашу жизнь.
Все инструменты Swagger используют OpenAPI; обратное также должно быть верно.
Инструменты Swagger сохранили свои первоначальные названия, несмотря на то, что Swagger изменил название на спецификацию OpenAPI.
Общее влияние Swagger и OpenAPI на создателей API и API-отрасль
Когда Тони Тэм создавал Swagger, он даже предположить не мог, что в будущем изменит представление о безопасности API и API-отрасли в целом. С течением времени OpenAPI Spec и Swagger стали именами нарицательными при упоминании RESTful API.
Поскольку OpenAPI является бесплатным средством с открытым исходным кодом, которое предлагается пользователям API, то у начинающих разработчиков есть возможность научиться большему и показать весь свой потенциал. У разработчиков-новичков есть множество возможностей для работы и оттачивания своих навыков разработки API.
Главной задачей разработчиков оставалось поддержание стандартов безопасности на каждом этапе разработки API. Количество взломов API растет с каждым днем. Крупные предприятия, такие как Cisco Systems, Facebook и Shopify, регулярно сталкиваются с уязвимостями API и изо всех сил пытаются укрепить свою систему безопасности. Нарушение API в Equifax, которое стоило компании судебного иска в размере 700 миллионов долларов, вынудило предприятия лучше следить за безопасностью ИИ.
Использование OpenAPI положительно повлияло на методы разработки API, поскольку позволило команде разработчиков говорить на одном языке и, соответственно, легко общаться. Разработчикам больше не требуется убирать назначение API из ключевого функционала или исходного кода.
Принятие предопределенных стандартов безопасности является вполне осуществимой задачей, поскольку созданный API может взаимодействовать на простом языке и не вызывает беспокойства при обнаружении возможных брешей и угроз безопасности.
Что предлагают Swagger и OpenAPI на сегодняшний день?
OpenAPI, а равно и Swagger, на сегодняшний день являются движущей силой API-индустрии. Оин упрощают создание серверной заглушки для API. Разработчики могут создавать библиотеки клиентских API на более, чем 40 языках. Они расширяют возможности разработки API и повышают его безопасность за счет:
Создания интерактивного API: Разработчики могут использовать OpenAPI для написания интерактивной документации. Мало того, он позволяет запускать тесты API непосредственно из браузера во время подготовки документа.
Поддержки инструментов генерации кода: OpenAPI – это великое благословение, поскольку он полезен при создании серверных SDK и клиентских CDK на нескольких языках программирования. Он хорошо работает с инструментами генерации кода.
Аудита: OpenAPI Spec хорошо работает совместно с инструментом Contract Audit, который контролирует защиту операций, связанных с данными API. Фактически, этот инструмент является отличным ресурсом для обеспечения безопасности высокого уровня. При совместной работе OpenAPI Spec и Contract Audit выявление проблем безопасности в созданном API и их аудит становятся не такими утомительными. Можно выполнить аудит API с самого начала и избавить себя от аудита огромного количества API в конце разработки.
Куда держит курс Swagger?
OpenAPI – важная утилита, и эксперты рынка утверждают, что она имеет хорошие перспективы. Однако небольшая часть людей все же считает, что Swagger теряет свой лоск после передачи ключевых спецификаций OpenAPI. Учитывая, что на сегодняшний день он используется и играет решающую роль во многих задачах, особенно в тестировании API и повышении уровня безопасности, они могут ошибаться.
Инструменты Swagger позволяют наглядно увидеть код и протестировать практическую ценность фрагментов кода в режиме реального времени. Благодаря пользовательскому интерфейсу Swagger, разработчикам стало еще проще, чем когда-либо, запускать команды и получать всестороннее представление о функциональных возможностях системы.
Поддержание стандартизации в написании API также возможно с помощью Swagger, поскольку он совместно с OpenAPI предлагает всемирно признанный набор стандартов создания API.
Инструменты Swagger также могут помочь в написании API с нуля. Используя Swagger Editor, можно тестировать API в режиме реального времени. Это позволяет пользователям проверять проектное решение утилиты на соответствие спецификации OAS OpenAPI и узнать текущий визуальный результат. Лучшее свойство этого инструмента заключается в том, что его можно использовать из любой точки.
Также Swagger Inspector является одним из важнейших инструментов из набора Swagger, поскольку он позволяет создавать свои собственные спецификации API. Возможно не только создание настраиваемых API, но и передача этих API другим членам команды.
Когда речь идет о безопасности API в Интернете, то лучшее решение – это Swashbuckle. Это реализация Swagger с открытым исходным кодом, позволяющая конечным пользователям создавать живую документацию для всех своих API. Этот инструмент синхронизирует документацию с вашей текущей версией API и сокращает риски безопасности до нуля.
Заключение
Поскольку OpenAPI сформировался из Swagger, то тут явно было где запутаться.
Первая утилита предназначена для описания RESTful API. Это хороший инструмент с точки зрения безопасности, поскольку он сохраняет спецификацию в машиночитаемой форме. С другой стороны, вторая утилита – на сегодняшний день это фаворит разработчиков в случаях, когда речь идет о коммерчески нейтральном развертывании OpenAPI Spec.
Надеюсь, что когда в следующий раз вы услышите эти два понятия, то не запутаетесь и правильно разберетесь в фактах. Они оба оказывают положительное влияние на API-отрасль и способствуют развитию API.