36
Copyright © 2016 Splunk Inc. Grigori Melnik and Cecelia Campbell Splunk Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll!

Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright©2016Splunk Inc.

GrigoriMelnikandCeceliaCampbellSplunk

SplunkAppLifecycleManagement–withMorePeace,LoveandRock-n-Roll!

Page 2: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Disclaimer

2

Duringthecourseofthispresentation,wemaymakeforwardlookingstatementsregardingfutureeventsortheexpectedperformanceofthecompany.Wecautionyouthatsuchstatementsreflectourcurrentexpectationsandestimatesbasedonfactorscurrentlyknowntousandthatactualeventsorresultscoulddiffermaterially.Forimportantfactorsthatmaycauseactualresultstodifferfromthose

containedinourforward-lookingstatements,pleasereviewourfilingswiththeSEC.Theforward-lookingstatementsmadeinthethispresentationarebeingmadeasofthetimeanddateofitslivepresentation.Ifreviewedafteritslivepresentation,thispresentationmaynotcontaincurrentoraccurateinformation.Wedonotassumeanyobligationtoupdateanyforwardlookingstatementswemaymake.Inaddition,anyinformationaboutourroadmapoutlinesourgeneralproductdirectionandissubjecttochangeatanytimewithoutnotice.Itisforinformationalpurposesonlyandshallnot,beincorporatedintoanycontractorothercommitment.Splunkundertakesnoobligationeithertodevelopthefeaturesor

functionalitydescribedortoincludeanysuchfeatureorfunctionalityinafuturerelease.

Page 3: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

3

Asadeveloper,IwanttolowermycostofSplunkappdevelopment– letmefocusonbuildingappswithoutconcerningmyselfaboutthedeploymenttopologiesandthenitty-grittyofthedeploymentprocess.

Asanadmin,Iwanttoeasily&reliablyinstallandmanageanykindofcontent(apps,addons,modules,contentpacks)acrossmyentireSplunkdeployment.

AppManageability

Page 4: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

App

Develope

r

TargetedUserFlowSplunk

Admin

Busin

ess

Expe

rt

Develop

Defineappmanifest

Packageappsource

testpackageUpgrade

PUBLISHCERTIFY

DISCOVERACQUIRE

DeployApp/Systemconfiguration

APP

APP APP

re-configure

USE

Page 5: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

ThepoetryofappmanageabilityNewapppackaging &deployment

tools andguidancefordevelopers andadmins that

simplifyappdeployment and troubleshooting to

distributed environments,whilepreservingappbackward compatibility

withexistingtools&practices.

Page 6: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

Themechanicsofappmanageability

• Focusondisambiguating config andpartitioning(packaging)relevantpiecesofconfig+code intodeploymentpackages– alongphysical workloadsandlogical groupsofforwarders

Thesystemknows

Page 7: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

All-in-onetoolforbothdevelopersandadmins

1. Devsuseittodefine andpackage anapp2. Adminsuseittopartition andprepare fordeployment3. Splunkplatform(future)mechanismwilldeploy thepartitionedapp

7

ThePackagingToolkit

Page 8: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

8

PackagingwithanAppManifest

JSONAPP

dependencies

inputGroups

tasks

platformRequirements

incompatibleApps

optional

info

auto-generated

Page 9: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

9

PartitioningaPackagedApp

APPPackaging

Toolkit

Page 10: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

generate-manifest – generateamanifestforanappbasedonitsconfpackage – createasourcepackagewithmanifestpartition – partitionanappintoasetoftargeteddeploymentpackagesdescribe – describeanappconfiguration&dependenciesvalidate – validateanappcontent(incl.appmanifest,packageddependencies,well-formedness)

10

PackagingToolkitCommandsCheatSheet

Page 11: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

DevFlowExample

Page 12: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

12

SampleApp– SplunkAppFor*Nix

APP

TA implieddependencies

task-basedscriptedinputs

possibleplatform-specific

inputsscript://ftr_lookups.py

inputs.confinput://lastlog.shinput://passwd.shinput://version.sh

inputs.conf

SA

Page 13: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

13

GenerateaManifest$ slim generate-manifest SA_nix –o SA_nix/app.manifestslim generate-manifest: Parsing app configuration at "SA_nix"...slim generate-manifest: Generating app manifest to "SA_nix/app.manifest"...slim generate-manifest: [NOTE] App manifest saved to "SA_nix/app.manifest"

$ slim generate-manifest TA_nix –o TA_nix/app.manifest...

$ slim generate-manifest splunk_app_for_nix –o splunk_app_for_nix/app.manifest...

Page 14: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

"info": {

"title": "...",

"id": { ... },

"author": { ... },

"releaseDate": "...",

"description": "...",

"license": { ... },

"releaseNotes": { ... }

}

14

AppManifest- info

Page 15: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

# Define dependencies and versions to enforce

# "dependencies": {

# "<app-id>": {

# "version": "*",

# "package": "<source-package-location>"

# }

# }

#

# Define inputs that are management tasks

# "tasks": []

15

AppManifest- examples# Define custom and dependency input groups

# "inputGroups": {

# "<group-name>": {

# "requires": {

