Pull to refresh
0
0
Артур @degart

Пользователь

Send message

Отлаживаем сетевые задержки в Kubernetes

Reading time17 min
Views11K


Пару лет назад Kubernetes уже обсуждался в официальном блоге GitHub. С тех пор он стал стандартной технологией для развёртывания сервисов. Теперь Kubernetes управляет значительной частью внутренних и публичных служб. Поскольку наши кластеры выросли, а требования к производительности стали более жёсткими, мы стали замечать, что в некоторых службах на Kubernetes спорадически появляются задержки, которые нельзя объяснить нагрузкой самого приложения.

По сути, в приложениях происходит будто случайная сетевая задержка до 100 мс и более, что приводит к тайм-аутам или повторным попыткам. Ожидалось, что службы смогут отвечать на запросы гораздо быстрее 100 мс. Но это невозможно, если само соединение отнимает столько времени. Отдельно мы наблюдали очень быстрые запросы MySQL, которые должны были занимать миллисекунды, и MySQL действительно справлялась за миллисекунды, но с точки зрения запрашивающего приложения ответ занимал 100 мс или больше.
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments2

Database as Сode. Копаем глубже

Reading time13 min
Views14K


В IT-проектах код пишут все. Инженеры с помощью нескольких строк управляют Kubernetes кластерами, разгоняют облака Terraform'ом и ворочают тонны конфигураций на Ansible, Chef и Puppet. QA пишут понятные бизнесу тестовые сценарии на Spock и Cucumber. Аналитики свободно, часто лучше разработчиков, разговаривают на SQL. Проектная документация в форматах Markdown, AsciiDoc или LaTEX "компилируются" в нужный формат на билд-сервере. Ну а сами разработчики, эти укротители кода, владеют сразу россыпью языков на каждый жизненный случай — клиентский, серверный, скриптовый, функциональный и пр.


Код уже давно перестал быть загадочной тарабарщиной и теперь в том или ином виде доступен и понятен многим, даже премьер-министрам. И весь этот код участвует в стандартном жизненном цикле — находится под управлением VCS, подвергается code review, автоматизированному тестированию, CI, CD. Используются общие инструменты и подходы, метрики производительности и качества. А все вместе это носит гордое название — "Everything as code".


Однако мир БД традиционно стоит особняком вдалеке от этой феерии прогресса и технологий. Процесс разработки и сопровождения БД не меняется годами и продолжает вселять ужас и страх в разработчиков, администраторов и пользователей по всему миру. Но возможно ли представить БД в виде обычного кода? Приблизиться к основному процессу разработки, использовать общие инструменты и подходы? Об этом под катом.

Database as Code? Что за дичь?
Total votes 22: ↑22 and ↓0+22
Comments16

Реализация бизнес-логики в MySQL

Reading time23 min
Views24K
Привет Хабр! Хочу рассказать в статье мой опыт реализации бизнес логики (БЛ) в MySQL.

Есть разные мнения насчёт вопроса стоит ли хранить БЛ в базе. Я много лет работаю с Oracle и философия Oracle подразумевает, что БЛ в БД это Best Practices. Приведу пару цитат Тома Кайта:

Tom Kyte. Effective Oracle by Design
If the database does something, odds are that it does it better, faster and cheaper, that you could do it yourself
Том Кайт. Oracle для профессионалов.
Прежде чем начать, хотелось бы объяснить вам мой подход к разработке. Я предпочитаю решать большинство проблем на уровне СУБД. Если что-то можно сделать в СУБД, я так и сделаю. [...] Мой подход состоит в том, чтобы делать в СУБД все, что возможно. [...]
При разработке приложений баз данных я использую очень простую мантру:

  • если можно, сделай это с помощью одного оператора SQL;
  • если это нельзя сделать с помощью одного оператора SQL, сделай это в PL/SQL;
  • если это нельзя сделать в PL/SQL, попытайся использовать хранимую процедуру на языке Java;
  • если это нельзя сделать в Java, сделай это в виде внешней процедуры на языке C;
  • если это нельзя реализовать в виде внешней процедуры на языке C, надо серьезно подумать, зачем это вообще делать...

