Merge branch '1-translate' into 'master'

Resolve "Перевести документы"

Closes #1

See merge request !1
parents 9beac50e ae686f78
# going-to-production
Are you wondering "What should I do before moving my project to production?".
Here is a list of things you want to address before hitting the road:
Чек-лист для проверки проекта перед релизом.
* [Serverside Checklist](serverside-checklist.md)
* [SPA Checklist](spa-checklist.md)
Конечно желательно внедрять эти практики в процессе разработки
* [Серверная часть](serverside-checklist.md)
* [Клиентская часть](spa-checklist.md)
----
* [Useful Sources](sources.md)
# Serverside checklist
This is a checklist for serverside of the Web App.
Этот чеклист для серверной части веб приложения.
## Legal
## Права
- [ ] Licences of my application's 3rd-party dependencies are not violated
- [ ] My application does not violate cryptography policies and laws
- [ ] My app is compliant according to the organisation standards
- [ ] Лицензии сторонних зависимостей моего приложения не нарушаются
- [ ] Мое приложение не нарушает криптографические политики и законы
- [ ] Мое приложение соответствует стандартам организации
## Resiliency
## Отказоустойчивость
* [ ] My application can retain reasonable functionality in isolation
* [ ] My application can recover from being under heavy load
* [ ] My application can reestablish all lost connections
* [ ] My application can not cause Cascading Failures to propagate through the system
## Load balancing
* [ ] Мое приложение может сохранять разумную функциональность в изоляции
* [ ] Мое приложение может оправиться от тяжелой нагрузки
* [ ] Мое приложение может восстановить все потерянные соединения
* [ ] Мое приложение не может вызвать каскадные сбои для распространения через систему
* [ ] My project can run on multiple CPUs
* [ ] My project can run behind the load balancer
* [ ] I can add a new node without system downtime
## Балансировка нагрузки
## Transparent deployment
* [ ] I can add a new node without stopping the application
* [ ] I can add a new node without user sessions being lost/destroyed
* [ ] I can make a rolling upgrades for my service
* [ ] Мой проект может работать на нескольких процессорах
* [ ] Мой проект может работать за балансировщиком нагрузки
* [ ] Я могу добавить новый узел без простоя системы
## Supervising
## Прозрачное развертывание
* [ ] My application can survive a server restart
* [ ] My application is restarted automatically after the crash
* [ ] Я могу добавить новый узел без остановки приложения
* [ ] Я могу добавить новый узел без потери / уничтожения пользовательских сеансов
* [ ] Я могу сделать скользящие обновления (rolling upgrades) для моей службы
## Logging
## Supervising
* [ ] My application logs all errors (even "swallowed")
* [ ] My application produces log output to rotated files
* Streams with different log levels are separated from each other
* [ ] My logs are aggregated to a log analysing service
* [ ] Мое приложение может пережить перезагрузку сервера
* [ ] Мое приложение автоматически перезапускается после сбоя
## Логирование
## Monitoring
* [ ] Мое приложение регистрирует все ошибки (в том числе "swallowed")
* [ ] Мое приложение производит вывод логов в rotated files
* [ ] I have configured the alerts for abnormal activity
* Разноуровневые потоки логов отделены друг от друга
* Application restart events
* Error rate threshold reached
* Server resources are soon to be exhausted (CPU, memory, IO > 90%)
* HTTP requests timeouts
* HTTP responses with 500 status codes
* [ ] Мои логи агрегируются в службу анализа логов
* [ ] I have health checks for all parts of my system
## Мониторинг
* [ ] Я настроил предупреждения о ненормальной активности
## Metrics
* События перезапуска приложений
* Error rate threshold reached
* Ресурсы сервера скоро будут исчерпаны (процессор, память, IO> 90%)
* Таймауты HTTP запросов
* HTTP-ответы с 50* кодами состояния
* [ ] I can observe different events from my app over time
* Number of requests for endpoints
* Duration of requests for endpoints
* Duration of business-logic operations
* [ ] У меня есть проверки работоспособности для всех частей моей системы
## Метрики
## High Availability
* [ ] Я могу наблюдать различные события из моего приложения с течением времени
* [ ] I can run my services in different independent Data Centers
* Количество запросов для конечных точек
* Продолжительность запросов для конечных точек
* Продолжительность бизнес-процессов
## Высокая доступность
## Testing
* [ ] I have performed stress tests for my application
* [ ] I have performed network partitioning tests for my application
* [ ] Я могу запускать свои службы в разных независимых дата центрах
## Тестирование
## Backuping
* [ ] Я выполнил стресс-тесты для моего приложения
* [ ] Я выполнил тесты разбиения сети (network partitioning tests) для моего приложения
* [ ] I can restore all my data from backups
## Резервное копирование
* [ ] Я могу восстановить все мои данные из резервных копий
## Security
## Безопасность
* [ ] I have audited my system against OWASP Top 10 Vulnerabilities
* [ ] I use TLS for all endpoints
* [ ] I have added relevant security headers to app HTTP endpoints
* [ ] Я проверил свою систему против OWASP Top 10 Vulnerabilities
* [ ] Я использую TLS для всех конечных точек
* [ ] Я добавил соответствующие заголовки безопасности для конечных точек
* `X-Frame-Options`
* `X-Content-Type-Options`
......
# Single Page App Checklist
This is a checklist for browser-based Web App **without the backend** or with a 3rd-party backend.
Этот чеклист для клиентской части веб приложения.
## Legal
## Права
- [ ] Licences of my app's 3rd-party dependencies are not violated
- [ ] My app does not violate cryptography policies and laws
- [ ] My app is compliant according to the organisation standards
- [ ] Лицензии сторонних зависимостей моего приложения не нарушаются
- [ ] Мое приложение не нарушает криптографические политики и законы
- [ ] Мое приложение соответствует стандартам организации
## Accessibility
- [ ] My app is accessible
- [ ] Colors and contrast are color-blind friendly OR there is a possiblity to switch to high-contrast mode
- [ ] My app is screenreader-friendly
- [ ] My app has keyboard navigation
## Доступность
## Deployment
- [ ] Мое приложение доступно
- [ ] Цвет и контраст удобно воспринимаются людьми с дальтонизмом, или есть возможность переключиться на высококонтрастный режим
- [ ] Мое приложение поддерживает чтение с экрана
- [ ] Мое приложение имеет клавиатурную навигацию
- [ ] My app is served from CDN or cookie-less subdomain
- [ ] My app is served with forever cache headers for static assets
- [ ] My app static resources are gzipped
## Внедрение
## Loading optimization
- [ ] Мое приложение загружается из CDN или поддомена без cookie
- [ ] Мое приложение загружается с вечными заголовками кеша для статики
- [ ] Статика моего приложения сжата
- [ ] My app can load it's assets in parallel (css, images and scripts)
- [ ] My app uses icon sprites
- [ ] My app does not hit [browser HTTP requests limit per host](http://stackoverflow.com/questions/985431/max-parallel-http-connections-in-a-browser)
- [ ] My app loads all well-known javascript libraries from CDN
## Оптимизация загрузки
## Versioning
- [ ] Мое приложение может загружать свои ресурсы параллельно (css, изображения и скрипты)
- [ ] В моем приложении используются спрайты значков
- [ ] My app does not hit [ограничение HTTP-запросов браузера на хост](http://stackoverflow.com/questions/985431/max-parallel-http-connections-in-a-browser)
- [ ] Мое приложение загружает все известные библиотеки javascript из CDN
## Версионирование
- [ ] My app has a cache-busting implemented (assets, object cache etc.)
## Assets
- [ ] Have a 404-page
- [ ] Have a [maintenance page](https://www.smashingmagazine.com/2009/06/effective-maintenance-pages-examples-and-best-practices/)
- [ ] Images support HDPI screens (Retina, etc)
- [ ] Есть страница ошибки 404-page
- [ ] Есть [Режим техобслуживания](https://www.smashingmagazine.com/2009/06/effective-maintenance-pages-examples-and-best-practices/)
- [ ] Картинки поддерживают экраны с высокой плотностью пикселей (HDPI, Retina, etc)
## Testing
## Тестирование
- [ ] My app does not have memory leaks
- [ ] My app is passing performance tests with high grades
- [ ] [PageSpeed](https://developers.google.com/speed/pagespeed/)
- [ ] У моего приложения нет утечек памяти
- [ ] Мое приложение проходит тесты производительности с высокими оценками
- [ ] [PageSpeed](https://developers.google.com/speed/pagespeed/)
- [ ] [YSlow](http://yslow.org/)
- [ ] Chrome Dev Tools Audit
- [ ] My app is loading in less than 3 seconds
- [ ] Мое приложение загружается менее чем за 3 секунды
## Debugging
## Отладка
- [ ] Minified JavaScript files contain URL for source maps
- [ ] Thrown exceptions are handled and passed to storage ([Sentry](https://sentry.io/), [Track.js](https://trackjs.com/), etc)
- [ ] минифицированные JavaScript файлы содержат URL для карты источников (source maps)
- [ ] Неотловленные исключения обрабатываются и передаютс в хранилище ([Sentry](https://sentry.io/), [Track.js](https://trackjs.com/), и др.)
- [ ] Error storage process sourcemaped files
## Tracking
## Отслеживание
- [ ] My app gathers metrics about usage behaviour
- [ ] Мое приложение собирает метрики об использовании поведения
## Security
- [ ] I have audited my system against:
## Безопасность
- [ ] Я проверил свою систему против:
- [ ] [OWASP Top 10](https://www.owasp.org/index.php/OWASP_Top_Ten_Cheat_Sheet) Vulnerabilities
- [ ] [Observatory](https://observatory.mozilla.org/)
- [ ] [securityheaders.io](https://securityheaders.io/)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment