Continuous Integration, Continuous Delivery, Conti

2019-07-06 01:18发布

问题:

I am using Visual Studio, TFS 2015, Visual Studio Team Services, and Azure/ Local or Remote IIS for achieving Continuous Integration. I am reading from below stackoverflow Continuous Integration vs. Continuous Delivery vs. Continuous Deployment

  1. Me / my team check in the code to TFS repository and configured automated build each time I check in the code; is it Continuous Integration?
  2. I have configured the build. It runs nuget package manager, runs Tests, performs Build and drops the built assembly to specified location. Is it Continuous Delivery?
  3. I have configured Deployment to Azure/IIS. Also I have enabled Continuous Integration. So whenever now me/my team checks in the code, it runs build and deploys to the production/stating server. Is it Continuous Deployment?
  4. When I perform all of the above in one single click, is it called DevOps?
  5. Where the role of Manual Testing using Selenium/MS Build comes into the picture here?

Please add inputs, let me know if I am going wrong anywhere.

回答1:

  1. Yes. Accurately speaking, it is only a form of CI. In TFS, this is called CI build. You can achieved this by select CI trigger of the build definition.
  2. Yes. It's also a way of implementation with Continuous Delivery.
  3. Yes.Continuous Deployment is described as the logical next step after continuous delivery: Automatically deploy the product into production whenever it passes QA.
  4. No.Continuous delivery and DevOps are similar in their meanings and are often conflated, but they are two different concepts. DevOps has a broader scope, and centers around the cultural change, specifically the collaboration of the various teams involved in software delivery (developers, operations, quality assurance, management, etc.), as well as automating the processes in software delivery. Continuous Delivery, on the other hand, is an approach to automate the delivery aspect, and focuses on bringing together different processes and executing them more quickly and more frequently. They have common end goals and are often used in conjunction to achieve them. DevOps and Continuous Delivery share a background in agile methods and lean thinking: small and quick changes with focused value to the end customer. They are well communicated and collaborated internally, thus helping achieve quick time to market, with reduced risk.

  5. Manual testing is a time-consuming and labor-intensive process to ensure a piece of software does what it’s supposed to, no matter how fast it was developed. Teams sometimes depend too much on the unit testing and ignore automation and acceptance testing. CI also has the some risks and challenges. This is just one of them.