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

Modern Web Applications Infrastructure

Igor Alpert
October 11, 2014

Modern Web Applications Infrastructure

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

https://www.youtube.com/watch?v=S_IT-v2VqTA

Igor Alpert

October 11, 2014
Tweet

More Decks by Igor Alpert

Other Decks in Programming

Transcript

  1. 13 Application 0.5 $ 0.8 1.0 ! Dev Test Prod

    & % &GXU3#5WRRQTV%NKGPV EPAM Systems
  2. 14 Application 0.5 $ 0.8 1.0 ! Dev Test Prod

    APP DB SV & % ' #RR5GTXGT EPAM Systems
  3. DB DB DB DB ' ' ' ' 15 Application

    $ ! & % " 6QPUQHUGTXGTU CPF&CVC$CUGU EPAM Systems .QCFDCNCPEGT
  4. 16 Application $ ! & % " 7 Errors Logs

    Metrics 7UGHWNKPHQTOCVKQPNKXGUJGTG EPAM Systems
  5. 17 Agenda ! $ DEVELOPMENT
 WORKFLOW % SOURCE
 MANAGEMENT &

    BUILD
 PIPELINE " DEPLOY PLATFORMS 7 MONITORING
 METRICS CONTINUOUS INTEGRATION # EPAM Systems
  6. EPAM Systems 19 DEVELOPMENT WORKFLOW $ DEV $ ( Managers

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

    ) QA #NYC[UJCXGUQOGňVKP[ʼnEJCPIG 6JG[YCPVUVCDKNKV[ 6JG[YCPVVQEQFG VQTGSWKTGOGPVUCPFUVQTKGU #UC7UGT+YCPVŎ -PQYPDWIU6QQOWEJVKOGVQFQHWNNTGITGUUKQP DGVVGTVQWUGRTGXKQWUňUVCDNGʼnXGTUKQP 0GYHGCVWTGU6JG[YCPVVQIQNFGPRNCVGVJGKTEQFG 6JG[YCPVVQTGFWEGVGEJPKECNFGRV Support % 6JG[YCPVUKORNKEKV[ 0QOQTGUWFFGPRNCVHQTO EJCPIGU
  8. EPAM Systems 21 DEVELOPMENT WORKFLOW $ ( Managers ) QA

    DEV $ #EVYKVJ+PVGITKV[UJCTGFIQCNU Support %
  9. EPAM Systems 22 DEVELOPMENT WORKFLOW $ ( DESIGN ) TESTING

    & BUILD, DEPLOY a BUG FIX ' LAUNCH DEVELOP $ 2-4 WEEKS ITERATION
  10. EPAM Systems 23 DEVELOPMENT WORKFLOW #WVQOCVGFVGUVU #WVQOCVGFDWKNF %QNNCDQTCVKXGFGXGNQROGPV 2NCPCPF&GUKIP 9TKVGCUOWEJHCKNKPIVGUVUCURQUUKDNGVQ

    EQXGTTGSWKTGOGPVU 'CEJUQWTEGEJCPIGVTKIIGTUYJQNG DWKNFRKRGNKPGVQTWP %QFGHGCVWTGUYKVJVGUVKPOKPF 6JKPMJQY[QWTHGCVWTGYKNNDG KORNGOGPVGFCPFKPVGITCVGFYKVJ QVJGTHGCVWTGU & ( * $ % +PVGITCVKQP 4GCNVKOGOQPKVQTKPICPFHGGFDCEM UP TO 1 DAY ITERATION $
  11. 24 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. … !
  12. EPAM Systems 25 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
  13. EPAM Systems 26 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/
  14. EPAM Systems 27 DEPENDENCY MANAGEMENT $ PRCE NGINX OPENSSL MAKEDEPEND

    PKG-CONFIG GIT GIT-FLOW brew install git-flow brew install nginx
  15. EPAM Systems 28 DEPENDENCY MANAGEMENT $ NVM APP1 Node 0.11x

    NVM APP2 Node 0.10.31 5VKNNVJGUCOGRTQLGEV
  16. EPAM Systems 29 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
  17. EPAM Systems 30 DEPENDENCY MANAGEMENT $ NPM BOWER manager install

    "dependencies": { "<name>": "<version>", "<name>": "<folder>", "<name>": "<package>" }, "devDependencies": { "<test-framework-name>": "<version>" } "dependencies": { "<name>": "<version>", "<name>": "<folder>", "<name>": "<package>" }, "devDependencies": { "<test-framework-name>": "<version>" } manager install manager install +PVGTHCEGKUVJGUCOG
  18. EPAM Systems 31 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/
  19. EPAM Systems 32 DEPENDENCY MANAGEMENT $ BOWER LODASH BOWER BACKBONE

    JQUERY UNDERSCORE BOOTSTRAP Packages: bower init bower install npm install -g http://bower.io/ (QTHTQPVGPF
  20. EPAM Systems 34 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
  21. EPAM Systems 35 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
  22. EPAM Systems 36 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
  23. EPAM Systems 37 YEOMAN BUILD PIPELINE ! http://gulpjs.com http://gulpjs.com/plugins/ 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
  24. EPAM Systems 38 BUILD PIPELINE SLUSH https://www.npmjs.org/package/slush BROCCOLI https://www.npmjs.org/package/broccoli http://indigounited.com/automaton/

    AUTOMATION JAM https://github.com/caolan/jam BRUNCH http://brunch.io/ https://github.com/nickjanssen/angus ANGUS !
  25. EPAM Systems 40 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 %QPHNKEVTGUQNXGF
  26. EPAM Systems 41 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
  27. EPAM Systems 42 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?
  28. EPAM Systems 43 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
  29. EPAM Systems 44 SOURCE " BRANCHING MODELS Centralized Gitflow Github

    Feature branch Commit Commit Commit Commit REBASE SQUASH FEATURE BRANCH … REBASE FEATURE FEATURE FEATURE FEATURE UPSTREAM BRANCH
  30. EPAM Systems 45 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
  31. EPAM Systems 46 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
  32. EPAM Systems 48 TECHNICAL DEPT 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 INTEGRATION # 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
  33. EPAM Systems 49 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 AUTO M ATE CONTINUOUS INTEGRATION # 5 TECH BACKLOG .KUVQHVCUMU RTKQTKV[
  34. EPAM Systems 50 CODE STYLE CONTINUOUS INTEGRATION # - 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 
  35. EPAM Systems 51 CONTINUOUS INTEGRATION TESTS # LONG (hours) MEDIUM

    (minutes) FAST (seconds) FEEDBACK TIME UNIT-TESTS UI API TDD (BDD) BETTER CODE UNDERSTANDING 1 2 3 RELIABILITY 4 RELEASE FASTER 5 MOTIVATION FILE SYSTEM DATABASE HEADLESS END-TO-END 5VWDU/QEMU .QECNQPN[ %CPDGTGOQVG 5CHGTTGHCEVQTKPI SERVICES 2GTHQTOCPEGOGVTKEU 4GF)TGGP4GHCEVQT (KTUVHCKNGF SMOKE TESTS
  36. EPAM Systems 52 CONTINUOUS INTEGRATION FIXTURES # module.exports.Permission = login:

    name: 'login' title: 'Login Page' ! home: name: 'home' title: 'Home Page' ! student: name: 'student' title: 'Student Section' ! moderator: name: 'moderator' title: 'Admin Section' module.exports.Role = guest: name: 'Guest' permissions: [ Permissions.login Permissions.home ] ! user: name: 'User' permissions: [ Permissions.home Permissions.student ] ! admin: name: 'Admin' permissions: [ Permissions.home Permissions.student Permissions.moderator ] Permission.coffee Role.coffee db.Role Clean Role.coffee 6GUVKPI&$TGNCVGFNQIKE
  37. EPAM Systems 53 CONTINUOUS INTEGRATION 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
  38. EPAM Systems 54 CONTINUOUS INTEGRATION DOCUMENTATION 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[
  39. EPAM Systems 55 CONTINUOUS INTEGRATION .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
  40. EPAM Systems 56 CONTINUOUS INTEGRATION IDE # Code Completion and

    Inspection Refactoring, Metrics 1 2 3 Test framework integration 4 Debugger, Frameworks support 5 Source Version control Issue trackers integration CODIO CLOUD9 CODEBOX CODENVY Online IDE 9GD5VQTO
  41. EPAM Systems 57 CI SERVERS CONTINUOUS INTEGRATION # 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/
  42. EPAM Systems 58 HOSTED SERVICES CONTINUOUS INTEGRATION # 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
  43. EPAM Systems 60 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
  44. EPAM Systems % 61 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[Ŏ
  45. EPAM Systems 62 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
  46. EPAM Systems 64 MONITORING EVENTS Logs management # FORMAT IS

    IMPORTANT AGGREGATION AND ROTATION 1 2 3 SEARCH 4 ALERTS AND NOTIFICATIONS 5 WATCHERS ITGRCEMUQTVQTŎ ŎWUGNQIUVCUJ
  47. EPAM Systems 65 MONITORING EVENTS Example # &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
  48. EPAM Systems 66 MONITORING EVENTS Logging services # PAPERTAIL LOGENTRIES

    SUMOLOGIC BOUNDARY SENTRY GRAYLOG2 Services &QKV[QWTUGNH APP DB SRV SYS % ELASTIC SEARCH n 8 ! 5QNWVKQPU &CVCUQWTEGU
  49. EPAM Systems 67 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
  50. EPAM Systems 68 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
  51. 70 SUMMARY EPAM Systems & DEVELOPMENT WORKFLOW SOURCE MANAGEMENT DEPLOY

    PLATFORMS MONITORING METRICS Automate Tests Small features BUILD PIPELINE CONTINUOUS INTEGRATION ' " ! " 7 # +VņUGCU[KVUVCTV
  52. 71 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
  53. 72 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
  54. 73 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
  55. 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 Fail early Fast feedback Step by Step BUILD PIPELINE CONTINUOUS INTEGRATION DevOps Production alike …as a Service ' " ! " 7 # +PVTQFWEGKV[QWTUGNH
  56. 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 DevOps Production alike …as a Service Metrics Checklist ' " ! " 7 # Logs rotation 5GG#EV2TGXGPV
  57. 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 Metrics Checklist ' " ! " 7 # Logs rotation 6T[KVVQFC[