SlideShare a Scribd company logo
DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Nimbus.
CI/CT/CD on a Micro services
applications using Docker, Salt &
Nimbus
Jeremie Garnier
Senior Software Engineer,
Chief Technology and Architecture Office, Cisco Systems
DevNet - 0077
• Context & objectives
• Microservices architecture
• Continuous
• integration & delivery
• testing
• documentation
• deployment
• Conclusion
Agenda
• Control the multiscreen experience & ease the development of synchronized
applications
• No constraints on the application : The application is designed &
implemented without any constraint related to the cloud solution (ex
HTML5/CSS3D/WebGL, Native, Android, …)
• A DevOps approach, using modern solutions like Docker which brings
reduced TTM.
Context & objectives
Multiscreen : Layout engine
• The layout engine is a system that takes a packaged stream(s) of content and
determines the optimum way of presenting it on all the devices that are
available in a given environment.
• It is responsible for controlling the multiscreen experience & ease the
development of synchronized applications (integration of 2D physics engine)
• LE manages a set of applications (logical declaration). An application can
contain a set of widgets. The aim of the application level is really to define the
UX. Then, LE takes into account the application/widgets definition and the
environment in order to well execute the UX in the room.
Key concepts in use
• Git: source control
• Jenkins: build container(s), run tests (sandbox), push to Registry. No container
is shipped if sandbox tests failed
• Docker: portable, lightweight application runtime and packaging tool. Used for
micro services architecture to keep services isolated
• Consul: service discovery and configuration. Keep services isolated.
• SaltStack: infrastructure automation
• Salt Cloud: CCS resources provisioning
• Cisco Cloud Services: OpenStack
Microservices architecture
DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Nimbus.
Micro Services composition
Services
Discovery
DB store
(mongo)
LE core (node.js)
Pub Sub
(redis)
Physic engine
(chipmunk)
Doc
(swagger)
Core front end
API Sync API
collalite-app
(apache,html5,js)
app-hub
(togetherjs hub,
node)
Audio, chat
Html,js,login
Docker & registry
• Easy to package sub part of the whole solution
• 2min for getting an E2E system
• Faster deployment: getting updates not whole images
• Registry: pushing & pulling images
Continuous integration & delivery /
tests / documentation and deployment
MOVE FAST AND
BREAK NOTHING
Continuous integration & delivery: Jenkins & Docker
• Jenkins as the main part of the CI/CD
• Jenkins slaves in a Docker container
• Docker registry as our main delivery manager TBR
• Sandbox for each commit to ensure clean registry
Continuous Integration & Delivery: overview
Docker
registry
Jenkins Slave
1. Builder
2. Unit Test
3. Group Tests
4. Push
Scheduler
5. Notify
staging
prod
1. deploy
2. Group
tests
1. staging
2. prod
4. Group
tests
3. deploy
SandBox mode (Group Tests): LE example
1. commit
LE Core LE PE
Pub Sub DB store
Docker
registry
Docker
link
Docker
link
2. Launch
sandbox
[Test OK] push image to registry
3. Functional
Tests
Continuous Testing
• Implement from dev environment to production
• Sandbox environment makes clean registry
• E2E tests for ensuring not breaking anything
• Load tests for detecting bottlenecks & ensuring global stability
Continuous Testing
• E2E tests using Frisby.js: REST API testing framework built on node.js and
Jasmine (JUnit report)
Continuous Testing
• Load tests using Gatling.io: open source load testing framework based on
Scala, Aka and Netty.
Continuous Documentation
• Documentation using Swagger: always up to date with code
Continuous Deployment
• SaltStack: SaltStack is extremely fast and scalable systems and configuration
management software for predictive orchestration, cloud and data center
automation, server provisioning, application deployment and more.
• Scheduler (in house tool): on top of SaltStack for orchestrating Docker container
deployment from registry to staging/production. Making links with Jenkins &
commits.
Where we are regarding DevOps?.
Continuous
integration
Continuous tests
Continuous
delivery
Continuous
deployment
Ops
Demo
DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Nimbus.
Collalite application
• Develop a collaborative user application running on PC, tablet, smartphone
for sharing notes. It can be used for mind map, brainstorm or Kanban session
for instance. The user device is used as the input device for writing notes. Then
such a note can be sent on another surface, a shared main dashboard for
group visualization.
• The layout engine is responsible for organizing the notes. A physic engine is
integrated into the layout engine for managing objects movement, collision …
• Collalite integrates a group chat feature and audio call between participants.
Q&A
Thank you
DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Nimbus.

More Related Content

PDF
Empower Your Docker Containers with Watson - DockerCon 2017 Austin
PDF
Networking in Docker EE 2.0 with Kubernetes and Swarm
PDF
Faster safer and 100 user centric application at equifax with docker
PDF
5 patterns for success for application transformation
PPTX
Using the SDACK Architecture on Security Event Inspection by Yu-Lun Chen and ...
PDF
DCSF 19 Microservices API: Routing Across Any Infrastructure
PPTX
Pulumi iac on gcp
PDF
Don’t have a Meltdown! Practical Steps for Defending Your Apps
Empower Your Docker Containers with Watson - DockerCon 2017 Austin
Networking in Docker EE 2.0 with Kubernetes and Swarm
Faster safer and 100 user centric application at equifax with docker
5 patterns for success for application transformation
Using the SDACK Architecture on Security Event Inspection by Yu-Lun Chen and ...
DCSF 19 Microservices API: Routing Across Any Infrastructure
Pulumi iac on gcp
Don’t have a Meltdown! Practical Steps for Defending Your Apps

What's hot (20)

PDF
DCEU 18: From Monolith to Microservices
PPTX
DockerCon EU 2015: Using Docker and SDN for telco-grade applications
PPTX
DockerCon EU 2015: Containing IoT Sensor Telemetry
PDF
Demystifying container connectivity with kubernetes in docker
PDF
Introduction To Flink
PDF
DCEU 18: App-in-a-Box with Docker Application Packages
PDF
Netflix Open Source: Building a Distributed and Automated Open Source Program
PDF
Container World 2018
PPTX
20 mins to Faking the DevOps Unicorn by Matt williams, Datadog
PDF
DCEU 18: 5 Patterns for Success in Application Transformation
PPTX
Docker Federal Summit 2017 General Session
PDF
Modernizing Traditional Applications
PDF
Building your production tech stack for docker container platform
PPTX
Onnx and onnx runtime
PDF
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
PDF
Netflix Container Scheduling and Execution - QCon New York 2016
PPTX
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
PDF
Herding Kats - Netflix’s Journey to Kubernetes Public
PPTX
2 万林涛
PDF
ADDO 2020: "The past, present, and future of cloud native API gateways"
DCEU 18: From Monolith to Microservices
DockerCon EU 2015: Using Docker and SDN for telco-grade applications
DockerCon EU 2015: Containing IoT Sensor Telemetry
Demystifying container connectivity with kubernetes in docker
Introduction To Flink
DCEU 18: App-in-a-Box with Docker Application Packages
Netflix Open Source: Building a Distributed and Automated Open Source Program
Container World 2018
20 mins to Faking the DevOps Unicorn by Matt williams, Datadog
DCEU 18: 5 Patterns for Success in Application Transformation
Docker Federal Summit 2017 General Session
Modernizing Traditional Applications
Building your production tech stack for docker container platform
Onnx and onnx runtime
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
Netflix Container Scheduling and Execution - QCon New York 2016
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
Herding Kats - Netflix’s Journey to Kubernetes Public
2 万林涛
ADDO 2020: "The past, present, and future of cloud native API gateways"
Ad

Viewers also liked (20)

PPT
DevOps101 (version 2)
PDF
Integration Patterns for Microservices Architectures
PPT
IBM Innovate 2013 Session: DevOps 101
PDF
Container Orchestration Wars (Micro Edition)
PDF
CI/CD with Docker, DC/OS, and Jenkins
PPTX
Chef for DevOps - an Introduction
DOC
Contabilidade gerencial
PDF
Continuous Integration 101
PPTX
Custos de Produção
PPT
CI and CD with Jenkins
PPT
Kas yra gebėjimas bendrauti 4 dalis vaizdine metodine medziaga svietejams 2013
PDF
Search content VS Social content
PPTX
Projekto pristatymas
PDF
Ponto 11
PPTX
Getting Matched
PDF
Ponto 11 proc. pr+® contratual estacionamentos vrsa e mg
DOCX
Mutual Non Disclosure Agreement (South Africa)
PDF
Global IT report in 2015
PDF
IoS-XR SW: partnering with Elastic: an overview
PPT
3 dalis. kas yra besimokantis miestas vaizdine medziaga svietejams
DevOps101 (version 2)
Integration Patterns for Microservices Architectures
IBM Innovate 2013 Session: DevOps 101
Container Orchestration Wars (Micro Edition)
CI/CD with Docker, DC/OS, and Jenkins
Chef for DevOps - an Introduction
Contabilidade gerencial
Continuous Integration 101
Custos de Produção
CI and CD with Jenkins
Kas yra gebėjimas bendrauti 4 dalis vaizdine metodine medziaga svietejams 2013
Search content VS Social content
Projekto pristatymas
Ponto 11
Getting Matched
Ponto 11 proc. pr+® contratual estacionamentos vrsa e mg
Mutual Non Disclosure Agreement (South Africa)
Global IT report in 2015
IoS-XR SW: partnering with Elastic: an overview
3 dalis. kas yra besimokantis miestas vaizdine medziaga svietejams
Ad

Similar to DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Nimbus. (20)

PDF
Slide DevSecOps Microservices
PPTX
Continous delivvery devops Tools Technologies.pptx
PDF
Demystifying Containerization Principles for Data Scientists
PDF
Dockers and kubernetes
PDF
DevOps and BigData Analytics
PDF
56k.cloud training
PPTX
ma-formation-en-Docker-jlklk,nknkjn.pptx
PDF
Open shift and docker - october,2014
PPTX
What's New in Docker - February 2017
DOCX
Md Zahir Uddin
PPTX
Cont0519
PDF
Containers, microservices and serverless for realists
PPTX
The world of Docker and Kubernetes
 
PDF
Modernizing Java Apps with Docker
PDF
Docker dev ops for cd meetup 12-14
PPTX
Dataverse in the European Open Science Cloud
 
PPTX
Containers: DevOp Enablers of Technical Solutions
PDF
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
PPTX
Past, Present and Future of DevOps Infrastructure
PPTX
DockerCon 15 Keynote - Day 2
Slide DevSecOps Microservices
Continous delivvery devops Tools Technologies.pptx
Demystifying Containerization Principles for Data Scientists
Dockers and kubernetes
DevOps and BigData Analytics
56k.cloud training
ma-formation-en-Docker-jlklk,nknkjn.pptx
Open shift and docker - october,2014
What's New in Docker - February 2017
Md Zahir Uddin
Cont0519
Containers, microservices and serverless for realists
The world of Docker and Kubernetes
 
Modernizing Java Apps with Docker
Docker dev ops for cd meetup 12-14
Dataverse in the European Open Science Cloud
 
Containers: DevOp Enablers of Technical Solutions
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
Past, Present and Future of DevOps Infrastructure
DockerCon 15 Keynote - Day 2

More from Cisco DevNet (20)

PPTX
How to Contribute to Ansible
PPTX
Rome 2017: Building advanced voice assistants and chat bots
PPTX
How to Build Advanced Voice Assistants and Chatbots
PPTX
Cisco Spark and Tropo and the Programmable Web
PPTX
Device Programmability with Cisco Plug-n-Play Solution
PPTX
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
PPTX
Application Visibility and Experience through Flexible Netflow
PPTX
WAN Automation Engine API Deep Dive
PPTX
Cisco's Open Device Programmability Strategy: Open Discussion
PPTX
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
PPTX
NETCONF & YANG Enablement of Network Devices
PPTX
UCS Management APIs A Technical Deep Dive
PPTX
OpenStack Enabling DevOps
PPTX
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
PPTX
Getting Started: Developing Tropo Applications
PPTX
Cisco Spark & Tropo API Workshop
PPTX
Coding 102 REST API Basics Using Spark
PPTX
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
PPTX
DevNet Express - Spark & Tropo API - Lisbon May 2016
PPTX
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
How to Contribute to Ansible
Rome 2017: Building advanced voice assistants and chat bots
How to Build Advanced Voice Assistants and Chatbots
Cisco Spark and Tropo and the Programmable Web
Device Programmability with Cisco Plug-n-Play Solution
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Application Visibility and Experience through Flexible Netflow
WAN Automation Engine API Deep Dive
Cisco's Open Device Programmability Strategy: Open Discussion
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
NETCONF & YANG Enablement of Network Devices
UCS Management APIs A Technical Deep Dive
OpenStack Enabling DevOps
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
Getting Started: Developing Tropo Applications
Cisco Spark & Tropo API Workshop
Coding 102 REST API Basics Using Spark
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
DevNet Express - Spark & Tropo API - Lisbon May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016

Recently uploaded (20)

PDF
KodekX | Application Modernization Development
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Encapsulation theory and applications.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Big Data Technologies - Introduction.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Cloud computing and distributed systems.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Electronic commerce courselecture one. Pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
KodekX | Application Modernization Development
Dropbox Q2 2025 Financial Results & Investor Presentation
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
MIND Revenue Release Quarter 2 2025 Press Release
Encapsulation theory and applications.pdf
Machine learning based COVID-19 study performance prediction
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
cuic standard and advanced reporting.pdf
NewMind AI Weekly Chronicles - August'25 Week I
The Rise and Fall of 3GPP – Time for a Sabbatical?
Encapsulation_ Review paper, used for researhc scholars
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Big Data Technologies - Introduction.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Cloud computing and distributed systems.
Chapter 3 Spatial Domain Image Processing.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Electronic commerce courselecture one. Pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy

DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Nimbus.

  • 2. CI/CT/CD on a Micro services applications using Docker, Salt & Nimbus Jeremie Garnier Senior Software Engineer, Chief Technology and Architecture Office, Cisco Systems DevNet - 0077
  • 3. • Context & objectives • Microservices architecture • Continuous • integration & delivery • testing • documentation • deployment • Conclusion Agenda
  • 4. • Control the multiscreen experience & ease the development of synchronized applications • No constraints on the application : The application is designed & implemented without any constraint related to the cloud solution (ex HTML5/CSS3D/WebGL, Native, Android, …) • A DevOps approach, using modern solutions like Docker which brings reduced TTM. Context & objectives
  • 5. Multiscreen : Layout engine • The layout engine is a system that takes a packaged stream(s) of content and determines the optimum way of presenting it on all the devices that are available in a given environment. • It is responsible for controlling the multiscreen experience & ease the development of synchronized applications (integration of 2D physics engine) • LE manages a set of applications (logical declaration). An application can contain a set of widgets. The aim of the application level is really to define the UX. Then, LE takes into account the application/widgets definition and the environment in order to well execute the UX in the room.
  • 6. Key concepts in use • Git: source control • Jenkins: build container(s), run tests (sandbox), push to Registry. No container is shipped if sandbox tests failed • Docker: portable, lightweight application runtime and packaging tool. Used for micro services architecture to keep services isolated • Consul: service discovery and configuration. Keep services isolated. • SaltStack: infrastructure automation • Salt Cloud: CCS resources provisioning • Cisco Cloud Services: OpenStack
  • 9. Micro Services composition Services Discovery DB store (mongo) LE core (node.js) Pub Sub (redis) Physic engine (chipmunk) Doc (swagger) Core front end API Sync API collalite-app (apache,html5,js) app-hub (togetherjs hub, node) Audio, chat Html,js,login
  • 10. Docker & registry • Easy to package sub part of the whole solution • 2min for getting an E2E system • Faster deployment: getting updates not whole images • Registry: pushing & pulling images
  • 11. Continuous integration & delivery / tests / documentation and deployment
  • 13. Continuous integration & delivery: Jenkins & Docker • Jenkins as the main part of the CI/CD • Jenkins slaves in a Docker container • Docker registry as our main delivery manager TBR • Sandbox for each commit to ensure clean registry
  • 14. Continuous Integration & Delivery: overview Docker registry Jenkins Slave 1. Builder 2. Unit Test 3. Group Tests 4. Push Scheduler 5. Notify staging prod 1. deploy 2. Group tests 1. staging 2. prod 4. Group tests 3. deploy
  • 15. SandBox mode (Group Tests): LE example 1. commit LE Core LE PE Pub Sub DB store Docker registry Docker link Docker link 2. Launch sandbox [Test OK] push image to registry 3. Functional Tests
  • 16. Continuous Testing • Implement from dev environment to production • Sandbox environment makes clean registry • E2E tests for ensuring not breaking anything • Load tests for detecting bottlenecks & ensuring global stability
  • 17. Continuous Testing • E2E tests using Frisby.js: REST API testing framework built on node.js and Jasmine (JUnit report)
  • 18. Continuous Testing • Load tests using Gatling.io: open source load testing framework based on Scala, Aka and Netty.
  • 19. Continuous Documentation • Documentation using Swagger: always up to date with code
  • 20. Continuous Deployment • SaltStack: SaltStack is extremely fast and scalable systems and configuration management software for predictive orchestration, cloud and data center automation, server provisioning, application deployment and more. • Scheduler (in house tool): on top of SaltStack for orchestrating Docker container deployment from registry to staging/production. Making links with Jenkins & commits.
  • 21. Where we are regarding DevOps?. Continuous integration Continuous tests Continuous delivery Continuous deployment Ops
  • 22. Demo
  • 24. Collalite application • Develop a collaborative user application running on PC, tablet, smartphone for sharing notes. It can be used for mind map, brainstorm or Kanban session for instance. The user device is used as the input device for writing notes. Then such a note can be sent on another surface, a shared main dashboard for group visualization. • The layout engine is responsible for organizing the notes. A physic engine is integrated into the layout engine for managing objects movement, collision … • Collalite integrates a group chat feature and audio call between participants.
  • 25. Q&A

Editor's Notes

  • #9: Not just a trend, The big idea behind microservices is to architect large, complex and long-lived applications as a set of cohesive services that evolve over time. The term microservices strongly suggests that the services should be small. Like Service oriented architecture scalability, flexibility …
  • #13: Facebook quote, Move fast and break things. Facebook's used that for years: it's a philosophy of trying out new ideas quickly so you can see if they survive in the marketplace. If they do, refine them; if they don't, throw it away without blowing a lot of time on development. From Mark Zuckerberg In our case, we build pipeline which allow to move our application faster but then, we ensure the stability & quality
  • #22: Ops: continuous monitoring, feedbacks… Continuous improvments…