-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDevOps
More file actions
128 lines (70 loc) · 4.21 KB
/
DevOps
File metadata and controls
128 lines (70 loc) · 4.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
DevOps:
- Requirement analysis
- Design
- Coding
- Build
- QA
- Deploy
Dev + Ops
End to End Automation
- Using Continuous integration and Continuous Deployment Pipelines
- Pipelines are stages that performs set of tasks for build and deploy
CI Jenkins
Code <------------------------------> Deployable Artifact
- Develops build a software with conyinuous integration pipeines, Deployable artifact is generated and pushed to artifactory, which is universal artifact repository.
- Deveps take the depoyable artifact and deploy with continuous deployment pipelines.
Continuous Integration:
- Developer works n a local dev evnironment, the SCM system is GitHub/Bit Bucket, where source code is stored.
- Developer commits and pushes code to GitHub where it auto triggers the CI Pipeline, the code is then downloaded from GitHub.
_ It is build using Maven (POM.xml), MS BUild or Gradle etc ... based on technology you use.
- unit tests are run based on the technlogy like JUnit or NUnit etc..
- The Binaries are Packaged :
eg: Jar, War, Ear, Zip, Msi
- And the package is published to artifactory management system which is Jfrog artifactory or Nexus etc...
- Code scan is run using SonarQube pr ADSF scan.
- Optionally there is a trigger to Deploy to dev.
- The CI pipeline invokes the Continuous Deployment Pipeline and the artifact is deployed to the Linux or Windows Target Server.
Continuous Deployment:
- In this case this is more of DevOps operations, DevOps operations team writes the automation code.
- They can operate in the local Dev Environment or IDE of their choice.
- They stil have to work with the Source Code Managemnent System, which is GitHub and they store the Automatin code + the Continuous delivery meta files.
- When a DevOps engineer commits and pushes code to GitHub auto triggers Continuous Deployment pipeline, Which is combination of Jenkins and Maven POM.xml for Java projects.
- The Deployment happens through the Ansible Tower.
- The first stp is ready artifact from Jfrog.
- Now you need to move the artifacts from Dev to next environment.
- We have a concept of Gating, where an approver used to approve the movement of Artifact from Dev to Higher Stages.
- Once the approval is done the artifact is deployed to any LLE (Lower Level Environments) through Ansible, functional tests can be run against the artifact.
- After LLE the artifact can be moved to production through a gated approval.
Overall flow for Jenkins:
- Prebuild
- Build
- Post Build
- Approver once again approves the artifact to move to Production.
- Deployment happens to production using Ansible.
------- DevOps --------
- Maximize the time spent colaborating with the business on Ideas.
- Code/Test/Deploy is faster using Agile Methdolagy.
- Code and solution can always be validated and automated.
- Constantly able to build out new business features frequently.
- Features / Code are always "Production ready".
Continuous Integration:
- It's a software development practice, that reqquires developers to integrate code into a shared repository several times a day.
- Each check-in is then verified by an automated build aloowing teams to detect problems early.
Continuous Delivery:
- Ability to release the code to production at anytime.
Continuous Deployment:
- It is a software development practice in which every code change goes through the entire pipeline and is put into production automatically, resulting in many production deployments everyday.
Artifacts:
- are the result of a single build and are usually a set of ID's or files to represent a machine image.
- Every builder produces a single artifact, and a build is a single task that eventually produces an image.
################## Some of the popular Tools We Use #########################
- GIT : AS VERSION CONTROL
- GITHUB : AS SOURCE CONTROL
- JENKINS : CONTINUOUS INTEGRATION
- MAVEN : AS BUILD TOOL
- ANSIBLE, CHEF, PUPPET : AS CONFIGURATION MANAGEMENT TOOLS
- NEXUS AND JFROG ARTIFACTORY : FOR STORING THE ARTIFACTS.
- JIRA : FOR TICKETING TOOL AND BUG ISSUE TRACKING
- NAGIOS : AS MONITORING TOOL
- Vagrant : Provisioning Tool
############################################################################