# "<app-id>": ["<input-group-name>"]

# },

# "inputs": ["<defined-inputs>"]

# }

# }

Page 16: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

"tasks": [

"script://./bin/scripted_inputs/ftr_lookups.py",

]

16

AppManifest– SA_nix

Page 17: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

"inputGroups": {

"User Monitoring": {

"description": "Monitor current user sessions and login history",

"inputs": ["script://./bin/who.sh", "script://./bin/lastlog.sh”]

},

”OSX Inputs": {

"description": "ES scripted inputs supported on only OSX platforms",

"inputs": ["script://./bin/sshdChecker.sh"]

},

"Linux Inputs": {

"description": "ES scripted inputs supported on Linux platforms",

"inputs": ["script://./bin/selinuxChecker.sh"]

}

}

17

AppManifest– TA_nix

Page 18: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

"dependencies": {

"SA_nix": {

"version": "~5.2.0",

"package": "SA_nix-5.2.0.tar.gz"

},

"TA_nix": {

"version": "^5.2.0",

"package": "TA_nix-5.2.3.tar.gz"

}

}

18

AppManifest– splunk_app_for_nix

Page 19: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

19

CreateaSourcePackage$ slim package SA_nixslim package: Packaging app at "SA_nix”...slim package: [NOTE] Source package exported to “SA_nix-5.2.0.tar.gz”

$ slim package TA_nixslim package: Packaging app at "TA_nix”...slim package: [NOTE] Source package exported to “TA_nix-5.2.3.tar.gz”

$ slim package splunk_app_for_nixslim package: Packaging app at "splunk_app_for_nix”...slim package: [NOTE] Source package exported to “splunk_app_for_nix-5.2.0.tar.gz"

Page 20: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

$ slim describe splunk_app_for_nix-5.2.0.tar.gzslim describe: Describing "splunk_app_for_nix-5.2.0.tar.gz"...[info]|-- The Splunk App for Unix offers new ways to alert, report, and investigate data.| |-- by Splunk, Inc.| |-- defined as splunk_app_for_nix version 5.2.0[input-groups]|-- User Monitoring defines no inputs and requires [TA_nix]|-- Linux Group defines no inputs and requires [TA_nix]|-- SunOS Group defines no inputs and requires [TA_nix]|-- OSX Group defines no inputs and requires [TA_nix][dependency-graph]|-- [email protected]| |-- [email protected] (accepting ~5.2.0)| |-- [email protected] (accepting ^5.2.0)

20

DescribeanAppPackage

Page 21: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

21

SampleApp– UpdatedAPP

TA

enforceddependencies

manifest manifesttask-basedscriptedinputs

classified

platform-specificinputsgrouped

TA_nix.tgzSA_nix.tgz

input://taskAinput://taskB

tasksinputGroups

dependencies UserMonitoring: input://lastlog.shLinuxInputs: input://sshdChecker.shOSXInputs: input://update.sh

SA

manifest

Page 22: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

22

BenefitsforDevsPrevious Method Packaging Toolkit

AppInfo • Scatteredacrossconf • Centralized location• Automaticallygenerated

DependencyManagement • ReleaseNotesrequired• Guessing version

compatibilities

• DefinedandEnforced• SemVer compatible

InputGroups • Allcontent,everywhere • Logicallygrouped

ManagementTasks • Undefined • Treated differently

Page 23: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

StartonboardingyourappswiththePackagingToolkitGenerateamanifestandcustomizeyourrequirements

Giveusfeedback:[email protected]

23

CalltoActionforDevs!

Page 24: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

24

Butwait,inthefuture…

Page 25: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

DependenciesareexplicitlydeclaredbytheDevs– Adminscanviewandreconcileappdependenciestoavoidconflicts

automatically

InputsarelogicallygroupedbytheDevs– Adminscantargetspecificlogictotheappropriateworkloads

automatically

Evenwithoutanappmanifest,thePackagingToolkitwillbeabletopartitionbasedonadefaultsetofrules!

25

BenefitsforAdmins

Page 26: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

AdminFlowPREVIEW

Page 27: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

27

Page 28: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

28

Page 29: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

29

Page 30: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

30

Page 31: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

31

Page 32: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

32

Page 33: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

33

Page 34: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

Appmanageability(installation/uninstallation/update)– Automaticdependencyresolution(cascading)– Mappingoflogicalinputgroupstoserverclasses– Partitioningintotargeteddeploymentpackages

Chooseyourdeploymentmechanism– Now:Chef/Ansible/Puppet/…playbook/recipe/script– Future:AppManagementUI

34

KeyTakeaways

Page 35: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

Copyright © 2016 Splunk Inc. Confidential.

DownloadthepublicbetaofthePackagingToolkittoday:http://dev.splunk.com/goto/packaging-toolkitComevisitusattheDev Tools&GuidanceBooth!– LearnMoreandseetheDemos

Giveusfeedback:[email protected]

35

What’sNext?

Page 36: Splunk App Lifecycle Management – with More Peace, Love and Rock-n-Roll! · 2017-10-08 · 3 As a developer, I want to lower my cost of Splunk app development – let me focus on

THANKYOU