Как стать автором
Обновить
76
7.5
Timeweb Cloud @Timeweb_Cloud

Редактор блога Timeweb

Отправить сообщение

Go-приложение с бессерверной архитектурой на Kubernetes с Knative

Время на прочтение8 мин
Количество просмотров3.7K
Автор нашей новой переводной статьи утверждает, что Knative — лучшее, что только могли придумать во Вселенной! Вы согласны?

Если вы уже используете Kubernetes, то, вероятно, слышали о бессерверной архитектуре (serverless). Хотя обе платформы, Kubernetes и Knative, являются масштабируемыми, именно бессерверная архитектура делает всё возможное, чтобы предоставлять разработчикам работающий код и не беспокоить их проблемами инфраструктуры. Кроме того, такая архитектура сокращает расходы на инфраструктуру за счет виртуального масштабирования экземпляров приложения с нуля.
Читать дальше →
Всего голосов 5: ↑3 и ↓2+3
Комментарии0

Создание React-компонентов с помощью Hygen

Время на прочтение5 мин
Количество просмотров6.1K
Вы использовали когда-нибудь Hygen, автоматический генератор кода? Если еще нет, возможно, наш перевод откроет для вас новый полезный инструмент.



Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

k0s: Kubernetes в одном бинарном файле

Время на прочтение10 мин
Количество просмотров9.1K
В нашей новой переводной статье даем краткий обзор на новый дистрибутив Kubernetes. Надеемся, статья окажется интересной для читателей Habr'a.

Пару дней назад друг рассказал мне о новом дистрибутиве Kubernetes от Mirantis под названием k0s. Все мы знаем и любим K8s, не так ли? Нас также покорил K3s, легкий Kubernetes, разработанный Rancher Labs и переданный CNCF некоторое время назад. Пришло время открыть для себя новый дистрибутив k0s!
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии9

Пишем простой шахматный движок на Go

