Pull to refresh
6
0
Алексей @sharptop

User

Gitlab-CI

Reading time 5 min
Views 102K



Всем привет.
У нас не так много задач, которым необходим полноценный CI. Некоторое время мы использовали в качестве CI-сервиса Jenkins. Там всё довольно очевидно, он прост и гибок в настройке, имеет кучу плагинов, но пару раз мы столкнулись с OOM-убийцами агентов на слабых машинах и решили рассмотреть в качестве CI-сервиса Gitlab CI, потому что мы любим эксперименты и тем более в комментариях к нашей прошлой статье задавали такой вопрос.
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Comments 17

Кластер высокой доступности на postgresql 9.6 + repmgr + pgbouncer + haproxy + keepalived + контроль через telegram

Reading time 32 min
Views 55K
image

На сегодняшний день процедура реализации «failover» в Postgresql является одной из самых простых и интуитивно понятных. Для ее реализации необходимо определиться со сценариями файловера — это залог успешной работы кластера, протестировать его работу. В двух словах — настраивается репликация, чаще всего асинхронная, и в случае отказа текущего мастера, другая нода(standby) становится текущем «мастером», другие ноды standby начинают следовать за новым мастером.

На сегодняшний день repmgr поддерживает сценарий автоматического Failover — autofailover, что позволяет поддерживать кластер в рабочем состоянии после выхода из строя ноды-мастера без мгновенного вмешательства сотрудника, что немаловажно, так как не происходит большого падения UPTIME. Для уведомлений используем telegram.

Появилась необходимость в связи с развитием внутренних сервисов реализовать систему хранения БД на Postgresql + репликация + балансировка + failover(отказоустойчивость). Как всегда в интернете вроде бы что то и есть, но всё оно устаревшее или на практике не реализуемое в том виде, в котором оно представлено. Было решено представить данное решение, чтобы в будущем у специалистов, решивших реализовать подобную схему было представление как это делается, и чтобы новичкам было легко это реализовать следуя данной инструкции. Постарались описать все как можно подробней, вникнуть во все нюансы и особенности.
Читать дальше →
Total votes 43: ↑41 and ↓2 +39
Comments 45

Мобильная метеостанция на Arduino

Reading time 10 min
Views 15K
Наверное, каждый кто начинает свое знакомство с Arduino, поморгав светодиодом и подключив кнопку, переходит к созданию своей метеостанции. Не исключением стал и я.

Ознакомившись с различными проектами в интернете, были составлены определенные требования. Устройство должно отображать время, температуру, давление и график его изменения. Также очень хотелось рассчитывать фазы луны и время восхода-захода солнца. А самым важным требованием было – мобильность. Создаваемая портативная метеостанция предполагалась использоваться в помощь для рыбалки, поэтому должна была иметь компактный размер и обладать определенной автономностью.
Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 27

Корпоративная АТС на базе Asterisk

Reading time 18 min
Views 77K
Предпосылки

В жизни любой крупной развивающейся компании рано или поздно встаёт вопрос о расширении возможностей телефонной станции и переходе от классической телефонии к IP.

Далёкой весной 2011 и перед нашей компанией встал такой вопрос, т. к. внешние и внутренние линии требуют постоянного расширения, а количество портов на старом Panasonic KX-TA624 было задано статично и расширению не подлежало. Открытие офисов в других городах и внедрение единой службы по работе с клиентами в других городах так же подталкивало к качественным переменам.

Техническое задание

Конечный продукт должен иметь следующие характеристики:
1) иметь большое количество (в нашем случае не менее 100) внешних и внутренних линий и быть готовым к расширению;
2) уметь приветствовать пользователей в рабочее время и сообщать о том, что они позвонили в нерабочее время, когда никого нет на месте;
3) таймауты переадресации при не ответе/занятости/недоступности должны настраиваться индивидуально;
4) должны быть предусмотрены очереди. Очередь — группа номеров, распределение звонков внутри которой происходит по определенным правилам;
5) записывать лог сообщений (как текстовый, так и аудио);
6) иметь гибкую политику распределения прав на внешние звонки. Должны быть предусмотрены пользователи, которые могут звонить только на внутренние номера; на городские номера; на любые номера;
7) в зависимости от времени суток, звонить на тот или иной номер.
Читать дальше →
Total votes 26: ↑23 and ↓3 +20
Comments 21

Oracle join elimination

Reading time 15 min
Views 25K
Оптимизатор в Oracle может применять различные способы трансформации запросов для улучшения их производительности. Одним из таких способов является join elimination. В официальной документации Oracle Database SQL Tuning Guide об этом способе сказано достаточно мало, в отличие от других.
Приглашаю читателей под кат, чтобы поговорить об этом способе поподробнее.
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 35

Как перестать настраивать и начать жить или настройка Puppet в школьном классе на 25 компьютеров

Reading time 7 min
Views 29K
Можно настраивать компьютеры по одному, но иногда их становится слишком много...



Так уж вышло, что я устроился преподавателем на один бесплатный курс для школьников по разработке под Android, спонсируемый одной крупной корпорацией, и, естественно, мне потребовалось осваивать соответствующую технику в количестве 25 ноутбуков, 25 планшетов, 2 стационарных компьютеров и сенсорной панели. До недавнего времени ноутбуки использовались с ОС Windows 8.1, но мало кого устраивала производительность и стабильность работы этой ОС при разработке в Eclipse и Android Studio. После одного года под Windows, наше руководство решило все ноутбуки перевести на Xubuntu 14.04, чтобы разрешить эти сложности. Был подготовлен образ, настроенный под конкретную модель ноутбуков, что у нас использовалась, и со всеми необходимыми программами. Накатил и работай. Одна беда — не было предусмотрено никакого решения для централизованного управления конфигурацией. На мой логичный вопрос по этому поводу был дан ответ, что внедрение подобной системы усложняет процедуру установки Linux на ноутбуки и, поскольку в образе уже все сделано как надо, никаких изменений после его установки вносить не понадобится. (ох уж эти оптимисты!)
Читать дальше →
Total votes 30: ↑25 and ↓5 +20
Comments 25

