DevOps – это не конкретный человек или роль на проекте!

Из ленты: XP Injection

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

Самым распространенным заблуждением является то, что DevOps – это конкретный человек, который обладает по сравнению с традиционным системным администратором дополнительными навыками и знаниями определенных инструментов: компоненты CI/CD (CI сервер, репозиторий артефактов, динамические языки для написания конфигураций, инструменты сборки приложений и т.д.), централизованное логирование (ELK стек, Splunk и прочие), управление облачной инфраструктурой (AWS, Azure, Heroku и т.д.), инструменты для деплоя приложений и конфигурации окружения (Ansible, Chef, Puppet и другие), контейнеризация (Docker, Kubernetes, Swarm и т.д.).…

Визуализация данных в Школе дизайнеров

Из ленты: Без определённого места жительства

Визуализация данных стала одним из предметов бюрошной Школы дизайнеров. Для меня и для лаборатории — это большой шаг.

То, что Артём поверил в наш подход и доверил вести занятия в школе — неожиданное и важное подтверждение того, что мы на правильном пути. Я беспокоюсь, что визуализация окажется очень сложным и не слишком нужным большинству дизайнеров предметом, но надеюсь, что будет хотя бы интересно. А для тех ребят, кто интересуется визуализацией и периодически спрашивает нас об онлайн-курсах, — это прекрасная возможность познакомиться с актуальной теорией и алгоритмом Δλ, а заодно получить другие бесценные знания.…

Что не так в команде 1 BE + 1 FE + 1 QA + 1 PM?

Из ленты: XP Injection

На днях мне пришло предложение попробовать себя от одной компании, имеющей центр разработки в Киеве. В глаза мне бросился состав команды, который я считаю очень рискованным и неэффективным: 1 backend разработчик, 1 frontend разработчик, 1 QA и 1 PM. В фейсбуке разгорелась дискуссия и нашлись люди, которые считают такой состав вполне себе жизнеспособным. Поэтому я решил описать чуть подробнее в чем суть проблемы и какие риски несет такая команда.

Первая проблема заключается в так называемом bus factor (количество людей, которых должен сбить автобус, чтобы у вашего проекта были большие проблемы). Значение 1 считается очень рискованным, потому что в случае ухода специалиста (в отпуск, другую компанию, на больничный и т.д.) команда не может больше реализовывать функциональность пока не будет найдена адекватная замена.…

DBHist: bash history in sqlite

Из ленты: outcoldman

I spend a lot of time in terminals, as most of you. I never been more productive
than when I started to use dbhist.

You probably know several ways how you can search bash history. My ways were
Control-R or history | grep foo. Both have limitations, both has issues.
With grep it always a hassle for me to write POSIX
compatible regexp, like it always gets me, it should be [[:digit:]], not \d.
And don’t want to mention how often bash corrupts or unexpectedly overrides
history file, which I use one for all sessions.…

Новый формат обучающих мероприятий – семинары Deep Dive

Из ленты: XP Injection

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

– кто-то жалуется, что выделить 2 дня для тренинга не получается;
– кому-то сложно учиться два дня подряд и при таком количестве информации она плохо усваивается;
– кто-то считает, что стоимость участия для них велика;
– кому-то более интересна теоретическая информация, а не практика…


Мы подумали над этими аспектами и решили опробовать новый формат образовательных мероприятий под названием Deep Dive. Формат подразумевает:

– достаточно короткие по продолжительности модули (4 часа);
– без практических заданий для участников, строго теоретическая часть в рамках семинара;
– отсутствие видеозаписи и онлайн трансляции;
– никаких поверхностных “бла-бла-бла” тем, только глубокие технические темы с практическим уклоном;
– низкая стоимость участие (около $25);
– дополнительные материалы для самостоятельного изучения и более глубокого погружения.…

Тестирование — это…

Из ленты: 255 ступеней

Часто бывает нужно сравнить несколько определений одного и того же термина. Но выискивать определения по куче книг – занятие довольно длительное. Лучше сделать это заранее и постепенно пополнять список. И заодно свести к “единому знаменателю”

1980 Процесс выполнения программы с намерением найти ошибки.
[Г.Майерс. Надежность программного обеспечения. М:Мир, 1980]

1987 Процесс наблюдения за выполнением программы в специальных условиях и вынесения на этой основе оценки каких-либо ее аспектов.
[ANSI/IEEE standard 610.12-1990: Glossary of SE Terminology. NY:IEEE, 1987]

1990 Это не действие. Это интеллектуальная дисциплина, имеющая целью получение надежного программного обеспечения без излишних усилий на его проверку.
[B. Beizer.…

Macbook: benchmarks for developers

Из ленты: outcoldman

Few weeks ago I decided to get myself a Macbook. Wanted compact, lightweight Macbook, and good battery life.
I started to consider Macbook instead of Macbook Pro, but wanted to be sure that performance will not be a problem.
Few years ago I have heard that Macbooks were very slow, but this year Geekbench showed very promising
results.
So I got it, now I am trying to test it as much as I can to be sure that there are will be no surprises in performance.
Also I am comparing performance to other Apple devices I have.…

Elasticsearch: How to avoid index throttling, deep dive in segments merging

Из ленты: outcoldman

This blog post is written based on source code of Elasticsearch 5.5.0 and Lucene 6.6.

If you are managing Elasticsearch cluster it is very important to understand what are the segments in the index, why and
when they are getting merged, and what is the right configuration.

If your Elasticsearch cluster is fairly big, default configuration might not work for you. Not sure why the
documentation for the Merge Policy is gone from
Index Modules,
but you can find it in
source code (MergePolicyConfig.java).
At the bottom
you can find really important note about the max_merged_segment, which is set to 5gb by default.…

Однажды Хипстеры…

Из ленты: Blogerator’s newsline — новостной HTTP-блог об ИТ

Однажды Хипстеры, идущие в барбершоп из лофт-антикафе с очередного креативного коучинга по стартапам в коворкинге (на котором обсуждали вопросы краудфандинга), увидели гуру — Истинного Мастера. Он сидел на чурбаке возле гаража и пил холодное пиво после трудов своих, глядя на мир с кроткой улыбкой Просветлённого.

Посмотрели на это Хипстеры, достали свои айфончики, сделали селфи в инстаграммчик, зачекинились в форскверчик, писнули в твиттерочек, да и решили Мастера подъеб@ть.

— Скажи нам, о Мастер, — завели они разговор, отхлебнув свои смузи, — Почему грязен твой комбинезон? Почему не стрижена твоя борода? Почему не крафтово твое пиво? Посмотри на нас, Хипстеров! На наши скинни, лофтеры, хомбурги, конверсы и кардиганы! Как аккуратны наши бородки, как чист наш маникюр, как ироничны принты на наших футболках!…

Кто в действительности окажется в дураках

Из ленты: Управление изменениями. Improvement

Индокитайский тикаль, 1847 г.
Обсуждая недавно HR-тему «о квазидураках», мы с коллегами, признаться, рассматривали её в тени повести Виктора Конецкого (эпизод из неё в конце статьи). Сегодня к теме пришлось вернуться. Ресторатор Александр Затуливетров в своём ЖЖ поделился впечатлениями и опытом «работы» с персонажем, представляющим новое поколение квазиспециалистов. Стараниями армии коучей «по выстраиванию персонального бренда и обретению уверенности в себе» мы имеем сегодня сотрудника с новым портретом, но всё с той же классической мотивацией по отношению к работодателю. Рекомендую статью Александра как продолжение разговора, начатого Конецким в его «Морских рассказах». А выводы и рекомендации остаются теми же:
1) Не только лайф-кучи сегодня помогают хлебоискателями.…

Соглашения о наименовании объектов БД

Из ленты: 255 ступеней

Предисловие

Просматривал старые файлы — обнаружил множество проектных документов. Вещь редкая, почти не встречающаяся.

Публикую первый. Вдруг кому поможет? Я не говорю, что документ надо использовать “как есть”. Но может он подскажет, как писать.Вы напишите свой документ.
Нам этот документ помог улучшить такой критерий качества, как “Модифицируемость” группы”Сопровождаемость” по ГОСТ 25010.
Что касается НДА… И продукта того нет, и фирмы, и дюжина лет прошла… А документы такого типа по прежнему актуальны.

Чуть не забыл. Чем короче стандарт, тем он эффективнее на единицу текста. Начинайте с коротких стандартов. 500-1000, пусть 2000 слов. В этом документе было 771 слово.…

Kubernetes: Monitoring Resources

Из ленты: outcoldman

You know that monitoring is a hot topic this year when you see such
variety of ways how you can monitor kubernetes cluster.

cAdvisor

It all starts from cAdvisor. Kubelet is built
with cAdvisor. You can find the source code responsible for /stats endpoint
under release-1.7:pkg/kubelet/server/stats.

With kubectl proxy you can get access to this endpoint by

kubectl proxy &
curl localhost:8001/api/v1/nodes/$(kubectl get nodes -o=jsonpath="{.items[0].metadata.name}")/proxy/stats/

Web Interface and API of cAdvisor can be enabled with --cadvisor-port
argument (see kubelet).

For example if you are using minikube you can start it with

minikube start --extra-config=kubelet.CAdvisorPort=4194

To get access to the cAdvisor Web UI just use

open http://$(minikube ip):4194

If you are using kubeadm, you need to modify

sudo vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
sudo systemctl daemon-reload
sudo systemctl restart kubelet.service

And set the --cadvisor-port=4194.…

Про Телеграмъ и тщетность бытия оффлайн

Из ленты: Blogerator’s newsline — новостной HTTP-блог об ИТ

Совсем озверел Чёрный Абдулла! Ни своих, ни чужих не щадит. ©

Зайдём в потенциально взрывоопасную тему издалека. Всё-таки страсть запрещать и нипущать на этой части суши впитана буквально с молоком матери — так на сайте change.org недавно создана петиция, которая предлагает законодательно запретить использование методологии управления проектами Scrum на территории святой Руси.

Передаю слово создателю петиции:

«По исследованиям ведущих аналитиков страны 83% проектов в области IT-индустрии, работающих с гос. заказами, в России являются провальными, либо не удовлетворяют потребностям заказчика в полной мере. Одним из главных факторов данной проблемы является методология управления проектами Scrum, которая применяется для выполнения большинства этих заказов.

Избавление от пагубного влияния европейской модели ведения проектов повсеместно на необъятной территории It-индустрии в Российской Федерации, позволит в разы повысить успешность результатов, улучшить качество и снизить стоимость программных продуктов, разрабатываемых за счет государственных заказчиков».

Июньская лента: лучшее за месяц

Из ленты: OpenQuality.ru

Баги и дыры

 

• Петя атаковал Инвитро: прием анализов приостановлен.

• Исходный код Microsoft Windows мог попасть в чужие шаловливые руки.

• Забить на безопасность сайта? Воздастся сторицей.

• Сюрпризы 32-битной архитектуры: сбой в работе после того как количество партий превысило 2 147 483 647 на популярном шахматном ресурсе.

• Причины аварии посадочного демонстратора Schiaparelli.

 

Архитектура систем и разработка приложений

 

• Обновление страницы в web-приложениях: уже есть три уровня, добавятся ли еще два (сарказм)?

• Переход с HTTP на HTTPS: подробное руководство.

• Краткий обзор трех IDE для разработки кросс-платформенных приложений.

• Памятка по безопасности для web-разработчиков.…

Kubernetes: Cron Jobs

Из ленты: outcoldman

Cron jobs is one of my favorite feature in Kubernetes. I use them for backups,
data retention, clean ups and some monitoring as well.

Cron Jobs
feature is still in alpha. It is not enabled by default in
Kubernetes 1.6](https://github.com/kubernetes/kubernetes.github.io/pull/4185)
(and possible in 1.7 as well).

If you have Kubernetes setup by kubeadm, just find the file

/etc/kubernetes/manifests/kube-apiserver.yaml

Add a command argument to this Pod definition

--runtime-config=batch/v2alpha1=true

After that restart kubelet.service (if on ubuntu)

sudo systemctl restart kubelet.service

Few caveats about Cron Jobs:

  • Cron Jobs create Jobs. Jobs are running till successful completion.
    If your container constantly fails you will end up with a lot of failed containers.

2017-06-25: Дневники ГосAgile — много интересного на очередной встрече

Из ленты: MaksWiki — Блог:Максима Цепкова [ru]

В пятницу 23.06.2017 на территории Сбербанка прошла очередная встреча группы по применению гибких методологий в государственных проектах. О продвижении группы за прошедшую итерацию и новых целях уже кратко написал Иван Дубровин, а я хочу рассказать о тех интересных выступлениях, которые прозвучали на встрече. Это был новый опыт в организации встречи — дополнить демо и планирование итерации кейсами реального опыта. Оказалось очень удачно и интересно, так что будет продолжаться.

Павел Рабинович. Agile в школе

Естественно, на территории Сбербанка был рассказ про Agile от Барта Шлатмана. Но начну я не с него, а гораздо более интересного рассказа Павла Рабиновича, проректора по развитию в Московском государственном областном университете и главного научного сотрудника Федерального института развития образования, об опыте применения Agile и проектного подхода в школьном образовании.…

Kubernetes network

Из ленты: outcoldman

I spoke too soon.
Actually I had a lot of problems in previous setup.

To be honest — kubernetes certainly requires a lot of debugging to set it up
correctly, but when you finally do that — it pays off.

And you actually do not need pod network, when you have just one server, but
I am planning to expand it to minimum of two servers, so I choose the hard path.

Issues

Pods could not connect outside world.

To fix that I rolled back to docker version 1.11.2. Just uninstall the latest one,
which is probably installed as docker-ce

sudo apt-get purge docker-ce

After that take a look on some files left by docker.…