h ow-to d e vops - eng.verizondigitalmedia.com · h ow-to d e vops wh ig e h lco-le mavee l "...

42
HOW-TO DEVOPS AN INTRODUCTION TO CI/CD Welcome "How to DevOps" high-level overview continuous integration, delivery, deployment applicable for all projects But, what is DevOps?

Upload: others

Post on 21-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

HOW-TO DEVOPS

AN INTRODUCTION TO CI/CDWelcome "How to DevOps"high-level overviewcontinuous integration, delivery, deploymentapplicable for all projects

But, what is DevOps?

OBJECTIVESHigh-level Overview (What & Why)Components (How)Demo!

high-level, whats and whysparts and how to put togetherlight-weight example

DEVOPSIntegrate developer and operation teams to

improve collaboration and productivity

Collaboration teamsidea to production.

enhancements, requirements, bug fixesDevOps includes

CulturePhilosophyDifferent Processes

CI/CD helps us do the DevOps.

CI/CDContinuous

Integration / Delivery / Deployment

Release

Develop

Build

Test

Stage

Practice to improve software development

WHO IS CARLOS MEZA

SYSTEMS ADMINISTRATORWorks on the EdgeCast CDN at Verizon Digital Media ServicesConfiguration Management

@DIGITALR00TS

EdgeCast/VDMSSalt, Chef - started doing CI/CDTwitter - slides

DISCLAIMERViews and opinions expressed are of my own andnot of my employer or any other entity.Third party content used is under "Fair Use" as thisintended for educational purposes.Logos and trademarks belong to their respectiveholders. Use of them does not imply any affiliationwith or endorsement by them.

My opinionFair UseDoes not imply endorsement

TRADITIONALAnti-patterns

done traditionally

WATERFALL MODEL

sequential (non-iterative) design processpass down the chainw/o good communication back upthrow over wall to Ops

DEV VS OPS

Old adage of, "It worked in Dev"So as Ops, I am interested in doing the DevOps

INFREQUENT LARGE CHANGESHigher riskMore complex to debugMore time to productionLate feedback on impact

Thought to be safer not to touch production oftenchanges accumulate

MANUAL PROCESSES(builds, tests, etc)

InconsistentError ProneSlow

manualbuilds, test, deployments

cannot reliable reproduceerror proneslower

CI / CDA so�ware development practice intended to

produce better code faster.

Solution - CI CD

Development practiceto produce better code faster

CI / CDBy shipping small and frequent changes with

automated builds, tests, and reports.

small and frequent changesautomated

SMALL FREQUENT CHANGESModular, less complex codeIntegration is easierEasier to respond to changing demands

easier to debug and managefrequent integration becomes easiermore able to adjust changes

implantation, priorities, etc

AUTOMATIONConsistencyEnforced testingImmediate feedback

Same process;avoid mistakes and shortcuts

tests are not skippedquickly find out impact

of shipped code

OTHER BENEFITSReduced riskGreater visibility into the processFaster to production

Consistency / Less error proneHigher confidence in deploymentVisibility into the status and evolutionFaster ROI

PIPELINE

yellow CIorange CDred CD - to customersfeedback at every step of the process/workflow

PIPELINE COMPONENTS

parts of workflowtools/software

PROJECT CODECode can represent:

Web applicationInfrastructureDocumentation

anything that can be represented as code

PROJECT CODE

Markdown   +   Jekyll

lightweight markup languagethat Jekyll can process

popular, open-sourcestatic site generator

VERSION CONTROL SYSTEMManage changes to source code over time.

Version Control System

Recordtrackover time

VERSION CONTROL

Git          +        GitLabGit - open source version control systemGitLab - open source web interface, freemium hosted

Other free hosted options include:

GitHub, Bitbucket

BUILDCompile the project code

Generate the producthope to ship

BUILD

Jekyll

Jekyll generates our site

TESTSVerification of code

UnitIntegrationSystem

Automation needs testingMany categories/types

Unit - checks the feature being working onIntegration - checks code change works with rest of projectSystem - works with external dependencies, e.g. hw

TESTS

JekyllHTML-ProoferHunspell

check configuration sane and buildssyntax, images exists, linksspell-check

CI SOFTWAREOrchestrates builds, tests, and deployments.

CI software manages jobs to automate:builds, test, deployments

CI SOFTWARE

GitLab CIGitLab\s a continuous integration service.

Other popular CI solutions include:

JenkinsTravis

NOTIFICATIONSProvides feedback on successfulness of

tests, builds, and deployments.

Feedback loopinfo comes to us

NOTIFICATIONS

SlackPopular freemium hosted chat service.

EmailIRCSMS

STAGING ENVIRONMENTDelivers a release to a pre-production environment.

production-likesee site before it published

STAGING ENVIRONMENT

GitLab Pages

Host static websites on GitLab.com

PRODUCTION ENVIRONMENTDeploy code to customers.

Get code to your customer

PRODUCTION ENVIRONMENT

EdgeCast CDN

Content delivery network

DEMO

Blog Posts

2017

SCaLE 15x Demo - CI/CD less than 1 minute read

Demonst rat ion CI/CD at SCaLE 15x!

2016

Post: Tweet FreeBSD w/ Cloud-Init in OpenStack

Carlos MezaAutomat ing all the things.

Follow

Toggle Menu

https://gitlab.com/DIGITALR00TS-Demo/ci-jekyll/You can do this yourself by creating your own fork on GitLab.

CI/CD - WHATA so�ware development practiceSmall frequent code changesAutomated processes

development workflowCheck in small changes frequentlyAutomated builds, tests, deployments

CI/CD - WHYFaster ROIHigher confidence in releasesMore agile

Get to production fasterConsistent processes, testing, feedbackshort, frequent iteration, better suited to adjust changing demands

CI/CD - HOW

Commit Build Test Staging Production

Feedback

Developer Customers

Tool chain created

LINKS

( )

ThoughtWorks - CIhttps://www.thoughtworks.com/continuous-integration

Agile Alliance Glossaryhttps://www.agilealliance.org/agile101/agile-glossary/

DevOps For Dummies pdfhttp://www.ibm.com/ibm/devops/us/en/resources/dummiesbooks/

Definition and concepts

LINKS - VCS / GIT

( )

What is Version Controlhttps://www.atlassian.com/git/tutorials/what-is-version-control

Git - Getting Startedhttps://git-scm.com/book/en/v1/Getting-Started

Git Cheat Sheet PDFhttps://services.github.com/resources/index.html

Version control and Git

LINKS - VIDEOS

What is DevOps? - In Simple Englishhttps://www.youtube.com/watch?v=_I94-tJlovg

What is Version Control?https://git-scm.com/video/what-is-version-control

Martin Fowler – Continuous Deliveryhttps://www.youtube.com/watch?v=aoMfbgF2D_4

In case you don't like reading like me.

THANK YOU

QUESTIONS?@DIGITALR00TS