Экспресс 42 – Telegram
Экспресс 42
580 subscribers
71 photos
4 videos
4 files
125 links
Центр компетенций DevOps express42.com

Технологии DevOps, полезные материалы и новости индустрии.
Download Telegram
Как настроить сеть в Linux?

Вообще, для начала забываем про команду ifconfig. Да, она может быть в сердце нашего китайского домашнего роутера, но в большинстве дистрибутивов она уже deprecated, то есть может внезапно уйти вникуда. На смену ей приходит команда ip, не менее мощная.

Нужно ли настраивать сеть вручную? Скорее нет, чем да - единственный сценарий полностью ручной настройки сети приходит в голову только при (аварийной) загрузке с внешнего носителя в оболочку для починки чего-нибудь. ip address add [IP] dev [dev] и дело с концом.

Если Ваша машина не содержит графической среды, то чаще всего сеть в ней настраивается при помощи systemd-networkd - у нее достаточно простой синтаксис и широкие возможности. Ну, а если графика есть, то скорее всего настройка сети в ней производится при помощи графического апплета для NetworkManager (команда nmcli позволяет потискать его из командной строки). Дело в том, что синтаксис конфигурационных файлов NetworkManager плохо "пишется" руками.

#Linux_каждый_день
Всё еще создаете виртуальные машины для тестов руками?

Это, конечно, похвально, но подход Infrastructure as Code (IaC) должен идти впереди. Поэтому нужно освоить Vagrant. Удивительно, как до сих пор многие инженеры его еще не открыли для себя. Исправляем несправедливость.

В целом, Vagrant многих смущает своей "универсальностью", но ее нет и в помине. Считайте, что Vagrant - это такая удобная обертка над VirtualBox и позволяет сэкономить время на кликах.

Рецепт быстрого старта до безумия прост: создаете вот такой файл в директории с именем Vagrantfile:

$name = "demo"

Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"

config.vm.define $name do |i|
i.vm.hostname = $name
i.vm.network "private_network", ip: "192.168.56.120"
end

config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.name = $name
vb.cpus = 1
end
end


После чего даете команду vagrant up (находясь в директории с этим файлом) и после недолгого ожидания у Вас есть чистая виртуальная машина на Ubuntu 20.04 c IP-адресом 192.168.56.120 в Host-only Network.

#инструменты #Vagrant
Кто еще не знает, Team Topologies — это подход к тому, как нужно строить команды, которые будут эффективно взаимодействовать друг с другом. Что это нам дает? Больше скорости и порой ощущение того, что закон Конвея можно если не преодолеть, то по крайней мере учитывать.

А вот и видео для тех, кто хочет узнать больше.

#организационная_мудрость #team_topologies
Как говорить о своем увольнении с прошлого места работы на собеседовании?

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

Кстати, если у вас есть свои вопросы к нашим рекрутерам, вы всегда можете написать их нам, а мы каждую пятницу будем отвечать на один из них.
rushana@express42.com

#HRadvice
Продолжаем тему Team Topologies.
Выглядит здорово, но хочется более конкретных примеров?
Вот живой Практический пример использования Team Topologies для анализа и рекомендаций на примере Parts Unlimited из The Phoenix Project и The Unicorn Project.


Предыдущий пост с объяснением сути подхода Team Topologies.

#организационная_мудрость #team_topologies
Продолжаем нашу пятничную рубрику #HRadvice

Сегодня поговорим о том, что делать, если хочется повышения?

Итак, этот день настал! Вы чувствуете, что ваши усилия были не напрасны, вы стали делать задачи лучше, быстрее, ответственности берете на себя больше. Кажется, что самое время подумать о повышении: зарплаты и/или позиции. Как это сделать, как строить разговор, к чему готовиться — об этом короткая заметка.

Если у вас есть вопросы к нашим рекрутерам, пишите нам на почту и в телеграм:
rushana@express42.com
@Razrushana
Продолжая историю с настройкой сети в Linux, стоит упомянуть пакет netplan. Чаще всего встречается в Ubuntu и производных от нее дистрибутивах.

Одна из основных фич - это использование YAML в конфигурационных файлах.
Netplan читает все конфигурационные файлы которые найдет по пути /etc/netplan/*.yaml.

Самая простая конфигурация может выглядеть вот так:

yaml
network:
version: 2
renderer: NetworkManager


Параметр renderer указывает, каким сетевым менеджером стоит пользоваться,
либо NetworkManager, либо networkd. Поднимем сеть, и будем ждать нашу заветную конфигурацию.

Ключей для команды netplan не так много:
netplan generate - сгенерировать файлы конфигурации
netplan apply - применить все конфигурационные файлы
netplan try - применять конфигурацию и дождаться подтверждения от пользователя.

Если что-то пойдет не так, произойдет rollback конфигурации.

#Linux_каждый_день
Очень неплохой наглядный набор схем по Kubernetes.
Пригодится тем, кто хочет лучше понимать происходящее.

#kubernetes
Всех с пятницей, друзья!
А мы по пятничной традиции делимся с вами советами и инсайтами от наших HR.
Сегодня — запись стрима “No-stress interview

Говорили о том, как:
— взглянуть на свое резюме глазами человека «по ту сторону» найма;
— с умом выбрать ту компанию и команду, в которой захочется развиваться;
— подготовиться к собеседованию;
— говорить про свои зарплатные ожидания;
— получать фидбэк по итогам собеседования;
— искать работу, если у вас совсем мало опыта.

Если у вас есть вопросы к нашим рекрутерам, пишите нам на почту и в телеграм:
rushana@express42.com
@Razrushana

#HRadvice
Модель зрелости - удобный инструмент для того, чтобы оценить, насколько ваша команда или организация соответствуют лучшим практикам индустрии. Подобного рода моделей было разработано достаточно много, здесь подборка наиболее популярных.

#организационная_мудрость #maturity-model
Тем, кто хочет глубже копнуть в тему DevSecOps, будет полезен этот All-in-one канвас.

В нем собраны:

- наиболее популярные и эффективные практики для Web-приложений (Swat checklist, 1 стр.);

- зарекомендовавшие себя для каждого типа проверок инструменты (в т.ч. и Open source);

- подборки Top-12 Kubernetes & Top-10 Cloud угроз;

- и, наконец, очень сжатые справочные материалы по практикам CALMS, Shifting Left и Security Automation.

#DevSecOps #security
Пятничная рубрика #HRadvice снова в деле!

А правда, что hr смотрит резюме всего 20 секунд?

Правда!

Казалось бы, на этом можно и закончить. Какой вопрос — такой ответ. Но давайте разберемся, почему так происходит, нормально ли это, и как это можно использовать кандидатам:
https://express42.com/news/is-it-true-that-hr-estimates-resume-for-20-seconds/
Curl и пара полезных ключей

Наверняка вы уже давно используете curl каждый день.

Пришло время вспомнить какие ключи у него есть, и как с ними жить.

curl [https://site-name.com](https://site-name.com) - выдаст нам всю страницу целиком, хотя вряд ли наша цель читать новости в консоли. Воспользуйтесь ключом -I чтобы увидеть только коды ответа и заголовки. Вывод будет примерно следующий:

jsx
HTTP/2 200
server: nginx/1.19.1
date: Fri, 19 Feb 2021 08:47:40 GMT
content-type: text/html; charset=utf-8
content-length: 350346
vary: Accept-Encoding
vary: Authorization, Cookie
set-cookie: oid=ffd124e842e9db7b994828ee59653626; expires=Mon, 19 Feb 2024 08:47:40 GMT; Max-Age=94608000; Path=/
set-cookie: auth_token=""; expires=Thu, 01 Jan 1970 00:00:00 GMT; Max-Age=0; Path=/
set-cookie: auth_token_expires=""; expires=Thu, 01 Jan 1970 00:00:00 GMT; Max-Age=0; Path=/
set-cookie: sessionid=vt91f10ord7292d51b5z4qy1cb68kbwy; expires=Thu, 20 May 2021 08:47:40 GMT; HttpOnly; Max-Age=7776000; Path=/; SameSite=Lax
strict-transport-security: max-age=15724800; includeSubDomains


А если сертификат самоподписной или невалидный? Конечно же у вас будет ошибка. Воспользуйтесь ключом -k чтобы игнорировать такие проблемы.

Скачать файл можно используя ключ -o. Команда может выглядеть вот так:

curl -O [https://site-name.com/my-awesome-file.tar.gz](https://testdomain.com/testfile.tar.gz)

А если вы хотите скачать файл и сохранить его под другим именем, используйте вот такую конструкцию:

curl -O super-name.tar.gz[https://site-name.com/my-awesome-file.tar.gz](https://testdomain.com/testfile.tar.gz)

А вдруг сервис с авторизацией? Для curl это не помеха. Используйте ключ -u :

curl -u [username:password](user:password) [https://site-name.com/](https://my-test-api.com/endpoint1)

curl - мощная утилита, которая поможет вам в дебаге ваших сервисов. Мы описали лишь малую часть всех ее возможностей.

#Linux_каждый_день #Curl
Цифровая зрелость и цифровая трансформация часто используются как взаимозаменяемые понятия. Однако же, цифровая трансформация - это процесс, который теоретически может привести к цифровой зрелости.
В этой статье довольно емко описаны факторы, определяющие уровень цифровой зрелости вашей компании.

#организационная_мудрость #digital_maturity
NIST CYBERSECURITY представил White Paper, в котором рассказывает о SSDF (Secure Software Development Framework) и имплементации в него различных Security-фреймворков (в т.ч. BSIMM).

Вышел почти гайд:
https://nvlpubs.nist.gov/nistpubs/CSWP/NIST.CSWP.04232020.pdf

#security
Аргументы Dockerfile, которыми вы редко пользуетесь

Все уже давно используют Docker и пишут свои Dockerfile. Но не все используют все доступные агрументы для Dockerfile.

Например:

LABEL - позволяет передать мета информацию в формате key=value. Бывает удобно, чтобы оставлять некую служебную информацию, или указать кто мейнтейнер.

EXPOSE - исключительно для документации, дабы не забыть на каком порту\протоколе работает наше приложение

USER - указываем от какого пользователя и (опционально) группы будет выполняться команда, описанная в CMD или ENTRYPOINT

STOPSIGNAL - определяем, какой сисколл будет отправлен контейнеру для выхода

И пол минутки мудрости: "Если не помнишь разницу между COPY и ADD, используй `COPY`"

#Linux_каждый_день #docker