[comment]: # (mdslides presentation.md --include media) [comment]: # (The list of themes is at https://revealjs.com/themes/) [comment]: # (The list of code themes is at https://highlightjs.org/) [comment]: # (markdown: { smartypants: true }) ![](media/upes.png)
DevOps bootcamp - INT College & UPES University # What is DevOps?
### Today's agenda - Waterfall model - the bad old days - The Agile model - What is DevOps? - DevOps phases
## The Waterfall model
- The traditional software development approach - Consists of distinct phases - Linear - each phase must be completed before proceeding to the next
## The Waterfall model
👨💼
The product owner
## The Waterfall model
👨💻
The developer
## The Waterfall model
👨💻         👨💼
⬅️ Product owner specify requirements to the developer
## The Waterfall model
👨💻
The developer design, develop and test the product
## The Waterfall model
🕒
Six months later...
## The Waterfall model
👨💻         👨💼
The product is delivered ➡️ A one-off event, delivery ceremony 🎉
## The Waterfall model
👨💼
The product owner is not satisfied with the product 😞 - The product may not be relevant in the market - the requirements miss end-user needs - The product owner was not involved during the development - Some features require modifications - New functionalities are required ⬅️ Specify list changes to the developer
## The Waterfall model
👨💻         👨💼
The developer **re-design**, develop and test again
## The Waterfall model
🕒
4 months later...
## The Waterfall model
👨💻         👨💼
Another version of the product is delivered ➡️
## The Waterfall model #### Organizations soon came to realize - Product requirements cannot be understood at once - It's very expensive to make changes only after the product was delivered - Not like traditional industries (e.g. cars), software development and delivery is an iterative process
## The Agile model
## The Agile model [Agile](https://agilemanifesto.org/) model is an iterative and flexible software development approach that emphasizes collaboration, adaptability, and delivering working software in short iterations. It allows for continuous feedback from end users and stakeholders, enabling quick adjustments and improvements throughout the development process.
## The Agile model
👨💻         👨💼
⬅️ Product owner specify requirements
## The Agile model
🕒
The developer works on a small subset of requirements that can be delivered within a **rigid** timeframe called **sprint**, usually spans over 2-4 weeks. 2-3 weeks later...
## The Agile model
👨💻         👨💼
The developer **deploys** his work to production systems ➡️ And immediately gets feedbacks from the product owners and end-users
## The Agile model The entire process of software development is broken into small **sprints**, while each sprint (potentially) ends with **deliverables**
## The Agile model Agile addresses the gap between development to product teams
## The Operations team Let's introduce another team player:
👩🏾💻
**Operations and infrastructure admin (IT)** Operations team is responsible to deploy the developer's code to production systems
## The Operations team challenges
- Small pieces of code are frequently deployed to production systems - Operations team release a new product version every week, day, **hour**! - Challenges in coordinating and integrating deployments
## DevOps introduced While Agile addresses the gap between **development** and **product** teams, it creates new challenges between **development** and **operations** teams
## DevOps introduced **DevOps** (development and operations) is a set of methodologies evolved from the Agile development model, aimed to address the gap between development and operations teams.
## DevOps Toolchains
A [DevOps toolchain](https://en.wikipedia.org/wiki/DevOps_toolchain) is a set or combination of tools that aid in the delivery, development, and management of software applications throughout the systems development life cycle, as coordinated by an organisation that uses DevOps practices.
## DevOps Phases - plan
- Release plan, timing and business case - Production metrics, objects and feedback - Requirements
## DevOps Phases - Create
- Design of the software and configuration - Coding
## DevOps Phases - Verify
- Regression testing - Security and vulnerability analysis - Performance - Configuration testing
## DevOps Phases - Packaging
- Build - Dependencies management - Release staging and holding
## DevOps Phases - Release
- Deploying and promoting applications - Fallbacks and recovery - Scheduled/timed releases
## DevOps Phases - Configure
- Infrastructure storage, database and network provisioning and configuring - Cloud resources provision and configuration
## DevOps Phases - Monitor
- Performance of IT infrastructure - End-user response and experience - Production metrics and statistics - Alerting and incident management
# Thanks!