2. sysco.no
Challenges
DevOps Culture
• We are using version control
• We have build tool
• Nothing goes without operations approval
Code Quality
• We trust our developers
• We do acceptance test
• We assemble, deliver and than test
Communication
• We are using formal communication channels like e-mail when starting delivery
• Everything has to be signed and approved on paper
• We have formal release forms
Standardization
• We have standard communication tool – email
• We have standard build tool for most of the parts
• We have standard release management process – Word forms
1
5. sysco.no
How to implement DevOps culture?
Raise
awareness
Define
Standard
Tools
Define
agile
processes
Educate
4
6. sysco.no
Raising awareness about importance of
implementing DevOps
DevOps
seminars
DevOps
cost/benefit
matrix
Understanding
implementation
steps
Identify
impediments
5
7. sysco.no
Define Standard Set Of Tools
Standard
version
control tool
Standard
build
Standard
deploy tool
Standard test
tools
Standard
release
management
tool
6
9. sysco.no
Educate
Teach your organization to use tools
and processes that you have defined
Teach your developers to implement
tests
Teach your operations to trust
developers
8
12. sysco.no
Where do we start from?
Test first
• Create mock services
• Create API/Flow tests
• Create Unit Tests
• Implement Code
Pull request,
Code Review
• Use version control system that supports it
• Test as a part of Code Review process
• Do not allow code merge of code that has not been reviewed/tested
Define roles and
responsibilities
• One who writes the test is not the one who implements the code – shared code knowledge
• One can not review his own code
11
13. sysco.no
Implement Build process
Starts
automatically
on version
control
change
Runs unit test
as a part of
the build
Sends builds
to artifact
repository
Generates
build reports
Sends
notifications
and update
task (JIRA)
Ideally one tool for whole organization needs
12
14. sysco.no
Implement deployment process
Ideally one tool for whole organization needs
Starts
automatically on
repository update
(triggered by the
build)
Sends artifacts to
the server
Runs basic
flow/API tests
Generates
deployment
reports
Sends
notifications and
update task (JIRA)
13
15. sysco.no
Now we have CI-CD. But!
That is just our DEV
environment.
What about QA?
14
16. sysco.no
Test Automation Process
Flow/API tests are build as any other code (The same CI-
CD process)
They are testing data flow / API operations for subsystems
as well as a system as a whole
They can benefit from infrastructure automation
(containers)
They run in QA environment on a scheduled basis or/and
after successful (Build), Deploy to QA environment
15
17. sysco.no
QA Test Release Process
Build from
release version
control branch
(optional)
Store in
release
artifact
repository
Deploy to the
QA
environment
Run
API/flow
tests
Generate
deployments/
test reports
Send
notifications
and update
JIRA task
16
18. sysco.no
Finally GO-LIVE
Check gates
and approve
scheduled
release
datetime
Create
rollback
system
snapshot
Deploy from
the release
artifact
repository
Generate
Prod release
reports
Close JIRA
task
Prod release process
17
19. sysco.no
Infrastructure As a Code
Every developer or support person dreads a moment like this when they
have to reconfigure the servers, because of the different aspects
involved in the seemingly tedious process. But it doesn't always have be
to like this.
Jafari Sitakange – ThoughtWorks
Infrastructure as code (IaC) is the process of managing and provisioning
computer data centers through machine-readable definition files, rather than
physical hardware configuration or interactive configuration tools.
Wikipedia
Infrastructure automation
18
20. sysco.no
Why Infrastructure as a Code?
The same
development
and CI-CD
process as any
other code
Easy
infrastructure
state
management
and
redeployment
No manual
misconfiguration
due to the
tedious
replications
Consistent
replication in
clustered
environment
Easy
environment
rollback process
Easy
containerization
Easy lift and shift
to the cloud for
on premise
environments
19
22. sysco.no
We have to start all over again
Build/Unit test
Deploy
Task Updates
QA Infrastructure
Scrap/Build
QA Build
QA Deploy
QA Flow/API Test
Task Updates
Prod release
Task updates
21