4. What DevOps is?
• combination of development
and operations
• stresses communication,
collaboration and integration
between software developer
and information
technology(IT) professional.
14. What is Jenkins
• Open Source
• Continuous Integration Software
• Web Based Java Tool
• Highly Extensible
15. Build Process Flow with Jenkins
Dev
Jenkins
( Build Server)
SVN Check Out
Launch MsBuild
Compile
Unit Test
Packaging
Commit
Code
SVN
16. What can Jenkins do?
• Automating builds
• Deploys code to multiple environments
• Notify stakeholder of build status
• Generate test report
• Integrate with version control system
• User Management
17. Why Jenkins?
• Highly Configurable
• Supported hundreds of plugins
• Easy to setup
• A very active open source community
• FREE
Improvement in 2 ways – reduce rework and overhead.
Rework is defined as revisiting a work item, after it is considered resolved and has been deployed to the production environment.
Developer are paid for writing code.
See if a developer now has to spend hours deploying software to a Dev environment or writing instruction on how the QA team can deploy software to a QA environment, in my opinion that is overhead.
If all these can be reducing by automation then we are improving a software delivery process.
Play the vedio
development environment is not identical to the production environment.
The company may keep growing, for example company may continue launch new products, new features, more functionalities or customer are consuming more on the company products. The number of servers is increased. This may cause some challenges to the employees who manage it. And slowly it will become the bottle necks.
Imagine, in our company we have 5 environments for each of our 2 products. Before every release, every environment need to be tested before proceed the deployment to the production. All these are the repeatable process or work that we can simplify it by automation. Without the automation, all the manual work is time consuming and waste of resources. some more is not guarantee the work of quality.
What is the longest time that you took in a complex deployment? 1 hour? 2 hour? 3 hours? Or the whole day? In our company, deployment usually involved more than 20 servers. And we are able to complete the deployment over all 20 servers in less than one hour.
Continuous Integration is a practice for DevOps, a key component of agile practices.
(CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.
Because of the integration so frequently, there is significantly less back-tracking to discover where things went wrong, so you can spend more time building features.
by increasing the frequency of software delivery through automated deployment processes across development, test and production.
by automating manual tasks, eliminating wait-time and rework.
Jenkins is one of the tool that we are using to build our automation tasks.
Start from developers check in new or modified code into SVN
SVN is the source control management software that use to manage the code check in
After that the Jenkins will be checking with SVN, is there any changes code that required to launch the build?
Yes, jenkins will checkout all the code and then Launch MsBuild Command.
MsBuild script is that v putting the command like what application are we going to build, or which server that we going to deploy.
After finished the build, Jenkins will produce the code compilation, Unit Test and come our the final packaging.
This final packaging is what we use to deploy it to the different environment.