Understanding DevOps in simpler way with Continuous Delivery

Preview:

Citation preview

OpenShift

DevOps

Swapnil JainRHCA VI

Red Hat Certified Instructor / DevOps Consultant

IdeasIdeas

RequirementsRequirements

DevelopmentDevelopment

Integrate TestIntegrate Test

ReleaseRelease

IdeasIdeas

RequirementsRequirements

DevelopmentDevelopment

Integrate TestIntegrate Test

ReleaseRelease

Weeks or months to validate code match original requirement

IdeasIdeas

RequirementsRequirements

DevelopmentDevelopment

Integrate TestIntegrate Test

ReleaseRelease

Weeks or months to validate code match original requirement

Months/Years to learn if idea requirement match the market need

Where is the Problem?

Rework & Overhead

Rework & Overhead

● Developer to QA lag● Developers gets late feedback ● Works on a buggy software● Resulted in REWORK● Developers are paid to write code● Not spend hours writing instruction how deploy,

thats OVERHEAD● That leads to more problems....

Leads to more problems

● An INNOVATION problem– We need to deliver more apps, more features, more value.

The business wants more out of IT.

Leads to more problems

● An INNOVATION problem– We need to deliver more apps, more features, more value.

The business wants more out of IT.

● A THROUGHPUT problem– We need to deliver value to the organization faster. Our

projects are always behind. My best people are always fighting fires instead of delivering value.

Leads to more problems

● An INNOVATION problem– We need to deliver more apps, more features, more value. The

business wants more out of IT.

● A THROUGHPUT problem– We need to deliver value to the organization faster. Our

projects are always behind. My best people are always fighting fires instead of delivering value.

● A QUALITY problem– Our IT projects aren’t as successful as we want them to be. The

results aren’t satisfying the business.

Solution, Is there any?

DevOps DevOps DevOps

What is DevOps?

What is DevOps?

● DevOps is not a Product● DevOps is not a Technology● DevOps is not brain surgery● We Don't buy DevOps● We do DevOps

DevOps Defined

DevOps is a culture, movement or practice that emphasizes the collaboration and

communication of both software developers and IT operations professionals

while automating the process of software delivery and infrastructure changes.

DevOps Defined ….. in Short

Communication to work in more collaborative way to achieve acceleration through automation

by bringing People, Process & Technology together

You Improve 3 things

● Software that you deliver● Environment that you are delivering● Improve the Process

Where do we start?

Understanding the Environment & People

DEV BUILD QA SIT UAT PROD

Understanding the Environment & People

DEV BUILD QA SIT UAT PROD

Understanding the Environment & People

DEV BUILD QA SIT UAT PROD

Discover Pain Points:- SCM- Build Process- QA Env / Infra- Production Methodology

Understanding the Environment & People

DEV BUILD QA SIT UAT PROD

Developers Build Eng. QA Team IntegrationTesters

UserTesters

Operations

Understanding the Environment & People

DEV BUILD QA SIT UAT PROD

Developers Build Eng. QA Team IntegrationTesters

UserTesters

Operations

Understanding the Environment & People

DEV BUILD QA SIT UAT PROD

Developers Build Eng. QA Team IntegrationTesters

UserTesters

Operations

- Develop Capability of Continuous Delivery- Make sure all Stakeholder are on same page and have access to all assets and data- Decide Where are your biggest pain points

How DevOps Solve the INNOVATION, THROUGHPUT & QUALITY Problem?

How DevOps Solve the Problem?

● INNOVATION– Fully implemented, DevOps can help developers develop,

test & deploy new applications & features quickly to help the business succeed.

How DevOps Solve the Problem?

● INNOVATION– Fully implemented, DevOps can help developers develop,

test & deploy new applications & features quickly to help the business succeed.

● THROUGHPUT– DevOps tools and practices can help automate mundane,

repetitive tasks and free-up your smartest resources to get new projects out the door more quickly.

How DevOps Solve the Problem?

● INNOVATION– Fully implemented, DevOps can help developers develop, test & deploy

new applications & features quickly to help the business succeed.

● THROUGHPUT– DevOps tools and practices can help automate mundane, repetitive

tasks and free-up your smartest resources to get new projects out the door more quickly.

● QUALITY– DevOps practices - like continuous feedback loops and continuous

integration - can help increase the quality of deployed code. And, if something goes wrong, you can recover quickly.

Continuous Delivery / Continuous Deployment

Continuous Delivery / Continuous Deployment

● Continuous Deployment is process to deploy a software to any particular environment at any given point of time.

Continuous Delivery / Continuous Deployment

● Continuous Deployment is process to deploy a software to any particular environment at any given point of time.

● Continuous Delivery is that capability to deploy software to any particular environment at any given point of time and it is a must.

Continuous Delivery / Continuous Deployment

● Continuous Deployment is process to deploy a software to any particular environment at any given point of time.

● Continuous Delivery is that capability to deploy software to any particular environment at any given point of time and it is a must.

● Helps to recreate a bug aqap so that they can fix it.

Continuous Delivery / Continuous Deployment

● Continuous Deployment is process to deploy a software to any particular environment at any given point of time.

● Continuous Delivery is that capability to deploy software to any particular environment at any given point of time and it is a must.

● Helps to recreate a bug aqap so that they can fix it.● What they need is the ability to provision that

environment which has the same version.

How do we achieve Continuous Delivery?

Tools That can help you achieve this

● Docker ● Kubernetes● OpenShift● Puppet● Ansible

Docker?

Docker?

A software to create and manage containers

Containers?

Containers?

Lightweight Operating System Virtualization

Docker

● Docker allows you to package an application with all of its dependencies into a standardized unit for software development.

How is this different from virtual machines?

Kubernetes?

Kubernetes?

Kubernetes is an open source container cluster manager by Google. It aims to provide a "platform for automating deployment, scaling, and

operations of application containers across clusters of hosts".

OpenShift?

OpenShift?

OpenShift is a cloud Platform-as-a-Service (PaaS) developed by Red Hat.

origin

Public Cloud Service

On-premise or Private Cloud Software

Open Source Project

FLAVORS OF OPENSHIFT

Developer IDEIntegrations

Web BrowserConsole

Command LineTooling

REST APIs

INTERACTIONS

EVERYONE GETS ALONG

• Operations care about stability and performance• Developers just want environments without waiting

OpenShift Enterprise creates a peaceful environment for both

Source to Image (S2I)

Why Developers like OpenShift

● On-Demand Development– Self-Service and on-demand

application stacks

– Responsive Web Portal

– One-Click application deployment

● Flexibility and Choice– Choice of programming

languages and frameworks

– Enterprise apps with Java EE6

– Built-in database services

– Extensible cartridge system for adding services

– Mobile application development

– Application portability

● Standardisation– Standardised developer workflows

– Multiple environment support – Dev/Test/Prod

– Dependency and build management

– Library of project templates

● Agile Development– Continuous Integration and Release

Management

– Source code version management

● Development Experience– IDE integration

– Remote application debugging

– Remote SSH login to application containers

– Rich command line tools

Why Operations like OpenShift

● Designed for High Availability (HA)

● SELinux-based secure multi-tenancy support

● Enterprise integration

– DNS, Directory Services, and edge of network services.

● Supports Continuous Delivery & DevOps

– Automated provisioning

– Automated application scaling

– Reduced maintenance overhead

– Embed operational standards into development

Why Business likes OpenShift

● Accelerated Application Service Delivery

– Enhances team productivity and agility

– Reduces project bootstrap & setup time

– Engenders ready-to-deploy development of applications and services

● Minimises Vendor Lock-in

– Build on a stack of open source technology

– Provides freedom of choice over adopted languages and frameworks

– Provides freedom of movement into and out of the platform; portable application development

– No proprietary APIs, technologies or resources

– No vendor lock-in

Puppet / Ansible

Puppet / Ansible

An open-source configuration management tool.

OpenShift

Thank You!Swapnil Jain

@jswapnilSwapnil@Linux.com

Recommended