18
electric- cloud.com #DOES16 DSL at Scale Source-Code Based Orchestration Greg Maxey, Solutions Architect, Electric Cloud Laurent Rochette, Professional Services Architect, Electric Cloud

DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

Embed Size (px)

Citation preview

Page 1: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

DSL at ScaleSource-Code Based Orchestration

Greg Maxey, Solutions Architect, Electric CloudLaurent Rochette, Professional Services Architect, Electric Cloud

Page 2: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Agenda

• Introduction• State of the art before DSL• Onboarding at a MASSIVE scale with DSL

o Mini case study at Financial Services company• Works in progress and what's next with DSL

Page 3: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Introduction

• Last year introduced the ElectricFlow DSL at DOES 2015o EVERYTHING you can do in the GUI, API, CLI you can do in DSL

plus enables data-driven implementations

• Saw great adoption among our customers for large scale implementation

• Provides huge improvements over former approaches for onboarding and process-maintenance for complex orgs.

Page 4: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

State of the art before ElectricFlow DSL

• Create parameterized ElectricFlow objects with UI for reuseo It was possible to do automated authoring with ec-perl, though

that was generally reserved for "synthetic" or "meta" coding

• Project exports

• Plugins for versioning and portability

Page 5: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Mini case study at Financial Services company

Page 6: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Challenge

• Huge number of existing applications (thousands!)• Server-type orientation to infrastructure• Wide range of delivery processes and technology stacks

(.NET, Java, etc.)• Many new applications in the pipeline • Three week release cycle• Strict Maintenance Windows and regulatory/compliance

guidelines

Page 7: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Requirements

• On-board existing applications• On-board new teams• Accommodate new applications• Cover 80% with model• Strict and detailed user/group access controls• Separate ElectricFlow server clusters for development, test

and production

Page 8: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Approach

• Customer created a self-service web portal to enable product owners to onboard applications

• Portal accepts application, infrastructure and releases details

• Portal sends configuration description to ElectricFlow• ElectricFlow generates custom objects based on

configuration• ElectricFlow procedures used to generate these objects• DSL used to manage all access controls• All (except credentials) managed in Source Control

Page 9: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Sample File structure

Projects

Release procedures

installProgram

runScript

Setup

procedures

createDeliveryManifest

createRelease

createRelease.groovy

steps

step1.pl

step2.sh

workflows

Page 10: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Shared Source Code based Orchestration

• 1 Project for each application group

• Application model snapshot'd to allow evolution without impact

• Version manifest managed in Property Sheet to allow simple run of pipeline

• Release and Applications data stored to properties

Page 11: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Electric Flow

Setup Project

Onboarding and Refresh

User Input Web UI

Release InfraApp

Release Project

JSON

Run ProcedureNew App Project

DSL+JSON

App/Release/Env Properties

Refresh App

Refresh Release

DSL

DSL

App & Env Models

Pipeline & Release Models

Page 12: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Advantages realized by DSL

• Source controlled versioning of orchestration• Orchestration reuse• Easily support incremental changes• Self documenting• Many people can work on the same process design through

code merging• IDE development more efficient for developers• Data-driven model creation• Models can have group-specific values hard-coded, making

for a cleaner end-user experience

Page 13: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Business Impact of DSL

• Enables self-service while maintaining compliance

• Gives organizations control over processes used for SW delivery

• Enforce separation of duty• Consolidation and standardization of pipeline and

practices saves management overhead• Enable less skilled operators to execute advanced

processes and compliance checks

Page 14: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

DSL, give it a try!

Page 15: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

What we’re working on to make DSL better

• Toggle between GUI and DSL editor – New!

• Testing framework

• EC-Admin

• PluginLiteo ReleaseDemoo EC-Supporto EF-Utilities

Page 16: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Resources

• DSL IDE Shipped with Electric Flow 6.5: https://github.com/electric-cloud/EC-DSLIDE

• PluginLite: https://github.com/electric-cloud/PluginLite

• Data-driven Release Example: https://github.com/electric-cloud/ReleaseDemoPlugin

• DSL Samples: https://github.com/electric-cloud/DSL-Samples

Page 17: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Technical details to keep in mind with DSL

• Everything read from the server, cluster challenge

• Debugging: easier in 7.0 with println support

• Limited feedback during evaluation

• Deletions don't occur automatically (idempotent)

• Careful with deleting application, can lose inventory and snapshot data

Page 18: DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale

electric-cloud.com

#DOES16

Thank you!