Introduction to

DevOPs

presented by:

[Hamid Salehian]

Once upon a Time...

Pre 2000s: WaterFall Era

Idea

Customer

Build

Test

Release

Operate
/ Deploy

Code

Analyse

Handoff

Handoff

Handoff

Handoff

Bussiness

Development

Test & QA

Deployment

2000s: AGile Era

Idea

Customer

Build

Test

Release

Code

Analyse

Handoff

Bussiness

Development

Test & QA

Deployment

Agile Movement

Operate
/ Deploy

Handoff

2010s: CI/CD ERA

Idea

Customer

Build

Test

Release

Code

Analyse

Handoff

Bussiness

Development

Test & QA

Deployment

Continuous Integration

Operate
/ Deploy

Handoff

CI: Continuous Integration

Continuous Integration (CI) : is the process of automating the build and testing of code every time a team member commits changes to version control

TeamCity

2010s: CI/CD ERA

Idea

Customer

Build

Test

Release

Code

Analyse

Bussiness

Development

Test

Deployment

Continuous Delivery

Operate
/ Deploy

QA and Release

Battle : Angry Dev vs Ops

Development=Agile Operatation=!??
Extreme Focus on Change Extreme Focus on Stability
Ops are innovation blockers Minimize Change (SLA)
​Security Doesn't Matter ​Security Concern
Lack of Operation Knowledge Lack of Development Knowledge

Solution

DevOPS

Development

Operation

Now

Idea

Customer

Build

Test

Release

Code

Analyse

Bussiness

Development

Test & QA

Deployment

Operate
/ Deploy

DevOps

QA and Release

Deployment

Devops

 

 Dev and ops

web performance and operation - 2009

devops philosophers

The DevOps Handbook

Kevin Behr

George Spafford

Gene Kim

Jez Humble

Patrick Debois 

The Phoenix Project

devops: What IS?

DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support.
DevOps is also characterized by operations staff making use many of the same techniques as developers for their systems work.

devops: WhY?

YOU ANSWER

devops: In Brief

  • New culture
  • More collaboration
  • More automation
  • New tech

devops: how?

devops: how? (cont.)

ToolS

Dev

JIRA

Jira is a proprietary issue tracking product, developed by Atlassian. It provides bug tracking, issue tracking, and project management functions.

Alternative: TFS, YouTrack

GitHUB

GitHub is a Web-based Git version control repository hosting service. It is mostly used for computer code. It offers all of the distributed version control and source code management functionality of Git as well as adding its own features

Alternative: GitLab, Bitbucket, Beanstalk

SLACK

Slack is a cloud-based set of team collaboration tools and services which support Bot and have Integration with other tools

Alternative: Flock, Hipchat

ChatOps integrates development and deployment tools into chat platforms to ensure that key DevOps functions can be run from within chat conversations.

For example:Slack lets you send commands directly to and receive data directly from GitHub,

Chatops

Jenkins: what is?

Jenkins is an open source automation tool  with plugins built for Continuous Integration purpose. Jenkins is used to build and test your software projects continuously making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build.

Alternative: Circle CI, Travis CI

Text

Jenkins: i cALL iT iNTEGRATOR

OPS

VM VS DOCKER Container

Docker: WHAT?

Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications.

You Have Package Contains:

               OS Configuration

               Service Configuration

               Hardening Configuration

"Call it Container"

Docker: Example

Web Server

Web Server

Database

Web Server

Load Balancer

Apache HTTP

Apache HTTP

Apache Tomcat

MongoDB

HAProxy

Docker Stack

Ansible

Infrastructure as A Code (IAC)

Process of managing and provisioning computer data centers through machine-readable definition files (scripts), rather than physical hardware configuration or interactive configuration tools

 

 

- Similar to programming scripts

- Automate important IT processes.

- Automate a series of static steps that must be repeated numerous times across multiple servers.

 

Ansible

You can use Ansible to automate three types of tasks:

  • Provisioning: Set up the various servers you need in your infrastructure.
  • Configuration management: Change the configuration of an application, OS, or device; start and stop services; install or update applications; implement a security policy; or perform a wide variety of other configuration tasks.
  • Application deployment: Make DevOps easier by automating the deployment of internally developed applications to your production systems.

Ansible: Example

---
- hosts: webservers
  vars:
    http_port: 80
    max_clients: 200
  remote_user: root
  tasks:
  - name: ensure apache is at the latest version
    yum: name=httpd state=latest
  - name: write the apache config file
    template: src=/srv/httpd.j2 dest=/etc/httpd.conf
    notify:
    - restart apache
  - name: ensure apache is running (and enable it at boot)
    service: name=httpd state=started enabled=yes
  handlers:
    - name: restart apache
      service: name=httpd state=restarted

Apache HTTP

Monitoring

Zabbix

Zabbix is software that monitors numerous parameters of a network and the health and integrity of servers. Zabbix uses a flexible notification mechanism that allows users to configure e-mail based alerts for virtually any event. This allows a fast reaction to server problems. Zabbix offers excellent reporting and data visualisation features based on the stored data.

LogStash and Kibana

Logstash is an open source tool for collecting, parsing, and storing logs for future use. Kibana 3 is a web interface that can be used to search and view the logs thatLogstash has indexed.

Our Story

Dev Team

Test

Project Manager

CI

Chatops

Deployment

Production Servers

LEts Get Hands Dirty

Docker Hub

Test

LAb Environment

Summery

  • Review Software Engineering Methodologies
  • CI/CD
  • Software Development and Deployment Weaknesses
  • Dev and Ops Battle
  • DevOps
  • DevOps Tools
    • Jira
    • Github
    • Slack
  • ChatOps
    • Jenkins
    • Docker
  • IAC
    • Ansible
  • Monitoring Tools
    • Zabbix
    • ELK (ELasticSearch, Logstash, Kibana)
  • Our Story
  • Demo

Question!?

References

  1. Visible Ops Handbook (Gene Kim)
  2. The Phoenix Project (Gene Kim)
  3. Web Operations (Allspaw/Robbins)
  4. Continuous Delivery (Humble/Farley)
  5. Lean Startup (Eric Reis)

Thank You For Your Attention

powered by: slides.com

see more: https://slides.com/hsarena

Introduction to DevOps

By Hamid Salehian

Introduction to DevOps

Introduction to DevOps with Docker

  • 223