Skip to content

Instantly share code, notes, and snippets.

@prasanjit-
Created June 15, 2017 17:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save prasanjit-/1126c533f308cb0ad74e59f3c03ed45e to your computer and use it in GitHub Desktop.
Save prasanjit-/1126c533f308cb0ad74e59f3c03ed45e to your computer and use it in GitHub Desktop.
DevOps Intro
::DEVOPS::
'''''''''''''''''''''''''''''
Intro
'''''''''''''''''''''''''''''
Concepts Covered
# DevOps is an IT mindset that encourages communication, collaboration, integration and automation among software developers and IT operations in order to improve the speed and quality of delivering software.
# Challenges DevOps Solves
-Dev is often unaware of QA and Ops roadblocks that prevent the program from working as anticipated.
-QA and Ops are typically working across many features and have little context of the business purpose and value of the software.
-Each group has opposing goals that can lead to inefficiency and finger pointing when something goes wrong.
# Goals of DevOps Practice
-Improve deployment frequency
-Achieve faster time to market
-Lower failure rate of new releases
-Shorten lead time between fixes
-Improve mean time to recovery
#Waterfall Model: (Traditional Model)
In this model, the software development activity is divided into different phases and each phase consists of series of tasks and has different objectives. The sequential steps are-
Conception > Initiation > Analysis > Design > Construction > Testing > Deployment
#Agile Model
An iterative and incremental software development methodology. Agile Methods break the product into small incremental builds. These builds are provided in iterations.
Agile comprises of (Scrum/Kanban) - [Not in scope, We can discuss this later if time permits]
# Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.
# Continuous deployment is a process that allows for a shorter time period between software testing and releases by automating updates.
# Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software faster and more frequently.
#Tools Used in DevOps:
-Source Code Repository
A source code repository is a place where developers check in and change code. The source code repository manages the various versions of code that are checked in, so developers don’t write over each other’s work.
Popular source code repository tools are Git, Subversion, Cloudforce, Bitbucket and TFS.
-Build Server
The build server is an automation tool that compiles the code in the source code repository into executable code base. Popular tools are Jenkins, SonarQube and Artifactory.
-Configuration Management
Configuration management defines the configuration of a server or an environment. Popular configuration management tools are Puppet, Ansible and Chef.
-Virtual Infrastructure
Amazon Web Services and Microsoft Azure are examples of virtual infrastructures. Virtual infrastructures are provided by cloud vendors that sell infrastructure or platform as a service (PaaS). Virtualization Softwares like Citrix Xenserver, MS HyperV, VMware Vsphere, Oracle Virtualbox also enable VMs'.
-Test Automation
Test automation has been around for a long time. DevOps testing focuses on automated testing within your build pipeline to ensure that by the time that you have a deployable build, you are confident it is ready to be deployed. You can’t get to the point of continuous delivery where you’re fairly confident without any human intervention that your code is deployable without an extensive automated testing strategy. Popular tools are 'Selenium' and 'Water'.
-Pipeline Orchestration (CI/CD)
A pipeline is like a manufacturing assembly line that happens from the time a developer says, “I think I’m done,” all the way to the time that the code gets deployed in the production or a late-stage pre-production environment.11!$well#
Commercial Tools:
Atlassian -- Suite -- commercial
bitbucket
confluence
bamboo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment