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

Process of development in digital agency AXIOMA...

Avatar for AXIOMA AXIOMA
November 11, 2013

Process of development in digital agency AXIOMA, designing, testing (with continuous integration), code review and projects deployment.

We'll talk about the process of development and deployment of project from receive of specification to release. Our approach to organisation of work with remote team. What kind of branching in Git we use. Behat (BDD) code testing. How not to pay for Github/Travis CI and do code review and merge request on our servers with continuous integration. How to simplify the deployment of changes on live servers with Capifony.

Speaker: Anton Kasperovich is Senior Team Leader at AXIOMA with experience in web-development for over 8 years.

Avatar for AXIOMA

AXIOMA

November 11, 2013

Other Decks in Programming

Transcript

  1. www.axioma.lv Process of development in digital agency AXIOMA: designing, testing,

    code review and deployment Anton Kasperovich, Senior Team Lead четверг, 17 октября 13 г.
  2. www.axioma.lv A few words about us • Technologies: PHP, HTML/CSS,

    JavaScript • Databases: MySQL (MariaDB), PostgreSQL, Oracle Database • Framework: Symfony2 • And more: Redis, Behat/Mink, phpUnit, ElasticSearch, Sphinx, Node.js, Nginx, Varnish, RequireJS, BackboneJS etc... четверг, 17 октября 13 г.
  3. www.axioma.lv Designing • Don't hide from the managers • Spend

    as much time as possible • Communication is important четверг, 17 октября 13 г.
  4. www.axioma.lv ORM Designer 2 • Relationship definition is visible •

    Grouping on modules • Export tables directly in models (MVC) • Makes a smart Diff - applies only real changes четверг, 17 октября 13 г.
  5. www.axioma.lv Development Process • 1 lead on the project •

    Lead is responsible for the stages • Up to 5 persons on project • Do your best to control remote team members четверг, 17 октября 13 г.
  6. www.axioma.lv Scrum? • Select features from backlog to “current” sprint

    before the start of the sprint • Work only on selected features during the sprint • At the end of the sprint customer receives intermediate version of the product with new features • Sprint includes testing четверг, 17 октября 13 г.
  7. www.axioma.lv ISPconfig • Control panel to create access for SSH,

    FTP, MySQL • LAMP from the box • Jailkit? четверг, 17 октября 13 г.
  8. www.axioma.lv OpenVZ • One project = One instance • Full

    root rights to the programmer • No need to limit programmers in access rights четверг, 17 октября 13 г.
  9. www.axioma.lv Git • A separate branch for each ticket (feature)

    • “no git pull” is a problem • DEV branch for “demo”, MASTER branch for “production” четверг, 17 октября 13 г.
  10. www.axioma.lv git-flow Git extensions to provide high-level repository operations for

    Vincent Driessen's branching model. четверг, 17 октября 13 г.
  11. www.axioma.lv git-flow • git flow init • git flow feature

    • git flow release • git flow hotfix • git flow support четверг, 17 октября 13 г.
  12. www.axioma.lv Testing • BDD - Behavior-driven development • Testers write

    “tests” • Separate subdomain for testing of each branch четверг, 17 октября 13 г.
  13. www.axioma.lv Gherkin Gherkin is a Business Readable, Domain Specific Language

    created especially for behavior descriptions. четверг, 17 октября 13 г.
  14. www.axioma.lv gitlab Continuous Integration • Testing every commit (from all

    branches) • We check build statuses on “dev” and “master” branches • Execute any commands before / after (access to shell) четверг, 17 октября 13 г.
  15. www.axioma.lv gitlab GitLab is open source software to collaborate on

    code. Create projects and repositories, manage access and do code reviews. четверг, 17 октября 13 г.
  16. www.axioma.lv LAB Axioma • You can manage your own GIT

    repositories • Use COMPOSER (like RubyGems) • Create a common modules for projects (bundles) • Code Review & Merge Request четверг, 17 октября 13 г.
  17. www.axioma.lv Deploy by Capistrano & Capifony • Running scripts on

    multiple servers • Quick deploy in one command - cap deploy • Ability to store several releases • Automatic roll back in case of unsuccessful build (ability to roll back to the previous release manually) • Share folders or files between releases четверг, 17 октября 13 г.