SlideShare a Scribd company logo
Devops Munich meetup
(Scripting) Orchestration

12.Februar
1. Short introduction
2. Tool usage at hybris
3. Orchestration in general
4. Introduction to adminportal
5. Short Demo
#1 “independent” commerce platform    Offices:
                                               Munich*, Montreal*, Ams
Fastest growing global commerce ISV   terdam, Boston, Chicago, Gliwice
Founded in 1997                       , Hong
                                      Kong, London, Milan, Neuilly-Sur-
Operations in 15 countries            Seine,
                                      Sao
                                      Paolo, Sydney, Tokyo, Västerås,
Why do we do this talk?



So, WHY this talk?


    Getting feedback
    Search the blind spot
    We„re hiring
        http://www.hybris.com/de/company/careers/jobs


… and WHO ?


    Kim Neunert (@k9ert), hybris GmbH
    Tobias Schuhmacher, hybris GmbH
1. Short introduction
2. Tool usage at hybris
3. Orchestration in general
4. Introduction to adminportal
5. Short Demo
Some context - tooling at hybris

    Hybris has been a software vendor rather than a Service Provider, that is
    changing right now
    In the first place: Puppet (apply) for server-provisioning
    Automated „puppet apply“ with the adminportal
    MCollective and especially the MCollective-mongo-registry approach
    http://goo.gl/WubXM
    For adhoc-tasks, we use ansible but:



    Vagrant for development and Continous integration via jenkins
    Puppi, a collection of bash-scripts provisioned via puppet for
    deployments and a self introduced mongo-reporting-mechanism
    Now heading towards a puppetmaster-approach being able to completely
    reuse our modules/server-roles
1. Short introduction
2. Tool usage at hybris
3. Orchestration in general
4. Introduction to adminportal
5. Short Demo
Orchestration, what„s that?

    Automation  a part of an overall process
    Orchestration  Automating the whole overall process


    Where are the typical limitations/borders of automation?



                                            Provisioning
           Booting new
       machines, configuring
          infrastructure




                                                           Provisioning

                               Deployment
The vision of orchestration



In order for orchestration to really work, you need a single system calling the
shots (although it may, or perhaps should, delegate some responsibilities to
other systems).
This in turn requires that all the components … be manageable from that one
platform.
There are two ways this gets done: the single-vendor approach and the open-
standards approach.
With the single-vendor approach, [...]
The open-standards approach allows IT to mix and match resources from
different vendors. As long as the orchestrator and management tools can talk
to them, they can be folded in. [...]


-- http://goo.gl/2QN6V
The downside of the imperative approach (orchestration)



    Modeling the control-flow is error-prone, especially in mixed
    environments
        No Stacktrace/„Exceptionhandling“
        No complete control of the whole stack, maybe 3rd parties/other people
        involved
        Difficult to decide how to continue in the case of errors
    So, orchestration tends to fail
    Whenever possible one switched to an declarative approach:
        Parser-code generation, SQL, Regex, Rendering of UIs
        Nodeconfiguration via Puppet (Chef?!)
    The role of orchestration is reduced to just model dependencies


    Let„s avoid orchestration  model dependencies!
Example: Cross node dependencies while provisioning

    Cross-nodes dependencies  Exported Resources in Puppet
    You need to store state, that„s why exported Resources need a DB
    Storing state or gathering it at runtime is very helpfull
        PuppetDB
        MCollective




    R.I.Pienaar (author of mcollective) shows how to leverage MongoDB-
    Registration-Data in puppet manifests:
      http://goo.gl/WubXM


    Chris Spence (puppetlabs consultant) created a notify-mechanism which
    will handle cross-node-dependencies so that e.g. a Loadbalancer get
    configured afterwards immediately
      http://goo.gl/NkHtS
Long story short …




         … you want to avoid orchestration
   in favor of declarative dependency modeling
       however, that will be a long journey ...



                     … in the meantime …
1. Short introduction
2. Tool usage at hybris
3. Orchestration in general
4. Introduction to adminportal
5. Short Demo
Features


    Grails application (Spring, Groovy, Java...)


    Execute scripts in a chain (Bash, Perl, Groovy, Python, PHP...)


    Annotate scripts (metadata: description, author, parameters etc.)

    #!/bin/bash


    # @Scriptlet(author=“Tobi (my-email@somehwere.de)", 
           description=“Create Zerigo DNS entry")
    #
    #
    # @Parameters([
    # @Parameter(name=“ZERIGO_USER", type=ParameterType.CONSUME, 
              description=“The Zerigo uUsername", visible=false,
              defaultValue=“my-zergio-username"),
    #
    # @Parameter(name=“FQDN", type=ParameterType.EMIT, 
              description=“The FQDN returned by Zerigo“),
    # ])
