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

Manage a Large Enterprise Application - DevOps ...

Avatar for tcc tcc
December 15, 2011
260

Manage a Large Enterprise Application - DevOps Case Study (Draft)

use python(fabric, mercurial) to solve mass customization and continuous development

Avatar for tcc

tcc

December 15, 2011

Transcript

  1. Manage a Large Enterprise Application -- DevOps Case Study @tcc

    PyHUG 2011/12/21 Wednesday, December 21, 2011
  2. Ent App The applications used within organization, corporation, government. ex.

    Accounting, MRP, HR, ... ERP; CRM, PM, POS, E-Commerce, CMS/DM, SCM, ... Wednesday, December 21, 2011
  3. ‘Large’ means ... Features Users Customers (vendor's view) Size (developer's

    view) ... 261MB (ref. Android source 10GB) Wednesday, December 21, 2011
  4. Try to solve ... Mass customization Continuous development vendor branch

    (csv, svn) customized block (MQ) adv. branch (gitflow, TopGIT) Wednesday, December 21, 2011
  5. DevOps Continuous deployment ... movable? cloud? Functional: Development + QA

    + Operations Bird's-eye view: Biz ← agile → Development ← devops → Operations Wednesday, December 21, 2011
  6. Results: OFBiz Go A Shell Script(OS dependent): App Bootstrap A

    Python Script(Fabric) + MQ: Customized Code Management Wednesday, December 21, 2011
  7. App Bootstrap Past: step-by-step manual, tutorial video, or VM image,

    ... Package management: Windows=exe, Ubuntu=apt, OSX=macports ... JDK, python, hg, svn, ... Download zip/exe, customized parts (URL) Setup virtualenv System environment variables, and others ... Wednesday, December 21, 2011
  8. Fabric a .py file ... fabfile.py uniform cmds and params

    manage outputs DSL-like log @todo "Fabric is a Python (2.5 or higher) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks." http://fabfile.org Wednesday, December 21, 2011
  9. Customized Code (cCode) Management Trunk(Hg's default) → Working source MQ

    → cCode (diff) MQ Trunk Wednesday, December 21, 2011
  10. Directory Layout major 3 repositories svn/ ... upstream hg/ ...

    working MQ/ ... cCode foo svn hg .hg/patches f fab fabfile.py (ofbiz) (default) (MQ, customized) (D/L zip, files) (virtualenv) (Fabric) bootstrap.sh Wednesday, December 21, 2011
  11. Link 3 repositories $ fab/bin/activate $ fab init $ fab

    mqpull http://blog.tcchou.org/2011/04/blog-post.html Wednesday, December 21, 2011
  12. Comparison: Git Flow MQ vs. braches one block or names

    partial clones size does matter http://nvie.com/posts/a-successful-git-branching-model/ Wednesday, December 21, 2011
  13. Case: Production → Development $ hg qnew -m "minor fixes"

    ↵ XX_fixed_on_production.diff $ hg commit --mq -A ↵ -m "minor fixes" $ hg push --mq -b hot_fixes MQ Trunk Wednesday, December 21, 2011
  14. Summary Dev + Ops → ofbiz-go/ , ofbiz-mq/ User Fits

    easy deployment ... bootstrap a upstream source needs customization ... MQ simplify operations ... Fabric $ bootstrap $ fab/bin/activate $ fab init Wednesday, December 21, 2011