В то же время в среде web-разработчиков приходится слышать мнения, что БЛ в БД это чуть ли не антипаттерн. Но я не буду останавливаться на вопросе стоит ли реализовывать БЛ в БД. Пусть каждый решает сам. Тем, кто хочет посмотреть, что у меня получилось в свете не столь обширного (по сравнению с Oracle) инструментария MySQL, добро пожаловать под кат.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments46

MyFin — удобный инструмент для ведения домашней бухгалтерии

Reading time2 min
Views15K
Всем привет!

Хочу представить вам свою разработку. Это минималистичное и удобное средство для ведения домашней бухгалтерии. Вот скриншот для затравки:




Подробности под катом.
Читать дальше →
Total votes 110: ↑93 and ↓17+76
Comments87

Проверка ИНН в Google Spreadsheets

Reading time2 min
Views6.1K
Ранее я публиковал уже пример генерации суммы прописью с помощью новых сервисов Google Spreadsheets
habrahabr.ru/blogs/google/104057

Теперь реализована также функция проверки правильности ввода ИНН.
Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments9

NASA организовало Интернет-трансляции с МКС

Reading time1 min
Views1.2K
image
Американское аэрокосмическое управление NASA начало в прямом эфире транслировать в Интернете видео с Международной космической станции.
К сожалению, взглянуть на Землю и космос с орбиты можно лишь когда космонавты спят или отдыхают — в остальное время передатчики МКС необходимые в работе.
Съемку ведет внешняя камера МКС. То, что происходит внутри станции, решено не показывать, чтобы не превращать жизнь ее жителей на реалити-шоу и не нарушать их право на частную жизнь, передает агентство Associated Press.
Когда экипаж МКС отдыхает, пользователи Интернета могут наблюдать за Землей и звездным небом глазами космонавтов — с высоты в 350 км. над планетой. В остальное время демонстрируется заставка, которая показывает нынешнее положение станции, а также новости NASA о событиях в космосе.
Ранее аэрокосмическое управление ежедневно по часу передавало в телеэфир прямое включение со станции с комментариями из космического центра в Хьюстоне. Теперь эта программа будет также доступна и на сайте NASA.
Чтобы рассчитать, когда космонавты отходят ко сну, необходимо помнить: на МКС используется время UTC.

Трансляцию камеры МКС можно посмотреть здесь
Total votes 47: ↑43 and ↓4+39
Comments73

Как разобрать Dell Inspiron 1525 и ничего не сломать ;)

Reading time6 min
Views71K

Конец уже содержится в начале. Джордж Оруэлл, 1948 год



Это не обычный обзор ноутбука, а скорее обзор некоторых технических возможностей и, главное, некая инструкция по полной безболезненной разборке/сборке.
Во время обзора будем стараться рассматривать его преимущества и недостатки.
Подопытный ноутбук Dell Inspiron 1525

как разобрать ноутбук
(осторожно, более 30 фото)
Приступим...
Total votes 62: ↑54 and ↓8+46
Comments71

Почему я не стану успешным

Reading time3 min
Views6.4K
На протяжении некоторого времени я активно читал книжки и статьи про различные методы достижения успеха. Материалы эти были совершенно разные: брошюры «как изменить себя за 10 дней», статьи на некоторых интернет-ресурсах, книжки из серии «помоги себе сам», простенькие учебники по психологии, записки успешных людей.

Прочитав, осознав, и кое-что попробовав, я пришел к выводу: я не стану успешным.

Почему?
Читать дальше →
Total votes 314: ↑258 and ↓56+202
Comments421

Проблема самоопределения