Features


    List of required script parameters
Features


    Grouping of script chains
        Per environment
        Different parameters per group
        Parameters exported via REST (Json, YAML – useful for Hiera)


    Execution of script chains can be triggered via REST


    Authorization / Authentication supported


    Plugin mechanism: wrap a script and interact with Grails (e.g. DB access)


    Execute scripts as cronjob
After the execution, it looks like this


     Track any output of a script chain
1. Short introduction
2. Tool usage at hybris
3. Orchestration in general
4. Introduction to adminportal
5. Short Demo
Devops presentation

More Related Content

Similar to Devops presentation

Modular Architectures using Micro Services
Modular Architectures using Micro ServicesModular Architectures using Micro Services
Modular Architectures using Micro Services
Marcel Offermans
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
Diane Allen
 
vRO Training Document
vRO Training DocumentvRO Training Document
vRO Training Document
Mayank Goyal
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
Marco Ferrigno
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
NaLUG
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
Stanislav Pogrebnyak
 
Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit Log
Joe Stein
 
Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)
Brian Brazil
 
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
Codemotion
 
Microservices and Prometheus (Microservices NYC 2016)
Microservices and Prometheus (Microservices NYC 2016)Microservices and Prometheus (Microservices NYC 2016)
Microservices and Prometheus (Microservices NYC 2016)
Brian Brazil
 
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Brian Brazil
 
FEVR - Micro Frontend
FEVR - Micro FrontendFEVR - Micro Frontend
FEVR - Micro Frontend
Miki Lombardi
 
Prometheus (Microsoft, 2016)
Prometheus (Microsoft, 2016)Prometheus (Microsoft, 2016)
Prometheus (Microsoft, 2016)
Brian Brazil
 
QTP Interview Questions and answers
QTP Interview Questions and answersQTP Interview Questions and answers
QTP Interview Questions and answers
Rita Singh
 
SiestaTime - Defcon27 Red Team Village
SiestaTime - Defcon27 Red Team VillageSiestaTime - Defcon27 Red Team Village
SiestaTime - Defcon27 Red Team Village
Alvaro Folgado Rueda
 
Git & dev ops come together, right now!
Git & dev ops come together, right now!Git & dev ops come together, right now!
Git & dev ops come together, right now!
rhirschfeld
 
Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
Ram Srivastava
 
Deployment automation
Deployment automationDeployment automation
Deployment automation
Riccardo Lemmi
 
Stateful mock servers to the rescue on REST ecosystems
Stateful mock servers to the rescue on REST ecosystemsStateful mock servers to the rescue on REST ecosystems
Stateful mock servers to the rescue on REST ecosystems
Nuno Caneco
 
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопсКирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
ScrumTrek
 

Similar to Devops presentation (20)

Modular Architectures using Micro Services
Modular Architectures using Micro ServicesModular Architectures using Micro Services
Modular Architectures using Micro Services
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
 
vRO Training Document
vRO Training DocumentvRO Training Document
vRO Training Document
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit Log
 
Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)
 
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
 
Microservices and Prometheus (Microservices NYC 2016)
Microservices and Prometheus (Microservices NYC 2016)Microservices and Prometheus (Microservices NYC 2016)
Microservices and Prometheus (Microservices NYC 2016)
 
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
 
FEVR - Micro Frontend
FEVR - Micro FrontendFEVR - Micro Frontend
FEVR - Micro Frontend
 
Prometheus (Microsoft, 2016)
Prometheus (Microsoft, 2016)Prometheus (Microsoft, 2016)
Prometheus (Microsoft, 2016)
 
QTP Interview Questions and answers
QTP Interview Questions and answersQTP Interview Questions and answers
QTP Interview Questions and answers
 
SiestaTime - Defcon27 Red Team Village
SiestaTime - Defcon27 Red Team VillageSiestaTime - Defcon27 Red Team Village
SiestaTime - Defcon27 Red Team Village
 
Git & dev ops come together, right now!
Git & dev ops come together, right now!Git & dev ops come together, right now!
Git & dev ops come together, right now!
 
Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
 
Deployment automation
Deployment automationDeployment automation
Deployment automation
 
Stateful mock servers to the rescue on REST ecosystems
Stateful mock servers to the rescue on REST ecosystemsStateful mock servers to the rescue on REST ecosystems
Stateful mock servers to the rescue on REST ecosystems
 
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопсКирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
 

Devops presentation

  • 1.
  • 2. Devops Munich meetup (Scripting) Orchestration 12.Februar
  • 3. 1. Short introduction 2. Tool usage at hybris 3. Orchestration in general 4. Introduction to adminportal 5. Short Demo
  • 4. #1 “independent” commerce platform Offices: Munich*, Montreal*, Ams Fastest growing global commerce ISV terdam, Boston, Chicago, Gliwice Founded in 1997 , Hong Kong, London, Milan, Neuilly-Sur- Operations in 15 countries Seine, Sao Paolo, Sydney, Tokyo, Västerås,
  • 5. Why do we do this talk? So, WHY this talk? Getting feedback Search the blind spot We„re hiring http://www.hybris.com/de/company/careers/jobs … and WHO ? Kim Neunert (@k9ert), hybris GmbH Tobias Schuhmacher, hybris GmbH
  • 6. 1. Short introduction 2. Tool usage at hybris 3. Orchestration in general 4. Introduction to adminportal 5. Short Demo
  • 7. Some context - tooling at hybris Hybris has been a software vendor rather than a Service Provider, that is changing right now In the first place: Puppet (apply) for server-provisioning Automated „puppet apply“ with the adminportal MCollective and especially the MCollective-mongo-registry approach http://goo.gl/WubXM For adhoc-tasks, we use ansible but: Vagrant for development and Continous integration via jenkins Puppi, a collection of bash-scripts provisioned via puppet for deployments and a self introduced mongo-reporting-mechanism Now heading towards a puppetmaster-approach being able to completely reuse our modules/server-roles
  • 8. 1. Short introduction 2. Tool usage at hybris 3. Orchestration in general 4. Introduction to adminportal 5. Short Demo
  • 9. Orchestration, what„s that? Automation  a part of an overall process Orchestration  Automating the whole overall process Where are the typical limitations/borders of automation? Provisioning Booting new machines, configuring infrastructure Provisioning Deployment
  • 10. The vision of orchestration In order for orchestration to really work, you need a single system calling the shots (although it may, or perhaps should, delegate some responsibilities to other systems). This in turn requires that all the components … be manageable from that one platform. There are two ways this gets done: the single-vendor approach and the open- standards approach. With the single-vendor approach, [...] The open-standards approach allows IT to mix and match resources from different vendors. As long as the orchestrator and management tools can talk to them, they can be folded in. [...] -- http://goo.gl/2QN6V
  • 11. The downside of the imperative approach (orchestration) Modeling the control-flow is error-prone, especially in mixed environments No Stacktrace/„Exceptionhandling“ No complete control of the whole stack, maybe 3rd parties/other people involved Difficult to decide how to continue in the case of errors So, orchestration tends to fail Whenever possible one switched to an declarative approach: Parser-code generation, SQL, Regex, Rendering of UIs Nodeconfiguration via Puppet (Chef?!) The role of orchestration is reduced to just model dependencies Let„s avoid orchestration  model dependencies!
  • 12. Example: Cross node dependencies while provisioning Cross-nodes dependencies  Exported Resources in Puppet You need to store state, that„s why exported Resources need a DB Storing state or gathering it at runtime is very helpfull PuppetDB MCollective R.I.Pienaar (author of mcollective) shows how to leverage MongoDB- Registration-Data in puppet manifests: http://goo.gl/WubXM Chris Spence (puppetlabs consultant) created a notify-mechanism which will handle cross-node-dependencies so that e.g. a Loadbalancer get configured afterwards immediately http://goo.gl/NkHtS
  • 13. Long story short … … you want to avoid orchestration in favor of declarative dependency modeling however, that will be a long journey ... … in the meantime …
  • 14. 1. Short introduction 2. Tool usage at hybris 3. Orchestration in general 4. Introduction to adminportal 5. Short Demo
  • 15. Features Grails application (Spring, Groovy, Java...) Execute scripts in a chain (Bash, Perl, Groovy, Python, PHP...) Annotate scripts (metadata: description, author, parameters etc.) #!/bin/bash # @Scriptlet(author=“Tobi (my-email@somehwere.de)", description=“Create Zerigo DNS entry") # # # @Parameters([ # @Parameter(name=“ZERIGO_USER", type=ParameterType.CONSUME, description=“The Zerigo uUsername", visible=false, defaultValue=“my-zergio-username"), # # @Parameter(name=“FQDN", type=ParameterType.EMIT, description=“The FQDN returned by Zerigo“), # ])
  • 16. Features List of required script parameters
  • 17. Features Grouping of script chains Per environment Different parameters per group Parameters exported via REST (Json, YAML – useful for Hiera) Execution of script chains can be triggered via REST Authorization / Authentication supported Plugin mechanism: wrap a script and interact with Grails (e.g. DB access) Execute scripts as cronjob
  • 18. After the execution, it looks like this Track any output of a script chain
  • 19. 1. Short introduction 2. Tool usage at hybris 3. Orchestration in general 4. Introduction to adminportal 5. Short Demo