Bilgi Üniversitesi
CMPE 212-Week 5
DevOps Principles
Instructor: Ercan Canlıer - IBM
Modules
01 Software Development 02 What is DevOps
03 DevOps Practices 04 DevOps Culture
05 DevOps Automation
Software Development
Why do we develop software?
01 To solve real-world problem
02 To meet the specific requirement of a
client or business
03 For personal use case
Software Development
Solving real-world problems?
Software Development
Specific requirement of business?
Software Development
Personal use cases?
Software Development
How to develop software?
Stage 1
Requirements specification
Stage 2
Prepare project plan
Stage 3
Design UX and UI
Stage 4
Architect the software
Stage 5
Coding the solution
Stage 6
Establishing integrations
Stage 7
Testing
Stage 8
Go live
Software Development
Software Development Life Cycle
Software Development
Traditional deployment
Software Development
Smaller and more focused applications
Advantages Disadvantages
01 Quicker to deploy 01 Distributed system complexity
02 Easier to iterate on 02 Difficult to manage
03 Resilient 03 Security between services
Software Development
Shipping industry revolution
Software Development
Application dependencies
Software Development
Docker open sourced the format
1. Standard: The images are standard, any container registry can store. container registry
2. OCI Images: Any container runtime can read OCI images can run processes.
3. Container Runtimes: CRI-O, Containerd
Software Development
Managing containers at scale
Software Development
Containers vs Virtual Machines
Software Development
Google managed containers at scale?
Software Development
Kubernetes abstracts your data center
Software Development
Architecture for deploying applications
Software Development
Deploying applications (Kubernetes way)
Software Development
Kubernetes is an Orchestration Framework
Software Development
Trend for application environments
What is DevOps?
DevOps definition...
DevOps is a methodology in the software
development and IT industry. Used as a set of
practices and tools, DevOps integrates and
automates the work of software development (Dev)
and IT operations (Ops) as a means for improving
and shortening the systems development life cycle.
What is DevOps?
A new way of defining DevOps
Making people happier while making apps better
JEFF GEERLING
What is DevOps?
DevOps is a recipe at all!
What is DevOps?
Everything started with #devops
01 Why Dev and Ops are disconnected?
02 Why development flow is slow?
Why isn’t any colloboration between
03 teams?
Patrick Debois
What is DevOps?
The Three Ways
The First Way The Second Way The Third Way
Understand and Short feedback loops Create a culture
increase the flow of that enable continues learning from failure,
work (left to right) improvement (right to taking risks, repitition
left) and practice to mastery
DEV OPS DEV OPS DEV OPS
What is DevOps?
DevOps Values
ULTURE
UTOMATION
EAN
EASUREMENT
HARING
What is DevOps?
The DevOps Knowledge
01 DevOps Handbook 04 Accelerate
02 The Phoenix Project 05 DevOps Days
03 The Unicorn Project 06 DevOps Conference
What is DevOps?
Systems Thinking
Any intelligent fool can make things bigger, more complex,
and more violent. It takes a touch of genius and a lot of
courage to move in the opposite direction.
ERNST F. SCHUMACHER
Economist
What is DevOps?
What is Systems Perspective?
What is DevOps?
We miss understanding the whole...
What is DevOps?
Lacking a Systems Perspective
The solution to one problem can easily lead to a new and bigger
problem later on or somewhere else in the system
What is DevOps?
A system approach is to...
What depends on what
What is causing what
Where control decisions are made
What information flows are critical
How to best engage stakeholdes
How best to manage for desired results
What is DevOps?
DevOps applies Systems Thinking
Value Stream
Process
Culture Automation
What is DevOps?
DevOps Goals
1 Smaller and frequent releases
Reduced effort and risks
2
A culture of communication
3
Consistency and speed through automation
4
Reduced cost of product iterations
5
What is DevOps?
DevOps improves...
1 Agility
Code quality
2
Deployment quality
3
Productivity
4
Visibility
5
Time to market
6
What is DevOps?
Customer satisfaction
Delivering software quickly,
reliably and safely
DevOps Practices
What is value stream?
A value stream is the sequence of activities a team or organization
takes to deliver value to a customer
DevOps Practices
Value stream mapping?
Value stream mapping is a process that determines, illustrates,
analyzes, and improves the steps required to deliever a product or
service to customers.
DevOps Practices
Value stream management?
Value stream management is a systematic approach that focuses on
increasing the flow of business value from customer request to
customer value with the goal of shortening time to market and
improving quality
DevOps Practices
Efficiency flow chart
Capture request Review and Assign and fund Analyze and Develop and Test Staging Go live!
prioritize request request Design and
Architect
DevOps Practices
CI-Continuous Integration
Continuous Integration (CI) is a development practice that requires
developers commit code to shared repository frequently
DevOps Practices
Continuous Integration (CI) ensures
1 Automated build
Coding standards
2
Providing SCM tools and CI servers
3
Runs on production-like environments
4
Early detection of errors
5
DevOps Practices
No more “But it works on my local”
DevOps Practices
Continuous Delivery (CD)
Continuous Delivery(CD) is a methodology that focuses on software
is always in a releasable state throughout its lifecycle
DevOps Practices
Continuous Delivery (CD) ensures
1 Takes Continuous Integration to the next level
Automated feedback for production-ready
2 releases
Push button on deman to deploy to
3 production
Reduces delivery time for incremental
4 changes
Deployable artifacts
5
DevOps Practices
Continuous Testing
Continuous Testing is the process of executing automated tests as
part of the deployment pipeline
DevOps Practices
Shifting Left with Continuous Testing?
Fewer things break
production!
DevOps Practices
GitOps
GitOps is a Continous Deployment method for Cloud Native
Applications
DevOps Practices
Cont. Delivery vs Cont. Deployment
1 - Dev 2 - Application Test 3 - Integration Test 4 - Acceptance Test 5 - Production
Continuous
Delivery
Manuel Trigger
1 - Dev 2 - Application Test 3 - Integration Test 4 - Acceptance Test 5 - Production
Continuous
Deployment
Automatic Trigger
DevOps Practices
Cloud Native
Cloud native is a term to describe container-based environments.
Cloud Native technologies are used to develop applications build
with services packaged in containers, deployed as microservices and
managed on elastic infra through agile DevOps practices.
DevOps Practices
Open Source Software
Code that is designed to be publicly
1 accessible, anyone can see, modify, and
distribute the code.
Developed in a colloborative way
2
Cheaper, more flexible
3
Enterprise applications have also open-source
4 versions of their versions
Build on community
5
DevOps Practices
DevSecOps
Thinking about application and infrastructure security from the start
Dev Ops
Sec
DevOps Practices
Site Reliability Engineering
What happens when a software engineer is tasked with what
used to be called operations
Ben Treynor
Google
DevOps Practices
Resilience Engineering
1 Observability and monitoring tool
Incident response tool
2
Documentation, runbooks
3
Post-mortem process and documentation
4
Processing response steps
5
DevOps Practices
Observability
Anything we implement is emitting data about its activities.
Observability is a characteristics of systems, that they can be
observed.
DevOps Practices
Monitoring
Monitoring is what we do when we observe our observable systems
DevOps Practices
ChatOps
Conversation-driven development, delivery and support
DevOps Culture
Organizational Culture?
You can’t directly change culture. But you can change
behavior, and behavior becomes culture
Lloyd Taylor
LinkedIn
DevOps Culture
Dev and Ops Silos
Development and Operations work
with two distinct mindsets.
Operations values stability, which
can slow down software updates. On
the other hand, development values
speed and is encouraged to innovate
DevOps Culture
Break Down Silos
Set specific goals that align with overall
1 business needs
Design shared metrics
2
Organize regular meetings
3
Collaboration
4
Build inner source community
5
DevOps Culture
Characteristics of culture
Shared Vision Open Communication
Respect
Collaboration
Risk taking
Trust
Recognition
DevOps Culture
Encourage learning and sharing
1 Daily learning and knowledge sharing
Skill-based education
2
Problem solving in a daily job
3
Lessons learned from mistakes
4
Allow mistakes
5
DevOps Culture
DevOps Skills
Continuous Integration / Container Orchestration
Continuous Delivery
Continuous Deployment Cloud Computing Platform
Continuous Testing Trust building
Problem solving Diplomacy
System Thinking
Communication
DevOps Automation
Periodic Table-digital.ai
DevOps Automation
Benefits of Automation
Frequent releases 1
Fewer errors 2
Higher quality 3
Faster recovery 4
Customer satisfaction 5
DevOps Automation
Automation Practices
1
1 Tool chain instead of single vendor
2 Shared tools 2
3 Infrastructure as Code 3
Experimentation
4 4
Monitoring and Test Automation
5
5
DevOps Automation
DevOps Toolchains
1
5
What is DevOps?
A new way of defining DevOps
Making people happier while making apps better
JEFF GEERLING
Question and Answer...
Thank You