Reading time1 min
Views804
Мне с детства были интересны многие вещи в жизни. Если я видел что-то стоящее и интересное, я этим зажигался и стремился вникнуть вглубь вопроса, будь то дизайн, филология, программирование или музыка. Но сейчас я чувствую, что это стремление узнать всё в скором времени может привести к тому, что я не знаю ничего. От одной этой мысли я схожу с ума. Переизбыток мыслей и задумок в голове привел к рассеянности, застенчивости и нерешительности порой в самых банальных ситуациях.

Я не стал перечислять всё, чем мне хотелось бы владеть на уровне профессионала. Мне даже в некотором роде стыдно за это. Мне 22 года. У меня есть голова на плечах, но рассредоточенность мыслей меня губит. Многие успешные люди вторят друг другу: «Чтобы достичь в жизни чего-то, надо любить своё дело, быть ему преданным». Но как можно любить своё дело, если этих дел в голове тысяча?!

Это крик о помощи! Отчаянный крик. Для меня это огромная проблема. Наверняка у многих из вас в жизни тоже возникал такой вопрос.

Я редко обращаюсь за помощью к кому-либо, кроме себя.
Но это тот случай, когда тянуть дальше становится в прямом смысле опасным.
Total votes 53: ↑48 and ↓5+43
Comments98

Пару слов о программировании и непрограммистах

Reading time4 min
Views2.9K
А также о тех, кто хочет научиться этому искусству. Очень субьективно.

Я горжусь своей профессией, но очень не люблю говорить людям мало сведущим в программировании и в ИТ в частности, кем я работаю.
Люди сходятся во мнении, что программист — это тот, кто связан с компьютерами. На этом сходства заканчиваются. Один думает, что я печатаю бумажки в Ворде, другой то, что ремонтирую компьютеры и прочую периферию. Я это не придумываю. Вот случай произошедший как-то в нашем замечательном военкомате. Узнав род деятельности, прапорщик обрадовался:
— О, а у нас принтер не печатает!
— Какой принтер?
— Ну такой, с лентой.
Читать дальше →
Total votes 163: ↑159 and ↓4+155
Comments200

Отличный сервис для скачивания файлов

Reading time4 min
Views5.5K
Предыстория.

Год назад, когда славные студенческие времена уже подходили к концу, передо мной возник очередной студенческий квест. Один солидный профессор, пользующийся непререкаемым авторитетом на нашей кафедре, готов был выступить в роли моего дипломного руководителя, что практически гарантировало мне халявную сдачу диплома. Задача же состояла в том, что взамен профессор хотел получить новейшую версию одного известного и очень дорогого математического пакета. Дополнительная сложность заключалась в том, что нужна была версия для Linux.

Из-за таких сложностей найти нужный дистрибутив удалось далеко не сразу, и только на одном китайском сервере. Я уже был даже готов скачать эти 4 гига, заплатить за трафф из собственного кармана, и ни о чём не беспокоясь, писать диплом… но, как оказалось, сервер отдавал файлы ОЧЕНЬ медленно, постоянно рвал соединение, и, как назло не поддерживал докачку (хорошо было хотя бы то, что дистрибутив был разбит на части).
А тут, собственно, начинается полезная часть рассказа.
Читать дальше →
Total votes 101: ↑89 and ↓12+77
Comments69

Украшаем Windows

Reading time3 min
Views25K
Хочу поделиться с вами небольшой находкой. Я всегда использовал рабочий стол в компьютере не для хранения ярлыков, а скорее как красивую картинку. Ведь часто компьютер стоит просто влюченым, но не используется по прямому назначению. Можно поставить красивую обоину, прилепить пару нужных гаджетов, и вуаля! Сразу другой вид.

Одно время сидел в Убунте, там со всеми этими украшательствами как-то попроще было. А для винды найти хорошую софтину, чтобы выглядела прилично, чтобы не жрала половину процессора и памяти, чтобы было все настраиваемо под конкретного пользователя — было проблемой. Но буквально на днях наткнулся на замечательную программу — Rainmeter. Она позваляет сделать (возможно) ваш рабочий стол таким, каким им бы хотели видеть именно вы. Вот один из примеров (кликабельно), остальные подробности под катом.

Господа, данный пост предназначен только для тех, кто заинтерисован в этом. Просьба не писать комментарии типа «А у меня стоит тема Windows Classic, черный монотонный фон, и вообще Far the best!». Спасибо.


Подробности...
Total votes 207: ↑150 and ↓57+93
Comments159

Загрузка Windows 7 с VHD-образа

Reading time3 min
Views91K
В прошлый раз мы создали VHD-образ с Window 7 для Virtual PC. Понятное дело, что в виртуальной среде, конечно, есть свои преимущества, но тем не менее, хотелось бы, чтобы все работало пошустрее…

В случае с Window 7, также хотелось бы увидеть ее во всей красе, как минимум с запущенным aero-интерфейсом.

Далее речь пойдет о том, как загружаться с полученного VHD-образа наравне с установленной базовой системой. То есть для работы с системой не понадобится отдельный раздел и не нужно будет сносить существующую систему, Win 7 будет по прежнему храниться внутри VHD-файла, но в то же время она будет запущена в реальном окружении.

Читать дальше →
Total votes 47: ↑36 and ↓11+25
Comments50

Свободное ПО и его лицензирование

Reading time1 min
Views4.2K
Нам с коллегой предложили подработать — установить парк машин с Ubuntu/FreeBSD в один из офисов финансовой компании, заменив ими Windows машины.
Тем самым решаются сразу две проблемы
  • апгрейд парка машин
  • проблемы с лицензионностью софта

Проблема заключается в том, что, ни Ubuntu, ни FreeBSD, насколько я знаю, не имеют сертификатов ФСТЭК, а имеется информация, что:
«Получение сертификата ФСТЭК необходимо для работы в органах государственной власти, муниципального самоуправления, образовательных и медицинских учреждениях, производственных, финансовых и других организациях, имеющих дело с конфиденциальной информацией и персональными данными.» (с) OpenNET

Отсюда вопрос:
Если придут ребята из ОБЭП и увидят на компьютерах компании Ubuntu/OpenOffice, а на серверах BSD, будет ли это ПО считаться лицензионным? Или же всё таки необходимо приобретать ALT Linux/Mandriva/Red Hat и Инфра-Ресурс Офис, с которыми в комплекте даются бумажки(читать лицензии).
Total votes 29: ↑27 and ↓2+25
Comments159

Мотивация, жизнь и работа, опять о ней

Reading time3 min
Views2K
Научится заставлять себя что-то сделать для меня было нереально сложно. Мне очень повезло со способностями, поэтому все, что я брался делать выходило очень просто. Это ужасно расхалаживало меня последние пять лет. Когда я знаю, что для меня дело стоит в 30 минут, я дотяну до последних 30 минут и все сделаю «почти в срок». «Почти», потому что чем дальше я испытывал свои способности на прочность, тем чаще они давали осечки. Я банально не успевал, опаздывал со сдачей, на встречи и само собой переживал по этому поводу. Незавершенные, отложенные дела копились и копились, я оброс все большими обязательствами, идеями, проектами. Все это угнетало настолько, что мозг вырабатывал защитную реакцию — выкинуть все из головы, а значит задвинуть еще день, два, час, ахххррр!

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

Месяца три назад я стал искать решение и, кажется, оно уже было у меня в голове. С удовольствием расскажу об этом.

Читать дальше →
Total votes 108: ↑100 and ↓8+92
Comments62

Почему иногда не стоит изобретать велосипед

Reading time3 min
Views29K
В продолжение темы, почему иногда нужно делать свой велосипед, хочу дополнить и расширить эти мысли причинами, по которым этого делать не стоит.



Причина 1. Вы не знаете, как такие велосипеды устроены


Посмотрите внимательно на предыдущий топик. Генри Форд — с детства изучал технику. Его сестра как-то сказала, что в детстве любую игрушку старались спрятать от него, потому что он ее тотчас разберет на винтики. Работал инженером в «Электрической компании Эдисона», был совладельцем «Детройтской автомобильной компании». Он точно знал, что это такое — автомобиль. Он точно знал технические нюансы. Он точно знал, что черная краска сохнет два дня, а любая другая — две недели! Ну не из-за прихоти же он однажды сказал, что автомобиль будет только черным.

Игорь Сысоев, прежде чем делать свой nginx, уже имел «достаточно неплохой опыт работы с Apache — и как у системного администратора, и как у программиста».

Знаете ли вы, что вам предстоит на пути создания своего велосипеда? Или просто готовы окунуться с головой, не проверив глубину водоема?

Мы как-то по просьбе своего заказчика сделали реализацию почтовой рассылки, которая делала рассылку новостей зарегистрированным пользователям. И каково было удивление нашего заказчика, когда после первой такой рассылки его заблокировали как спаммера. Пришлось копать дальше, но в итоге оказалось, что гораздо проще интегрироваться с каким-нибудь MailChimp или UniSender и не изобретать велосипеда. Там не только все продумано, но есть еще и отчеты — сколько прочитало, сколько кликало по ссылкам, сколько нажали «отписаться от рассылки» и другие очень важные моменты, которые заказчик, попросивший «сделайте нам возможность разослать новости нашим пользователям», может захотеть сделать сразу же после реализации базового функционала.

Читать дальше →
Total votes 65: ↑51 and ↓14+37
Comments30

Как выучить любой язык за 3 месяца?

Reading time6 min
Views99K
Перевод статьи Тима Ферриса из его блога.

image

(Учебник Дзюдо Окано Исао, который я использовал для изучения японской грамматики)

Изучение языка не должно быть сложным.

Принципы когнитивной нейронауки и управления временем могут быть применены для достижения свободного владения языком на разговорном уровне (в данном случае определяется как 95%+ процентов понимания и 100% выразительных возможностей) в течение 1-3 месяцев.

Время прочтения: 15 минут
Total votes 207: ↑186 and ↓21+165
Comments134

Online redo logs или Событие контрольной точки в Oracle

Reading time7 min
Views55K
Довольно часто случается такая неприятность, что в alert.log базы одно за другим сыпятся сообщения типа «Checkpoint not complete». Стандартный совет в этом случае: «увеличьте количество и/или размер redo логов». А дальше вопрос, кто такие эти redo логи и с чем их едят.
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments2

Развитие валидации форм

Reading time9 min
Views22K

Валидация форм была педантичным занятием с момента появления web. Первой пришла серверная валидация. Затем она развилась в валидацию на стороне клиента для проверки результатов в браузере. Теперь у нас есть такие гиганты как HTML5 и CSS3: глава о формах HTML5 предлагает нам новые типы для input полей и атрибуты, которые делают возможным проверку ограничений поля. Базовый UI модуль CSS3 предоставляет несколько псевдо-классов, которые помогают нам стилизовать состояние валидности и менять внешний вид поля в зависимости от действий пользователя. Давайте взглянем на комбинацию обоих для создания валидатора форм основанного на CSS, который имеет достаточно широкую поддержку браузеров.

Чем больше мы можем дать подсказок пользователю, как правильно заполнять форму, в процессе заполнения, тем меньше шансов, что он сделает ошибку. Взгляните на пример CSS3 валидации форм в браузере поддерживающем CSS3 UI псевдо-классы, например Chrome 4+, Safari 5+ или Opera 9.6+. Я использовал CSS3 UI псевдо-классы и HTML5 атрибуты форм для создания валидации основанной на CSS. Давайте посмотрим как это работает.
Читать дальше →
Total votes 71: ↑69 and ↓2+67
Comments31

Установка Mercurial Server и использование авторизации по SSH

Reading time2 min
Views32K
Несколько дней назад передо мной поставили задание — поднять mercurial-репозиторий на одной из локальных машин, и поставили одно условие — обязательная авторизация по SSH. Установка будет производится с использованием Mercurial Server на 64-битной серверной Убунте.
Читать дальше →
Total votes 31: ↑25 and ↓6+19
Comments20

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity