官术网_书友最值得收藏!

Automate deployment

As you will know, it is easier to write software in small chunks and deploy these new chunks as soon as possible to make sure that they are working. To get there, companies practicing DevOps rely on continuous integration and continuous deployment pipelines.

Whenever a new chunk of code is ready, the continuous integration pipeline kicks off. Through an automated testing system, the new code is run through all the relevant tests available. If the new code shows no obvious regression, the code is considered valid and can be merged to the main code base. At that point, without further involvement from the developer, a new version of the service (or application) that includes those new changes will be created and handed off to a system called a continuous deployment system.

The continuous deployment system will take the new builds and automatically deploy them to the different environments available. Depending on the complexity of the deployment pipeline, this might include a staging environment, an integration environment, and sometimes a preproduction environment but ultimately, if everything goes as planned without any manual intervention, this new build will get deployed to production.

One misunderstood aspect about practicing continuous integration and continuous deployment is that new features don't have to be accessible to users as soon as they are developed. In this paradigm, developers rely heavily on feature flagging and dark launches. Essentially, whenever you develop new code and want to hide it from the end users, you set a flag in your service configuration to describe who gets access to the new feature and how. At the engineering level, by dark launching a new feature that way, you can send production traffic to the service but hide it from the UI to see the impact it has on your database, or on performance, for example. At the product level, you can decide to enable the new feature for only a small percentage of your users to see if the new feature is working correctly and if the users who have access to the new feature are more engaged than the control group, for example.

主站蜘蛛池模板: 喀喇沁旗| 浮梁县| 双城市| 玉山县| 松原市| 潼南县| 同江市| 江达县| 界首市| 临泽县| 东阳市| 宾阳县| 太仆寺旗| 青河县| 寿宁县| 沙河市| 平乐县| 从江县| 怀安县| 罗江县| 商城县| 门源| 富裕县| 三门县| 恩平市| 毕节市| 铜梁县| 清远市| 锦屏县| 永顺县| 石渠县| 扎囊县| 聂荣县| 遵义市| 田阳县| 沂源县| 金昌市| 班玛县| 资兴市| 宜州市| 吉安市|