caricato da m1232

Lec1.1-DevOpsCourse-22Fall

DevOps – LTAT.06.015 – Lecture 1
Introduction to DevOps - part 1
06th Sept 2022
Chinmaya Dehury
[email protected]
OUTLINE
Part 1
• Software Development Life Cycle
• Waterfall model
• Agile model
• DevOps Motivation
Part 2
• DevOps history & stats
• ….many more on DevOps
2
Know audience
Quick Survey
https://www.menti.com
Code: 7025 3871
1. DevOps Experience
2. Which tools/concepts are you familiar with?
3
Software Development Life Cycle (SDLC)
• A lifecycle covers all the stages of software from its inception with
requirements definition through to fielding and maintenance [3].
• E.g. Banking application
•
•
•
•
•
Front-end
Back-end
Databases
Analytics
endpoints
E.g. DevOps course
several lectures
practice sessions
grading
communication
resources
4
Software Development Life Cycle (SDLC)
• A lifecycle covers all the stages of software from its inception with
requirements definition through to fielding and maintenance [3].
Release
Planning
Risk Analysis
Operation
Coding
Different stages
Deployment
Build
Feedback
Testing
Maintenance
Delivery
Integration
5
Icon src : https://www.iconfinder.com
Software Development Life Cycle (SDLC)
• A lifecycle covers all the stages of software from its inception with
requirements definition through to fielding and maintenance [3].
Release
Planning
Risk Analysis
Operation
Coding
Anything missing ?
Deployment
Build
Feedback
Testing
Maintenance
Delivery
Integration
6
Icon src : https://www.iconfinder.com
Software Development Life Cycle (SDLC)
• A lifecycle covers all the stages of software from its inception with
requirements definition through to fielding and maintenance [3].
Release
Planning
Risk Analysis
Operation
Coding
Anything missing ?
Requirements
Deployment
Build
Feedback
Testing
Maintenance
Delivery
Integration
7
Icon src : https://www.iconfinder.com
Software Development Life Cycle (SDLC)
• A lifecycle covers all the stages of software from its inception with
requirements definition through to fielding and maintenance [3].
Release
Planning
Risk Analysis
Operation
Coding
Can you arrange them?
Requirements
Deployment
Build
Feedback
Testing
Maintenance
Delivery
Integration
8
Icon src : https://www.iconfinder.com
Software Development Life Cycle (SDLC)
SDLC models
Spiral Model
Waterfall
Model
Agile
Model
Incremental
model
Src: Alshamrani, A., & Bahattab, A. (2015). A comparison between three SDLC models waterfall model, spiral model, and Incremental/Iterative model. International Journal of Computer Science
Issues (IJCSI), 12(1), 106.
9
Software Development Life Cycle (SDLC)
Waterfall Models
• Defined as early as ????
Can you guess ?
Implementation steps to deliver
a small computer program for
internal operations
10
Software Development Life Cycle (SDLC)
Waterfall Models
• Defined as early as 1970 by Dr. Winston W. Rovce [royce1970, Davis1988]
Implementation steps to deliver
a small computer program for
internal operations [royce1970]
• Later improved in 1976 by Barry W. Boehm [Davis1988,boehm1976]
Src;
- [Davis1988] Davis, Alan M., Edward H. Bersoff, and Edward R. Comer. "A strategy for comparing alternative software development life cycle
models." IEEE Transactions on software Engineering 14.10 (1988): 1453-1461.
- [Royce1970] W. W . Royce, “Managing the development of large software systems: Concepts and techniques,” in Proc. WESCON, Aug. 1970.
- [boehm1976] Boehm, Barry W. "Software engineering." IEEE Trans. Computers 25.12 (1976): 1226-1241.
11
Software Development Life Cycle (SDLC)
Waterfall Models
• Defined as early as 1970 by Dr. Winston W. Rovce [royce1970, Davis1988]
Implementation steps to deliver
a small computer program for
internal operations [royce1970]
• Later improved in 1976 by Barry W. Boehm [Davis1988,boehm1976]
Src;
- [Davis1988] Davis, Alan M., Edward H. Bersoff, and Edward R. Comer. "A strategy for comparing alternative software development life cycle
models." IEEE Transactions on software Engineering 14.10 (1988): 1453-1461.
- [Royce1970] W. W . Royce, “Managing the development of large software systems: Concepts and techniques,” in Proc. WESCON, Aug. 1970.
- [boehm1976] Boehm, Barry W. "Software engineering." IEEE Trans. Computers 25.12 (1976): 1226-1241.
12
Software Development Life Cycle (SDLC)
Waterfall Models
• Most basic stages [Davis et al.]
•
•
•
•
•
•
•
System requirements
Software requirements
Preliminary Design
Detailed Design
Code and Debug
Test and pre-operation
Operations and maintenance
user needs
analysis
Requirements stages
aka high-level design or
top-level design
system
analysis
aka program design, module design, lower-level design, algorithmic design, or just plain design
Src; Davis, Alan M., Edward H. Bersoff, and Edward R. Comer. "A strategy for comparing alternative software development life cycle
models." IEEE Transactions on software Engineering 14.10 (1988): 1453-1461.
13
Software Development Life Cycle (SDLC)
Waterfall Models – General stages
Requirements
Gather the requirements and defining them (users, login, dashboard, purchase cart, payment options )
Client
Language, DB, dev platform, other technical requirements…
Programmer
Writing the code, detecting and removing of existing and potential errors
Planning/De
signing
deals with algorithm
design, software
architecture design,
database conceptual
schema, logical diagram
design, data structure
definition, etc.
Coding &
Debugging
report, monitor, resolve and retest software components until
they reach the quality standards…
Testing
Deliver and deploy the software, ready for
production. (e.g. deliver the car…)
Operation
Make sure that the customized car
is running smoothly….
Maintenance
Src: Alshamrani, Adel, and Abdullah Bahattab. "A comparison between three SDLC models waterfall model, spiral model, and Incremental/Iterative
model." International Journal of Computer Science Issues (IJCSI) 12.1 (2015): 106.
14
Software Development Life Cycle (SDLC)
Waterfall Models - Advantages
• Simple and easy understanding and
implementation
• Very structured organization
• Define -> Design -> Code
• Phases are very clear
• Easy to manage, arrange tasks
• Focus on one at a time
• Easy and well documentation
• Very straight forward steps
Requirements
Client
Programmer
Planning/De
signing
Coding &
Debugging
E.g. Delivery of DevOps course lectures
Testing
Operation
Maintenance
Src: Alshamrani, Adel, and Abdullah Bahattab. "A comparison between three SDLC models waterfall model, spiral model, and Incremental/Iterative
model." International Journal of Computer Science Issues (IJCSI) 12.1 (2015): 106.
15
Software Development Life Cycle (SDLC)
Waterfall Models
New Requirements
Programmer
Client
Planning/De
signing
Programmer
Coding &
Debugging
Planning/De
signing
Testing
Coding &
Debugging
Operation
Testing
Maintenance
Operation
Maintenance
16
Software Development Life Cycle (SDLC)
Waterfall Model - Disadvantages
•
•
•
•
Known requirements (Client is clear regarding their requirements)
Slow delivery speed
Very expensive to reflect the new requirements
No concurrency (just think about a computer with singlethread computation)
• Risky and uncertainty, as no client is involved in other phages
• No room for requirement modification in later stage
Requirements
Client
Programmer
Planning/De
signing
Coding &
Debugging
Testing
Operation
Maintenance
17
Software Development Life Cycle (SDLC)
Agile Model
Requirements
Client
Client
Programmer
Planning/De
signing
Coding &
Debugging
Testing
Operation
Maintenance
18
Software Development Life Cycle (SDLC)
Agile Model
Src: https://dictionary.cambridge.org/dictionary/english/agile
19
Software Development Life Cycle (SDLC)
Agile Model
• Address the challenge of an unpredictable world
• Focus on individuals and their creativity
• rather than on processes and tools
• Promote quick response to
• changing environments
• changes in user requirements
Its all about “about feedback and change” [Williams2003]
Src:
[Williams2003] Williams, Laurie, and Alistair Cockburn. "Guest Editors' Introduction: Agile Software Development: It? s about Feedback and Change." Computer 36.06 (2003): 39-43.
20
Software Development Life Cycle (SDLC)
Agile Model
Requirements
Client
Client
Programmer
Planning/De
signing
Coding &
Debugging
Testing
Operation
Maintenance
21
Software Development Life Cycle (SDLC)
Planning
Aprox. 2 weeks
Develop
Designing
Feedback
Planning
Deploy
Testing
Aprox. 2 weeks
Develop
Designing
Feedback
Planning
Agile : Iteration 3
Feedback
Deploy
Testing
Agile : Iteration 2
Deploy
Agile : Iteration 1
Agile Model
Testing
….
Develop
Designing
22
Software Development Life Cycle (SDLC)
Agile Model
What makes a development method an agile one? [6]
• Breakdown the whole application to different sub-services
• Incremental : small software releases, with rapid cycles
• cooperative : customer and developers working constantly together
with close communication
• Straightforward : the method itself is easy to learn and to modify, well
documented
• adaptive : able to make last moment changes
• No monolithic application development
Src: Abrahamsson, Pekka, et al. "Agile software development methods: Review and analysis." arXiv preprint arXiv:1709.08439 (2017)
23
Software Development Life Cycle (SDLC)
Agile Model – Principles
Principles of Agile development model [5]
1.
2.
3.
4.
5.
6.
7.
Client’s satisfaction becomes higher priority
Welcome changing requirements
Frequent interaction with clients
Frequent working software delivery
Provide motivated environment and support to
individuals
Face-to-face conversation (now probably on virtual
mode)
Working software becomes the primary measure of
progress
Src: http://agilemanifesto.org/principles.html
8.
9.
Sustainable development
Continuous attention to technical excellence
and good design enhances agility
10. Simplicity – Maximize the amount of work
not done
11. Frequently improve the effectiveness rather
just focusing on fine-tuning and adjusting
12. The best architectures, requirements, and
designs emerge from self-organizing teams
24
Software Development Life Cycle (SDLC)
Agile Model - Advantages
1.
2.
Requirements
Client
3.
4.
5.
6.
7.
Client
Programmer
Planning/De
signing
8.
Coding &
Debugging
9.
Persistent software delivery
Quicker release through fixed,
reliable and short-term schedules
Quick adoption of new features
Increased client’s satisfaction
Frequent interaction
Continuous improvement
Increased transparency through
tighter collaboration
Improve product quality and
predictability
Reduced risks
Testing
Operation
Maintenance
25
Software Development Life Cycle (SDLC)
Agile Model – existing methods
Agile Methods [6]
1.
2.
3.
4.
5.
6.
7.
Extreme Programming
Scrum
Crystal family of methodologies
Feature Driven Development
The Rational Unified Process
Dynamic Systems Development Method
Adaptive Software Development
26
Software Development Life Cycle (SDLC)
Planning
Aprox. 2 weeks
Develop
Designing
Feedback
Planning
Deploy
Testing
Aprox. 2 weeks
Develop
Designing
Feedback
Planning
Agile : Iteration 3
Feedback
Deploy
Testing
Agile : Iteration 2
Deploy
Agile : Iteration 1
Seems this is a perfect model for software development.
then why we need DevOps ?
Testing
….
Develop
Designing
27
Software Development Life Cycle (SDLC)
Agile Model:
Disadvantages:
2. Test and production
environment
configuration
mismatch
1. Developer
computer is used
mainly for testing of
those features
3. Usually not
tested in
production
environment
4. Developers
team and
operations team
are in silos
Developers
Operations
5. Continuous involvement of
all the stakeholders.
28
Img src: https://www.dglobe.com/business/agriculture/4972636-Free-showing-of-Silo-movie-is-March-14
Software Development Life Cycle (SDLC)
Agile Model:
Disadvantages:
Product deployment
Developed product
Developers team
Operations team
Send product back to developer
Production
environment
Failed Product
29
Img src: https://www.dglobe.com/business/agriculture/4972636-Free-showing-of-Silo-movie-is-March-14
Software Development Life Cycle (SDLC)
Agile Model:
Disadvantages:
Agile addresses gaps in Customer and Developer communications
DevOps addresses gaps in Developer and IT Operations communications
30
Img src: https://www.guru99.com/agile-vs-devops.html
DevOps
31
Development + Operations
A culture
32
Development + Operations
Foster the culture
Focus on Outcomes
33
DevOps History
• Concept of DevOps emerged out of a discussion between Andrew Clay
and Patrick Debois in 2008.
Read more at: https://www.appknox.com/blog/history-of-devops
• Devopsdays event:
• a worldwide series of technical conferences
• Topics: software development, IT infrastructure operations, and the intersection
between them.
• Started 2009
• A series of event in this month (https://devopsdays.org/events)
* this is not an advertisement
34
End of Part-1
35
Lab Sessions
- About the ETAIS marketplace
- Get familiar with creating, deleting and managing VMs
- Invitation to ETAIS DevOps course organization
- Communication over Zulip
- Login : https://zulip.cs.ut.ee
- Make sure that you are in DevOps2022Fall Zulip stream.
36
References
[1] https://www.pic.gov/sites/default/files/Introduction%20to%20DevOps%20slides.pdf
[2] https://f.ch9.ms/thumbnail/4d7767a7-b218-4aed-8287-a8dfa50a150b.pptx
[3] Ruparelia, Nayan B. "Software development lifecycle models." ACM SIGSOFT
Software Engineering Notes 35.3 (2010): 8-13.
[4] Davis, Alan M., Edward H. Bersoff, and Edward R. Comer. "A strategy for
comparing alternative software development life cycle models." IEEE Transactions on
software Engineering 14.10 (1988): 1453-1461.
[5] Beck, Kent, et al. "Manifesto for agile software development." (2001): 2006.
[6] Abrahamsson, Pekka, et al. "Agile software development methods: Review and
analysis." arXiv preprint arXiv:1709.08439 (2017).
[7] https://www.appknox.com/blog/history-of-devops
37
Any Question ?
38
Documenti correlati