Время на прочтение8 мин
Количество просмотров9.7K
Всем, кто сейчас смотрит нашумевший сериал «Ход королевы» (The Queen's Gambit), посвящается. Еще больше шахматных терминов в нашем новом переводе.

В данной статье мы постараемся разобраться, как работают шахматные движки путем портирования шахматного движка sunfish на Go. Sunfish примечателен своей простотой и небольшим размером, но при этом он все-таки способен сыграть достойную шахматную партию. Go в свою очередь известен как простой и хорошо читаемый язык программирования, поэтому я надеюсь, что вместе они составят отличную пару.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+9
Комментарии11

Как написать (игрушечную) JVM

Время на прочтение10 мин
Количество просмотров7.6K
Статья про KVM оказалась интересной для читателей, поэтому сегодня публикуем новый перевод статьи Serge Zaitsev: как работает Java Virtual Machine под капотом.

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

Я попытаюсь написать игрушечную (и неполную) JVM, чтобы показать основные принципы ее работы. Надеюсь, эта статья вызовет у вас интерес и вдохновит на дальнейшее изучение JVM.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии2

Salt. О славном pillar'е замолвите слово

Время на прочтение4 мин
Количество просмотров5K
В одной из наших прошлых статей Just add some Salt мы рассказывали, как мигрировали 700+ серверов на Salt. Мы поделились нашим опытом оптимизации Salt: как его применить и настроить без лишних усилий. Тогда мы только затронули тему пилларов, а сегодня хотели бы остановиться на ней подробнее.

Пиллары разные нужны


Пиллары — это защищенное (безопасное) хранилище данных внутри Salt'а. Поэтому, в первую очередь, они используются для разграничения доступа к критичным данным (сертификаты, логины, пароли).
Читать дальше →
Всего голосов 6: ↑5 и ↓1+6
Комментарии5

Как предоставить табличные данные и сохранить при этом конфиденциальность

Время на прочтение7 мин
Количество просмотров2.9K
Продолжаем тему информационной безопасности и публикуем перевод статьи Coussement Bruno.

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


Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии3

Кража персональных данных пользователя (PII) с помощью вызова API напрямую

Время на прочтение4 мин
Количество просмотров2.6K
Сегодня решили обсудить тему информационной безопасности. Публикуем перевод статьи Kunal pandey, обнаруживаем уязвимости и работаем на опережение!

Введение


Кража персональных данных (PII) пользователя стала для нас обыденным явлением. Злоумышленники находят множество способов получить персональные данные, например, используя XSS- и IDOR-уязвимости, раскрытие конечных точек API (API endpoint) и другое.

Сценарий, который описан в этой статье, мы можем протестировать, просто наблюдая за поведением конечной точки API. В приведенном ниже примере, вызвав API, персональные данные любого пользователя могут быть сохранены в других конечных точках API.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Установка XSS Hunter

Время на прочтение15 мин
Количество просмотров4.7K
Публикуем перевод статьи Installing XSS Hunter и проверяем инструкцию на собственном примере.

Спойлер: Всё работает!


Читать дальше →
Всего голосов 4: ↑2 и ↓20
Комментарии1

Linux-контейнеры в паре строчек кода

Время на прочтение5 мин
Количество просмотров6.5K
В продолжение прошлой статьи о KVM публикуем новый перевод и разбираемся, как работают контейнеры на примере запуска Docker-образа busybox.

Эта статья о контейнерах является продолжением предыдущей статьи о KVM. Я бы хотел показать, как именно работают контейнеры, запустив Docker-образ busybox в нашем собственном небольшом контейнере.

В отличие от понятия «виртуальная машина», термин «контейнер» очень расплывчатый и неопределенный. Обычно мы называем контейнером — автономный пакет кода со всеми необходимыми зависимостями, которые могут поставляться вместе и запускаться в изолированной среде внутри операционной системы хоста. Если вам кажется, что это описание виртуальной машины, давайте погрузимся в тему глубже и рассмотрим, как реализованы контейнеры.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии0

Хост KVM в паре строчек кода. Примеры на C++ и на Python от эксперта Timeweb

Время на прочтение9 мин
Количество просмотров12K
Привет!

Сегодня публикуем статью о том, как написать хост KVM. Мы увидели ее в блоге Serge Zaitsev, перевели и дополнили собственными примерами на Python для тех, кто не работает с языком С++.

KVM (Kernel-based Virtual Machine) — это технология виртуализации, которая поставляется с ядром Linux. Другими словами, KVM позволяет запускать несколько виртуальных машин (VM) на одном виртуальном хосте Linux. Виртуальные машины в этом случае называются гостевыми (guests). Если вы когда-нибудь использовали QEMU или VirtualBox на Linux, вы знаете, на что способен KVM.

Но как это работает под капотом?
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии9

Помогаем пользователям менять пароли с помощью well-known URL

Время на прочтение4 мин
Количество просмотров4.4K
Привет!

Делимся переводом небольшой, но полезной статьи о том, как упростить процесс обновления данных для аутентификации.

Установите редирект со страницы /.well-known/change-password на страницу смены пароля для вашего сайта. Благодаря этому, менеджеры паролей смогут направлять пользователей прямо на данную страницу.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии7

Темный режим: Hello darkness, my old friend

Время на прочтение15 мин
Количество просмотров13K
Dark mode остается главной тенденцией в дизайне сайтов и приложений. Мы нашли классную статью на эту тему и решили поделиться переводом. Мнение пользователей, реализация и поддержка dark mode, рекомендации для разработчиков далее в статье. А на какой стороне вы?

Просто хайп или необходимость? Узнайте больше о темном режиме. Я расскажу, как добавить поддержку dark mode на благо ваших пользователей!

Введение


По данной теме я провел объемное исследование, изучил историю вопроса. Если вас интересует только работа с темным режимом, смело пропускайте первый раздел.
Читать дальше →
Всего голосов 6: ↑5 и ↓1+12
Комментарии5

Just add some Salt. Опыт Timeweb

Время на прочтение6 мин
Количество просмотров3.7K

Как мы мигрировали 700+ серверов на Salt


Долгое время нас устраивала сложная и неповоротливая конфигурация с 2 Git-репозиториями, где часть данных хранится в MySQL, а другая часть Puppet 3.8. Но наши потребности постепенно росли, количество сервисов увеличивалось, а производительность конфигурации снижалась. Тогда мы поставили перед собой задачу усовершенствовать конфигурацию, оптимизировав все имеющиеся данные и инструменты.

Наша команда подобрала для себя подходящую конфигурацию в 3 этапа. Делимся опытом оптимизации Salt, как применить и настроить без лишних усилий.
Читать дальше →
Всего голосов 7: ↑5 и ↓2+5
Комментарии13

Оптимизация: Настройка веб-сервера Nginx для улучшения показателей RPS в HTTP API

Время на прочтение6 мин
Количество просмотров15K

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

Мы столкнулись с указанной выше проблемой, когда наша развернутая система ежедневно использовалась миллионом пользователей, которые подключались всплесками время от времени. Это значит, что развертывание нескольких серверов или их масштабирование не будет в данной ситуации оптимальным решением.
Читать дальше →
Всего голосов 10: ↑5 и ↓5+4
Комментарии5

Every bug matters: Как запустить программу Bug Bounty в компании. Опыт Timeweb

Время на прочтение11 мин
Количество просмотров2.8K

Рассказываем об опыте Timeweb


Любой компании необходим взгляд со стороны на состояние информационной безопасности сервисов и продуктов. Эту задачу можно решить разными способами, один из которых — участие в Bug Bounty программах.

Bug Bounty программа как свежая сила в деле багхантинга

Bug Bounty («вознаграждение за ошибку») — это программа, которая предусматривает денежное вознаграждение или другие бенефиты за нахождение багов, эксплойтов и уязвимостей в работе ПО. Программы Bug Bounty реализованы многими компаниями, в том числе Facebook, Google, Reddit, Apple, Microsoft и др.

Компания может запустить подобную программу самостоятельно, своими силами организовав все процессы и взаимодействия. Второй вариант — обратиться к специальным Bug Bounty платформам: заключаем соглашение, и армия багхантеров приступает к работе.

Timeweb запустила Bug Bounty программу около года назад. На тот момент в компании не было специалистов с опытом в этой области, всё приходилось делать методом проб и ошибок. В сети почти никто не делится рекомендациями по построению данного процесса, поэтому часто изобретаются велосипеды, а знания обычно передаются в разговорах с коллегами у кофе-машины.

В этой статье мы расскажем, как организовать запуск Bug Bounty программы, если вы ни разу этим не занимались, на что стоит обратить внимание и как еще можно проверить состояние системы информационной безопасности.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии7

Apache & Nginx. Связаны одной цепью (2 часть)

Время на прочтение2 мин
Количество просмотров4K
На прошлой неделе в первой части этой статьи мы описали, как построена связка Apache и Nginx в Timeweb. Мы очень благодарны читателям за вопросы и активное обсуждение! Сегодня рассказываем, как реализована доступность нескольких версий PHP на одном сервере и почему мы гарантируем безопасность данных нашим клиентам.


Виртуальный хостинг (Shared-хостинг) предполагает, что на одном сервере размещено множество аккаунтов клиентов. На аккаунте одного клиента, как правило, находится несколько сайтов. Сайты работают как на готовых CMS (например, Bitrix), так и на кастомных. Таким образом, технические требования у всех систем разные, поэтому в рамках одного сервера необходимо управлять несколькими версиями PHP.
Читать дальше →
Всего голосов 8: ↑2 и ↓6-1
Комментарии3

Apache & Nginx. Связаны одной цепью

Время на прочтение3 мин
Количество просмотров16K
Как реализована связка Apache & Nginx в Timeweb

Для многих компаний Nginx + Apache + PHP — очень типовая и распространенная связка, и Timeweb здесь не стал исключением. Однако разобраться, как именно она реализована, может быть любопытно и полезно.

image

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

Основные настройки Apache выполняются в конфигурационных файлах самого Apache, а настройки для клиентских сайтов происходят через файл .htaccess. .htaccess — конфигурационный файл, в котором клиент может самостоятельно настроить правила и поведение веб-сервера. Такая настройка будет относиться конкретно к его сайту. Например, благодаря функционалу Apache пользователи могут менять режим работы в рамках одной версии PHP с mod_php на mod_cgi; можно настраивать редиректы, оптимизацию для SEO, удобный URL, некоторые лимиты для PHP.

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

Представим, что какой-то пользователь заходит на сайт нашего клиента. Сначала пользователь попадает на Nginx, который отдает статический контент. Это происходит мгновенно. Затем, когда дело доходит до загрузки PHP, Nginx перенаправляет запрос на Apache. И Apache совместно с PHP уже генерирует динамический контент.

Особенности связки Apache & Nginx в Timeweb


На нашем виртуальном хостинге реализованы 2 основные схемы работы Apache & Nginx: Shared и Dedicated.
Читать дальше →
Всего голосов 11: ↑4 и ↓7+1
Комментарии50

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность