Maintenance is Dead! A path to a New Paradigm 2016_BO II... · Maintenance is Dead ... • Docker...

Post on 15-Mar-2018

216 views 2 download

transcript

Maintenance is Dead! A path

to a New Paradigm

Director - Expresscommerce

Ali Hashmi

• Maintenance is Dead!

• The paradigm Shift – Your website is a living thing

• Role of DevOps in website Maintenance

• Our Journey

Today’s Plan

Maintenance is Dead!

“What do you mean it’s not fixed yet?? I told him we

needed that new button three weeks ago!!”

Maintenance is Dead…the way it is currently practiced

• Maintenance is a chore, even a hassle.”

• Reactive instead of proactive

• Working in a Silo approach

– Assigned to the ‘B Team’

– Lack of familiarity with project history

– Lack of communications with PM, Account Manager or original Dev

team

– Not integrated with marketing, BA or other departments

• Interruptions in service or features

• Random approach with no guiding methodology

…Innovate or die!!

“Maintenance reframed becomes an opportunity.”

New ParadigmCultivate – Your website is a living Entity

“...Maintenance reframed becomes an opportunity….”

Don’t be reactive Be proactive

“...Maintenance reframed becomes an opportunity….”

Breaking Barriers

A new mentality and

corporate culture that makes

development work in an

integral way with

operations

“...Maintenance reframed becomes an opportunity….”

Traditional Approach

V1.0 Release V2.0 Release

Risk/Cost

Time

Continuous Delivery

Risk/Cost

Release with Ease

“Keep a reactive approach to maintenance and you’ll see a periodic increase on

costs and risks. Reframe it to continuous and smaller releases and your

development risk and cost will remain constant”

Time

DevOpsA working philosophy to handle Change

better, faster and cheaper

“...Maintenance reframed becomes an opportunity….”

Keyword: DevOps

Source: Google Trends

Opposing or Complementary?

Systems Thinking

- Holistic vs Silos

- More Visibility

- Process vs

Individual

Feedback

- Interdependence

- Mutual Feeds

- Meta culture

Continual Learning

- Iterate and Learn

- Experiment and fail

fast

Socio-technical system

- A mindset change

- Common objective

DEVOPS

CAMS

John Willis & Damon Edwards

Adoption Barriers

0% 10% 20% 30% 40%

Organizational Culture

Lack of Integrated Development and Operations

Technical Hurdles

Lack of Understanding

Business Readiness

Source: DevOpsGuys.com

What DevOps is not?

• DevOps is not only for “born on the web

companies”

• DevOps is not only for internal teams and not

for outsourced partner

• DevOps only works in cloud environment

• DevOps is not only about communication

• DevOps doesn’t mean that you are doing

continuous change deployment

"The hardest part is getting the business culture right, particularly

when trying to transplant these DevOps ideas into a larger company.

You may have to deal with stakeholders at different levels who may

not like this idea of relinquishing some power or giving people

access to systems they previously haven’t had"

Jon Cowie, Etsy

From our journeyUsing DevOps to Reach Goals

DevOps challenges in maintaining your site

Issues

• Staging mirror Production

• Works on development but not

on staging/production

• Manual work in moving

changes across environment

• Which features to move which

not to?

• Are we doing enough testing?

Solutions

• Use tools for Continuous

integration and Continuous

Delivery

• No manual interaction

• Builds should be self contained

• Use Feature toggle

• Unit tests, Integration tests and

Regression tests

Continuous Integration

Continuous Delivery

Code Done Unit Tests IntegrateAcceptance

TestDEPLOY TO

PRODUCTION

AUTO AUTO AUTO MANUAL

Code Done Unit Tests IntegrateAcceptance

TestDEPLOY TO

PRODUCTION

AUTO AUTO AUTO AUTO

Adopting DevOps

• Bringing Development and Operations together

– Get the process on the paper

– Identify your constraints

– Identify roles and fill in the gaps

– Develop a feedback loop

– Team Accountability vs Individual

• Automation

– Development environment setup

– Streamline build process

– Staging and Production environments

– Establish Metrics to monitor and provide feedback

Delivering new capabilities quickly and safely

Uptime, Security

Code Quality

More Code

Dev + Ops

Think Big, Start Small, Move Fast - Automation

DevOps Tools 2016 Trends

Overall DevOps adoption rises from 66 to 74 percent, with enterprises reaching 81 percent.

CI/CD Tools that works well with Magento

Develop, Build, Test, Deploy and Release

• Docker

• Vagrant

• Jenkins

• Travis CI

• Puppet

• Chef

• Bamboo

• Selenium

• And the list goes on

Build

Test

Deploy

Monitor

Development

Tools Selection

Who is Docker For?

It is designed to benefit both developers and system administrators.

Developers:-

• Can focus on writing code without worrying on which platform

application will run on.

• No worry of Dependencies.

System Administrators:- (Infrastructure as a code)

• Docker gives flexibility and potentially reduces the number of

systems needed because of its small footprint and lower overhead

Features of Docker and Docker registry

Lightweight

• Containers running on a single machine sharing same OS

• Provides instant start, efficient use of RAM.

• Images are constructed from layered filesystems so they can share common files, making

disk usage and image downloads much more efficient.

Open Standards

• Containers to run on all major Linux distributions and Microsoft operating systems.

Security

• Containers isolate applications the underlying infrastructure to provide additional security

layer.

Docker registry

• Docker registry is used to store docker images from where you can pull and push images

from docker on servers.

Several hundred Magento repository images available on http://hub.docker.com

Database Dump

Media Directory

Building and Testing - Jenkins

An Open source Mature Continuous Integration tool with 1000s of plugins

Building and Testing - Jenkins

Deployment Pipeline

Continuous Testing

Static Code Analysis (php-pmd, php-depend, codesniffer, etc)

Unit Tests (php-unit, MTF (Magento Testing Framework))

Integration Testing (MTF, conflict checker, link checker, etc)

Stress Test (Jmeter, Selenium, etc)

Continuous Monitoring

Monitoring is essential to cultivate your site

• Monitoring provides data to Development, Operations, QA, lines of

business personnel and other stakeholders.

• Monitoring should be done in all environments from development to

production

• Quality metrics should be defined in the planning phase

• Insights and alerts

You can’t manage what you can’t measure

Knitting the DevOps Fabric

• Begin with the end in Mind

• Start with People

• Identify Burning areas

• Don’t overkill with tools

Don’t Maintain --- Cultivate

Thank You

Visit us at: www.expresscommerce.co

http://expresscommerce.co/devops50/