Последние несколько лет я занимаюсь внедрением DevOps-практик в различных IT-компаниях. До этого много занимался разработкой программного обеспечения и системным администрированием. И успел закончить магистратуру по профилю ИТ. А сейчас — Lead DevOps Engineer в СберМедИИ.
За этот год удалось поучаствовать во многих интервью по обе стороны от баррикад: как со стороны кандидата на вакансию, так и в качестве интервьюера, который проверяет навыки собеседуемого. И у меня сложилось впечатление, что первое, о чем стоит говорить на интервью это - “а что такое DevOps по-вашему?”. И не важно: ты проверяешь или тебя. Ваши представления о профессии могут сильно расходиться, а это может стать препятствием в диалоге и в работе в будущем.
И сегодня хочу поделиться своим мнением о профессии DevOps-инженера. Постараюсь обходиться без профессиональной терминологии и рассказать в чем ценность DevOps для бизнеса, кто такой DevOps-инженер и чем он занимается.
Но сначала…
DevOps – это методология, которая позволяет автоматизировать многие процессы разработки программного обеспечения. За счет этого разработчики и другие участники процесса работают эффективнее: быстрее создают, тестируют и выпускают качественные продукты на рынок — например, приложения для клиентов. Внедрение методологии влияет не только на работу программистов, но и на состояние бизнеса в целом.
DevOps помогает компаниям быстрее выпускать новые продукты на рынок и быстрее их обновлять.
Если коротко, цели DevOps можно описать тремя пунктами:
Сокращение DevOps расшифровывается, как development и operations.
«Dev» используется как сокращение, обозначающее работу программистов и всех, кто задействован в разработке продукта. Например, менеджеров, тестировщиков и других специалистов.
«Ops» – это общий термин, который характеризует работу системных администраторов, операционного персонала, администраторов баз данных, сетевых инженеров, специалистов по безопасности и других.
В итоге, DevOps – это командные усилия сотрудников, занимающихся разработкой, развертыванием и тестированием ПО.
DevOps-инженер — это специалист, который берет на себя многие процессы по ускорению разработки. Он автоматизирует многие рутинные операции вроде тестирования и обновления сервисов. В итоге команда разработки тратит меньше времени на рутину и может сфокусироваться на стратегических задачах.
Большинство DevOps инженеров — это системные администраторы, освоившие инструменты для программирования, или же разработчики, разобравшиеся с тонкостями процессов operations.
Опытный DevOps-инженер должен понимать, как создать быструю и устойчивую систему. Ему важно уметь видеть картину целиком, понимать узкие места и недостатки текущих процессов разработки, видеть возможности для улучшения. Огромным плюсом является умение строить в своём сознании схемы инфраструктуры, подсистем и сервисов, описывающие, какой элемент за что отвечает, и как они взаимодействуют друг с другом.
Путь DevOps сложен и объединяет в себе большое количество требований к навыкам, которые необходимо освоить. Чтобы войти в профессию, необходим значительный технический бэкграунд знаний и опыта.
Особенностью профессии DevOps является необходимость постоянного и непрерывного изучения и применения нового: новых подходов, технологий и инструментов. Мало создать и внедрить процессы, их надо поддерживать, постоянно улучшать и оптимизировать. Необходимо следить, чтобы они отвечали всем текущим требованиям бизнеса и были максимально простыми, понятными и удобными для участников проекта.
Главная задача DevOps инженера — максимально увеличить предсказуемость, эффективность и безопасность разработки ПО.
Основная часть работы DevOps инженера приходится на этап выпуска релиза — поставки продукта заказчику. В центре внимания находится производительность всех потоков процесса доставки качественного ПО.
Наиболее важной обязанностью DevOps является налаживание взаимодействий между разработчиками, системными администраторами, тестировщиками и менеджерами. Он выступает своего рода евангелистом для команды разработки: рассказывает, как правильно выстроить процессы, какие DevOps-практики и инструменты использовать, и первым начинает их внедрение и обеспечивает их поддержку для всей команды.
Также в обязанности DevOps инженера входит:
У DevOps нет единого инструмента. Настроить, поставить и изучить несколько продуктов — не значит, что в компании появился DevOps. Инструментов очень много и все они задействуются на разных этапах, служа, однако, одной общей цели. Для того, чтобы лучше разобраться в профессии и понять, какие инструменты и технологии использовать, лучше всего руководствоваться дорожной картой DevOps.
Я вчера поднял gitlab с k8s в облаке, настроил автоматическую сборку приложения и запуск тестов из репы по пушу в stage-ветку и отдельно деплой из мастера с отправкой оповещения в slack-канал. Вот чем-то таким девопсы и занимаются.
В качестве заключения хочется сказать, что прежде чем стать DevOps-инженером, я испробовал на себе многие отрасли и направления работы и пришел к выводу, что мне нравится именно DevOps за ту ценность, которую несет твоя работа для команды разработки и конечных клиентов вашего продукта в целом.
Результаты работы можно почти сразу “пощупать” и оценить. При этом постоянно выходят новые технологии и изменяются условия и требования бизнеса, что требует от тебя непрерывного совершенствования и постоянного изучения чего-то нового. А это тонкое искусство поиска и устранения неисправностей на рабочей системе сродни мастерству врача, когда от твоей “постановки диагноза и плана по спасению” зависит жизнь вашего продукта и данных в нем.
Также я понял, что построение сложных систем и поддержание их в реальной жизни для меня интереснее, чем чистый код, который запускается в лабораторных условиях, без реальных пользователей и нагрузок. Грубо говоря, ехать на настоящей лошади по степи и потом мыть её, скрести, кормить — это гораздо интереснее и приносит больше удовлетворения, чем некий сферический конь в вакууме.
А на самом деле, лучше просто быть хорошим специалистом в любой области, которая тебе нравится, и жить полной жизнью. И неважно, кто это — DevOps-инженер, актуарий или маркшейдер.
“Дело жизни, назначение её - Радость. Радуйся на небо, на солнце, на звезды, на траву, на деревья, на животных, на людей. И следи за тем, чтобы радость эта ничем не нарушалась. Нарушается эта радость, значит, ты ошибся где-нибудь, - ищи эту ошибку и исправляй. Всё в тебе и всё сейчас.” © Л. Н. Толстой
Карантин по стране только набирает обороты, ограничения становятся всё строже. В Москве уже ввели цифровые пропуска. Я подумал, что лучше задержусь-ка я здесь, в Сочи. И в один день, листая ленту в ВК, вдохновился одной историей и понял, что хочу повторить этот маршрут! Вопрос был лишь - как и когда?
Ответ был найден как-то само собой. На одной из своих утренних пробежек познакомился с человеком, который поведал мне много интересного - про свои забеги и необычный опыт. Как он однажды был сопровождающим у одного незрячего спортсмена и как они вместе бежали 21 км. Оказывается есть такие люди, которые даже после такой травмы как слепота не перестают заниматься спортом. От него же я узнал и про уникальный социальный проект “Марафон в темноте”. И как-то так вышло, что у него был велосипед, но на который сейчас совсем нет времени, и он думает куда бы его деть. Вот так и решился вопрос “как?”.
Над “когда?” долго думать не пришлось. На следующий ясный день, закончив к обеду все свои планы, я уже собирал бутерброды в рюкзак в надежде успеть до заката вернуться назад. Маршрут предстоял не из легких - около 40 км с перепадами высот +/- 500м. Оценивайте свои силы заранее, если захотите повторить мой путь.
Маршрут начинается от небольшого куроротного поселка получившего свое название в честь протекающей здесь реки Хоста, которая в переводе с абхазкого означает “Кабанья река”. Ныне этот поселок входит в состав Сочи и от моря отделен железной дорогой. В окрестностях Хосты много природных достопримечательностей. Одна из них - Тисо-Самшитовая роща, на территории которой сохранились деревья, чей возраст более 800 лет.
Отсюда начнется мой путь и сюда же я вернусь в конце.
Поднимаясь по улице Володарского можно свернуть в лес и попасть на площадку заброшенного карьера. Здесь некогда добывали грунт для строительства инфраструкты Олимпийских объектов. И отсюда открываются живописные виды на уже упомянутую заповедную рощу и протекающую далеко внизу реку Хосту.
С первых же километров дорога начинает петлять вверх, да так резко, что крутить педали быстро становится тяжело. Поэтому местами приходится идти пешком. То и дело твой путь пересекает различный домашний скот, который чувствует себя хозяином на этой дороге.
За одной автобусной остановкой, которая так и называется - “Развилка”, дорога разделяется на две: первая ведет вниз к Калиновому озеру, вторая - вверх, к поселку Красная Воля. Нам налево. Очень скоро будет отворот к другой достопримечательности этих мест - каньон Чёртовы ворота. Попробуем попасть туда. Увы, но приезду меня встретила такая вот табличка.
Впрочем, ничего неожиданного, в стране режим карантина, все должны сидет дома, а не ходить по лесам. Ведь это опасно! Так, наверное, считают те, кто принимает такие указы.
А я еду дальше. По пути замечаю такую вот надпись. Подъем здесь и правда крутой, и видимо не все авто смогли преодолеть его без последствий. Нам же это только на пользу. А хозяина - жаль. :worried:
Дальше по пути у нас поселок Хлебороб, который разместился на вершине одного из холмов окруженный зелеными лесами. Вот такой удивительный вид открывается с одной из точек. Даже видно море. А до него отсюда около 10 км.
Оползни в этих местах не редкость и периодически на пути встречаешь такие вот ограждения, там где дорога особенно просела. Хотя асфальт при этом по большей части в отличном состоянии. Ни ям тебе, ни такого знакомого заплаточного ремонта я не встретил.
Тем временем я уже больше полутора часов кручу педали. Пора бы сделать небольшой привал. Чтобы в полной мере полюбоваться открываемой панорамой Сочинского национального парка, вдохнуть всю красоту здешней весны и насладиться пением лесных птиц. Ведь в городе такого точно не будет.
Следующая деревня по пути - это Илларионовка, не большой горный поселок, люди здесь в основном живут своим домашним хозяйством. Кто-то например держит коз. :smile:
Наконец-то спуск вниз и можно разогнаться. Главное не врезаться в одну из коров.
Вот и долгожданный поселок Калиновое озеро. Здесь проживает около полутора тысяч человек. Даже имеются многоквартирные пятиэтажки.
Само Калиновое озеро было создано искусственным путем. Дело в том, что совсем рядом с ним располагаются многочисленные чайные плантации. Водоем был создан для их орошения, однако вскоре перестал использоваться по назначению. С тех пор озеро стало диким и в нем завелась рыба.
Всех вьезжающих в село встречает такая вот табличка, говорящая о том, что именно здесь находится компания производитель самого северного чая - АО “Хоста-чай”. Сами плантации мы увидим чуть дальше.
Вот эти многочисленные маленькие кустики путём ручного сбора и последующей обработки превращаются в различные сорта ароматного чая. А так сразу и не скажешь, что это чайное дерево.
Путь к озеру указывает такая вот табличка.
Последние метры хорошей дороги, еще немного и асфальт перейдет в грунтовую дорогу. А потом и вообще в разбитую колею грязи и луж.
Вот и само Калиновое озеро. Покоится в дали от пыльных дорог, шумных городов и грязных производств. Тихая водная гладь впечатляет своей чистотой и прозрачностью. Хочется остаться здесь надолго.
Фото на память. :smile:
Включаем режим внедорожника и устремляемся в лес.
Дорога из просто плохого состояния превращается в нечто экстремальное, но тем не менее пока проходимое.
Хотя пару минут спустя, всё же понимаешь, что надо было повернуть чуть дальше, возможно, там было бы проще ехать. Ну да ладно. Велопрогулка плавно перешла в пеший поход по лесу.
И после небольшого ручейка тропа привела к какой-никакой, но все же дороге.
Эх, опять вверх… :worried:
Солнце уже совсем низко. Успеть бы до заката вернуться домой.
Да, вот именно ради таких красот и стоит подниматься три часа. Вид рядом с деревней Измайловка. :heart_eyes:
Дорога отсюда уже больше не идет вверх. Можно с легкостью выдохнуть и ехать почти не крутя педали вплоть до Мацесты. Где-то рядом находятся водопады Змейка. Оставим их на следующий раз.
Уютное село Краевско-Армянское протянулось вдоль ущелья реки Мацесты.
По приданиям название “Мацеста” произошло от словосочетания “огненная вода”. На эту тему придумано несколько красивых легенд, в каждой из которых Мацеста — имя красивой и отважной девушки, проникшей в охраняемые злым духом пещеры, спустившейся под землю, дабы ценой своей жизни добыть целебную воду для больных родственников.
Мацеста, как часть курорта, знаменита своими целебными сероводородными водами. Именно эта деталь курорта запечатлена в центре герба в виде чаши, наполненная огненной водой и символизирующая Мацесту – как сердце города Сочи. Также рядом с Мацестой начинается дорога на гору Ахун — одну из главных природных достопримечательностей.
Вот уже сама река Мацеста. Как и все реки в этих местах набирает силу во время дождей и таяния снегов, в сейчас же - неглубокий ручеек.
Конец поездки уже близко. Выехал на финишную прямую - трассу вдоль побережья. Солнце уже совсем приблизилось к горизонту, одаряя прибрежную полосу теплыми оттенками своего света.
Успел! Ровно к закату вернулся в Хосту. Спустился к морю, чтобы увидеть последние лучи заходящего солнца. :heart_eyes:
Хороший маршрут получился. Не легкий, но и не особо сложный. Определенно запоминающийся и впечатляющий своей красотой. А новый велосипед не подвел, и вместе с ним мы преодолели 42 км за 4 часа.
Рекомендую попробовать повторить, не останетесь разочарованы!
Продолжение следует… :bike:
“Когда дух упал, когда день не задался, когда работа становится монотонной, и надежды нет - садитесь на велосипед и езжайте по дороге, не думая ни о чем, кроме самого катания.” © Артур Конан Дойль
“Life is like riding a bicycle. To keep your balance you must keep moving.” © Albert Einstein
Был ясный солнечный день. Погода стояла отличная. За окном было около 20 градусов тепла. Отменять свою давнюю мечту проехаться по старому заброшенному участку шоссе от Красной Поляны до Адлера из-за обстоятельств, на которые повлиять я никак не мог, совсем не хотелось. К тому же, после Тавриды мне уже ничего не страшно, подумал я, и отправился в свой запланированный мини-поход.
Полупустая электричка увезла последних пассажиров на Красную Поляну, где в последний день принимали посетителей горнолыжные склоны и закрывались на «карантин» до лета. Меня же всё это не интересовало. Я ждал скоростной спуск вдоль горного ущелья стремительной реки Мзымта, и, поднажав на педали, устремился вниз.
Проносились километры под колесами, а с ними сменялись, одни за другими, виды гор и лесов с с многочисленными размашистыми вкраплениями всего рукотворного — мостов, тоннелей, арок, эстакад, пролётов, линий электропередач. А ведь ещё какой-то десяток лет назад всего этого здесь не было…
Подъезжая к поселку Кепша, важно не уехать в туннель, а свернуть налево с основной дороги к самому интересному участку трассы. Ориентир на карте - кладбище. Именно, отсюда начинается участок, который в народе назывался «Господи, пронеси!». Этот скальный отрезок дороги был основным способом связи с Красной поляной вплоть до 2005 года. Сейчас сюда ведет большой тоннель длинной 2601 м.
Сам же скальный участок протяженностью около 3 км был построен в конце 19 века под руководством В.К. Константинова, позже его творение будут считать шедевром инженерного искусства конца XIX века. Интересно перечитать заметки того времени [1].
«Дорога вьётся по правому берегу реки на высоте настолько значительной, что расположенная ниже долина кажется глубокой пропастью. Но вместе с тем и над головой высятся горы громадной высоты. Стена известняков висит прямо над головой, и громадные скалы виснут, едва держась, грозя обрушиться после первого ливня или самого лёгкого сотрясения почвы. Дорога прямо высечена в скале и настолько извилиста, что если из-за угла выскочит экипаж, то, кажется, одному из едущих при столкновении не миновать пропасти»
Дорога и вправду достаточно опасна и обвалы здесь отнюдь не редки. То там, то здесь видны их последствия. Также не будем забывать, что внизу течет бурная река, которая размывает и уносит с собой горные породы. И недалёк тот день, когда этот провал совсем отрежет возможность проезда.
Всего один единственный узкий туннель всё же был прорублен сквозь скалу. Восхищаешься скольких сил это стоило, если принять во внимание, что у рабочих были только кирки, лопаты, да динамит.
Позже, уже в конце 20 века появились такие вот арочные конструкции для защиты от камнепада.
И объекты культурного наследия советской эпохи. Барельеф погибшим красноармейцам. У него тоже интересная и грустная история. По материалам из сети: пленных расстреливали или отрубали головы, поставив на край пропасти. Некоторых живыми скидывали в ущелье. Есть упоминания об одном выжившем, который рассказал о тех событиях.
Не могу не отметить красоту раскинувшегося простора, открывающегося с такой высоты. Ради нее стоило проделать такой путь.
Запустение и заброшенность придают этому месту особый колорит. Интересно наблюдать как с годами природа берет своё и поглощает всё, что человек создал. А ведь когда-то здесь кипела жизнь, ездили автобусы с сеткой от камнепадов, строились бетонные карнизы, возвышались линии электропередач.
И для полноты картины не могу не добавить несколько фотографий от автора блога Travel-or-Die
Сделав напоследок финальный снимок, поторопился вперед в дорогу, ведь надо было еще успеть заскочить на водопад «Пасть Дракона» и вернуться домой до заката. Но это уже совсем другая история…
Продолжение следует…
“An investment in knowledge always pays the best interest.” © Benjamin Franklin
Интересный год выдался, насыщенный. Год экспериментов - так назвал бы свой 2019.
И почему бы не поделиться своим опытом и открытиями. Вдруг, информация ниже покажется кому-то полезной или интересной.
К сожалению, не всегда получается достичь желаемого по разным причинам. Но именно неудачи и делают нас сильнее. И поэтому я хочу начать с того, что у меня не получилось в этом году. Чтобы закончить на позитивной ноте - моих достижениях и планах на 2020.
Что так и не удалось в этом году: :worried:
А теперь то, что удалось попробовать или достичь, и чему научился за год: :smile:
Но, наверное, самое главное. Этот год я начал с вопросов: Что это за существа такие - «дети»? Так ли они опасны, как о них говорят? Как они мыслят? Что чувствуют? И могут ли они приносить благо тем, кто оказался рядом с ними?
И, пожалуй, нашёл для себя ответы на них. :blush:
Стоит также упомянуть о планах на следующий год, что собираюсь делать:
Надеюсь, мой пост сможет замотивировать вас на изменения. Ведь если вы хотите, чтобы обстоятельства вашей жизни изменились, меняйте обстоятельства своей жизни. А лучше начинайте с себя, со своего внутреннего отношения. И не бойтесь ставить большие цели. Рискуйте, пробуйте и исследуйте новые возможности. Будьте открыты миру и помогайте друг другу.
Жить - это значит действовать :fire:
С наступающими праздниками, друзья! Хочу пожелать удачи в воплощении ваших идей. И пусть новый год будет богат на приятные моменты и события. :stuck_out_tongue_winking_eye:
]]>В данной статье покажу полученные результаты, программу для повторения моих опытов и опишу ограничения с которыми пришлось столкнуться. Для работы с данными и интерфейсами VK и Google использовал язык Python и Jupyter Notebooks.
Для анализа взял несколько мест на карте - города пользующиеся популярностью у туристов - Евпатория, Севастополь, Ялта; и Симферополь, как представитель крупного города, где гости не задерживаются надолго и как таковые туристические объекты отсутствуют.
Не буду расписывать настройку среды и все подготовительные действия, они есть на официальных сайтах инструментов. Все довольно просто. Но упомяну, что библиотека jupyter-gmaps требует пересборки jupyter (см. инструкции по установке).
Для начала подключим и импортируем библиотеки:
import pandas as pd
import gmaps
import gmaps.datasets
import requests
from random import randint
from datetime import datetime
from time import sleep, strftime, localtime, mktime, strptime
from csv import DictWriter, DictReader
Потом необходимо создать свое приложение VK пользуясь этим руководством. И приложение Google по этой инструкции. В итоге мы получим два токена (где ‘…’ это различные символы) или ключа для работы с API сервисов.
GOOGLE_API_KEY = 'AI......'
VK_ACCESS_TOKEN = 'd05......'
VK_VERSION = '5.92'
Затем требуется так называемая инициализация переменных
geo = (44.498231, 34.169317) # точка поиска - Ялта администрация (взял из карт)
dist = 3000 # радиус поиска фотографий (в метрах)
timeperiod = (1514764800, 1546300800) # диапазон времени в котором сделано фото
# ( 00:00 1.01.2018, 00:00 1.01.2019 )
Описание функции для получения данных от VK. На выходе получаем JSON структуру.
def getVK(geo, timeperiod, offset):
params = {
'lat': geo[0],
'long': geo[1],
'count': '1000',
'offset': offset,
'radius': dist,
'start_time': timeperiod[0],
'end_time': timeperiod[1],
'access_token': VK_ACCESS_TOKEN,
'v': VK_VERSION,
'sort': 0 # by date of creation
}
return requests.get("https://api.vk.com/method/photos.search",
params=params, verify=True).json()
Получаемый ответ будем сохранять в структуру map (словарь), где ключом будет пара - id фото и время фото.
Это позволит избежать повторов одинаковых фотографий.
Производить сохранение в словарь будем через функцию, принимающую на входе ответ сервера и сам словарь.
Там же сделаем обработку исключений, т.к. иногда ответ выдает пустой JSON.
В переменную map_data
сохраняем непосредственно GPS координаты фотографии.
def save_to_map(resp, map_data):
try:
items = resp['response']['items']
except KeyError:
return
for f in items:
try:
map_data[(f['id'], f['date'])] = (f['lat'], f['long'])
except KeyError:
continue
И пожалуй самое главное - функция для запуска сбора данных из VK.
Что в ней важно?
Используется метод photos.search.
Поиск фото ведется циклически в течение заданного временного промежутка с шагов в 24 часа (сутки) - сделано для того, чтобы преодолеть ограничение VK на максимальное количество возвращаемых фото (3000 фото) при одинаковом запросе.
Сделан цикл для получения дополнительных фотографий, которые не были получены в первый раз (расчет сдвига - offset). И если обработка зацикливания в случае преодоления этого лимита. В общем, есть одна особенность - мы не можем получить больше 3000 фотографий за сутки, все остальные будут так или иначе отброшены. Но в данном примере ими можно принебречь. Т.к. данных для анализа все равно будет достаточно. И да, пришлось добавить вызов функции sleep(0.5)
для того чтобы не слать очень часто запросы и VK не забанил бы приложение.
map_data = {}
step = 24*60*60 # шаг - день
i = timeperiod[0]
while i < timeperiod[1]:
resp = getVK(geo, i, i+step, 0)
save_to_map(resp, map_data)
count = resp['response']['count']
returned = len(resp['response']['items'])
if count > returned:
offset = returned
while offset < count and offset < 3000:
resp = getVK(geo, i, i+step, offset)
save_to_map(resp, map_data)
count = resp['response']['count']
returned = len(resp['response']['items'])
offset = offset + returned
if returned == 0:
break
i = i + step
sleep(0.5)
Дальше написал функции для сохранения полученного словаря map_data
с данными о расположении фотографий и чтении этих данных обратно в словарь. Это чтобы не производить сбор данных еще раз и в будущем был бы уже готовый датасет.
def save_map_to_csv(map_data, path):
with open(path, 'w', newline='', encoding='utf-8') as csvfile:
columns = ['id', 'date', 'lat', 'long']
writer = DictWriter(csvfile, fieldnames=columns, delimiter=';')
writer.writeheader()
for key in map_data:
data = {
'id': key[0],
'date': strftime("%d.%m.%Y", localtime(key[1])),
'lat': map_data[key][0],
'long': map_data[key][1],
}
writer.writerow(data)
def read_csv_to_map(map_data, path):
with open(path, newline='', encoding='utf-8') as csvfile:
reader = DictReader(csvfile, delimiter=';')
for row in reader:
map_data[(int(row['id']),
int(mktime(strptime(row['date'], '%d.%m.%Y'))))] =
(float(row['lat']), float(row['long']))
Воспользуемся сохранением в CSV формат полученных данных
save_map_to_csv(map_data, 'yalta2018.csv')
И последнее, что осталось сделать это нанести фотографии на карту и создать из них тепловую карту, для выявления очагов, где было сделано наибольшее количество фотографий.
print('Count of photos {}'.format(len(map_data)))
gmaps.configure(api_key=GOOGLE_API_KEY)
fig = gmaps.figure(center=geo, zoom_level=13)
heatmap_layer = gmaps.heatmap_layer(list(map_data.values()))
fig.add_layer(heatmap_layer)
fig
У Google тоже есть ограничение на максимальное количество запросов в день и др. Тогда карта окрашивается в темный цвет (см. пример с Симферополем). В таких случаях я просто создал еще одно приложение и получил новый токен.
В общем, вот так выглядит программа и полученная тепловая карта в JupyterLab
В итоге были получены следующие результаты. Я их скомпоновал и выложил в открытый доступ.
Собрано около 217 тысяч фотографий - итоговый CSV-файл.
Собрано около 273 тысяч фотографий - итоговый CSV-файл.
Собрано около 370 тысяч фотографий - итоговый CSV-файл.
Собрано около 422 тысяч фотографий - итоговый CSV-файл.
Собрано около 1 232 тысяч фотографий - итоговый CSV-файл.
Помимо полученного опыта работы с API google и VK, удалось с помощью соцсетей вычислить места более всего принятые для фотографирования. Это может быть началом для более глубокой аналитики. Например, где сегментации по полу, возрасту, городу; определение временных предпочтений (что популярно днем/ночью, летом/зимой) и пр. А для себя, благодаря исследованию, я нашел пару примечательных мест недалеко от Евпатории, которые собираюсь в ближайшее время посетить.
]]>«IT-Планета» — одно из самых масштабных состязаний в области информационных технологий, учрежденных в России. Учредителями конкурсов являются ведущие российские и международные ИТ-компании: 1С, Huawei, Cisco, Oracle, ГНУ/Линуксцентр и СКБ Контур. Олимпиада проводится по нескольким направлениям.
Я участвовал в конкурсе по номинации “Администрирование Linux”, прошел несколько отборочных этапов и стал одним из победителей в финальных соревнованиях. Здесь решил выложить сами задания финала, которые показались мне достаточно интересными. Если найду время - выложу и решения.
В нашем распоряжении была машина с OC Centos 7 минимальной конфигурации, подключенная физически к интернету. Необходимо было:
Установить и настроить prometheus для сбора метрик с рабочей станции сервис должен работать на стандартном порту (9090), отдавать базовую информацию о машине, быть доступным из локальной сети.
На сервере с заданиями можно обнаружить странный архив botnet.tar.gz с бинарниками, происхождение и назначение которых вам неизвестны. После краткого расследования выяснилось, что злоумышленник проник в систему, потому что у одного из пользователей логин совпадал с паролем. Есть подозрение, что это часть какого-то ботнета. Задача собрать как можно больше информации о бинарном файле, о том что делает программа, при возможности деанонимизировать автора. Информацию о файле и свои мысли записать в /root/botnet.answer
Все манипуляции с файлами из архива с ботнетом производить в контейнере. Выполнение на хост-системе ведет к дисквалификации.
Необходимо было придумать себе цель путешествия. И я ее нашел. Что это за цель, я думаю, вы поймете к концу рассказа.
А ниже, в формате истории с некоторыми интересными фактами, она будет представлена.
Крымский полуостров окружен морем с четырех сторон, и лишь Перекопский перешеек шириной в семь километров соединяет его с Большой землей.
Площадь Крыма около 27 000 км2. Он меньше Швейцарии, но больше Израиля или Кипра, а протяженность его побережья составляет 2500 км.
Природа Крыма разнообразна и уникальна. Здесь встречаются сразу три климатические зоны: умеренно-континентальный климат степей, горный пояс и субтропики южного побережья. Только на Крымском полуострове можно столкнуться с сочетанием плоских горных вершин с холодноватым и невероятно влажным воздухом, а всего через пару-тройку километров располагаются теплые черноморские берега с их галечными и песчаными пляжами.
Западное побережье – степное. Нет гор и лесов, только ветер и безводье. Растения в большинстве своем низкорослые, иссохшие, жесткие, колючие — акация, туя, скумпия, редко — тополь. В мае зацветают тюльпаны, затем маки. Степь в это время прекрасна.
Крайняя точка западного побережья - мыс Тарханкут. В средние века его называли “Мыс Бурь”. Расположен неподалеку от села Оленевка, насчитывающего около 1500 жителей. В этой местности море очень чистое, потому что поблизости нет рек, впадающих в него. Вода меняет оттенки от глубокого синего до лазурно-голубого. Наблюдать за сменой цвета можно бесконечно.
Переменчивость погоды, частые шторма и скальный рельеф береговой линии делали эти места весьма опасными. В 1814 году в обеспечении безопасного мореплавания приняли решение соорудить маяк. Высота Тарханкутского маяка составила 35 метров. Маяк оборудовали 15 лампами, дающими свет от сгорания масла, и массивным колоколом, который в непогоду звонил в набат. В наши дни маяк полностью переоборудован и вокруг него осуществляется охрана. Рядом с ним видно затонувший в 2010 году сухогруз.
И добраться до туда не так-то просто. До Оленевки ходят всего несколько рейсов из Евпатории и Черноморского с утра. Доехав до Черноморского, я понял, что последний автобус ушёл 15 минут назад, следующий — только завтра. Ехать на такси — не мой путь, и я решил взять велосипед напрокат, подумав, что 30 км не такая уж и большая дистанция. Я ж и больше проходил… Совершенно проигнорировав особенности рельефа, сельскую дорогу и… штормовое предупреждение. Благо всё обошлось, и за несколько часов я добрался до этого удивительного места.
Высокие горы, теплое море, мягкий климат – вот что такое Юг Крымского полуострова.
Здесь можно найти живописные скалы, высокие горы и уютные бухты с песочными пляжами. Гряда Крымских гор защищает полуостров от воздушных масс, идущих с континента, а потому на южном побережье сохраняется субтропический климат с теплым летом, жарким солнцем, обилием зелени и теплой морской водой.
Самой южной точкой Крыма является мыс Сарыч. Большинство предполагают, что название Сарыч («золототканый») мыс получил благодаря цвету расположенных рядом холмов. Расстояние от мыса Сарыч до мыса Керемпе в Турции составляет около 260 км. Маяк на мысе построен по приказу императора Николая II в 1898 году. 12-ти метровая башня сделана из чугуна. Маяк дожил до наших дней в неизменном виде. Совсем рядом находятся территории дач высших правительственных чиновников СССР, где находился М.С. Горбачев во время попытки государственного переворота 1991 г.
Отбиваясь от череды таксистов и немного передохнув в Ялте, отправился покорять самую южную точку Крыма. Добраться до туда можно на проходящем автобусе до Севастополя. Билетов на ближайшие рейсы не оказалось, но местные водители автобусов без проблем подбирают людей, стоит лишь немного отойти за территорию вокзала. Зачастую это бывает дешевле, чем в кассе.
Дорога до мыса проходит вдоль живописного побережья на значительной высоте над морем. Море и горы. Красота… Сам мыс посетить, к сожалению, не удалось. Территория вокруг него была вся застроена различными постройками. К маяку также не попасть - режимный объект. Зато застал живописный закат на фоне гор. А вообще, темнеет, на удивление, быстро и рано.
Восток Крыма представляет собой скопление небольших бухт и полуостровов, например, Керченского полуострова. Он характерен плавным переходом от Крымских гор к степи. Климат на восточном берегу Крыма близок к средиземноморскому – мягкий и без резких температурных колебаний. Воздух здесь чистый и сухой, а, благодаря морским бризам, летний зной переносится достаточно легко. Пляжи на восточном побережье Крыма встречаются разные - песчано-гравийный с мелким ракушечником от Алушты до Судака, с серым песком в самом Судаке, гравийно-галечный в Зеленой бухте Нового Света и мелкопесчаные в Феодосии.
Мыс Фонарь является самой восточной точкой Крымского полуострова. У этого скалистого возвышения воды Керченского пролива переходят в воды Азовского моря. Название мыса — «Фонарь», переводится с греческого языка, как факел, светоч. Со времен греческой колонизации на мысе Фонарь был маяк, обеспечивающий морским судам безопасное прохождение Боспора Киммерийского. Сам мыс Фонарь представляет собой скалистое возвышение на границе Азовского моря и Керченского пролива. С его верхушки открываются потрясающие панорамы Азовского моря, Краснодарского края, косы Чушки и паромной переправы. Керченский пролив с этого места хорошо просматривается, а при хорошей погоде отлично видны постройки на той стороне. С 1820 года на самом высоком месте возвышается Еникальский маяк, указывающий путь морским судам. Но во время ожесточенных боев, в годы Великой Войны, маяк был разрушен. О тех событиях, и бесстрашных подвигах во имя жизни, времен войны, сегодня напоминают стелы и обелиски. Сейчас здесь оборудован современный навигационный комплекс со станцией GPS.
Приехав в Керчь, пересел на городской автобус из Керчи и доехал до популярной некогда паромной переправы. Пообщавшись с работниками узнал, что из-за сильного ветра (порывами до 20 м/с) попасть на другой берег у меня не получится еще как минимум 40 часов и лучше это сделать по мосту. Эх…
Солнце двигалось к закату, ветер дул в спину, и хотелось успеть вернуться до наступления темноты. Пройти предстояло около 10 км. Земля, давно не видавшая дождя, была покрыта чередой глубоких трещин, прикрытых пожелтевшей сухой травой. Завораживающие холмистые пейзажи вокруг мыса и почти полное отсутствие людей создают здесь особую таинственную атмосферу. Удивительное место с неповторимой энергетикой.
Отдельного упоминания стоит горный Крым.
Уникальные явления природы — Крымские горы. Они являются одной из визитных карточек полуострова и излюбленным место туристов. Горы Крыма - это сложная структура горных хребтов, каждый элемент которых совершенно уникален и имеет собственное историческое значение. Горы Крыма нельзя назвать очень высокими, они ниже Кавказа, Алтая и Альп. Высота самой большой горы Роман-Кош всего лишь 1545 м. Самые пики Крымских гор принято называть яйла. Яйла — это цепь своеобразных столообразных плоских вершин, соединенных глубокими перевалами. Ландшафт их необычайно живописен и крайне разнообразен. Весной они представляют собой сплошной ковер из цветов.
Горные реки изобилуют многочисленными порогами, перекатами и водопадами (Учан-Су, Гэловкинский, Джур-Джур и др.). Горный Крым также называют Лесным — здесь сохранились крупные массивы реликтовых лесов, занимающие до 12% площади полуострова.
Одна из вершин Крымских гор, находящаяся в пределах большой Ялты – это Ставри-Кая. Ее высота около семисот метров над уровнем моря. В переводе с греческого языка «ставрос» это — крест, а с татарского «кая»- скала, так что название говорит само за себя – «крестовая скала». Вершину скалы венчает православный крест. Со скалы хорошо просматривается южный берег и Ялта. К ее вершине ведет сразу несколько удобных троп-терренкуров (терренкур - “лечение местностью”: tеrrа - земля, сurе - лечить), считающихся лечебными, потому что проходят по целебным сосновым лесам.
Боткинскую тропу проложили члены Ялтинского отделения Крымско-Кавказского горного клуба, почитавшие знаменитого профессора, врача С. П. Боткина. Тропа названа именем великого деятеля медицины, т.к. он одним из первых оценил и рассказал о целебном влиянии земель Южного берега Крыма на здоровье человека. Неповторимые ароматы хвои здешних лесов, чистый горный воздух оказывают мощное лечебное воздействие на организм. Человек здесь исцеляется не только телом, но и душой. А это залог скорого излечения от множества недугов. С. П. Боткин стал одним из первых проповедовать лечение силой земли.
Мой путь был от Поляны сказок (так называется автобусная остановка), по Боткинской тропе до горы Ставри-Кая, переход на Штангеевскую тропу до водопада Учан-Су и обратно через лесной массив к Поляне сказок. Удобная хорошо протоптанная тропа, проходящая через хвойный лес, почти не дает возможности сбиться с пути. Воздух здесь необычайно чистый, легкий. Хочется дышать полной грудью. Идти не трудно, и любой более-менее подготовленный человек способен преодолеть этот маршрут. По дороге кое-где оборудованы скамейки, и чтобы не сбиться с маршрута имеется много меток на деревьях. Также путь проходит через каскад водопадов реки Яузлар, в котором туристы набирают воду для питья. Вода чистая и вкусная. В целом, маршрут у меня занял 6.5 часов. Рекомендую всем к посещению! И как гласит одна мудрая надпись, помните, что в лесу мусор не растет!
Вроде бы зачем все это? Есть ведь много популярных достопримечательностей, среди которых Воронцовский дворец, Ласточкино гнездо, Генуэзские крепости, Херсонес, или просто отдых на пляже. Но кроме них Крым полон мест, менее известных, а от этого еще более привлекательных – уголков полуострова, окутанных своей тайной и невероятным очарованием.
И я уверен, что каждому по силам придумать свой уникальный маршрут путешествия в этом удивительном краю, и, надеюсь, что мой рассказ побудит вас открыться приключениям.
]]>