Asst. Prof. Dr. Ayse TOSUN Assoc. Prof. Dr. A. Cüneyd TANTUĞ
Asst. Prof. Dr. Ayse TOSUN Assoc. Prof. Dr. A. Cüneyd TANTUĞ
Asst. Prof. Dr. Ayse TOSUN Assoc. Prof. Dr. A. Cüneyd TANTUĞ
Cüneyd TANTUĞ
Istanbul Technical University
Computer Engineering Department
1. Problems After Development
2. DevOps Definition
3. DevOps Practices
1.2
1. Problems After Development
2. DevOps Definition
3. DevOps Practices
1
Source: https://channel9.msdn.com/Series/DevOps-Fundamentals/Introduction-to-DevOps
Local Dev Prod
1.5
1. Stop NGINX and GUNICORN services
2. Check DB sessions
3. Change DB to single-user mode
4. Take a full backup
5. Copy the app files
6. Run Django Migrations
7. Restart NGINX and GUNICORN services
8. Click around on a few things
9. Turn DB back to multi-user
1.6
7
Developers want Operations want
Agility & Change Availability & Stability
1.8
1. Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes
harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of
months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and
support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers,
and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity--the art of maximizing the amount of work not done--is essential.
11. The best architectures, requirements, and designs emerge from self-organizing
teams.
12. At regular intervals, the team reflects on how to become more effective, then
tunes and adjusts its behavior accordingly.
Introduction & UML 9
From To
Waterfall projects and big heavy releases. Small batches delivered frequently, leading to
more frequent deployments and faster cycle
times.
Slow feedback cycles with a lot of manual reviews Real-time feedback and metrics driven by
and approvals; long wait times. automated workflows.
Process-heavy and time-intensive management of Collaborative software development, automated
change requests. Having to provide context to delivery pipelines and decisions made by teams
approvers who are not directly involved with the doing the work.
work.
Teams are organized by technology or functional Early stakeholder involvement across the value
boundaries. Manual handoffs between stream at every stage of the delivery lifecycle:
siloed teams. Misaligned incentives. design, build, deploy, monitor and maintenance.
Stakeholders include auditing, compliance,
change management, security, network, storage,
middleware and enterprise architects. Teams are
aligned to business goals.
Source: Puppet-State-of-DevOps-Report-2020
1.10
1. Problems After Development
2. DevOps Definition
3. DevOps Practices
3.1
DevOps is a set of practices intended to reduce the time between committing a change to a system and
the change being placed into normal production, while ensuring high quality.
Len Bass, Ingo Weber, and Liming Zhu, CMU-SEI
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). It aims
to shorten the systems development life cycle and provide continuous delivery with high software quality
Wikipedia, 2020
DevOps is the union of people, process, and products to enable continuous delivery of value to our end
users.
Gartner
1.12
13
CAMS
o Culture
o Automation
o Measurements
o Sharing
1.14
Automated Provisioning, Infrastructure as Code
Small frequent changes
Version Control
Continuous Integration (including automated testing)
Continuous Delivery / Release Management
Measuring metrics
Feature flags (develop on trunk), Canary Releases, Dark
Launches
Microservices
Automated
Security
Shift
Infrastructure
as Code (IaC) Security to
the Left
Continuous
Policy as Code
(PaC) Feedback
Loop
Introduction & UML 1.23