Jenkins is the way to completely automate your CI/CD workflow

Automate Deployments In An On-prem Data Center

Submitted By Jenkins User Oscar Palacios
Using Jenkins as the backbone of its new platform, these developers were able to automate IIS and .Net Deployments for AutoWeb’s data center.
Organization: Autoweb, http://autoweb.com/[https://www.autoweb.com/]
Industries: Automotive
Programming Languages: Python
Version Control Systems: GitLab
Community Support: Jenkins.io websites & blogs

Windows? Linux? Jenkins automation platform serves both.

Background: For my particular client, Autoweb, the main challenge was to automate deployment on a Window-based environment. While we had done so on Linux environments, this was new for us. 

Goals: Automate deployment process integrating CI/CD.

"I love how flexible and powerful Jenkins is. It has limitless capabilities, and is the perfect choice for an automation platform. "
image— Oscar Palacios, Sr. DevOps Engineer

Solution & Results:  As we had previously used Jenkins Pipelines and Ansible on Linux environments, we concluded it was the best approach to maintain the standard pipeline jobs we already had. So we implemented Ansible on Windows based environments using WinRM to give Ansible control over Windows Servers. All of this was orchestrated by a Linux-based Jenkins Main Server, and a bunch of Windows/Jenkins agents to do the builds and QA tests. 

With all of this in place, we were able to write Jenkins pipelines as we usually do, but for Windows Deployments. Jenkins Pipelines served us very well for defining different stages: 

  1. Source Code Pull 

  2. Build 

  3. Package 

  4. Deploy 

  5. Pool Restart 

  6. Test

  7. Notification 

All of this occurs in a very organized and standardized way, which is easy to replicate within similar projects and also very easy to troubleshoot.

The Jenkins capabilities we relied on for this project included: Jenkins Pipelines, Jenkins Ansible Plugin, Git plugin, and MSBuild Plugin. One key feature we deployed was Jenkins Blue Ocean, since a main requirement was the need for approvals between steps.  Blue Ocean was key to give a pretty decent user interface for project managers and product owners to review and approve any changes or deployments. Jenkins DSL Jobs Rules is also great since it makes it possible to parametrize every job and create jobs on-the-fly in an automated fashion.

I love how flexible and powerful Jenkins is. It has limitless capabilities, and is the perfect choice for an automation platform.  

With Jenkins:

  • deployments are now consistent and repeatable 

  • deployment time decreased from weeks to 8 minutes

  • replication across similar projects is easy

  • standardized deployments can be done under the same scheme within Linux and Windows environments 

  • rollback strategy is now simple to execute