INTRODUCTION TO DEVOPS
Organizationalstructure
Online products are complex
Expensive to develop and maintain
Thousands of engineers
How to collaborate efficiently?
INTRODUCTION TO DEVOPS
DevOps
DevOpsis 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.
6.
INTRODUCTION TO DEVOPS
TraditionalChange Management
Independent teams
Different teams have different goals
Slow development
DevOps
Different teams work together
Software Development + IT Operations =
DevOps
Different teams have similar goals
High speed development
INTRODUCTION TO DEVOPS
MinimumViable 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
DevOps
DevOps:Software Development + IT
Operations
Collaborative and Shared Responsibilities
MVP Releases
Adaptable to various use cases
14.
INTRODUCTION TO DEVOPS
InfrastructureEngineering
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
15.
INTRODUCTION TO DEVOPS
ProductEngineering
Design, develop, and maintain the Software
Products
Customer serving components
16.
INTRODUCTION TO DEVOPS
DataEngineering
Data engineering refers to the building of systems to enable the collection and usage of
data.
https://en.wikipedia.org/wiki/Data_engineering
1
INTRODUCTION TO DEVOPS
DataOps
Softwareis powered by data
Data is moved in data pipelines
Ensuring data moves smoothly
Data is not lost while moving
Move the data for the use of data scientists
and ML Engineers
MLOps
Predicting the future using the past data
Data Preparation (Historical data)
Model Training
Model Testing
Deployment
Maintenance
INTRODUCTION TO DEVOPS
Whyis project management important to
DevOps?
Defines how the team will operate
Drives change
Timeline/Resource Management
Collaboration within/across teams
What is project management?
Project management is the use of
specific knowledge,
skills,
tools, and
techniques
to deliver something of value to people.
INTRODUCTION TO DEVOPS
Agile
Seriesof cycles
Achieving one small goal at a time
First MVP, then improvements
Going through the cycle each time
25.
INTRODUCTION TO DEVOPS
Choosingthe 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.
26.
INTRODUCTION TO DEVOPS
Scrum
Asprint in Scrum is a two-to-four week
timeframe with a light development goal for
the team.
Kanban
No sprints in Kanban, instead tracking
improvements continuously.
27.
INTRODUCTION TO DEVOPS
Scrum
Regular,fixed-length sprints (i.e., two
weeks)
Learn through experiences
Sprint planning, sprint, daily standup, sprint
review, sprint retrospective
Product owner, scrum master, development
team
Kanban
Continuous flow
Use visuals to improve work-in-progress
Visualize the flow of work, limit work-in-
progress, manage flow, incorporate
feedback loops
No defined roles
https://www.atlassian.com/agile/kanban/kanban-vs-scrum
1
28.
INTRODUCTION TO DEVOPS
BothScrum and Kanban are under Agile methodology
Both Scrum and Kanban improves collaboration
Both powerful methodologies when applied to correct use case
INTRODUCTION TO DEVOPS
Design
ProductEngineers: Designing the customer
experience
Infra Engineers: Designing the parts that
product engineers will use
Data Engineers: Designing the data
pipelines for the new product
33.
INTRODUCTION TO DEVOPS
Developand test
Product Engineers
Develop for the customer experience
Customer interaction
Infra Engineers
Supporting the product
Providing testing environment
Data Engineers
Providing test data
34.
INTRODUCTION TO DEVOPS
Testing
Testingand developing at the same time
Testing before customer interaction
Otherwise poor user experience and
security issues
INTRODUCTION TO DEVOPS
Softwarearchitecture
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.
https://en.wikipedia.org/wiki/Software_architecture
1
40.
INTRODUCTION TO DEVOPS
ApplicationProgramming Interfaces (APIs)
Data flows through APIs
They are essential for software and architecture
41.
INTRODUCTION TO DEVOPS
Variousarchitectural 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
42.
INTRODUCTION TO DEVOPS
Microservices
Mostimportant 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
Benefitsof 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
Software
Weneed software to:
Manage the hardware and network
Configure them for the organization's use
The goal of infrastructure software:
enable the product teams to develop and
serve customers.
54.
INTRODUCTION TO DEVOPS
Changemanagement
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
Versioncontrol
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
Feedbackloops
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
Microservicesarchitecture
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
72.
INTRODUCTION TO DEVOPS
Monolithicarchitecture
Opposite of the microservices architecture
A big single unit
Much simpler compared to microservices
Maintenance and change is very hard and
risky
73.
INTRODUCTION TO DEVOPS
MonolithicArchitecture
Limited number of databases
All application uses the same databases
Could be a viable option for small scale
applications
Microservices Architecture
A database for each microservice
Microservices must do API calls to reach
another services database
Microservices are effective in large
organizations and complex products
74.
INTRODUCTION TO DEVOPS
Microservicesprivate 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
Recap
DataEngineering 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
Reportingarchitecture 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
Requirements
Businessand engineering interaction
Used throughout the software change
management process
Project Management Tools
Communication Tools
https://atlassian.design/foundations/logos https://slack.com/media-kit https://discord.com/branding
1 2 3
97.
INTRODUCTION TO DEVOPS
VersionControl 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
https://git-scm.com/downloads/logos https://github.com/logos https://about.gitlab.com/press/press-kit/
1 2 3
98.
INTRODUCTION TO DEVOPS
BuildTools
Software needs to be built to become
executable
Main build tools are: Maven and Gradle
https://maven.apache.org/ https://gradle.com/brand/
1 2
99.
INTRODUCTION TO DEVOPS
CI/CDTools
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
https://www.jenkins.io/press/ https://circleci.com/legal/trademark-guidelines/
1 2
100.
INTRODUCTION TO DEVOPS
Deployment
Microservicesare developed and deployed
independently from each other
Containers imitate separate machines
Microservices are deployed on separate
containers
Containers: Docker and Podman
Container orchestration: Kubernetes
https://www.docker.com/company/newsroom/media-resources/ https://podman.io/ https://kubernetes.io/
1 2 3
101.
INTRODUCTION TO DEVOPS
MonitoringTools
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
https://www.splunk.com/en_us/products/observability.html?301=/en_us/devops.html
1
102.
INTRODUCTION TO DEVOPS
Datamanagement 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
https://kafka.apache.org/trademark
1
103.
INTRODUCTION TO DEVOPS
Datapipeline 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
https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow%20logos https://design.hevodata.com/
https://www.prefect.io/newsroom/logos/
1 2 3
INTRODUCTION TO DEVOPS
DevOpsensures good code
Most software handle data
Good software drives high-quality data
DevOps helps maintain high-quality in software
108.
INTRODUCTION TO DEVOPS
Dataquality
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
109.
INTRODUCTION TO DEVOPS
Elementsof data quality
Elements breaks down and define Data
Quality
They should be traced and standardized
INTRODUCTION TO DEVOPS
Howcomprehensive 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
112.
INTRODUCTION TO DEVOPS
Consistencyis about the reliability of the
information
It is also referred to as Data Integrity
Should be closely monitored and tested
113.
INTRODUCTION TO DEVOPS
Keepingand handling only the relevant
information
Irrelevant information wastes time and
resources
114.
INTRODUCTION TO DEVOPS
Howup 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
Observability
Observinginner components of software
Components might consist of:
Microservices
APIs
Databases
Other components
Check they are working correctly.
https://www.istockphoto.com/nl/vector/het-lijnpictogram-van-de-verrekijker-oceaanconcept-verrekijkerteken-
op-witte-gm1245624425-363092800?phrase=field%20glass
1
118.
INTRODUCTION TO DEVOPS
Whyis observability needed?
Many different parts tied to each other
Spot specific problems and their root cause
Monitoring systems effectively
119.
INTRODUCTION TO DEVOPS
Alerting
Alertshelp detect problems early
Set alerts if software fails to run
Setting up alerts enable teams to react fast
when problems happen
https://www.istockphoto.com/nl/vector/notification-bells-icon-gm1364077374-435399123?phrase=alerting
1
120.
INTRODUCTION TO DEVOPS
Whyis reliability important?
Examples:
Government services
Defense systems
Banking software
Many other software also require high
reliability
121.
INTRODUCTION TO DEVOPS
Howto increase reliability?
Two main principles:
Testing
Observability
DevOps automates testing, and enforce
observability.
122.
INTRODUCTION TO DEVOPS
Testing
Testingis used to detect the problems before
they go to market.
DevOps ensures automated testing.
Observability
Observability is used to detect the problems
as they happen in user interaction.
Observability is needed even when the
software is tested enough.
INTRODUCTION TO DEVOPS
Autonomousteams
Teams are diverse
Self sufficient teams
Teams have members who specialized in:
Product Engineering
Operations
Data Engineering, etc.
130.
INTRODUCTION TO DEVOPS
Sharedresponsibilities
Autonomous teams take care of specific
parts of the software
They are responsible for developing and
running
You build it, you run it
131.
INTRODUCTION TO DEVOPS
Automation
CI/CDpipelines 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
132.
INTRODUCTION TO DEVOPS
Post-mortem
Allsoftware 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
133.
INTRODUCTION TO DEVOPS
Howthis issue could have been
prevented?
Common Answers
More testing
More code review
How this issue could have been
better handled?
More observability helps with:
Earlier detection of issues
Earlier detection of the root cause
Tying it alltogether
INTRODUCTION TO DEVOPS
Cem Sakarya
DevOps Risk Advisor
136.
INTRODUCTION TO DEVOPS
Whatis DevOps after all?
DevOps is a combination of:
tools
technologies
cultural elements
Software Development -> DevOps
Data Engineering -> DataOps
Machine Learning Engineering -> MLOps
It helps ensure high productivity, high quality,
and managed costs.
137.
INTRODUCTION TO DEVOPS
Whatis 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
138.
INTRODUCTION TO DEVOPS
Whyis 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
139.
INTRODUCTION TO DEVOPS
Whenis DevOps applicable?
DevOps principles are applicable most of
the time.
It is necessary for large organizations.
INTRODUCTION TO DEVOPS
Whatdid 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
145.
INTRODUCTION TO DEVOPS
Youcan use your skills to...
navigate through software development
for software design, development, and testing
apply data engineering implications of DevOps