MesosCon Deployment API · 2017-12-14 · Problem Statement •Goal: Self Service Deployment...

7
Deployment API Chris Mays, Principal Engineer, HERE Technologies Micah Noland, Lead Engineer, HERE Technologies

Transcript of MesosCon Deployment API · 2017-12-14 · Problem Statement •Goal: Self Service Deployment...

Page 1: MesosCon Deployment API · 2017-12-14 · Problem Statement •Goal: Self Service Deployment •Problem: DC/OS API has a learning curve –dockerrun settings: •Enable Docker Log

Deployment APIChris Mays, Principal Engineer, HERE TechnologiesMicah Noland, Lead Engineer, HERE Technologies

Page 2: MesosCon Deployment API · 2017-12-14 · Problem Statement •Goal: Self Service Deployment •Problem: DC/OS API has a learning curve –dockerrun settings: •Enable Docker Log

Problem Statement

• Goal: Self Service Deployment• Problem: DC/OS API has a learning curve

– docker run settings:• Enable Docker Log Driver• Consistent labels for Docker monitoring

– Marathon LB settings• Miss the \r\n and HAProxy no longer gets updated

Page 3: MesosCon Deployment API · 2017-12-14 · Problem Statement •Goal: Self Service Deployment •Problem: DC/OS API has a learning curve –dockerrun settings: •Enable Docker Log

Solution: Proxy the DC/OS API

• Adds an extra layer of control– DC/OS deployment parameters set by Ops– Change management becomes easier

• Utilize DC/OS security• Runtime Parameters stored in Git

– Code Reviews on parameter values– All the benefits of an SCM

Page 4: MesosCon Deployment API · 2017-12-14 · Problem Statement •Goal: Self Service Deployment •Problem: DC/OS API has a learning curve –dockerrun settings: •Enable Docker Log

Git File Structure

• Supports .properties or .yaml files• Hierarchical inheritance structure

– application-global.yaml– helloworld-deploy.yaml– helloworld-deploy-dev.yaml

Page 5: MesosCon Deployment API · 2017-12-14 · Problem Statement •Goal: Self Service Deployment •Problem: DC/OS API has a learning curve –dockerrun settings: •Enable Docker Log

Deployment API

• REST Service Endpoints– deploy: get deployment configuration(s) from git and

send to DC/OS– status: returns the status of the deployment– config: returns the Marathon JSON (debug)

Page 6: MesosCon Deployment API · 2017-12-14 · Problem Statement •Goal: Self Service Deployment •Problem: DC/OS API has a learning curve –dockerrun settings: •Enable Docker Log

Open Source

• Deployment API is open source:– https://github.com/heremaps/deployment-api

• Contact:– [email protected][email protected]

Page 7: MesosCon Deployment API · 2017-12-14 · Problem Statement •Goal: Self Service Deployment •Problem: DC/OS API has a learning curve –dockerrun settings: •Enable Docker Log

Demo

• Jenkins CI/CD with Deployment API Demo