简体   繁体   中英

Understanding continuous deployment

I am perplexed by the idea of continuous deployment flow. I am trying to understanding this so I might miss/mix lot of things so pardon me for that :

I have a flow like this :

a) Deployment (First time)

  • Build a package out of SCM
  • SSH into cloud instance
  • Setup LAMP
  • Setup Application directories ,create symlinks ,run db migrations etc ...
  • Run apache/mysql -done

b) Re-Deployment (Second time)

Now the problem is how we will patch the changes we have made since previous deployment. Lets say we have DB changes as well as Source code changes or bug fixes . Some of question I have in mind is how to

  • How to remember/store each deployment configs (exact configs we ran first time ) (Db password, host name,ip address and different configuration choices we made related to each deployment if we have different/multiple deployments servers configured )
  • Lets say our package build was based on svn/git export so we cannot use svn/git update In that case how to patch changes or what is best practice ?
  • We might have static files accumulated by application eg attachments/documents since last time How to handle those static contents , which are part of the application ?
  • Since I have db under migrations tool(liquibase) so pushing changes to server is not hard . But what is best flow (eg take backup ...)

These questions stems from my ignorance about these tools and technologies and not having familiarity with Continuous Integration/Delivery/Deployment (if that is all about).

You might ask what I have done so far . My current deployment tools include bash+perl+liquibase. Each time we have a change we have to build complete build package and run the same steps. The problem is

  • Its not completely automatic
  • We have to remember deployment configs for each instance,
  • Fetch static content from old deployment directory,
  • Use timestamped symlinks

My current adventure is to migration all my build/deployment steps to Phing . I have already seen so it does not address my questions in details.

  1. For automating configurations check out puppet
  2. Have your database scheme and sample data under source control, deploy it like real code!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM