По результатам этой операции был подготовлен доклад «10+ deploy per days: Dev and Ops cooperation at Flickr». В нем было описано, каким образом команде удалось выполнить поставленные задачи максимально быстро и качественно. Основой успеха стали совместные согласованные действия разработки и эксплуатации.
Этот доклад стал фундаментом новой философии — DevOps, которая быстро нашла много сторонников и последователей. Обоснование идеи раскрыто в книге «Философия DevOps» Дженнифер Дэвис и Кэтрин Дэниелс[16]. В ней говорится, что разработчики, зацикленные на пользователях, должны уделять больше внимания поддержке. Ведь кто лучше сисадминов может рассказать о проблемах продукта? В результате появилась отдельная профессия на стыке разработки и эксплуатации, которая носит название DevOps.
DevOps-специалист — это профессионал широкого профиля, который разбирается в принципах разработки и тестирования ПО и понимает, как конкретный код будет работать на «железе», виртуальных серверах или в облаке. Он может выступать в роли консультанта как в момент проектирования ПО, так и после внедрения. DevOps-специалисты «вырастают» либо из системных администраторов, либо из разработчиков (случается значительно реже).
В командах, где практикуется DevOps как подход, также есть так называемый релиз-инженер. Он не только работает с софтом, но и организует общение как внутри команды, так и между командами разработчиков, тестировщиков и сисадминов.
Возвращаясь же к системным администраторам, важно понимать, что они часто делятся на администраторов Linux и администраторов Windows. Первые, соответственно, работают с Linux-подобными операционными системами, а вторые — с виндой.
Глобальная разница между ними в том, что Linux исповедует концепцию открытого программного обеспечения. То есть исходный код этой операционной системы открыт и доступен для доработок. В то время как код винды — закрыт. У Linux есть отдельные дистрибутивы (условно можно назвать их версиями), которые также могут дорабатываться. Вот пара примеров: Debian, Ubuntu.
Кроме того, у сисадминов стоит спрашивать, с физическими или с виртуальными серверами они работали. Если они занимались поддержкой парка компьютеров, то можно спросить, насколько большим был этот парк.
И наконец, администраторы вообще могут больше заниматься сетями. Например, различным сетевым оборудованием: роутерами, маршрутизаторами, коммутаторами. Тогда нужно обращать внимание на то, с какими технологиями и устройствами работал человек.
Глава 13
Разработчики и администраторы баз данных
В рамках трехзвенной архитектуры ПО одно из звеньев — базы данных. С ними имеют дело разработчики и администраторы. Важно понимать, что сами базы данных делятся на реляционные и нереляционные (NoSQL). Реляционные — это те, в которых фигурирует SQL. Примеры нереляционных — MongoDB, Cassandra.
Нереляционные базы данных обычно используются на более сложных и высоконагруженных проектах. Для управления базами данных существуют СУБД (системы управления базами данных). Так, например, одной из самых популярных СУБД является MS SQL Server. Это продукт Microsoft, а значит, он подходит для Windows. Из менее популярных СУБД можно также выделить MySQL, SQLite.
Сами базы данных могут разрабатываться на нескольких языках программирования, но вот основные:
● SQL;
● T-SQL (Transact-SQL) — это расширение самого SQL;
● PL/SQL (ПиЭльЭсКюЭль).
Если вы видите PL/SQL, значит, в качестве СУБД используется Oracle. И наоборот.
Важно понимать, что запросы к базам данных могут быть следующие:
●
●
●
●
Есть два типа специалистов, которые разрабатывают базы данных и управляют ими: соответственно разработчики и администраторы. В современных реалиях эти две позиции часто смешиваются. В идеале разработчики отвечают за создание, отладку и оптимизацию баз данных, а администраторы обеспечивают ее жизнедеятельность, внедряют обновления, отвечают за безопасность. По факту же, особенно в небольших компаниях, разработчики зачастую берут на себя функцию сопровождения базы данных или администраторы делают всё, вплоть до разработки дополнительных модулей (по мере своих сил и возможностей).
Глава 14
Мобильная разработка