Application Deployment

         By Shrikant Lokhande

             Exclusive For SBS.

 © 2012 Shrikant Lokhande All rights reserved.
1. Proper skeleton using Capistrano remote deployment.

     Directory Structure as follows:
     myapp/releases
           |_ 20081019001122
             20081019001123
      myapp/current -> releases/20081019001122 # Sym link
      current.
      myapp/shared
               |_ images
           config
                 |_ config.php
      myapp/system
                 |_maintenance.html
2. Proper Permission.
   File's and Folder's
3. Backend process

Configuration And Management.
4. SEO optimization.

     Check which URLs feeds are
  submitted to webmaster.

http://devgrow.com/quick-seo-tip-set-
preferred-domain-in-google-webmaster-tools/
5. Source code under Git
    (Version Control).

    Maintained Branches as per
    release.

http://philsturgeon.co.uk/blog/2010/
02/Deploying-websites-with-Git
6. Source code should be Clean.
(Do not push any unused file/folder's in
that)
7. Rewrite Rules / URL's
8. Should be use oops Language's like:


  Python, Ruby, Jruby, Java for
  Frontend and Backend for
application scalability.
9. Always use and work on
   cutting edge technology.
10. If using Check
        Framework/API/Library/Plugins
        versions for Application.
11. Simple and quick
setup.
12. Check Efficiency and
        Scalability.
   # NewRelic ?

http://newrelic.com/php
13. Stress testing with using
   testing tools
 Like: Apache benchmark
(ab)
14. Check the performance
tool. i.e. yslow and firebug.

http://developer.yahoo.com/pe
rformance/rules.html
15. Images should lightweight for
serving. Create in .PNG format from
designer.

http://www.codinghorror.com/blog/200
7/03/getting-the-most-out-of-png.html
16.CDN setup and update DNS records for
   serving only static content.
http://www.codinghorror.com/blog/2007/03/using-
amazon-s3-as-an-image-hosting-service.html
17. Exception notification for
    Application.
18. No hard coding please.
19. Bug/Testing resolve
dependency.
20. Error Pages. ( If the links
broken)
      use 404 for not found.
      if break URLS redirect to
home
      path.
21. Only one DB and SMTP config
file
     for each application.

Do not add DB connection and SMTP
 in any .php file.
22. We all should know and
follow
     the Agile Development.

http://en.wikipedia.org/wiki/Agile
_software_development
23. After production deployment will
not
    change any things manually.

       If we found it should to update it
will
       go in next release.
24. Enable Error Logs and Access
Logs
    for Application
25. Add SSL for site if there is any
   account activity done.
26. Understanding of software
    designing.
27. Good in estimation.
28. Involved in code review and
check coding stranded. With PM,
Dev, Operation Team.
29. Contribution towards
    performance, stability and
operation
    of the app
30. Strategy:
    Start
       1. create revision and functionality for the
release.
       2. List the changes and To do's in revision.
       3. Updates on local/staging
       4. Testing and Bug fix.
       5. Push to production.
     End.
31. Production deploy only on
weekdays Tuesday or Wednesday, so
everyone in office.
 Starting Time: 10:00 Am
 End Time : 5:00 PM #After that
will stop deployment.
Planning2
 Shrikant Lokhande
Proper Planning and discussion.
  All should be on same page.
If site down should show
Maintenance page on website.
Continuous Integration and Proper
  development and deployment
Do major services optimization.

  Httpd, mysql, if any other.
Database side optimization.
    Do plan which database is
   suitable for our application.
                  e.g.
pgsql,nosql,mongodb,mysql,percona,tok
              yo cabinet
Database Slow query optimization.
    Make it to faster to them.
Master-master, Master-slave, Multi
      master environment.
Mail server configuration.
    All set with mail server
        prospective.
Work on critical task.
Proper server management by server
 admin only. There will no any kind
     of access for developers.
Backup and Restoration plan and
        management.
      AWS S3, NFS. Volume,
   Snapshot, Backup Directory.
The good comes not from the
code or the features,
but process standardization.

Application depolyment