Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Modern Web Applications Infrastructure (Remix)

Igor Alpert
November 06, 2014

Modern Web Applications Infrastructure (Remix)

You'll get to know how to manage project features and improve quality in your web projects.

What tools, platforms and services will be useful on each step of your application development lifecycle and what benefits can you get using them. Keep your project production ready. Release often, release stable.
Get reactive feedback about your project status: detect issues and address them fast. Continuous improvement process: stability, performance, and maintainability, modern delivery and distribution approaches. Let’s try to uncover some production-proofed practices how to improve code-base quality and project stability itself.

· Introduction
· Platforms
· Tasks automation
· Source-code management
· Development environment
· Testing
· Fault tolerance
· Delivery

Russian: https://www.youtube.com/watch?v=qwhYk-d5n1M

Igor Alpert

November 06, 2014
Tweet

More Decks by Igor Alpert

Other Decks in Technology

Transcript

  1. EPAM Systems 4 APPLICATION CSS JS HTML ! ! +%CP(62

    Knowledge scope — good for “my file”
  2. 5 APPLICATION EPAM Systems $ Feature #1 Feature #2 Bug

    fixing ! 6JG[CEVCUCVGCO Looking out of “my file“ scope
  3. 7 APPLICATION EPAM Systems Logs Doc ! $ % %QOOGPVU

    CPFGZCORNGU Every application has some kind of docs
  4. 8 APPLICATION $ Logs Config Docs ! % &KHHDGVYGGPFGXCPFRTQFWEVKQP EPAM

    Systems Configuration — difference between environments
  5. Packages 9 APPLICATION $ Config ! % L3WGT[CPFHTKGPFU EPAM Systems

    Logs Docs Every application has some kind of 3rd party components
  6. 10 APPLICATION $ Logs Docs Config Tests ! Packages %

    *CRR[RCVJ EPAM Systems Every application has some kind of tests, implicit/explicit
  7. 11 APPLICATION $ & ! % /CIKEDWKNFU[UVGO EPAM Systems Every

    application has some kind of build and deploy process
  8. 12 APPLICATION 0.5 $ 0.8 1.0 ! & % #NRJC$GVC4%

    EPAM Systems Every application has some kind of build results — versions
  9. 13 APPLICATION 0.5 $ 0.8 1.0 ! Dev Test Prod

    & % &GXU3#5WRRQTV%NKGPV EPAM Systems Application versions runs on various environments, usable by sub teams
  10. 14 APPLICATION 0.5 $ 0.8 1.0 ! Dev Test Prod

    APP DB SV & % ' #RR5GTXGT EPAM Systems Every application runs on a server
  11. DB DB DB DB ' ' ' ' 15 APPLICATION

    $ ! & % " 6QPUQHUGTXGTU CPF&CVC$CUGU EPAM Systems .QCFDCNCPEGT Some applications runs on server farms
  12. 16 APPLICATION $ ! & % " 7 Errors Logs

    Metrics 7UGHWNKPHQTOCVKQPNKXGUJGTG EPAM Systems Metrics — various usable information regarding our app
  13. 17 AGENDA ! $ DEVELOPMENT
 WORKFLOW % SOURCE
 MANAGEMENT &

    BUILD
 PIPELINE " DEPLOY PLATFORMS 7 MONITORING
 METRICS CONTINUOUS IMPROVEMENTS # EPAM Systems Today’s requirements to application development and support
  14. EPAM Systems 19 DEVELOPMENT WORKFLOW $ DEV $ ( Managers

    ) QA 3#.GCF/CPWCN#WVQOCVKQP #TEJKVGEV6GEJ.GCF&GXGNQRGTU #EEQWPV/CPCIGT#PCN[UV Support % 5WRRQTV&GX1RU2TQDNGOOCPCIGOGPV Project teams
  15. EPAM Systems 20 DEVELOPMENT WORKFLOW $ DEV $ ( Managers

    ) QA #NYC[UJCXGUQOGňVKP[ʼnEJCPIG 6JG[YCPVUVCDKNKV[ 6JG[YCPVVQEQFG Support % 6JG[YCPVUKORNKEKV[ VQTGSWKTGOGPVUCPFUVQTKGU #UC7UGT+YCPVŎ -PQYPDWIU6QQOWEJVKOGVQFQHWNNTGITGUUKQP DGVVGTVQWUGRTGXKQWUňUVCDNGʼnXGTUKQP PGYHGCVWTGU6QIQNFGPRNCVGVJGKTEQFGVQTGFWEG VGEJPKECNFGRV 2NGCUGPQOQTGUWFFGP RNCVHQTOEJCPIGU Project team and goals
  16. EPAM Systems 21 DEVELOPMENT WORKFLOW $ ( Managers ) QA

    DEV $ #EVYKVJ+PVGITKV[UJCTGFIQCNU Support % Result oriented project team
  17. EPAM Systems 22 DEVELOPMENT WORKFLOW $ TEAM 1 2 3

    COMMUNICATION TEACH, SHARE SUPPORT VISIBILITY HELPING HAND TEAM BUILDINGNGS 4 5 6 (GGFDCEM &QPņVFQ=CP[VJKPI?UKNGPVN[ 5GPUGQHVGCOKUETKVKECN Team communication points
  18. EPAM Systems 23 DEVELOPMENT WORKFLOW $ ( DESIGN ) TESTING

    & BUILD, DEPLOY a BUG FIX ' LAUNCH DEVELOP $ 2-4 WEEKS ITERATION Typical workflow for iteration: Step-by-Step
  19. EPAM Systems 24 DEVELOPMENT WORKFLOW #WVQOCVGFVGUVU #WVQOCVGFDWKNF %QNNCDQTCVKXGFGXGNQROGPV 2NCPCPF&GUKIP 9TKVGCUOWEJHCKNKPIVGUVUCURQUUKDNGVQ

    EQXGTTGSWKTGOGPVU 'CEJUQWTEGEJCPIGVTKIIGTUYJQNG DWKNFRKRGNKPGVQTWP %QFGHGCVWTGUYKVJVGUVKPOKPF 6JKPMJQY[QWTHGCVWTGYKNNDG KORNGOGPVGFCPFKPVGITCVGFYKVJ QVJGTHGCVWTGU & ( * $ % +PVGITCVKQP 4GCNVKOGOQPKVQTKPICPFHGGFDCEM UP TO 1 DAY ITERATION $ Continuous integration
  20. 25 DEVELOPMENT WORKFLOW EPAM Systems SERVERS 1. NGINX 2. APACHE

    HTTPd 3. TOMCAT 4. IIS 5. NODEJS 6. EXPRESS 7. … STYLES 1. TWITTER BOOTSTRAP 2. ZURB FOUNDATION 3. COMPASS 4. SASS 5. LESS 6. STYLUS 7. CUSTOM SOLUTION FRAMEWORKS 1. ANGULARJS 2. BACKBONE 3. EXTJS 4. SENCHA TOUCH 5. EMBERJS 6. METEOR 7. DERBY 8. CUSTOM SOLUTION TESTING 1. JASMINE 2. MOCHA 3. BUSTER 4. QUNIT 5. KARMA 6. PROTRACTOR 7. NIGHTWATCH 8. INTERN 9. WEBDRIVER.IO 10.CUSTOM SOLUTION OS 1. WINDOWS 2. OSX 3. UBUNTU 4. CENTOS 5. FREEBSD 6. COREOS TOOLS 1. GRUNT 2. GULP 3. NPM 4. BOWER 5. YEOMAN 6. CUSTOM SOLUTION DATABASES 1. MONGODB 2. COUCHDB 3. RIAK 4. REDIS 5. CASSANDRA SERVICES 1. AMAZON 2. NODEJITSU 3. HEROKU 4. MONGOLAB 5. FIREBASE 6. JOYENT 7. PUSHER 8. DOCKER $ 6QPUQHTGCF[VQWUG 1RVKQPUHQT[QWT RTQLGEV SERVER SIDE 1. PHP 2. RUBY 3. PYTHON 4. … Web Application infrastructure blocks
  21. EPAM Systems 26 DEVELOPMENT WORKFLOW $ VIRTUAL MACHINE Your toolset

    will ask for them as a dependency Works better and faster on Unix based systems NODEJS, RUBY, PYTHON Ability to compile native modules — easier to “make from source” then in Windows Building a Module in Windows WINDOWS node-gyp, Python, shell, VS, … ;QWTHTKGPFU 55*0Q)7+ %JGH2WRRGV8 Base platforms and dependencies
  22. EPAM Systems 27 DEPENDENCY MANAGEMENT $ Packager for OSX, uses

    formulas to install software Homebrew Mac OSX brew install [package] Package manager for Debian GNU/Linux distribution and its variants Advanced Packaging Tool Ubuntu apt-get install [package] The Yellowdog Updater, Modified (yum) is an open-source command-line package management utility for Linux operating Yum CentOS yum install [package] Chocolatey NuGet is a Machine Package Manager, somewhat like apt-get, but built with Windows in mind Chocolatey Windows choco install [package] &'$ 42/ Application management
  23. EPAM Systems 28 DEPENDENCY MANAGEMENT $ PRCE NGINX OPENSSL MAKEDEPEND

    PKG-CONFIG GIT GIT-FLOW brew install git-flow brew install nginx Application management example
  24. EPAM Systems 29 DEPENDENCY MANAGEMENT $ NVM APP1 Node 0.11x

    NVM APP2 Node 0.10.31 5VKNNVJGUCOGRTQLGEV When you can have more then 1 project at a time
  25. EPAM Systems 30 DEPENDENCY MANAGEMENT $ Node Version Manager -

    Simple bash script to manage multiple active node.js versions NodeJS NVM https://github.com/creationix/nvm RVM is the Ruby enVironment Manager. It manages Ruby application environments and enables switching between them Ruby RVM https://github.com/wayneeseguin/rvm It creates an environment that has its own installation directories, that doesn’t share libraries with other virtualenv environments Python virtualenv https://github.com/pypa/virtualenv A Node version manager for the windows folks out there. Inspired by n and nodenv NodeJS Nodist https://github.com/marcelklehr/nodist 9KPFQYU Platform version management
  26. EPAM Systems 31 DEPENDENCY MANAGEMENT $ +PVGTHCEGKUVJGUCOG http://browsenpm.org/package.json PACKAGE MANAGERS

    Most popular package managers NPM, BOWER Save package to runtime dependency list MANAGER INSTALL <NAME> —SAVE Save package to development dependency list MANAGER INSTALL <NAME> —SAVE-DEV 1 2 3 Popular package managers
  27. EPAM Systems 32 DEPENDENCY MANAGEMENT $ NPM GRUNT PACKAGE.JSON LODASH

    ASYNC KARMA Packages: npm install npm install —save Downloads: Corporate mirrors npm init &QPņVHQTIGVVQ WRFCVG[QWTRCEMCIGU DEV-DEPS https://docs.npmjs.com/ Package manager - NPM
  28. EPAM Systems 33 DEPENDENCY MANAGEMENT $ BOWER LODASH BOWER BACKBONE

    JQUERY UNDERSCORE BOOTSTRAP Packages: bower init bower install npm install -g http://bower.io/ (QTHTQPVGPF Package manager - Bower
  29. EPAM Systems 35 BUILD PIPELINE & TYPICAL FLOW 1 2

    3 DOWNLOAD LIBRARIES SPRITES, IMAGES WRITE BOILERPLATES MANUAL TESTING WRITE CODE, REFESH MINIFY, CONCATINATE 4 5 6 %VTN 5(Ŏ Ŏ2KZGNRGTHGEV Your typical development tasks
  30. EPAM Systems 36 BUILD PIPELINE & Source Concatenate Uglify SourceMaps

    Test Karma Protractor Mocha Coverage Preprocess LESS SASS Compass Assets Templates CSS HTML processing Images optimization Watch LiveReload Rebuild Serve Custom ChangeLog Notifications console.debug KP[QWTDWKNFRKRGNKPG 6CUMUVQCWVQOCVG What tasks to automate
  31. EPAM Systems 37 GRUNT BUILD PIPELINE & Packages: grunt grunt

    coffee:app jshint: { // define the files to lint files: ['gruntfile.js', 'src/**/*.js', 'test/**/*.js'], // configure JSHint options: { // more options here globals: { jQuery: true, console: true, module: true } } } Gruntfile.js Gruntfile.coffee http://gruntjs.com/ http://gruntjs.com/plugins Good for file operations like copy/move/save. Configuration over code. Better for small projects with small amount of files. FILE BASED Most popular JS task runner. Almost any possible task is available as plugin. You can perform build-in or custom operations. Sync/ Async TONS OF PLUGINS 1 2 ITWPVEQPVTKDLUJKPV Task runner — Grunt
  32. EPAM Systems 38 GULP BUILD PIPELINE & var gulp =

    require('gulp'); gulp.task('default', function() { // place code for your default task here }); gulpfile.js http://gulpjs.com http://gulpjs.com/plugins/ Packages: gulp grunt coffee npm install --save-dev gulp No temporary files. Code over Configuration. Much more faster then Grunt for file-content processing operations. STREAM BASED Only 4 API methods: task, watch, src, dest. Easy to write complex flows. EASY API 1 2 ZHCUVGT Build pipeline — Gulp
  33. EPAM Systems 39 YEOMAN BUILD PIPELINE & Generators: ~1100 npm

    install -g generator-angular yo angular npm install -g yo $ yo angular:controller myController $ yo angular:directive myDirective $ yo angular:filter myFilter $ yo angular:service myService Pre-packed with test suites KARMA TESTS Easy scaffolding system to generate application components SCAFFOLDING Comes with build-in live-reload and grunt task SERVER 1 2 3 ITWPVUGTXG Application scaffolding — Yeoman
  34. EPAM Systems 41 SOURCE % GIT Cheap branching — just

    a reference to commit. Lots of possible merging strategies and conflict resolving. History rewrite EASY BRANCHING AND MERGING You can work alone or with a team. You can work with or without central server. Even without network connection. DISTRIBUTED You can clone whole repo/branch or just a few commits. All meta-data is stored in one place ~/.git FAST 1 2 3 % git init git add git commit git push —force git rebase -i git merge git tag -a 2TQ6KR %QPHNKEVTGUQNXGF 580 )+6'#5; GIT — source code management
  35. EPAM Systems 42 SOURCE % GITLAB You can integrate it

    with your own infrastructure, users base, private services etc PRIVATELY HOSTED Fully manageable and configurable Same capabilities — collaboration, forking, wiki and JIRA TRUSTED BY ENTERPRISE Hosted on GitHub. You can contribute and write your own features OPEN-SOURCE 1 2 3 -  *CRR[%NKGPVU GIT Platforms — GitLab
  36. EPAM Systems 43 SOURCE % GITHUB You are able to

    create branches, tags, pull-requests, edit and commit files directly from browser WEB INTERFACE Do code-review with your team, leave comments, track issues and maintain WIKI pages CODE REVIEW AND COLLABORATION You can fork and contribute to any public repository. Home for open-source projects FORK, PULL REQUEST 1 2 3 Mirror mirror on the wall, who forks best of them all? GIT Platforms — GitHub
  37. EPAM Systems 44 SOURCE % BITBUCKET Unlike GitHub this service

    will allow you to create *unlimited* amount of private repositories. FREE PRIVATE REPOS Natively integrates with Atlasssian software stack. Trusted by Enterprise. ENTERPRISE ORIENTED Spooning - with Bitbucket is a pair programming process as an opposite to forking SPOONING vs. FORKING 1 2 3 ň$KVDWEMGVURQQPKPI ŃLWUV)QQINGKV GIT Platforms — BitBucket
  38. EPAM Systems 45 SOURCE % BRANCHING MODELS Centralized Gitflow Github

    Feature branch Commit Commit Commit Commit REBASE SQUASH FEATURE BRANCH … REBASE FEATURE FEATURE FEATURE FEATURE UPSTREAM BRANCH GIT — Branching models
  39. EPAM Systems 46 SOURCE % HOOKS All Git hooks are

    ordinary scripts that Git executes when certain events occur in the repository. This makes them very easy to install and configure PRE-COMMIT PREPARE-COMMIT-MSG COMMIT-MSG POST-COMMIT POST-CHECKOUT PRE-REBASE PRE-RECEIVE UPDATE POST-RECEIVE Client Server http://githooks.com/ SPELLING ERRORS ENFORCE RULES EMAIL / SMS NOTIFICATIONS DEPLOY TRIGGER Use Cases 9GDJQQMUVQQ GIT Hooks
  40. EPAM Systems 47 SOURCE % COMMIT MESSAGES [FIX] Closes: #1234

    [BREAKING] Interface of method has been changed… [COMPLETE] Feature (F16:Raptor) is ready for integration [ENV] Some minor refactoring MAKE YOUR CONVENTION ISSUE MANAGEMENT 1 2 3 RELEASE NOTES AND CHANGE LOGS 4 ANNOTATIONS: squash! fixup! ň+ņXGHKZGFVJCVʼn GIT — Commit message conventions
  41. EPAM Systems 48 CONTINUOUS INTEGRATION IDE # Code Completion and

    Inspection Refactoring, Metrics 1 2 3 Test frameworks integration 4 Debugger, Frameworks support 5 Source Version control Issue trackers integration CODIO CLOUD9 CODEBOX CODENVY Online IDE 9GD5VQTO IDE — toolset that matters
  42. EPAM Systems 50 TECHNICAL DEBT TESTS WILL BE IN THE

    NEXT RELEASE LET’S JUST COPY/PASTE FOR NOW 1 2 3 CODE ENTROPY: “IF I TOUCH THAT CODE EVERYTHING WILL BREAK” 4 TODO/FIXME STATEMENTS CONTINUOUS IMPROVEMENTS # Fix this code, the only one who can. Is in another company already. http://en.wikipedia.org/wiki/Technical_debt 5 DOCS? MY CODE IS STATE OF ART $WI&TKXGP&GXGNQROGPV Technical debt — can be found in any project
  43. EPAM Systems 51 CODE QUALITY CODE-STYLE: TABS/SPACES, INDENTATION STATIC ANALYZE

    AND COMPLEXITY: BUGS, DUPLICATION, STANDARDS 1 2 3 UNIT-TESTS AND COVERAGE 4 DOCS AND COMMENTS CONTINUOUS IMPROVEMENTS # 5 TECH BACKLOG .KUVQHVCUMU RTKQTKV[ +PFKECVGUJQYSWKEMN[FGXGNQRGTU ECPCFFDWUKPGUUXCNWGVQ UQHVYCTGU[UVGO Code quality — measurable
  44. EPAM Systems 52 CODE STYLE CONTINUOUS IMPROVEMENTS # - JSHINT

    + STYLISH - PLATO - CODE PAINTER - EDITORCONFIG - JSCS - ESLINT - AIRBNB - CROCKFORD - GOOGLE - JQUERY - MDCS (THREE.JS) - WIKIMEDIA - YANDEX - COFFEELINT - CSS - HTML Other validations JSCS Presets 1 2 3 4 5 Tools READABILITY GOOD NAMES CLEAR LOGIC POTENTIAL ISSUES GUIDELINES  Code style — measurable
  45. EPAM Systems 53 CONTINUOUS IMPROVEMENTS .dot files # .gitignore .gitattributes

    .jshintrc .jshintignore .editorconfig .jscs.json .travis.yml SHAREABLE CONFIGURATION EASY TO MANAGE 1 2 3 IDE INTEGRATION 4 ESSENTIAL PART OF YOUR ENVIRONMENT 5 NOT A TRASH Invest time learning to configure your machine and automate processes Project System .bashrc .zshrc .gitconfig .aliases .functions .osx http://dotfiles.github.io/ 1P7PKZCNKMGU[UVGOU Dot files — overwrite settings per project
  46. EPAM Systems 54 CONTINUOUS IMPROVEMENTS TESTS # TDD (BDD) BETTER

    CODE UNDERSTANDING 1 2 3 RELIABILITY 4 RELEASE FASTER 5 MOTIVATION 5CHGTTGHCEVQTKPI 4GF)TGGP4GHCEVQT UI LONG (hours) END-TO-END %CPDGTGOQVG 5VWDU/QEMU .QECNQPN[ MEDIUM (minutes) API FILE SYSTEM DATABASE HEADLESS SERVICES 2GTHQTOCPEGOGVTKEU FEEDBACK TIME (KTUVHCKNGF FAST (seconds) UNIT-TESTS SMOKE TESTS Tests — types, feedback time
  47. EPAM Systems 55 CONTINUOUS IMPROVEMENTS CODE COVERAGE # 97% NOT

    TESTED AREA OF APP DEAD CODE DETECTION 1 2 3 TESTING QUALITY 4 ACCEPTANCE THRESHOLD 70-90% 5 REPORTS JSCoverage Istanbul COVERALS.IO Blanket #9'51/' *KUVQT[CPFUVCVUUGTXKEG CODECLIMATE Code coverage — testing quality metric
  48. EPAM Systems 56 CONTINUOUS IMPROVEMENTS DOCS GENERATION # KEEP THEM

    UP-TO-DATE METHODS AND CLASSES 1 2 3 PUBLIC API 4 USAGE EXAMPLES 5 (RE) USE YOUR TESTS HTML MARKDOWN JSDoc Output JSDOC* CROJSDOC APIDOCJS DOX MOX DOCCO CODO Tools @param @name @class @method @option @example @depricated @package @private @api ;17$7+.6+6 ;17470+6Ŏ *WOCPTGCFCDNGCPF )KV*WDHTKGPFN[ Documentation generation — What…, How…, When…?
  49. EPAM Systems 58 WHY CI Ready to use product always

    available. Feature flags to have changes hidden until finished Risks mitigation: The smaller changes — the smaller effect. Every defect once — cover bug with test. Easy diff reviews, tracking Deploy is available for anybody: Dev, QA, PM: No special knowledge is necessary. One button or one-liner command 6QQNU 2TQEGUU%QPHKFGPEG 1 2 3 4 5 TIME TO MARKET FEEDBACK CYCLE ERRORS BUS FACTOR FEAR OF CHANGES Why we need Continuous Integration in our projects # CONTINUOUS IMPROVEMENTS
  50. EPAM Systems 59 CI SERVERS CONTINUOUS IMPROVEMENTS # BUILDS HISTORY

    AND VISIBILITY LAST GREEN/RED STATUS 1 2 3 PARALLEL BUILDS 4 MULTIPLE ENVIRONMENTS 5 ROLLBACK JENKINS TEAMCITY GRUNT CONCRETE STRIDER CI TOOLS &1+6;1745'.( And badges: http://shields.io/ Continuous Integration Servers — Single source of truth
  51. EPAM Systems 60 HOSTED SERVICES CONTINUOUS IMPROVEMENTS # CI AS

    A SERVICE INTEGRATED WITH GITHUB AND BITBUCKET 1 2 3 BUILD ON SCHEDULE 4 DEPLOY GREEN 5 REPORTS AND STATUS DASHBOARD circle.yml .travis.yml Options TRAVIS CI CODESHIP CIRCLE CI BAMBOO MAGNUM CI SEMAPHORE GONDOR RULTOR Services [ON Continuous Integration Servers —
  52. EPAM Systems 62 DEPLOY PLATFORMS SERVER # CUSTOMIZABLE STACK AND

    ENVIRONMENT NEED FOR (DEV) OPS DATA: COMPANY POLICY OWN SERVICES TO USE d e f g g / NGINX APACHE TOMCAT Ñ SSH BASH 7SYSLOG + FILES TMP CACHE , SQL NOSQL KEY:VAL (SERVICES DAEMONS CRON W IPTABLES mSENDMAIL w .QQMUIQQF CHVGTC[GCTQTVYQ 1 2 3 4 5 INFRASTRUCTURE +CC5#/#<10&+)+6#.1%'#0 QT4#%-52#%' K 0QVJKPIURGEKCN Server as a Platform
  53. EPAM Systems - 63 DEPLOY PLATFORMS PaaS # CLI DEPLOYS

    CONFIGURATION DASHBOARD 1 2 3 BUILDING BLOCKS (DISK SPACE, DB, MONITORING, ADDONS) 4 MONITORING 5 SLA AND NODES MANAGEMENT NODEJITSU HEROKU CLOUD FOUNDRY JOYENT ENGINE YARD Services #NN[QWPGGFVQTWP[QWTCRR  7RFCVGU5GEWTKV[Ŏ Platform as a Service
  54. EPAM Systems 64 DEPLOY PLATFORMS DOCKER # YOUR OWN PAAS

    OPEN SOURCE 1 2 3 EASY SCALE 4 MANY READY TO USE STACKS 5 EASY TO MIGRATE DEIS FLYNN TSURU OCTOHOST TOOLS 1RGP5QWTEG2CC5 YKVJ$NCEMLCEM #RRNKECVKQP 2NCVHQTO%QPVCKPGT Containerization platform — Docker
  55. EPAM Systems 66 MONITORING EVENTS LOGS # FORMAT IS IMPORTANT

    AGGREGATION AND ROTATION 1 2 3 SEARCH 4 ALERTS AND NOTIFICATIONS 5 WATCHERS ITGRCEMUQTVQTŎ ŎWUGNQIUVCUJ Logs management
  56. EPAM Systems 67 MONITORING EVENTS LOGS ROTATION # &CVG .GXGN

    2014/10/02 13:58:32 [error] 925#0: *14 connect() failed (111: Connection refused) while… 'XGPV SIZE DATE 10Mb LOGS Sept 10Mb Oct 07 Logs rotation
  57. EPAM Systems 68 MONITORING EVENTS LOGGING SERVICES # PAPERTAIL LOGENTRIES

    SUMOLOGIC BOUNDARY SENTRY GRAYLOG2 ERRBIT Services &QKV[QWTUGNH APP DB SRV SYS - ELASTIC SEARCH n 8 ! 5QNWVKQPU &CVCUQWTEGU Logs management — as a Service
  58. EPAM Systems 69 MONITORING Errors # CONTEXT IS IMPORTANT GROUPING

    REPRODUCE FAIL GRACEFULLY HISTORY … RAYGUN TRACKJS AIRBRAKE QBAKA MUSCULA JSERRLOG TRACEKIT Services 1 2 3 4 5 5VCEMVTCEGQT)6(1 &GHGEVKPRTQFWEVKQP! 9QTMUQPO[OCEJKPG &QKV[QWTUGNH Errors management — as a Service
  59. EPAM Systems 70 MONITORING METRICS Health Page # SERVICE #1

    (UP) Ã SERVICE #3 (10k users / s) Ã SERVICE #1 (10k ops / s) Ã Â FREE SPACE (~2Gb) ;QWDGVVGTFQUQOGVJKPIYKVJKV HARDWARE SERVICES AND API 1 2 3 TRANSPORTS 4 PERFORMANCE 5 UPTIME Health page — system status overview
  60. 72 SUMMARY EPAM Systems . DEVELOPMENT WORKFLOW SOURCE MANAGEMENT DEPLOY

    PLATFORMS MONITORING METRICS Automate Tests Small features BUILD PIPELINE CONTINUOUS INTEGRATION $ % & " 7 # +VņUGCU[KVUVCTV
  61. 73 SUMMARY EPAM Systems . DEVELOPMENT WORKFLOW SOURCE MANAGEMENT DEPLOY

    PLATFORMS MONITORING METRICS Automate Tests Small features Code style Commits convention 12 factor app BUILD PIPELINE CONTINUOUS INTEGRATION $ % & " 7 # +VņUHTGGHQT[QWTVGCO
  62. 74 SUMMARY EPAM Systems . DEVELOPMENT WORKFLOW SOURCE MANAGEMENT DEPLOY

    PLATFORMS MONITORING METRICS Automate Tests Small features Code style Commits convention 12 factor app Build Blocks Keep it fast Run cycles BUILD PIPELINE CONTINUOUS INTEGRATION $ % & " 7 # &QYPNQCFCPFKPVGITCVG
  63. 75 SUMMARY EPAM Systems . DEVELOPMENT WORKFLOW SOURCE MANAGEMENT DEPLOY

    PLATFORMS MONITORING METRICS Automate Tests Small features Code style Commits convention 12 factor app Build Blocks Keep it fast Run cycles Fail early Fast feedback Step by Step BUILD PIPELINE CONTINUOUS INTEGRATION $ % & " 7 # 1PGUOCNNUVGRHQT[QW IKCPVNGCRHQT[QWT2TQLGEV
  64. 76 SUMMARY EPAM Systems . DEVELOPMENT WORKFLOW SOURCE MANAGEMENT DEPLOY

    PLATFORMS MONITORING METRICS Automate Tests Small features Code style Commits convention 12 factor app Build Blocks Keep it fast Run cycles Fail early Fast feedback Step by Step BUILD PIPELINE CONTINUOUS INTEGRATION DevOps Production alike …as a Service $ % & " 7 # +PVTQFWEGKV[QWTUGNH
  65. 77 SUMMARY EPAM Systems . DEVELOPMENT WORKFLOW SOURCE MANAGEMENT DEPLOY

    PLATFORMS MONITORING METRICS Automate Tests Small features Code style Commits convention 12 factor app Build Blocks Keep it fast Run cycles Fail early Fast feedback Step by Step BUILD PIPELINE CONTINUOUS INTEGRATION DevOps Production alike …as a Service Metrics Checklist $ % & " 7 # Logs rotation 5GG#EV2TGXGPV
  66. 78 SUMMARY EPAM Systems . DEVELOPMENT WORKFLOW SOURCE MANAGEMENT DEPLOY

    PLATFORMS MONITORING METRICS Automate Tests Small features Code style Commits convention 12 factor app Build Blocks Keep it fast Run cycles Fail early Fast feedback Step by Step BUILD PIPELINE CONTINUOUS INTEGRATION DevOps Production alike …as a Service Metrics Checklist $ % & " 7 # Logs rotation 6T[KVVQFC[