Богдан Стефанюк

Заметки о программировании, путешествиях, плёнке и разных интересностях
Обо мне  •  Список заметок  •  Плёнка

GCP: виртуальные машины

Compute Engine

В основе почти всех ресурсов в Google Cloud лежат виртуальные машины, которые принадлежат сервису Compute Engine. Впервые они были представлены в 2012 году и отлично подойдут для любых запросов. По сути это обычные компьютеры с Linux или Windows на борту.

Создание виртуалок состоит из нескольких шагов:

  1. Выбрать регион и зону
  2. Определится с типом машины
  3. Выбрать образ
  4. Подключить дополнительные диски
  5. Настроить сеть

Типы VM

Перед созданием виртуальной машины нам нужно определиться с ее типом. Гугл уже насоздавал множество готовых конфигураций и объединил их в 6 групп:

  1. Standard
  2. High-memory
  3. High-CPU
  4. Memory-optimized
  5. Compute-optimized
  6. Shared-core

Если недостаточно представленных ресурсов, можно создать свою конфигурацию, выбрав нужное количество CPU или памяти. В зависимости от типа аппаратной платформы доступно до 96 vCPU, до 768 Гб памяти и диски до 257 терабайт. Каждая конфигурация основывается на соотношении CPU до памяти.

Кроме готовых конфигураций есть еще и аппаратная платформа, всего 4 варианта:

  • E2 машины имеют оптимизированный расход и содержат до 32 vCPU и максимум 8 Гб памяти на один vCPU. Также у них предопределена платформа процессора, работают на процессорах Intel, либо на AMD EPYC Rome второго поколения.
  • N2 расширяются до 80 vCPU и до 8 Гб памяти на один vCPU. Работают на процессорах Intel Cascade Lake.
  • N2D самые мощные в плане количества ядер машины, могут иметь до 224 vCPU, 8 Гб памяти на процессор и работают на базе AMD EPYC Rome.
  • Машины N1 предлагают до 96 процессоров, 6.5 ГБ памяти на один процессор, и доступны на платформах Intel Sandy Bridge, Ivy Bridge, Haswell, Broadwell и Skylake.

Детальнее в документации: https://cloud.google.com/compute/docs/machine-types

Образы

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

Документация: https://cloud.google.com/compute/docs/images

Диски

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

После удаления вуртуалки вместе с ней удаляется загрузочный диск. Для того чтобы выключить эту опцию нужно отключить опцию “Delete boot disk when instance is deleted”. Кроме того все диски автоматически шифруются ключами, которыми управляет гугл, но у можно использовать собственные ключи.

Для хранения данных есть постоянные диски. Они живут отдельной жизнью и подключаются к виртуальной машине по сети, что не так быстро как физически подключенные диски. Выбрать можем HDD или SSD. Первый дешевле, но медленнее чем SSD. Чтобы изменить размер диска не надо выключать виртуалку. В качестве бекапа выступают инкрементальные снапшоты.

Local SSD
Отдельный тип дисков, которые физически присоединены к виртуалке. Они производительнее чем постоянные диски и имеют меньшие задержки. Каждый диск расширяется до 375 Гб, что в сумме дает до 3 Тб на одну машину. Local ssd нельзя использовать для длительного хранения данных, так как стираются после выключения виртуальной машины, переживают только перезапуск.

Дока: https://cloud.google.com/compute/docs/disks

Жизненный цикл

Каждая виртуальная машины имеет свою жизненный цикл где каждая стадия отвечает за определенный набор действий. Всего есть пять состояний: Provisioning, Staging, Running, Stopping, Terminated.

Provisioning
Происходит после выбора всех необходимых настроек и нажатия на кнопку «создать VM». На этом этапе выделяется процессор, память и резервируются диски, но сама машина еще не работает.

Staging
На этом этапе происходит выделение внешнего и внутреннего IP адреса, загружается системный образ и стартует ОС.

Running
Сначала выполняются установленные start-up скрипты и включается удаленный доступ через SSH или RDP. Здесь выполняется вся возложенная на машину работа. На этом шаге можно мигрировать нашу виртуалку в другую зону без перезапуска, создавать снапшоты дисков или экспортировать системный образ.

Stopping и Terminated
Некоторые действия требуют остановки виртуальной машины, например добавление CPU или памяти. Когда машина переходит в это состояние выполняются установленные shutdown скрипты и VM переходит в terminated статус.

После этого мы можем ее удалить, мигрировать, добавлять и удалять IP адреса, теги, менять тип машины, добавлять новые диски.

Когда машина отключена мы платим только за выделенные IP и за диски. Главное что надо помнить, на выполнения shutdown скриптов есть всего 90 секунд, а если это preemptible машина, то 30 секунд.

Доступ к виртуальной машины

Linux манишь предоставляю доступ через SSH, а Windows — через RDP. В обоих случаях в брандмауэре должен быть открыт 22 порт для SSH и 3389 для RDP.

Специальные опции

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

  • Они могут быть выключены в любой момент, поэтому приложение должно быть fault-tolerant.
  • Google останавливает их после 24 часов работы.
  • Не всегда доступны для создания
  • Не предоставляют SLA

Sole-tolerant node
Если вы обрабатываете очень чувствительные данные, можно использовать sole-tolerant ноды, которые представляют физические сервера, которые изолированы от других проектов и клиентов.

GCP: Virtual Private Cloud (VPC)

Virtual Private Cloud (VPC) сеть — это виртуальная версия физической сети, которая работает внутри облака. С помощью сетей можно организовать общение между ресурсами в облаке или изолировать их друг от друга.

Общий вид проекта с одной сетью и двумя подсетями.

Составляющие компоненты VPC

  • Регионы
  • Зоны
  • Проекты
  • Сети
  • Подсети
  • IP адреса
  • Маршрутизаторы
  • Фаерволы

Региональные и зональные ресурсы

Я уже писал в предыдущей статье, что ресурсы в облаке разделяются по географии. К таким ресурсам относятся сети и их компоненты. Так к глобальным ресурсам относятся: VCP сети, firewall, маршрутизаторы. А к региональным статические внешние IP адреса и подсети.

Сети и подсети

Центральная единица в GCP — проект, объединяет набор ресурсов и сервисов в единую организационную единицу. Каждый проект содержат до 5 сетей, но это количество можно изменить, поменяв соответствующие квоты.

VPC сеть представляет из себя топологию с набором разных ресурсов, таких как подсети, роутеры, DNS и другие. Сами по себе сети не содержат никаких диапазонов IP адресов.

Сети разделяются на 3 типа: default, auto mode, custom.

Про диапазоны IP адресов можно почитать в Википедии.

Default сети
Они же auto mode сети, создаются автоматически при создании проекта. Каждая сеть содержит по одной подсети на каждый регион и имеет преднастроенный брандмауэр. Эти подсети по умолчанию содержат фиксированное количество адресов (/20) с возможностью расширения до /16.

Custom сети
Создаются вручную. По умолчанию не содержат подсетей, их нужно создавать самим, по мере необходимости. При этом у нас появляется полный контроль над IP адресами и диапазонами, главное чтобы они соответствовали RFC 1918 и не превышали размер /16. После создания подсети, количество адресов можно увеличить, но не уменьшить. Такие сети лучше всего подходят для продакшена.

Несколько VPC сетей могут взаимодействовать друг с другом с помощью внешних адресов или используя VPC Network Peering, который позволяет взаимодействовать с помощью приватных IP адресов, но работает только с custom сетями.

Двум виртуальным машинам нужно коммуницировать через внешний IP несмотря на то что они находятся в одном регионе.

Детальнее можно ознакомится в документации.

IP адреса

Каждая виртуальная машина в GCP может иметь два IP адреса: внутренний и внешний.

Внутренние IP используются для коммуникации между ресурсами в одной сети. Их устанавливает DHCP и они являются эфемерными. Кроме IP адреса мы можем использовать имя вииртуальной машины, GCP автоматически прописывает его в DNS.

Внешние IP адреса используются для коммуникации с интернетом или между сетями. По умолчанию внешние IP являются эфемерными, но мы можем зарезервировать статический адрес, правда это уже стоит денег.

Если же статический IP адрес не закреплён ни за каким ресурсов, его цена будет выше, чем адреса, которые используются.

Можно настроить диапазон IP адресов для конкретного экземпляра VM. Это удобно, когда на одной машине крутится несколько сервисов и мы хотим, чтобы каждый имел свой IP.

Firewall

Каждая сеть имеет фаервол, в нём можно настроить правила для входящего(ingress) и исходящего(egress) трафика. По умолчанию весь ingress трафик запрещён, а egress разрешён. Поэтому для входящего трафика мы можем создать только разрешающие правила.

Сами правила можно применять для конкретного IP адреса, множества или для тегов. Например, создать правило, которое разрешает HTTP трафик для экземпляров с тегом «allow-http».

Все эти правила работают не на одной железке или роутере, а применяется для каждого экземпляра и обрабатываются на их уровне.

Google Cloud Platform

Несколько месяцев назад получил ваучер со 100% скидкой на экзамен по google cloud platform — associate cloud engineer. Откладывал подготовку до середины августа. В качестве платформы для обучения выбрал Coursera, направление для подготовки, которое состоит из 5 курсов, за авторством Google. Для практики есть специальное приложение — Qwiklabs, которое генерирует аккаунт в облаке для каждого упражнения.

В качестве дополнительной практики решил вести публичные конспекты. Это первый из них.

Зачем нужны облака?

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

Компоненты GCP

Google cloud состоит из 4 больший частей.

  • Compute — отвечает за вычислительные ресурсы. Есть несколько решений, от голых виртуальных машин (IaaS) и кластеров Kubernetes, до безсерверных функций.
  • Storage — сервисы для хранения информации. Здесь базы данных и файловые хранилища.
  • Big Data — инструменты для работы с большими данными и аналитикой.
  • Machine Learning — есть инструменты для тренировки своих моделей, а есть уже готовые сервисы для разных ситуаций.
На самом деле сервисов намного больше, но я решил выделить только основные.

География

В GCP ресурсы разделяются на 3 группы по их географии: глобальные, региональные и зональные. Глобальные ресурсы доступны во всех регионах и их зонах. Региональные доступны только в одном конкретном регионе, а зональные — только в одной зоне.

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

Каждая зона представляет из себя изолированный кластер, у которого есть отдельное питание, охлаждение и сеть. Если произойдёт сбой, он будет распространяться только на одну зону, не касаясь соседних. Тогда мы сможем перенаправить трафик в другую зону или регион.

Структура облака

Каждый ресурс должен находиться в проекте. Проект — минимальная структурная единица. Без него не получиться создать ни одного ресурса. У проекта есть свои права, политики и атрибуты:

  • Project ID — глобально уникальный, после создания не сможем поменять.
  • Project Name — удобное имя, которое можно изменить в после создания.
  • Project Number — ещё один глобальный идентификатор, устанавливается гуглом и поменять его нельзя.

Несколько проектов можно поместить в папку. Каждая папка отвечает за команду, департаменты, среды или как захотите. Чтобы не дублировать одинаковые политики и права в несколько проектов, можем их вынести на уровень папке.

Для того чтобы создать папку должна быть организация вверху иерархии. Организация создает единую структуру всех ресурсов в облаке и централизованно управляет ими. Для пользователей GSuit автоматически создается организация внутри GCP.

Права

Проекты, папки и организации имеют набор прав и политик. Только некоторые ресурсы в GCP могут иметь свой набор прав, например, storage bucket. Политики указывают кто что может делать и с какими ресурсами.

Для управления правами используется сервис IAM. У нас есть 3 типа ролей: primitive, predefined, custom. Каждое правило состоит из 3 частей: “кто”, “что может делать”, “с какими ресурсами”.

Primitive роль самая простая и общая. Указывает, какое действие можно делать со всеми ресурсами. GCP предоставляет 4 примитивных роли: owner, editor, viewer и billing administrator.

Predefined роли позволяют тонко настроить права. Можно указать кто и какое действие имеет право делать с указанным ресурсов в проекте/папке/организации. Каждый ресурс в облаке уже содержит набор predefined ролей.

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

Одесса, август

В прошлом месяце родители поехали в Одессу и предложили поехать вместе с ними. Приехали не в саму Одессу, а в Санжейку к знакомым. У меня не было возможности взять отпуск на неделю, поэтому потусил только на выходных. Назад добирался ночным автобусом и это тем ещё испытанием. С моим ростом сложно перемещаться автобусами, ноги не помещаются. В этот раз автобус был большой, ноги помещались, но забыл дорожную подушку дома, поэтому целую ночь не спал.

С собой взял камеру и плёнку: Fuji C200 и Fuji Eterna Vivid 160. Также взял штатив, чтобы сделать несколько ночных фото на большой выдержке. Только утром заметил, что плёнка не зацепилась за барабан перемотки, в итоге все фото сделал на первый кадр. В теории могли получится интересные фото, в следующий раз буду внимательным.

В первый день проснулся в 5 утра чтобы встретить восход солнца над морем.

Несмотря на пандемию, людей очень много.

У Санжейки есть две особенности — пляж и маяк. Пляж и сушу отделяет длинный обрыв. На верху обрыва есть точки для кемпинга, где можно остановится с палатками. Одна семья вообще построила временный душ и отдельный шатёр-кухню. В Украине есть ещё одно похожее место — Херсонские горы.

Ссылки — 24

Случайное фото на плёнку, просроченная Konica 100VX
  • GoatCounter — бесплатная и открытая веб аналитика для сайтов. Сейчас тестирую ее у себя в блоге — полёт нормальный. Скорее всего откажусь от Google аналитики в пользу GoatCounter, так как он легковесный и не следит за пользователями. Также автор написал целую статью о том, почему он создал этот сервис.
  • Пора на свалку — история чувака, который больше 17 лет работает C++ программистом.
  • Нашел отличное и минималистично расширение для блокировки отвлекающих сайтов — Intention. Работает быстро и никуда не отправляет ваши данные.
  • Прекрасный пост от tonsky где он рассказывает о проблемах REST. А также статья о необходимости отдельного файла CHANGELOG со всеми изменениями пакета или приложения, а также почему история тасок в Jira или история коммитов не справляются с этой задачей.
  • История о том, как dropbox с нуля переписывали свой движок синхронизации файлов. В конце статьи можно найти хороший чеклист, который должен помочь, когда нужно что-то переписать с нуля.

Код: тайный язык информатики

Составили вместе с другом план, по которому хотим изучить Computer Science. Первым пунктом плана стала книга — Код: тайный язык информатики. Прочитав её я был в шоке от подачи и крутости материала. Автор шаг за шагом рассказывает про развитие компьютерных технологий.

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

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

Каждая глава содержит множество иллюстраций, которые объясняют тот или иной аспект.

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

Ночной Киев

Поехал на Подол сделать несколько ночных кадров. До этого я только пару раз пробовал так как не было штатива. Для съёмки ночью нужен не только штатив, но и понимание того, как ведёт себя плёнка при длинных выдержках.

Во-первых нужен хороший экспонометр. Раньше использовал приложение «Lux», но недавно перешёл на продвинутый аналог «myLightMeter».

Во-вторых нужно ознакомиться с такой штукой как — закон взаимозаменяемости (reciprocity failure). Каждая плена после определённой выдержки начинает терять чувствительность. Чтобы компенсировать этот эффект нужно посмотреть в документацию к плёнке и найти значение компенсации. Чтобы облегчить задачу, можно воспользоваться приложением на телефон. Использую «Reciprocity+». Детальнее можно посмотреть в видео Reciprocity Failure and Long Night Exposures и Tips for Shooting Film at Night.

Снимал на камеру Canon A1 Program (50mm, 1.8) и плёнку Fuji Superia X-Tra 400.

f 1/16 — 5 сек.
f 1/11 — 30 сек.
f 1/16 — 30 сек.
Фото не с подола, но на эту же плёнку.
Фото не с подола, но на эту же плёнку.

Киевский музей авиации

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

Государственный музей авиации Украины — крупнейший музей технического профиля на территории Украины. Он находится возле аэропорта “Жуляны” и делит с ним одну территорию. Музей открылся 30 сентября 2003 года. В нём находиться больше 70 видов самолётов и вертолетов. Также на территории размещены следующие экспонаты:

  • Авиасимуляторы
  • Экспозиция двигателей
  • Спецтранспорт
  • Экспозиция бомб

