Continuous delivery and DevOps have been discussed and practiced for many years. The main problem is how to quickly and safely complete a series of activities from development to release, operation and maintenance, and subsequent online monitoring.
Continuous delivery and DevOps encompass many things, such as layered automated testing, pipeline sticking points, Infrastructure as Code, online machine Auto Healing, Auto Scale, and more. But the most important thing is that these activities have a sound tool platform to support them.
The good news is that there is a wide variety of tool platforms to choose from. After counting, there are probably several categories:
Lightweight CI SaaS
Lightweight cI, represented by Travis – CI, has become standard for open source projects. It can provide rich and diverse build environments and flexible build strategies (such as parallel build). Great for running tests, but a little weak in subsequent deployment, operations and maintenance areas.
Standalone CD tool
Jenkins as a representative. Jenkins is a tool that takes Job as its core concept and constantly enriches and arms itself with various plug-ins. In recent years, Jenkins 2.0 (Pipeline as First Class Citizen) and Jenkins X (Cloud Native as First Class Citizen) have been launched.
Jenkins is essentially a flexible process engine with no business concept. Therefore, it is necessary to carry out upper-level encapsulation for many scenarioalized requirements. You can configure one Job and Pipeline by yourself, or call them in batches through API. Jenkins’ ability to scale is strong, but there are limitations to the enterprise scenario.
Cloud native tools
The platform itself is well integrated with the cloud platform. As mentioned earlier, the ability to take advantage of the auto scaling of cloud platforms. In fact, there are many other capabilities that can be leveraged, including machine creation and destruction, operating load balancing, enabling logging and monitoring, and so on.
At present, the most representative stand-alone tool is Spinnaker of Netflix. As it is a foreign product, it has good support for AWS and Google Cloud, but its support for Ali Cloud is still limited.
Enterprise platform
Designed for the corporate scene. General built-in project, application, pipeline and other models, a good match to the organizational structure of the enterprise. It also provides some supporting infrastructure necessary for enterprise r&d, such as Maven private server, NPM private server and so on. Generally speaking, enterprise platforms are scenario-based. For example, Ali Cloud’s one-stop research and development collaborative platform, cloud effect, the mainstream language (Java, Node, Php) construction and mainstream platform (Linux) deployment are very good support. The user basically clicks and selects, and a build-to-release process starts running.
One possible downside of such a platform is the lack of general-purpose capabilities and flexibility compared to products like Jenkins. Many activities need to be carried out under the concept of some model.
So let’s have a chat
What is the size of your organization and what is your role within it
What continuous delivery tool chains are being used and what are the problems
Are you using a cloud platform, and how integrated is your tool chain with the cloud platform?
Do you use cluster management like Kubernetes? How integrated is your toolchain with Kubernetes?
What would your ideal continuous delivery tool chain look like
Participation in the topic wins the gift