0% found this document useful (0 votes)
35 views71 pages

Ibm Devops Principles

The document outlines the principles and practices of DevOps, emphasizing its role in integrating software development and IT operations to improve efficiency and shorten the development life cycle. It covers various aspects such as the software development process, DevOps culture, automation, and the importance of continuous integration and delivery. Additionally, it highlights the significance of collaboration, communication, and a systems thinking approach in achieving successful DevOps implementation.

Uploaded by

bq4xx42p8w
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views71 pages

Ibm Devops Principles

The document outlines the principles and practices of DevOps, emphasizing its role in integrating software development and IT operations to improve efficiency and shorten the development life cycle. It covers various aspects such as the software development process, DevOps culture, automation, and the importance of continuous integration and delivery. Additionally, it highlights the significance of collaboration, communication, and a systems thinking approach in achieving successful DevOps implementation.

Uploaded by

bq4xx42p8w
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 71

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

You might also like