Фото авиатехники

Ту-22М3 — советский дальний сверхзвуковой ракетоносец-бомбардировщик с крылом изменяемой стреловидности. Носитель ядерного оружия. Первый полет осуществил 30 августа 1969.

Ту-142 — советский и российский дальний противолодочный самолёт. Глубокая модификация самолета Ту-95. Впервые поднялся в воздух 18 июня 1968 года. Всего произведено около 100 машин. Самое забавное что Ту-95 является одним из самых шумных самолётов в мире и засекается даже гидроакустическими системами подводных лодок.

Ми-24 — советский ударный вертолет. Стал первым советским (европейским) и вторым в мире (после AH-1 «Кобра») специализированным боевым вертолётом. Серийный выпуск начался в 1971 году. Выпущено около 3500 единиц.

Ан-71 — самолёт дальнего радиолокационного обнаружения и управления. Всего было выпущено 3 самолёта из которых 2 летных экземпляра и 1 для статических испытаний. Первый полет осуществлен 12 июля 1985 года.

Ми-4 — советский многоцелевой вертолёт. Был первым военно-транспортным вертолётом вооружённых сил СССР. Имел такую же компоновку как у американского Sikorsky S-55. Выпущено около 3900 единиц. Первый полет — 3 июня 1952 года.

Су-25 — бронированный дозвуковой советский штурмовик. Предназначен для непосредственной поддержки сухопутных войск над полем боя днём и ночью при прямой видимости цели, а также уничтожения объектов с заданными координатами круглосуточно в любых метеоусловиях. Впервые поднялся в воздух 22 февраля 1975 года. Произведено около 1 320 единиц.

Ми-8 — многоцелевой вертолёт. Является самым массовым двухдвигательным вертолётом в мире, а также входит в список самых массовых вертолётов в истории авиации. Произведено больше 12 000 единиц. Количество модификаций поражает.

Ми-6 — советский тяжёлый многоцелевой вертолёт. Создан во второй половине 1950-х годов, когда в СССР были приняты на вооружение мобильные ракетные комплексы «Луна», для переброски которых и потребовался вертолёт большой грузоподъёмности. Выпущено всего 926 машин. На вертолёте Ми-6 установлено 16 мировых рекордов.

Другие экспозиции

P.S. Вся информация о самолётах и вертолетах взята из Википедии :-)

 2 комментария    145   2 мес   пленка   фото

Все заметки

2019

§ 129.

Идеи для программистов

§ 128.

Как деревенский мужик Василий съездил в Нью-Йорк

§ 127.

Годнота, часть 18

§ 126.

stateless и stateful сервисы

§ 125.

Kodak ColorPlus 200 pushed to 400 ISO

§ 124.

Как я делал бота для Facebook workplace

§ 123.

Эгея Power-Ups

§ 122.

Terrasoft → Epam

§ 121.

Годнота, часть 17

§ 120.

Вопросы на собеседованиях

§ 119.

Удаления дубликатов строк

§ 118.

Крым на кинопленке Kodak Vision3 250D

§ 117.

Годнота, часть 16

§ 116.

Показать запросы, которые страдают от блокировок

§ 115.

Parallel, Asynchronous, Multithreading programming

§ 114.

Шпаргалка по LINQ

§ 113.

Получить информацию по индексу в таблице

§ 112.

Лучшее объяснения работы семафора

§ 111.

Неиспользуемые индексы

§ 110.

Годнота 15

§ 109.

Kentmere 400

§ 108.

Ведение дневника в Telegram

§ 107.

Полезные SQL скрипты: поиск foreign key по БД

§ 106.

Полезные SQL скрипты: текущая ситуация на сервере

§ 105.

Сериал об истории рунета

§ 104.

Курс по основам работы с командной строкой

§ 103.

Старые проекты: моя домашняя страница

§ 102.

Небольшая заметка об индексах в ms sql

§ 101.

Kodak Ektar 100

§ 100.

Годнота, часть 14

§ 99.

Рекурсивные запросы

§ 98.

Kodak Pro Foto 100 (просрочка 2009)

§ 97.

GIN индекс

§ 96.

Алгоритм поиска Ли

§ 95.

Polaroid High Definition 200 (просрочка 2002)

§ 94.

Контейнер для хранения пленки

§ 93.

Хеш-таблица

§ 92.

Шпаргалка по джоинам в SQL

§ 91.

Fujifilm Superia 100 (просрочена 2012 год.)

§ 90.

Антон Шеин — Мечтать вредно

§ 89.

Logitech M590 или лучшая мышка для mac

§ 88.

Квалификация

§ 87.

Цель любой библиотеки

§ 86.

Почтоматы от розетки

§ 85.

Правила жизни 100-летнего человека

§ 84.

Халтура или ремесло?

§ 83.

Годнота, часть 13

§ 82.

Изучение SQL: ключевое слово GO

§ 81.

Оценка задач

§ 80.

Алгоритмы сортировки

§ 79.

Эмбиент плейлист

§ 78.

Atlas Weekend 2019

§ 77.

sleepover.fm

§ 76.

Mubert

§ 75.

Годнота, Часть 12

§ 74.

Шпаргалка по паттернам проектирования

§ 73.

Команды systemctl

§ 72.

Цитата

§ 71.

Название для Unit-тестов

§ 70.

36

§ 69.

Изучение нового языка программирования

§ 68.

Правила использования AutoMapper в .NET

§ 67.

Коллекции в .NET

§ 66.

Первый проект

§ 65.

Структуры данных: связанные списки

§ 64.

Годнота 11

§ 63.

Схема + PAN 01.06.2019

§ 62.

Работа с файлами в Powershell

§ 61.

Рим, Италия 2019

§ 60.

Чек лист для поездок

§ 59.

Кстати, не путайте проект и продукт

§ 58.

Годнота, часть 10

§ 57.

Разработка на C# с помощью Visual Studio Code

§ 56.

Фотокарточки: Киев, Май 2019

§ 55.

CancellationToken в C#

§ 54.

Эксперименты над пленкой

§ 53.

Годнота, часть 9

§ 52.

RSS

§ 51.

SOLID

§ 50.

Автоматизация релизов Github с помощью Powershell и Teamcity

§ 49.

Парадигмы ООП

§ 48.

Лучшие практики использования PowerShell c TeamCity

§ 47.

Годнота, часть — 8

§ 46.

UAT и Staging

§ 45.

Документация

§ 44.

Киев, Май 2019

§ 43.

Годнота, часть 7

§ 42.

Логирование

§ 41.

Изучение SQL: EXCEPT и INTERSECT

§ 40.

Изучение SQL: UNION

§ 39.

Обзор пленки

§ 38.

Амстердам, Апрель 2019

§ 37.

Изучение SQL: Операторы GROUP BY и HAVING

§ 36.

Годнота, часть 6

§ 35.

Шардинг

§ 34.

Репликация данных

§ 33.

PowerShell: создание Credentials.

§ 32.

Мои расширения в Google Chrome

§ 31.

Надворная, Март 2019

§ 30.

Изучение SQL: триггеры

§ 29.

Годнота 5

§ 28.

Sublime Merge

§ 27.

Приложение для фото — NOMO

§ 26.

Фотокарточки. Киев, Труханов остров

§ 25.

Конспект: работа с командной строкой

§ 24.

Digital Ocean

§ 23.

Годнота — часть 4

§ 22.

Кэширование

§ 21.

Кластеризация

§ 20.

Pipeline архитектура

§ 19.

Толстый клиент

§ 18.

Самообучение

§ 17.

Ссылки

§ 16.

Места в Киеве

§ 15.

#2. Статьи

§ 14.

Best Practices for Building Async APIs with ASP.NET Core

§ 13.

#1. Ссылки на интересные статьи

§ 12.

Эгея

§ 11.

Ивенты

§ 10.

Путешествую

§ 9.

Gudak camera

§ 8.

Мои инструменты

§ 7.

Книги

 Нет комментариев    106   2 мес  

Ссылки, часть 23

Ранее Ctrl + ↓