26
USING SALTSTACK TO DEVOPS THE ENTERPRISE Christian McHugh

Using SaltStack to DevOps the enterprise

Embed Size (px)

Citation preview

Page 1: Using SaltStack to DevOps the enterprise

USING SALTSTACK TO DEVOPS THE ENTERPRISEChristian McHugh

Page 2: Using SaltStack to DevOps the enterprise

About me

● Just zis guy, you know?● Been working professionally since 1998 in systems

administration/ops and management● Been involved in DevOps work and advocacy since 2010● Author of saltstack jenkins plugin

Page 3: Using SaltStack to DevOps the enterprise

Agenda

● Enterprise concerns● Articulate the argument● Tool use

Page 4: Using SaltStack to DevOps the enterprise

Enterprise Terminology

● Service● Service Level Agreement● Configuration Management Database

Page 5: Using SaltStack to DevOps the enterprise

Demo!

● Deploy: salt-run state.orchestrate orch.stackdeploy

● Scale: ab -t 600 -n 1000000 -c 100 192.168.122.197/

● Patch: cli version: salt-run state.orchestrate orch.patch-web 'pillar={"target":"web1"}'

● Report: salt '*' coalfire.report --output newline_values_only > /tmp/report.csv

Page 6: Using SaltStack to DevOps the enterprise

Demo: Landscape/service deploy● salt-run state.orchestrate orch.stackdeploy

○ web1: http://192.168.122.184/○ balance1: http://192.168.122.197/○ balance1 stats: http://192.168.122.197:8998/admin?stats

Page 7: Using SaltStack to DevOps the enterprise

Demo: scaling● ab -t 600 -n 1000000 -c 100 192.168.122.197/

○ https://efhdevops.slack.com/messages/salttest/

Page 8: Using SaltStack to DevOps the enterprise

Demo: Patching● cli version: salt-run state.orchestrate orch.patch-web 'pillar=

{"target":"web1"}'

Page 9: Using SaltStack to DevOps the enterprise

Demo: Reporting

● salt '*' coalfire.report --output newline_values_only > /tmp/report.csv

Req 1 Debian Debian-8 Application saltmaster 127.0.1.1 DC1 8.2 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65...

Req 2 Debian Debian-8 Application node1 192.168.122.213 DC2 8.2 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65...

Page 10: Using SaltStack to DevOps the enterprise

Mission Accomplished?

● Move from demo to deployment● Multiple teams involved

○ VM deployment team○ Storage○ Windows Operations (Wintel)○ Unix○ Networking○ Security○ Compliance○ App team○ Dev team○ Architecture○ Patching team○ Testing team○ Help desk (update cmdb)○ DevOps team

Page 11: Using SaltStack to DevOps the enterprise

● *** Management buy-in ***● Cost/Benefit analysis

○ Costs for people to do work today?

■ New project spin up time

■ Employee hours patching

■ Security response

■ Compliance auditing

■ Track ticket buckets for where time spent

○ Cost to bring down service for maintenance?

○ Cost of existing duplicated tools (inventory management, runbooks, patching tools)

○ Cloud?

○ Overhead of app deployment

■ Features and bug fixes are the differentiating value add

Informs tool availability and work priority

What’s required?

Page 12: Using SaltStack to DevOps the enterprise

Value Stream Map

Request VM Create Base Build Done

Send email: 5minHelpdesk rework request: 1 day

VM Build: 1 hour Firewall Conf: 2 weeksAdd User: 1-7 daysInstall Role: 7 days

Wait: 2 weeks

Wait: 2 weeks

1 day 1 hour 22 - 28 days

Wait Time:28 days

Work Time: 23 - 29 days

Total Time: 51 - 57 days

Page 13: Using SaltStack to DevOps the enterprise

You don’t have to boil the ocean (all at once)

Have kids? Ever managed people? Does what works for one child or employee always work for everyone?

Processes also need to adapt to real world usage

Don’t start with silo removal, just ease the communication and current workflows

Perhaps you set up syndic or just gitfs and let silo team manage most of their config. Task enterprise architecture team to set base, and allow teams to layer on top.

Page 14: Using SaltStack to DevOps the enterprise

How Important is Management Engagement?

“The most critical success factor to deploying DevOps and transitioning into a high performing organization, is changing the mindset from siloed operations to enabling continuous delivery” -- Gartner

DevOps is not a project, it is a culture of Continuous Improvement

Page 15: Using SaltStack to DevOps the enterprise

Talk Business

When engaging management, keep scope in mind. Tell a story of how recommendations will affect business outcomes

Not great● Makes patching better

Good● Reduces patching times by 90%

Best● Reduces patching hours from 330 to 3 resulting in $13,200 of monthly cost

reduction

Page 16: Using SaltStack to DevOps the enterprise

Communicate with management

Know your/their terminologyAsk about what is important to themSpeak in terms they understand

Should you talk big picture, or lay out the individual steps? Perhaps you describe fully managed services, or you talk about individual metric improvements

Page 17: Using SaltStack to DevOps the enterprise

What gets measured gets improvedKeep them collectable, actionable, and auditable.Operational

● Headcount● Cost of change/release● Cost of incident/security response (patching)● Mean time to recover (MTTR)

Service Velocity● Deployment Frequency● Deployment lead time

Customer Value● Response Time● Epics Delivered

Business Value● Time to New Service● Time to report (inventory, sox, pci, security…)

Page 18: Using SaltStack to DevOps the enterprise

Simple Goals

Keep things simple. Implement something and iterate.It’s okay to be wrong. Don’t let egos take over.Don’t rush off to implement solutions; discuss and get agreement on what you are trying to accomplish.

Page 19: Using SaltStack to DevOps the enterprise

● *** Management buy-in ***● Communicate

○ Get stakeholders into the same room (teams from before)

○ Ensure management attends meetings○ Post constant progress updates/reminders○ Ensure signoff on all decisions (roman vote)○ Brown bag sessions

■ Demos, examples, progress reports■ Record low hanging fruit

● Determine end state● Quick wins

○ Build toward end goal, but keep deliverables to days

What else is required?

Page 20: Using SaltStack to DevOps the enterprise

So Salt?

Salt is super modular. Use it for code deploys or full stack orchestration.

Write modules to handle current paint points: reporting, one-shot jobs, repetitive tasks, job scheduling

Once in place, proselytize the event bus

Create an interface for required functionality and delegate the authority. Use salt ACL system or frontend like Jenkins

Page 21: Using SaltStack to DevOps the enterprise

Continuous Improvement - bite sized

● Use Salt to delegate capability○ Patching

■ Develop remote execution workflow■ Give patching team a jenkins button

Page 22: Using SaltStack to DevOps the enterprise

Continuous Improvement - bite sized

● Use Salt to delegate capability○ Patching

■ Develop remote execution workflow■ Give patching team a jenkins button

■ Develop service definition● SLA/OLA● Outage windows● $ of outage

■ Develop service monitoring■ Develop service tests■ Safely implement automatic patching

Page 23: Using SaltStack to DevOps the enterprise

In short

Ensure everyone is serious1. Get & keep management involved2. Get players in the same room: DevSecNetCompArchStorOps

○ Cross functional team with champions3. Communicate constantly: end goal, training, status, pain points, desires, low

fruit4. Determine current costs5. Develop priority list6. Rock it, one quick item at a time

Page 24: Using SaltStack to DevOps the enterprise

The End

Questions?Thoughts?Disagreements?

Please rate and provide feedback via the conference app/site

Page 25: Using SaltStack to DevOps the enterprise

Why use salt?

● Simplicity (simple to use, but powerful)● Approachability for non programmers● Messaging layer● Compliance

Page 26: Using SaltStack to DevOps the enterprise

What worked well

Salt-virt and salt-cloud

Zabbix monitoring

Testinfra

Salt for CD

Autoscailing loadbalancers: salt events and mine

Salt-proxy for firewall management

Salt elasticsearch reporting