1.First
of all,what is CI/CD?
CI-Continuous Integration (CI) is a collaboration between
development engineers through automated testing, validation, and feedback to
ensure that the code contributed by developers with different functions is kept
in sync. For example, the development team puts their code base on Gitlab, and
then each developer has a copy of the development test locally, and ultimately we want to integrate each developer's code
snippet into the master branch. Before that, we need to create a test case
guarantee that the program can not only run in a single step, but also run
according to the logic of the main branch without affecting other modules. In a
continuously integrated scenario, developers can constantly pull test cases to
verify that the program is working, that it is compatible with the main line,
and that there are no significant changes to release.
CD-Continuous Deployment (Continuous Deployment), or CD, is
the deployment of programs that are continuously integrated to the environment,
which can be multiple scenarios for a particular project,
such as the development environment (Dev Environment), Test Environment,
Production Environment, and more. Of course, it also includes scenarios such as
high availability, load balancing, and so on in each environment.
CI/CD did not appear only to conform to the idea that
software development and operations should work together, but to be able to
publish high-quality software more frequently and to achieve this goal by
facilitating communication and collaboration.
2.CI/CD
Practice in SilverLining
At SilverLining, tools for
continuous integration and continuous deployment are Gitlab Source Manager,
Atlassian Jira and Jenkins.Let's take the development
of the ProtecEasy project as an example, starting
with developing Leader to break down a complex function into sub-tasks. And in
Jira input, assigned to the appropriate engineer. After the development
engineer completes a function, he needs to perform local unit tests. The unit
test is passed to indicate that the local development is complete.Next,
we need to pull some integration requirements that are designed to A set of
test cases before the local snippet is incorporated into the bus, including
installation, test case execution, semantic analysis, unit testing, and
comments (developed in collaboration with other members of the project team,
must be compatible with the review function).
When the code is incorporated into Master Branch, automated
integration testing is triggered on Jenkins. We will continue to test the
installation, build, create defects, create versions, and push to the 'commit'
phase, which is a watershed for continuous integration and ongoing deployment.
Then, as the deployment phase, Jenkins gets the
installation package from the 'Submit' library and continues to load-balanced
testing, concurrent connection testing, application installation, validation,
and submission. In a load-balanced environment, there are testers, and even end
users, who are submitted into production after completing tests for all
function points.
3.Aws
Public Cloud Introduction of CI/CD Practice
SilverLining found the aws cloud is a useful
assistant for the implementation of CI/CD practice. Prior to accepting SilverLining Product Director Offer, I personally worked on
many different software development teams in China and the United States, including
Silicon Valley unicorn start-ups, large e-commerce companies in the United
States, and large Chinese state-owned enterprises. I found that the difficulty
in practicing CI/CD in many organizations was how to deploy application and
test code to the infrastructure because teams needed to provision and deploy
infrastructure, requiring network engineers, IT operations and system
administrators to understand the technology, combine software and hardware, and
build networks. Create virtual machines and give them to developers or
operations personnel to configure them, and then have others deploy the
application on it. This process needs to be handled by multiple people and
relies on a lot of labor, i.e. unstable, time-consuming, and additional costs.
While SilverLining as aws premier partner,all of our services including CI/CD are based on aws implementation. We found that we had a CI/CD server
configured on aws and shut down after 15 minutes of
operation, for which you only had to pay a 15-minute fee. Compared with the
traditional methods described above, it is flexible, efficient and
cost-effective. There are also limitations to testing infrastructure code using
traditional physical hardware because not everyone can access it. The aws cloud popularizes ci/CD practices and translates their
benefits into enterprise operating costs.