Пишем голосовое IVR меню на языке TCL, с использованием Cisco IVR API

Reading time 20 min
Views 13K
Сегодня речь о голосовом меню (IVR) для маршрутизаторов Cisco, которое мы будем писать на языке TCL, и подключать на Cisco 3845.

Итак, для начала давайте разберемся в азах


Cisco начиная с версии IOS 12 поддерживает как VXML так и TCL скрипты для работы с голосовым меню. Однако, в отличии от VXML, скрипты на TCL имеют гораздо больше возможностей взаимодействия с Cisco IVR API. Так же существует возможность подключать гибридные IVR скрипты, со встроенными кусками VXML кода внутри TCL скрипта.

Все документы, связанные с IVR от Cisco, которые мне довелось получить можно скачать здесь.

FSM


Первое это FSM переходы.
Finite-State Machines — абстрактный автомат, число возможных внутренних состояний которого конечно.
Выглядит это примерно так:
set ivr_fsm(CALLCOMES,ev_setup_indication) "act_Setup same_state"

Переходов таких может быть сколько угодно, и расположены они в конце TCL скрипта.

Давайте разберемся, что это вообще такое.
Общий синтаксис этой команды таков:
set array(CURRSTATE, curr_event) “act_proc NEXTSTATE”

где:
array – это имя FSM массива.
CURRSTATE – имя текущего состояния, при котором получено событие curr_event.
act_proc – имя функции, которую необходимо выполнить при поступлении события curr_event.
NEXTSTATE – имя состояния, которое установится после выполнения act_proc.

Другими словами, FSM это маркер, по которому Cisco сравнивает полученное от API событие с curr_event и текущий статус с CURRSTATE, если в каком либо FSM переходе они описаны, вызывается процедура act_proc и состояние изменяется на NEXTSTATE.

Самое главное в этом — это то, что текущее событие и состояние сравниваются со всеми описанными FSM переходами одновременно. Т.е. для Cisco не имеет значения порядок, в котором расположены FSM переходы, все они обрабатываются асинхронно.
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 2

Загрузочный сервер — как загрузочная флешка, только сервер и по сети

Reading time 12 min
Views 444K
Загрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!

Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.

Вот такое меню встречает нашу команду инженеров при загрузке с PXE



Под катом вас ждет описание всех настроек, а так же небольшой сюрприз.
Поехали!
Total votes 141: ↑138 and ↓3 +135
Comments 82

Fly IQ4511 Tornado One Octa: «флагман», «премиум» или «просто смартфон»?

Reading time 4 min
Views 2.9K


Как давно вы читали «Двенадцать стульев»? Помните, полное имя Великого Комбинатора? — Остап-Сулейман-Берта-Мария-Бендер-бей… К чему тут всякая «ильфопетровщина»? Да просто наш очередной гость имеет именно такое сложносочиненное название — Fly IQ4511 Tornado One Octa. Для пущей солидности еще можно добавить «Black»…
Читать дальше →
Total votes 9: ↑4 and ↓5 -1
Comments 4

Контроллер управления влажностью на Atmega328

Reading time 8 min
Views 78K
Недавно столкнулся с тривиальной задачей — управление вытяжным вентилятором дома в ванной комнате.

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

Вторым очевидным решением было просто посадить вентилятор на отдельный выключатель и предоставить управление человеку. Но человеческий фактор таков, что вентилятор постоянно забывали включать, а если включали, то выключать. Эффективность работы вентилятора быстро стремилась к нулю.

Пришлось подключить к делу свое увлечение Arduino и несложными микроконтроллерами.
Читать дальше →
Total votes 37: ↑34 and ↓3 +31
Comments 25

РОБОТ на базе: android, arduino, bluetooth. Рефлексный. Часть 2

Reading time 21 min
Views 112K
В прошлой статье РОБОТ на базе: android, arduino, bluetooth. Начало была предложена общая схема робота и представлена технология передачи и приема данных между андроидом и ардуино. А в ее завершении приведен список заказанных деталей и модулей. Детали получены (рис.1), комментарии учтены, приступим к созданию первого робота – рефлексного робота.

Рисунок 1
Читать дальше →
Total votes 45: ↑42 and ↓3 +39
Comments 18

От программирования к железу или «Почему оно не работает?».Ликбез

Reading time 9 min
Views 146K
image
Привет Хабр. В последнее время среди программистов все больше стала набирать популярность цифровая электроника, появляются все новые платформы, позволяющие без каких либо особых знаний в электронике собирать различные устройства. Сам я начинал заниматься аналоговой электроникой, позже — цифровой и программированием. Многие же — наоборот — сначала программированием, а потом пытаются заниматься железом, при этом знания по части электроники практически нулевые и люди не знают/не понимают элементарных для олдфажного электронщика вещей. В данной статье я постараюсь затронуть наиболее важные на мой взгляд моменты, как по части проектирования схем, так и по части разводки плат. Надеюсь мои советы помогут миновать некоторые грабли
Читать дальше →
Total votes 140: ↑138 and ↓2 +136
Comments 36

Information

Rating
Does not participate
Location
Оренбургская обл., Россия
Date of birth
Registered
Activity