SlideShare a Scribd company logo
1 of 27
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
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
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

What's hot

What's hot (20)

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

Viewers also liked

IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101
Sanjeev Sharma
 
Custos de Produção
Custos de ProduçãoCustos de Produção
Custos de Produção
Luciano Pires
 
Ponto 11 proc. pr+® contratual estacionamentos vrsa e mg
Ponto 11 proc. pr+® contratual estacionamentos vrsa e mgPonto 11 proc. pr+® contratual estacionamentos vrsa e mg
Ponto 11 proc. pr+® contratual estacionamentos vrsa e mg
macoesapo
 

Viewers also liked (20)

Ignite eCommerce growth with AWS
Ignite eCommerce growth with AWSIgnite eCommerce growth with AWS
Ignite eCommerce growth with AWS
 
DevOps101 (version 2)
DevOps101 (version 2)DevOps101 (version 2)
DevOps101 (version 2)
 
Integration Patterns for Microservices Architectures
Integration Patterns for Microservices ArchitecturesIntegration Patterns for Microservices Architectures
Integration Patterns for Microservices Architectures
 
IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101
 
Container Orchestration Wars (Micro Edition)
Container Orchestration Wars (Micro Edition)Container Orchestration Wars (Micro Edition)
Container Orchestration Wars (Micro Edition)
 
CI/CD with Docker, DC/OS, and Jenkins
CI/CD with Docker, DC/OS, and JenkinsCI/CD with Docker, DC/OS, and Jenkins
CI/CD with Docker, DC/OS, and Jenkins
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
 
Contabilidade gerencial
Contabilidade gerencialContabilidade gerencial
Contabilidade gerencial
 
Continuous Integration 101
Continuous Integration 101Continuous Integration 101
Continuous Integration 101
 
Custos de Produção
Custos de ProduçãoCustos de Produção
Custos de Produção
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Kas yra gebėjimas bendrauti 4 dalis vaizdine metodine medziaga svietejams 2013
Kas yra gebėjimas bendrauti 4 dalis vaizdine metodine medziaga svietejams 2013Kas yra gebėjimas bendrauti 4 dalis vaizdine metodine medziaga svietejams 2013
Kas yra gebėjimas bendrauti 4 dalis vaizdine metodine medziaga svietejams 2013
 
Search content VS Social content
Search content VS Social contentSearch content VS Social content
Search content VS Social content
 
Projekto pristatymas
Projekto pristatymasProjekto pristatymas
Projekto pristatymas
 
Ponto 11
Ponto 11Ponto 11
Ponto 11
 
Getting Matched
Getting Matched Getting Matched
Getting Matched
 
Ponto 11 proc. pr+® contratual estacionamentos vrsa e mg
Ponto 11 proc. pr+® contratual estacionamentos vrsa e mgPonto 11 proc. pr+® contratual estacionamentos vrsa e mg
Ponto 11 proc. pr+® contratual estacionamentos vrsa e mg
 
Mutual Non Disclosure Agreement (South Africa)
Mutual Non Disclosure Agreement (South Africa)Mutual Non Disclosure Agreement (South Africa)
Mutual Non Disclosure Agreement (South Africa)
 
Global IT report in 2015
Global IT report in 2015Global IT report in 2015
Global IT report in 2015
 
IoS-XR SW: partnering with Elastic: an overview
IoS-XR SW: partnering with Elastic: an overviewIoS-XR SW: partnering with Elastic: an overview
IoS-XR SW: partnering with Elastic: an overview
 

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

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

Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
Md Zahir Uddin
Md Zahir UddinMd Zahir Uddin
Md Zahir Uddin
 
Cont0519
Cont0519Cont0519
Cont0519
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes
 
Modernizing Java Apps with Docker
Modernizing Java Apps with DockerModernizing Java Apps with Docker
Modernizing Java Apps with Docker
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
 
Dataverse in the European Open Science Cloud
Dataverse in the European Open Science CloudDataverse in the European Open Science Cloud
Dataverse in the European Open Science Cloud
 
Containers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical SolutionsContainers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical Solutions
 
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
 
Past, Present and Future of DevOps Infrastructure
Past, Present and Future of DevOps InfrastructurePast, Present and Future of DevOps Infrastructure
Past, Present and Future of DevOps Infrastructure
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
What is Docker?
What is Docker?What is Docker?
What is Docker?
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
 

More from Cisco DevNet

NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
Cisco DevNet
 

More from Cisco DevNet (20)

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

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

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

  • 1.
  • 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
  • 8.
  • 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
  • 23.
  • 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

  1. 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 …
  2. 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
  3. Ops: continuous monitoring, feedbacks… Continuous improvments…