Инструменты

Вид оглавления

Базы данных

Реляционные

MySQL

PostgreSQL

Oracle Database

Это чуть круче, чем просто реляционная БД, это - объектно-реляционная субд промышленного масштаба. Имеются различные версии\редакции данного продукта от Lite до Enterprise.

MariaDB

Это форк (ответвление) MySQL от Монти и вполне удачное.
Явное отличие, это отказ в MariaDB от движка InnoDB и переход на XtraDB (который основан на коде InnoDB-plugin), что положительно сказалось на производительности и ресурсоемкости СУБД.
Полностью совместимо с MySQL, можно прозрачно и быстро перейти в MariaDB от MySQL.

Percona server

Как и MariaDB, Percona это форк MySQL от Петра Зайцева на движке XtraDB (включен по умолчанию).
Основные отличия - лучше производительность и масштабируемость.
Полностью совместимо с таблицами InnoDB, можно переходить туда и обратно без особых проблем.

Microsoft SQL

Реляционная СУБД от Microsoft, использующая язык запросовTransact-SQL.
Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка.
+ Добавить

Ключ-значение

Redis

Сетевое, журналируемое хранилище типа "ключ-значение".
Довольно высокопроизводительная и надежная бд.
Хранит данные в оперативной памяти, для быстрого доступа и делает снимки\журналирование данных для постоянного и надежного хранения.

========= УСТАНОВКА =========

- готовим систему
sudo apt-get install make
sudo apt-get update
sudo apt-get install build-essential tcl

- качаем последний redis
wget http://download.redis.io/releases/redis-3.Х.Х.tar.gz

- распаковка
tar xvzf redis-stable.tar.gz
cd redis-3.Х.Х

- сборка и установка
make
cd utils
sudo ./install_server.sh


========= НАСТРОЙКА =========

Файл /etc/redis/redis.conf

- увеличиваем количество соединений для сокета
tcp-backlog 65536

- устанавливаем частоту проверки соединений (помогает обнаруживать мертвые коннекты)
tcp-keepalive 60

- увеличиваем максимальное количество клиентов
maxclients 10000

- выделяем достаточно оперативной памяти (желательно возможный максимум)
maxmemory 1572864000

- подбираем подходящую нам политику отклонения ключей
maxmemory-policy allkeys-lru

- прописываем нужный bind (IP адрес на котором работает redis), чтобы redis был доступен снаружи
bind 0.0.0.0

- выбираем механизм персистентности - aof или rdb. RDB - это снапшоты, AOF - логирование операций. Надо подбирать под себя. Я AOF отключаю
appendonly no
appendfilename -

- чтобы отключить RDB надо закомментировать директивы save в /etc/redis/redis.conf


========= УСКОРЕНИЕ =========

Для ускорения есть 3 варианта:
- отключить создание снапшотов. Тогда все будет только в памяти и не будет никакой персистентности, но зато будет быстро работать.
- сделать репликацию master-slave, где на master будут отключены снапшоты и все будет только в памяти, slave будет все снапшотить. Запись и чтение будут с мастером. Тут есть и скорость и некая персистентность.
- собрать redis-cluster


========= ПЕРЕНОС ДАННЫХ =========

РЕПЛИКАЦИЯ.
Самый простой путь - репликация. Допустим (для примера) старый redis на порт 6379, а новый redis на порту 6480.

$ redis-cli -h localhost -p 6380
> slaveof localhost 6379
> info
...
role:slave

Теперь необходимо подождать (первые данные могут появится в течении пары минут). Если мастер база запоролена, то надо ввести пароль на slave:
$ redis-cli -h localhost -p 6380
> config set masterauth

После копирования всех данных (можно проверить по количеству ключей в info) - отключаем репликацию
> slaveof no one
> info
...
role:master


МИГРАЦИЯ
Работает очень долго.

$redis-cli -h localhost -p 6379 keys '*' | xargs -I '{}' redis-cli -h localhost -p 6379 migrate localhost 6380 "" 0 100000 COPY KEYS '{}'

Memcached

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

MemcacheDB

