0% found this document useful (0 votes)
62 views

Introduction to DevOps

Uploaded by

Prajwal Khairnar
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)
62 views

Introduction to DevOps

Uploaded by

Prajwal Khairnar
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/ 146

What is DevOps?

INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
INTRODUCTION TO DEVOPS
Organizational structure
Online products are complex

Expensive to develop and maintain

Thousands of engineers

How to collaborate efficiently?

INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
DevOps

DevOps is a combination of

methods,

tools, and

cultural behavior

that improves how software is developed and maintained.

It helps organizations deliver higher-quality online products faster.

INTRODUCTION TO DEVOPS
Traditional Change Management DevOps

Independent teams Different teams work together


Different teams have different goals Software Development + IT Operations =

Slow development DevOps

Different teams have similar goals

High speed development

INTRODUCTION TO DEVOPS
Traditional release

INTRODUCTION TO DEVOPS
Minimum Viable Product
A minimum viable product (MVP) is an
early version of a product with limited
functionality.

Cheaper to build

High speed time-to-market

INTRODUCTION TO DEVOPS
Product improvements

INTRODUCTION TO DEVOPS
DevOps benefits

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
Use Cases for
DevOps
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
DevOps
DevOps: Software Development + IT
Operations

Collaborative and Shared Responsibilities

MVP Releases

Adaptable to various use cases

INTRODUCTION TO DEVOPS
Infrastructure Engineering
Design, Develop, and Maintain the IT
infrastructure

This infrastructure requires power from the


cloud or from hardware the company owns
Infrastructure engineers take care of the
hardware, network, and cloud components

INTRODUCTION TO DEVOPS
Product Engineering
Design, develop, and maintain the Software
Products

Customer serving components

INTRODUCTION TO DEVOPS
Data Engineering
Data engineering refers to the building of systems to enable the collection and usage of
data.

1 https://en.wikipedia.org/wiki/Data_engineering

INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
DataOps MLOps
Software is powered by data Predicting the future using the past data
Data is moved in data pipelines Data Preparation (Historical data)

Ensuring data moves smoothly Model Training

Data is not lost while moving Model Testing

Move the data for the use of data scientists Deployment


and ML Engineers
Maintenance

INTRODUCTION TO DEVOPS
No competition

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
Project
Management
Methodologies for
DevOps
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
Why is project management important to What is project management?
DevOps?
Project management is the use of
Defines how the team will operate
specific knowledge,
Drives change
skills,
Timeline/Resource Management
tools, and
Collaboration within/across teams
techniques

to deliver something of value to people.

INTRODUCTION TO DEVOPS
Waterfall

An old methodology

No return back to earlier stage


Develop all of the product at once

INTRODUCTION TO DEVOPS
Agile
Series of cycles
Achieving one small goal at a time

First MVP, then improvements

Going through the cycle each time

INTRODUCTION TO DEVOPS
Choosing the right project management model
The best methodology depends on:

Team's skill set

Budget
Complexity of the project

Expectations

Agile is the de facto standard for most


software development teams.

INTRODUCTION TO DEVOPS
Scrum Kanban
A sprint in Scrum is a two-to-four week No sprints in Kanban, instead tracking
timeframe with a light development goal for improvements continuously.
the team.

INTRODUCTION TO DEVOPS
Scrum Kanban
Regular, fixed-length sprints (i.e., two Continuous flow
weeks)
Use visuals to improve work-in-progress
Learn through experiences
Visualize the flow of work, limit work-in-
Sprint planning, sprint, daily standup, sprint progress, manage flow, incorporate
review, sprint retrospective feedback loops

Product owner, scrum master, development No defined roles


team

1 https://www.atlassian.com/agile/kanban/kanban-vs-scrum

INTRODUCTION TO DEVOPS
Both Scrum and Kanban are under Agile methodology
Both Scrum and Kanban improves collaboration

Both powerful methodologies when applied to correct use case

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
The DevOps Change
Management Model
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
Requirements
Developing a new product

Leadership: Sets business expectations

Product Experts: Define user experience


requirements

INTRODUCTION TO DEVOPS
Design

Product Engineers: Designing the customer


experience

Infra Engineers: Designing the parts that


product engineers will use

Data Engineers: Designing the data


pipelines for the new product

INTRODUCTION TO DEVOPS
Develop and test
Product Engineers
Develop for the customer experience

Customer interaction

Infra Engineers
Supporting the product

Providing testing environment

Data Engineers
Providing test data

INTRODUCTION TO DEVOPS
Testing

Testing and developing at the same time

Testing before customer interaction


Otherwise poor user experience and
security issues

INTRODUCTION TO DEVOPS
Experimentation

Limited set of users


Early user interactions

Observe if the users like the product

Real user feedback

INTRODUCTION TO DEVOPS
Cyclical development

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
Main Software
Architecture
Systems
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
Software architecture

Software architecture refers to the


fundamental structures of a software
system and the discipline of creating such
structures and systems. Each structure
comprises software elements, relations
among them, and properties of both
elements and relations.

1 https://en.wikipedia.org/wiki/Software_architecture

INTRODUCTION TO DEVOPS
Application Programming Interfaces (APIs)

Data flows through APIs

They are essential for software and architecture

INTRODUCTION TO DEVOPS
Various architectural systems
Factors to consider

Type of software

In machine or in the browser


Complexity of the software

Simpler software parts can be treated as a single unit

Separate the pieces for more complex software

INTRODUCTION TO DEVOPS
Microservices
Most important architectural system for
complex software

Common in modern organizations

Rather than a big single unit, have many


smaller independent units

Smaller units are called the microservices

They communicate to each other via APIs

INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
DevOps for microservices architecture

INTRODUCTION TO DEVOPS
Benefits of DevOps for microservices
Software is changed constantly in large organizations
Change them one at a time

Microservices are more secure and reliable

If anything goes bad with one microservice, the rest will still function well

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
Modern IT
Infrastructure
Concepts
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
Main components of IT infrastructure

Combination of various components

Customized for organizations specific


needs

INTRODUCTION TO DEVOPS
Hardware
Can be hosted on organization's own
premises

Or it can be accessed through a cloud


service provider

INTRODUCTION TO DEVOPS
Network
Communication with other parts of the
software

Communication with the users through the


Internet

INTRODUCTION TO DEVOPS
Software

We need software to: The goal of infrastructure software:

Manage the hardware and network enable the product teams to develop and
serve customers.
Configure them for the organization's use

INTRODUCTION TO DEVOPS
Change management

Software needs constant maintenance and improvement

These changes could be very expensive and disruptive to the services of the organization
Infrastructure Engineering provides the tools that's necessary to build products

INTRODUCTION TO DEVOPS
Developer platform

INTRODUCTION TO DEVOPS
Codebase & version control

Version Control: Git

INTRODUCTION TO DEVOPS
DevOps CI/CD pipelines

DevOps in narrow meaning - CI/CD

Code needs to be built

Turn code file into machine executable file

INTRODUCTION TO DEVOPS
Deployment platform

INTRODUCTION TO DEVOPS
Change management in microservices

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
Elements of DevOps
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
DevOps change management model

Continuous Integration & Continuous Delivery

INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
Principles of CI

1. Version Control Software

2. Frequent integrations

INTRODUCTION TO DEVOPS
Version control

Main branch as the source-of-truth for the codebase

Multiple teams working on the same software

Peer Review

Testing in every step

INTRODUCTION TO DEVOPS
Principles of CD

1. Automated builds

2. Automated tests
3. Predictable and short change times

INTRODUCTION TO DEVOPS
Experimentation

Limited set of users

Collect their feedback


Happens once a change is deployed

INTRODUCTION TO DEVOPS
Feedback loops
Continuously improving the product
Use the review stage for the feedback loop

Turn the feedback into action

Change the software if necessary

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
Data Engineering
Implications of the
DevOps Architecture
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
Microservices architecture
Microservices are small-scale software
programs

Microservices deployed separately

Each microservice take care of a different


functionality

Each microservice has its own data and


logic

They store the data in private databases

INTRODUCTION TO DEVOPS
Monolithic architecture

Opposite of the microservices architecture

A big single unit


Much simpler compared to microservices

Maintenance and change is very hard and


risky

INTRODUCTION TO DEVOPS
Monolithic Architecture Microservices Architecture

Limited number of databases A database for each microservice

All application uses the same databases Microservices must do API calls to reach
another services database
Could be a viable option for small scale
applications Microservices are effective in large
organizations and complex products

INTRODUCTION TO DEVOPS
Microservices private databases
Some product functionalities require collaboration from multiple microservices

Microservices can not access each others databases freely, so they do API calls

Microservices always communicate with each other.

INTRODUCTION TO DEVOPS
Data Engineering applications in microservices

INTRODUCTION TO DEVOPS
Data Engineering applications in microservices

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
Data Pipelines
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
Data pipelines

INTRODUCTION TO DEVOPS
ETL

1 https://www.istockphoto.com/nl/vector/data-extract-transform-load-gm1361894912-434102842?phrase=ETL

INTRODUCTION TO DEVOPS
Batch processing

Move offline data in batches


Batch Processing: A large amount of data

INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
Recap

Data Engineering is an integral part of


Infrastructure Engineering

Data pipelines are robust tools important


for handling data

Batch processing works on regular


schedules, stream processing works
continuously

Batch processing is useful for handling the


accumulated data
Stream processing handles the real-time
d t
INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
Analytics &
Reporting with
DevOps
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
DevOps benefits for reporting

Handling Multiple Data Sources in harmony

Producing many logs during the change management process

INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
Reporting architecture For DevOps

DevOps produces a lot of data

Data sources are spread out


Data needs to be collected and moved to a database
Data Scientists can use the data for insights, reports, and dashboards

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
Tools: Ecosystem
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
Requirements

Business and engineering interaction

Used throughout the software change


management process

Project Management Tools

Communication Tools

1 https://atlassian.design/foundations/logos 2 https://slack.com/media-kit 3 https://discord.com/branding

INTRODUCTION TO DEVOPS
Version Control Software
Main change management technology is
git

Git is a protocol used for version control

Git ensures multiple developers can work


on the same software

Git has many implementations, most


common ones are GitHub and GitLab

1 https://git-scm.com/downloads/logos 2 https://github.com/logos 3 https://about.gitlab.com/press/press-kit/

INTRODUCTION TO DEVOPS
Build Tools

Software needs to be built to become


executable

Main build tools are: Maven and Gradle

1 https://maven.apache.org/ 2 https://gradle.com/brand/

INTRODUCTION TO DEVOPS
CI/CD Tools

CI/CD pipelines are the main principles of


DevOps

CI/CD pipelines ensure automated building,


testing, and deployment of software

Main CI/CD tools are Jenkins and CircleCI

1 https://www.jenkins.io/press/ 2 https://circleci.com/legal/trademark-guidelines/

INTRODUCTION TO DEVOPS
Deployment

Microservices are developed and deployed


independently from each other

Containers imitate separate machines

Microservices are deployed on separate


containers

Containers: Docker and Podman

Container orchestration: Kubernetes

1 https://www.docker.com/company/newsroom/media-resources/ 2 https://podman.io/ 3 https://kubernetes.io/

INTRODUCTION TO DEVOPS
Monitoring Tools
Products need to be closely monitored and
observed for quality and reliability issues

Monitor the DevOps health and change


management metrics

Example tools used for monitoring are


SignalFX and AppDynamics

1 https://www.splunk.com/en_us/products/observability.html?301=/en_us/devops.html

INTRODUCTION TO DEVOPS
Data management tools: Kafka

Kafka is a message publishing system

Kafka is heavily used in microservices


architecture

Microservices keep a journal of the work


they do on Kafka

1 https://kafka.apache.org/trademark

INTRODUCTION TO DEVOPS
Data pipeline management tools

Most tools used for both batch and


streaming processing

Main tools used for data pipeline


management are: Apache Airflow, Hevo
Data, and Prefect

1https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow%20logos 2 https://design.hevodata.com/ 3
https://www.prefect.io/newsroom/logos/

INTRODUCTION TO DEVOPS
Recap

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
Ensuring Data
Quality Standards
with DevOps
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
DevOps ensures good code

Most software handle data

Good software drives high-quality data

DevOps helps maintain high-quality in software

INTRODUCTION TO DEVOPS
Data quality

How trusted is the information?

Most recent and accurate information


Can be hard and costly to achieve

Not all data requires the same quality

There are many elements to Data Quality

INTRODUCTION TO DEVOPS
Elements of data quality

Elements breaks down and define Data


Quality

They should be traced and standardized

INTRODUCTION TO DEVOPS
Is the data correct in all details?
Should be closely monitored

INTRODUCTION TO DEVOPS
How comprehensive is the data?
Check if data is lost when it is stored in a
database

Check if data is lost when it is moved to


different databases

INTRODUCTION TO DEVOPS
Consistency is about the reliability of the
information

It is also referred to as Data Integrity

Should be closely monitored and tested

INTRODUCTION TO DEVOPS
Keeping and handling only the relevant
information

Irrelevant information wastes time and


resources

INTRODUCTION TO DEVOPS
How up to date is the information?

Old data could be replaced by more recent


information
Raw data within microservices is not used
in data analysis

Microservices talk to each other via API


calls to get the most recent information

The data within microservices should be


replicated at an acceptable frequency

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
Observability and
Reliability
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
Observability
Observing inner components of software

Components might consist of:

Microservices

APIs

Databases

Other components

Check they are working correctly.

1https://www.istockphoto.com/nl/vector/het-lijnpictogram-van-de-verrekijker-oceaanconcept-verrekijkerteken-
op-witte-gm1245624425-363092800?phrase=field%20glass

INTRODUCTION TO DEVOPS
Why is observability needed?

Many different parts tied to each other

Spot specific problems and their root cause


Monitoring systems effectively

INTRODUCTION TO DEVOPS
Alerting

Alerts help detect problems early

Set alerts if software fails to run


Setting up alerts enable teams to react fast
when problems happen

1 https://www.istockphoto.com/nl/vector/notification-bells-icon-gm1364077374-435399123?phrase=alerting

INTRODUCTION TO DEVOPS
Why is reliability important?

Examples:

Government services

Defense systems

Banking software

Many other software also require high


reliability

INTRODUCTION TO DEVOPS
How to increase reliability?

Two main principles:

Testing

Observability

DevOps automates testing, and enforce


observability.

INTRODUCTION TO DEVOPS
Testing Observability

Testing is used to detect the problems before


Observability is used to detect the problems
they go to market.
as they happen in user interaction.
DevOps ensures automated testing.
Observability is needed even when the
software is tested enough.

INTRODUCTION TO DEVOPS
Reliability in microservices

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
DevOps Cultural
Concepts
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
INTRODUCTION TO DEVOPS
Concepts

Collaboration

Autonomous Teams
Shared Responsibilities

Automation

Post-Mortem

INTRODUCTION TO DEVOPS
Collaboration

Heart of DevOps

Collaboration between Development and Operations

INTRODUCTION TO DEVOPS
Autonomous teams

Teams are diverse

Self sufficient teams

Teams have members who specialized in:

Product Engineering

Operations

Data Engineering, etc.

INTRODUCTION TO DEVOPS
Shared responsibilities

Autonomous teams take care of specific


parts of the software

They are responsible for developing and


running

You build it, you run it

INTRODUCTION TO DEVOPS
Automation

CI/CD pipelines helps automate change


management, testing, and deployment

Automation is a time-saver

Developers focus on creativity, not the


simple tasks

Without CI/CD pipelines, testing and


deployment must be done manually

INTRODUCTION TO DEVOPS
Post-mortem
All software is prone to errors

Something can always go wrong

When a software problem is identified:

First solve it

Then review what went wrong

This review is called Post-Mortem

No one is blamed in the Post-Mortem

INTRODUCTION TO DEVOPS
How this issue could have been How this issue could have been
prevented? better handled?

Common Answers More observability helps with:

More testing Earlier detection of issues

More code review Earlier detection of the root cause

INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
Tying it all together
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
What is DevOps after all?
DevOps is a combination of: It helps ensure high productivity, high quality,
and managed costs.
tools

technologies
cultural elements

Software Development -> DevOps

Data Engineering -> DataOps

Machine Learning Engineering -> MLOps

INTRODUCTION TO DEVOPS
What is DevOps about?
Reorganizes into autonomous teams

Collaboration of teammates with different


backgrounds

Teams being responsible for different parts


of software

Automating change management

Testing

Experimentation

INTRODUCTION TO DEVOPS
Why is DevOps necessary?
It is very efficient compared to other systems.

Automation and collaborations boost productivity

Testing and observability is necessary for reliability

Experimentation helps with product quality

INTRODUCTION TO DEVOPS
When is DevOps applicable?

DevOps principles are applicable most of


the time.

It is necessary for large organizations.

INTRODUCTION TO DEVOPS
What are the components of DevOps?

INTRODUCTION TO DEVOPS
INTRODUCTION TO DEVOPS
Let's practice!
INTRODUCTION TO DEVOPS
CONGRATS!
INTRODUCTION TO DEVOPS

Cem Sakarya
DevOps Risk Advisor
What did we learn?

1. Introducing ourselves to DevOps and its


main components

2. Looking deeper into modern software


architecture and infrastructure

3. Exploring the data engineering


applications of DevOps and DevOps
reporting

4. Ensuring reliability and data quality

INTRODUCTION TO DEVOPS
You can use your skills to...

navigate through software development

for software design, development, and testing


apply data engineering implications of DevOps

INTRODUCTION TO DEVOPS
Time to celebrate!
INTRODUCTION TO DEVOPS

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy