Merge branch '1-translate' into 'master'

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

Closes #1

See merge request !1
parents 9beac50e ae686f78
# going-to-production # 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) * [Useful Sources](sources.md)
# Serverside checklist # 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 * [ ] Я проверил свою систему против OWASP Top 10 Vulnerabilities
* [ ] I use TLS for all endpoints * [ ] Я использую TLS для всех конечных точек
* [ ] I have added relevant security headers to app HTTP endpoints * [ ] Я добавил соответствующие заголовки безопасности для конечных точек
* `X-Frame-Options` * `X-Frame-Options`
* `X-Content-Type-Options` * `X-Content-Type-Options`
......
# Single Page App Checklist # 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.) - [ ] My app has a cache-busting implemented (assets, object cache etc.)
## Assets ## Assets
- [ ] Have a 404-page - [ ] Есть страница ошибки 404-page
- [ ] Have a [maintenance page](https://www.smashingmagazine.com/2009/06/effective-maintenance-pages-examples-and-best-practices/) - [ ] Есть [Режим техобслуживания](https://www.smashingmagazine.com/2009/06/effective-maintenance-pages-examples-and-best-practices/)
- [ ] Images support HDPI screens (Retina, etc) - [ ] Картинки поддерживают экраны с высокой плотностью пикселей (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/) - [ ] [YSlow](http://yslow.org/)
- [ ] Chrome Dev Tools Audit - [ ] Chrome Dev Tools Audit
- [ ] My app is loading in less than 3 seconds - [ ] Мое приложение загружается менее чем за 3 секунды
## Debugging ## Отладка
- [ ] Minified JavaScript files contain URL for source maps - [ ] минифицированные JavaScript файлы содержат URL для карты источников (source maps)
- [ ] Thrown exceptions are handled and passed to storage ([Sentry](https://sentry.io/), [Track.js](https://trackjs.com/), etc) - [ ] Неотловленные исключения обрабатываются и передаютс в хранилище ([Sentry](https://sentry.io/), [Track.js](https://trackjs.com/), и др.)
- [ ] Error storage process sourcemaped files - [ ] 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 - [ ] [OWASP Top 10](https://www.owasp.org/index.php/OWASP_Top_Ten_Cheat_Sheet) Vulnerabilities
- [ ] [Observatory](https://observatory.mozilla.org/) - [ ] [Observatory](https://observatory.mozilla.org/)
- [ ] [securityheaders.io](https://securityheaders.io/) - [ ] [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