MemcacheDB - это объединение технологий memcached и BerkeleyDB.
От memcache взята высокая скорость, простой интерфейс и принцип работы.
От BerkeleyDB - надежность и эффективность хранения, в том числе - транзакционность и реплицирование.

Tarantool

Tarantool по сути не только хранилище key-value.
Смесь частей мемкеша, редиса, nodeJS, даже что-то от mongoDB перепало.
+ Добавить

Временные ряды - time series data

OpenTSDB

InfluxDB

Prometheus

YAWNDB

+ Добавить

Frameworks

Мобильные приложения

Appcelerator Titanium

По сути это целая платформа для создания мобильных (и даже десктопных) кроссплатформенных приложений на javascript с html5 и css.

Sencha Touch

По сути это библиотека на javascript + html5 + css для разработки сервисов и приложений для iPhone, iPad, Android. Продукт старается максимально приблизить приложение к стандартному интерфейсу ОС.

PhoneGap

Это платформа для создания гибридных мобильных приложений на javascript + html5 + css, довольна большая и развитая. Включает в себя как фреймворк, так и сервис для создания упакованных приложений, готовых для загрузки в маркеты. Поддерживает большое количество ОС и их версий.

Framework7

Фреймворк для разработки мобильных приложений на javascript +html5 + css

IONIC

Ionic framework — один из самых широко обсуждаемых фреймворков. Как гласит официальный сайт, Ionic — это SDK для создания гибридных мобильных приложений, набор CSS и JS компонент, созданный на основе AngularJS, SASS, Apache Cordova.
+ Добавить

Сайты

CodeIgniter

Довольно популярный и легкий фреймворк для создания сайтов и веб-систем, с открытым исходным кодом и написанный на языке php.
Разработан компанией EllisLab

Symfony

Промышленный фреймворк, созданный на языке php для создания веб-приложение. Symfony - открытый и свободно распространяемый.
Авторы позиционируют его как продукт для быстрой разработки и управления веб-приложением, но на деле фреймворк довольно тяжелый, сложный, с высоким порогом вхождения. Если все эти сложности преодолеть, то да - разработка в некоторой степени упрощается.

Laravel

Бесплатный mvc-фреймворк, с открытым исходным кодом. Используется для разработки веб приложений на языке php.
Очень легкий и шустрый фреймворк. Довольно часто обсуждаемый в 2014 году, как самый многообещающий продукт.

Yii

Бесплатный mvc-фреймворк, с открытым исходным кодом. Написан на php. Довольно высокопроизводительный, с невысоким уровнем вхождения.
+ Добавить


Системы непрерывной интеграции - Continuous Integration

Веб-сервисы

Travis CI

Shippable

Codeship.io

+ Добавить

IDE - Integrated development environment


Файловые хранилища

Распределенные

Ceph

отказоустойчивое, избыточное, распределенное хранилище данных. Это open source разработка, работает по протоколу TCP. Позволяет объединить дисковые пространства большого количества серверов в единое объектное хранилище с избыточностью данных (для надежности хранения).

GlusterFS

Это распределённая, параллельная, линейно масштабируемая файловая система с возможностью защиты от сбоев. Использует протокол TCP/IP.

Hadoop Distributed File System - HDFS

Распределенная файловая система для хранения больших файлов с репликацией и отказоустойчивостью. Файл разделяется на блоки (все блоки равной длинны, кроме последнего), а блоки распределяются уже между узлами кластера. Так же блоки могут быть размещены в нескольких узлах одновременно. Размер блока и коэффициент репликации (количество узлов, на которых должен быть размещён каждый блок) определяются в настройках на уровне файла. Файлы в HDFS может быть записан один раз и только одним процессом. Модификация файла запрещена. Организация файлов в пространстве имён — традиционная иерархическая.
+ Добавить

Препроцессоры

Сборщики, планировщики

Grunt

Инструмент для сборки javascript проектов из командной строки с использованием задач.
Ставится как NPM модуль.

Gulp

Это инструмент для сборки проектов на javascript. Использует потоки и является довольно быстрым сборщиком. Проект относительно молодой, но уже успел собрать поклонников.
Для работы требует node.js и npm

Maven

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

Ant

Apache Ant (англ. ant — муравей и акроним — «Another Neat Tool») — утилита для автоматизации процесса сборки программного продукта.
Ant был создан в рамках проекта Jakarta, сегодня — самостоятельный проект первого уровня Apache Software Foundation.
Ant, в отличие от другого сборщика проектов Apache Maven, обеспечивает императивную, а не декларативную сборку проекта.
+ Добавить

UI / UX


Мониторинг

Локальные

Graphite

Бесплатная, очень быстрая, стабильная и надежная система для мониторинга. Graphite можно использовать и как платформу для статистики, потому как система позволяет производить практически любые математические (и не только) операции с метриками.
Работает на основе хранилищ типа RRD (whisper/ceres), что позволяет создавать метрики с хранением данных "вечно". То есть, многие системы вводят лимит на время хранения данных - графит позволяет этого не делать, не сильно увеличивая при этом потребление памяти.

Nagios

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

Zabbix

Продукт для мониторинга компьютерных систем и сетей. Свободно распространяемая. Для хранения использует MySQL, PostgreSQL, SQLite или Oracle. Веб-интерфейс написан на PHP.
Есть разные виды мониторинга.
Одна из самых популярных и топовых систем для мониторинга.

Bosun

Netdata

Мониторинг производительности сервера/компьютера в реальном режиме времени.
Работает действительно в реальном режиме времени, данные обновляются каждую секунду, более 300 графиков и 2000 метрик. Мониторятся процессоры, i/o операции, частоты, загрузки, swap, потребление памяти, диска, сети и много, много другого.
Устанавливается крайне просто, не требует особых настроек, подходит практически под все Linux системы.
+ Добавить



Серверы

Почтовые

Exim

EXperimental Internet Mailer - несмотря на свое название, далеко не экспериментальный почтовый сервер для систем unix. Монолитен - всем заведует и все обрабатывает один процесс. Читабелен и относительно прост в установке и настройке.
Поддерживает различную верификацию писем, аутентификаию, антиспамы, антивирусы.
Один из самых простых в поддержке и настройке, а так же самых быстрых и мощных почтовых серверов.

Postfix

Почтовый сервер, созданный как альтернатива sendmail для unix систем.
Postfix модульный, то есть по сути это целый программный комплекс, где каждый модуль занимается только своими определенными операциями. В этом есть и плюсы и минусы. Контролируется все основным master-процессом.
Довольно популярный почтовый сервер, с множеством инструкций на разных языках, как по установке, так и по тонкой настройке.

Sendmail

Один из самых старых почтовых серверов, распространяемый бесплатно с некоторыми системами unix.
Есть версии для практически всех операционных систем и платформ.
+ Добавить

Проки

shadowsocks

+ Добавить

Сервисы

DDoS

Cloudflare

ddos-protection

+ Добавить

CDN

Cloudflare

Amazon CloudFront

+ Добавить

Шифрование

Дисков

VeraCrypt

За основу этой программы взята оригинальная кодовая база TrueCrypt. Автор — французский консультант в области информационной безопасности Моунир Идрасси (Mounir Idrassi).
Форматы контейнеров VeraCrypt несовместимы с TrueCrypt. Для сравнения, контейнеры CipherShed совместимы с TrueCrypt.

TrueCrypt

TrueCrypt — программа для шифрования данных "на лету" для операционных систем Windows\Linux\OS X
Позволяет создавать зашифрованный логический (виртуальный) диск, хранящийся в виде файла. С помощью TrueCrypt также можно полностью шифровать раздел жёсткого диска или иного носителя информации, например, флоппи-диск или USB-флеш-накопитель. Все сохранённые данные в томе TrueCrypt полностью шифруются, включая имена файлов и каталогов. Смонтированный том TrueCrypt подобен обычному логическому диску, поэтому с ним можно работать с помощью обычных утилит проверки и дефрагментации файловой системы.
+ Добавить