By Ganna Shargorodska and Stanislav Polchanikov
With hundreds of projects in dozens of industries, EPAM Systems can boast expertise and excellence in lots of different technologies. E-commerce, Big Data, content management, digital asset management - these are but a few areas where EPAM can be trusted to deliver a unique and reliable solution.
However, no matter which product we develop, in which industry and for which customer, it all boils down to the same requirements - code quality, timely delivery, reliable performance. With lots of project teams, development platforms and tools, it was critical to come up with a unified approach to code quality and continuous delivery to ensure top-notch end product. This requirement evolved into a whole dedicated project, EngX, which is committed to help development projects to establish the most effective, productive and optimal engineering process. The EngX team is in constant search and analysis of engineering tools and best practices and they are ready to share their expertise and knowledge with the rest of the EPAM Community.
Naturally, all good things developed in EPAM eventually find their way to EPAM Cloud, because it is the easiest way to make a service or tool available for everyone. The EngX project also offered to combine their experience and know-how with Cloud technology, and soon EPAM Cloud started developing its first CI/CD service - Jenkins as a Service.
We continued adding services one by one. Jenkins, the core continuous integration service, was followed by Gerrit for code review and SonarQube for code quality inspection. And now, the final piece of the puzzle has fallen into place - Artifactory as a Service was released in February, 2017, completing the CI/CD package which can be deployed in Cloud.
Of course, to create a fully functional CI/CD environment, it is not enough to have four standalone services. The key point was to enable their automatic integration, so that all flows work smoothly and require minimum manual interventions.
The Jenkins-Gerrit and Jenkins-SonarQube integration is automatic. As soon as you start Jenkins and Gerrit services for your project, all corresponding jobs are created and data exchange is established properly. Similar processes occur when Jenkins and SonarQube are started.
However, when you start all three services simultaneously, there should be some manual setup, as Gerrit and SonarQube are not integrated automatically. You will need to install a special plugin, create a dedicated job and make certain configuration settings. You can find detailed instructions on Gerrit-SonarQube integration in the attachment.
After you have completed all integration steps, you will have a functional CI/CD environment with code review and code quality inspection tools. This is a solid platform which can help your project to achieve better code quality and stable and timely delivery.
However, you can make the most of Cloud CI/CD by using Artifactory as a Service. By activating the service, you are getting a JFrog Artifactory server together with a storage for your artifact collections and metadata.
Currently, Artifactory is not immediately integrated with your Jenkins, this also requires some manual configuration - installing a plugin and setting up its parameters for Artifactory to be properly connected to Jenkins. See the attachment for details on integrating Artifactory with Jenkins.
As the result, you will have a complete Cloud-based CI/CD environment which requires minimal manual configuration. All required virtual resources will be created and all components will be deployed automatically.