All of my projects up to this point have been solo (I develop single page web applications). I've always used an IDE which automatically uploads changes to a test Amazon EC2 server over SFTP and I simply refresh my browser page to see the changes. Then when Ive got a stable result, I upload the changes to my production EC2 server, and the product is updated.
Recently I started working on a group project, so I needed to make sure we didn't over-write the changes of others, so I changed my workflow:
- Collaborators write code in the IDE
- IDE automatically syncs those files to their local Github storage for our project
- They commit those files to the online Github project
- AWS CodePipeline pulls those commits onto a test AWS Elastic Beanstalk environment
- We can test those changes
- When satisfied we sync the project to our production AWS EB environment.
That seems as complex as I would want my workflow to get.
But when researching deployment solutions, I found this chart showing many more steps in the deployment process:
The AWS marketing material for Code Pipeline demonstrates extensive possibilities in deployment phases, and I feel like I've only scratched the surface, but I can't think of why I would want to have any more steps than I do now. Can someone explain when or why I would want to use these various other steps in deployment of a single page web application?
Obviously I'm not working on a large scale project, but I'm interested in knowing what kinds of projects and situations would require me / my team to use these various aspects of a deployment pipeline.