On The Road towards Continuous Delivery
David Lee
Debora Gomez
Victor Rodriguez
Heiko Kahmann
Berlin, 05.04.2017
#myToysIT
Agenda
Dr. David Lee
BSc(Hons) / PhD in Computer Science (Robert Gordon University, Scotland)
Certified Software Architect (Foundation Level)
Working since 2010 for the MyToys Group
Heiko Kahmann
Dipl. Inf., Dipl. Vw (Freie Universität Berlin)
Working since 2015 for the MyToys Group
2015-Present: Software Architect at myToys.de
About The Presenters
Debora Gomez
Master in Electrical Engineering (Carlos III University)
Working since 2016 for the MyToys Tech Lab in Madrid
Victor Rodriguez
Master in Computer Science (Public University of Navarre)
Working since 2016 for the MyToys Tech Lab in Madrid
Agenda
Our Journey towards Continuous Delivery for the Shop Platform
Short Break for Pizza
Interactive Discussion Groups
Review
Our Journey towards Continuous Delivery for the Mobile App
Our TechVision: Microservices with a PageAssembler
Microservice
Header
PageAssembler
Configuration &
Service Discovery
Server
Load Balancer
http://www.mytoys.de/nl/success
HTMLRequest
/newsletter/success
david.lee@mytoys.de
PageAssembler
Request
/newsletter/success
PageConfiguration
with Service URLs
Request
myToys.de
Header
HTML
Microservice
Newsletter
Microservice
Footer
Newsletter
DB
david.lee@mytoys.de
Newsletter
HTML
Request
myToys.de
david.lee@mytoys.de
Request
myToys.de
Footer
HTML
Cache
Connecting the Mobile App through a Public API
Public API
Microservice Newsletter
Registration
Newsletter
DB
david.lee@mytoys.de
Request
myToys.de
Request
Newsletter Registration
JSON
JSON
Summary of key components for TechVision
PageAssembler Microservices
Team Split /
Independence / Self-
responsibility
Cloud
Elastic Load Balancing Continuous Delivery
Automatic Documentation Test Driven
Service Discovery
Live Shop Editor
More details…
devblog.mytoys.de
Deploying Microservices in Real Time:
JAR Deployment with a Pipeline in Jenkins 2
Deploying Microservices in Real Time
Instant Messaging Channel for updates
The problems with simple JAR Deployment
Developer Operations
V1.0
JAR
Deploy JAR File please
Deploy Hotfix please
Didn‘t work – had to rollback
V1.0.1
JAR
Didn‘t work – had to rollback
Config Oh and you need to configure this…
Continuous Delivery via Docker
Test Project at a Company Innovation Day:
Developer
Jenkins
Operations
Commit new version
Generate Docker
container
Second version of Jenkins pipeline
Deploying Microservices to Real Time
Developer
Operations
Docker Container
Orchestration
Continuous Delivery
Continuous Deployment
Continuous Delivery Next Steps: Docker Repo
1. Upload Docker Containers into a Docker Repository.
Developer
Docker Container
Continuous Delivery Next Steps: PaaS/OpenShift
Microservice
Microservice
Microservice
Microservice
Microservice
Microservice
Microservice
Microservice
Microservice
Microservice
Microservice
Microservice
Microservice
Microservice
Microservice
Stages Model
Prod
Stage
Integration
Stage
Local
Stage
Prod-dev
Stage
Continuous Delivery
Pipeline
Docker Hub
Payback Case Study
Agenda
Our Journey towards Continuous Delivery for the Shop Platform
Short Break for Pizza
Interactive Discussion Groups
Review
Our Journey towards Continuous Delivery for the Mobile App
Vertical Team
Android Developers
QA Engineer
Product owner
Team Lead iOS Developers
Scrum master
Vertical Team
Development Workflow
Let’s take
this cool
feature
?
Ok …
whatever
you want …
There is a
missing
space !!
Developer Code review QA
Development Workflow
?
I can finally
close this
nightmare
QA Developer
Coffee
break
Development Workflow
?Developer QA
Continuous Delivery – Pipeline stages
Build Automation
&
Continuous
Integration
Tests Automation
Deployment
Automation
Continuous Delivery
Orchestrating it all
Continuous Delivery
?Developer Code review QA
Continuous Delivery
?QA
Learnt Lessons
• iOS CI only over a Mac.
• Use match to make your life easier with iOS certificates.
• Jenkins needs to access the user mac keychain.
• Android emulator + docker in a Mac not compatible.
• Genymotion rocks.
• Automate as much as possible the setup of your environment.
Next steps
• Dockerize Jenkins & create more slaves using docker.
• Automatize Android native app deployment in the market.
• Test Rail integration with Appium, Frisby JS, Gatling tests results.
• Monitoring Panel (MS & Apps).
• Execute tests on a device farm.
Agenda
Our Journey towards Continuous Delivery for the Shop Platform
Short Break for Pizza
Interactive Discussion Groups
Review
Our Journey towards Continuous Delivery for the Mobile App
Pizza Time !!!
Thanks!!
Agenda
Our Journey towards Continuous Delivery for the Shop Platform
Short Break for Pizza
Interactive Discussion Groups
Review
Our Journey towards Continuous Delivery for the Mobile App
Interactive Discussion Groups (after the break)
1. Experiences with Continuous Delivery in a Mobile
Environment.
2. Experiences with Platform as a Service (PaaS)
3. Experiences with integrating components in a Continuous
Delivery Pipeline.

On The Road towards Continuous Delivery

  • 1.
    On The Roadtowards Continuous Delivery David Lee Debora Gomez Victor Rodriguez Heiko Kahmann Berlin, 05.04.2017 #myToysIT
  • 2.
  • 3.
    Dr. David Lee BSc(Hons)/ PhD in Computer Science (Robert Gordon University, Scotland) Certified Software Architect (Foundation Level) Working since 2010 for the MyToys Group Heiko Kahmann Dipl. Inf., Dipl. Vw (Freie Universität Berlin) Working since 2015 for the MyToys Group 2015-Present: Software Architect at myToys.de About The Presenters Debora Gomez Master in Electrical Engineering (Carlos III University) Working since 2016 for the MyToys Tech Lab in Madrid Victor Rodriguez Master in Computer Science (Public University of Navarre) Working since 2016 for the MyToys Tech Lab in Madrid
  • 4.
    Agenda Our Journey towardsContinuous Delivery for the Shop Platform Short Break for Pizza Interactive Discussion Groups Review Our Journey towards Continuous Delivery for the Mobile App
  • 5.
    Our TechVision: Microserviceswith a PageAssembler Microservice Header PageAssembler Configuration & Service Discovery Server Load Balancer http://www.mytoys.de/nl/success HTMLRequest /newsletter/success david.lee@mytoys.de PageAssembler Request /newsletter/success PageConfiguration with Service URLs Request myToys.de Header HTML Microservice Newsletter Microservice Footer Newsletter DB david.lee@mytoys.de Newsletter HTML Request myToys.de david.lee@mytoys.de Request myToys.de Footer HTML Cache
  • 6.
    Connecting the MobileApp through a Public API Public API Microservice Newsletter Registration Newsletter DB david.lee@mytoys.de Request myToys.de Request Newsletter Registration JSON JSON
  • 7.
    Summary of keycomponents for TechVision PageAssembler Microservices Team Split / Independence / Self- responsibility Cloud Elastic Load Balancing Continuous Delivery Automatic Documentation Test Driven Service Discovery Live Shop Editor
  • 8.
  • 9.
    Deploying Microservices inReal Time: JAR Deployment with a Pipeline in Jenkins 2
  • 10.
    Deploying Microservices inReal Time Instant Messaging Channel for updates
  • 11.
    The problems withsimple JAR Deployment Developer Operations V1.0 JAR Deploy JAR File please Deploy Hotfix please Didn‘t work – had to rollback V1.0.1 JAR Didn‘t work – had to rollback Config Oh and you need to configure this…
  • 12.
    Continuous Delivery viaDocker Test Project at a Company Innovation Day: Developer Jenkins Operations Commit new version Generate Docker container
  • 13.
    Second version ofJenkins pipeline
  • 14.
    Deploying Microservices toReal Time Developer Operations Docker Container Orchestration Continuous Delivery Continuous Deployment
  • 15.
    Continuous Delivery NextSteps: Docker Repo 1. Upload Docker Containers into a Docker Repository. Developer Docker Container
  • 16.
    Continuous Delivery NextSteps: PaaS/OpenShift Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice
  • 17.
  • 18.
  • 19.
    Agenda Our Journey towardsContinuous Delivery for the Shop Platform Short Break for Pizza Interactive Discussion Groups Review Our Journey towards Continuous Delivery for the Mobile App
  • 20.
    Vertical Team Android Developers QAEngineer Product owner Team Lead iOS Developers Scrum master
  • 21.
  • 22.
    Development Workflow Let’s take thiscool feature ? Ok … whatever you want … There is a missing space !! Developer Code review QA
  • 23.
    Development Workflow ? I canfinally close this nightmare QA Developer Coffee break
  • 24.
  • 25.
    Continuous Delivery –Pipeline stages Build Automation & Continuous Integration Tests Automation Deployment Automation
  • 26.
  • 27.
  • 28.
  • 29.
    Learnt Lessons • iOSCI only over a Mac. • Use match to make your life easier with iOS certificates. • Jenkins needs to access the user mac keychain. • Android emulator + docker in a Mac not compatible. • Genymotion rocks. • Automate as much as possible the setup of your environment.
  • 30.
    Next steps • DockerizeJenkins & create more slaves using docker. • Automatize Android native app deployment in the market. • Test Rail integration with Appium, Frisby JS, Gatling tests results. • Monitoring Panel (MS & Apps). • Execute tests on a device farm.
  • 31.
    Agenda Our Journey towardsContinuous Delivery for the Shop Platform Short Break for Pizza Interactive Discussion Groups Review Our Journey towards Continuous Delivery for the Mobile App
  • 32.
  • 33.
    Agenda Our Journey towardsContinuous Delivery for the Shop Platform Short Break for Pizza Interactive Discussion Groups Review Our Journey towards Continuous Delivery for the Mobile App
  • 34.
    Interactive Discussion Groups(after the break) 1. Experiences with Continuous Delivery in a Mobile Environment. 2. Experiences with Platform as a Service (PaaS) 3. Experiences with integrating components in a Continuous Delivery Pipeline.