SlideShare a Scribd company logo
Continuous Integration and Delivery: from Zero
to Hero with TeamCity, Docker and Kubernetes
Dev Marche
Outline
Agenda
1. Who we are
2. Introduction
3. Level Zero: Everything Manual
4. Level Intermediate: introducing a CI Tool
5. Level Hero: Docker + Kubernetes
L’azienda
Dati Generali Azienda
• Sede centrale a Basilea, Svizzera
• Development center ad Ancona
• Circa 20 professionisti motivati (Int&Est)
• Oracle Partner per Agile PLM
Il Team
Lean IT: Team
✓ Team 20 Persone (Int & Est)
✓ > 75 % Assunti a tempo Indeterminato
✓ > 90 % Laureati in Informatica o Ingegneria Informatica
✓ > 80% Laureati Specialistici
✓ Turnover delle risorse < 7% ultimi 3 anni
✓ >70% del Team ha tra 5 - 10 Anni o oltre i 10 Anni di
esperienza di Sviluppo Software
✓ Di questi il 60% ha più di 10 anni di esperienza di
Sviluppo Software
<2 Anni
2<>5 Anni
5<>10 Anni
>10
Team: Anni Esperienza
Sviluppo Software
<2 Anni 2<>5 Anni 5<>10 Anni >10
I Nostri Servizi
Lean IT: I Nostri Servizi
• IT Consulting
• System integration
• Sviluppo Software
• PLM Consulting
• Implementazione e Configurazione
• System integration
• Helpdesk e supporto
• Sviluppo moduli Custom
• Consulenza per i processi di Business
PLM
Application For Product Lifecycle Management
Tecnologie
Metodologie
Metodologie Waterfall vs Agile
Metodologie
Scrum Framework
✓ Lean IT:
✓ Sprint Weeks: 2
✓ Every 2 Weeks:
Grooming (normally) on
Friday
✓ Every 2 Weeks: Planning
(normally) on Monday
✓ Retrospective: Once
Months
La Nostra Sede
Opportunità
✓ Talenti
Mandateci un CV a:
recruiting@leanitconsulting.it
Esempio al desk all’ingresso
✓ Partner Commerciali / Strategici
Contattatemi a:
grizzo@leanitconsulting.it
Grazie
ITALY
Lean IT Consulting IT
Giulio Rizzo
grizzo@leanitconsulting.it
Via I Maggio 25/b – 60131 Ancona
+39 071 9256426
+39 328 8141675
BUON TECH BAR ☺
Disclaimer
We are NOT
• DevOps/CI/CD GURUs
• Affiliated with any of the brands we cite
Feel free to interrupt us in case you feel
we are saying something really wrong
Today we present our journey in the CI/CD
world
Introduction
Setting the Stage
• We have a quite long journey to share
• We outlined a path to guide us through
• Questions are welcome but please do not focus
too much in low-level details...
• … we don't want to leave at dawn!
• Help us to adjust our presentation: how much
of a DevOps expert are you?
Continuous Integration
Continuous Integration is a software
development practice where members of a
team integrate their work frequently ...
leading to multiple integrations per day.
Each integration is verified by an automated
build (including test) to detect integration
errors as quickly as possible.
Introduction
Martin Fowler
https://martinfowler.com/articles/continuousIntegration.html
Continuous Delivery
Continuous Delivery is the ability to get
changes of all types ... into production ...
safely and quickly in a sustainable way.
We achieve all this by ensuring our code
is always in a deployable state … completely
eliminate the integration, testing phases that
traditionally followed “dev complete”, as well as
code freezes.
Introduction
Jez Humble
https://continuousdelivery.com/
Introduction
Demo Scenario
receiversender
orders_queue
Talk is cheap
Show me the code
Level Zero
How we Deliver Our Application in PROD?
How would you do it?
Level Zero
Everything manual!
• Testing
• Building and packaging
• Deployment
We all started from here
With a bit of attention it works…
• … until the number of
projects is really small
Level Zero
Manual Build
$ mvn clean package -U
sender.war receiver.war
JAR
WAR WAR
demo-utility-lib.jar
Level Zero
Manual Deploy
RDP
SERVER
sender.war receiver.warDeveloper
WAR WAR
Level Zero
Deployment Pipeline
sender.war (v4)
receiver.war (v4)
sender.war (v3)
receiver.war (v3)
sender.war (v2)
receiver.war (v2)
sender.war (v1)
receiver.war (v1)
LOCAL
DEV
TEST
PROD
sender.war (v2)
receiver.war (v2)
sender.war (v3)
receiver.war (v3)
sender.war (v4)
receiver.war (v4)
• Manual deploy of artifacts thought the
pipeline
• Internal rules to ensure that each
environment receives the artifact of the
previous one
• Conventions on where to store artifacts
Level Zero
Application Demo
Zero Level: Considerations
Boring … repetitive … dummy ... work
• No added value after the first time you do it!
• What if you have DEV/TEST/STAGING/PROD
envs?
Highly subject to human error
No versioning of deploy history
• What I deployed in DEV? What in TEST?
• How to ensure that what has been tested in TEST
goes in PROD?
Level Zero
Level Intermediate
Introducing a Continuous
Integration Tool
There are as many CI tools as the stars: Jenkins, TeamCity, Travis CI,
Go CD, Bamboo, GitLab CI, CircleCI, Codeship...
We are currently – and happily – using Teamcity
Objective: automatize the development pipeline
Intermediate
TeamCity
• Developed by JetBrains
• Full support for Java and .NET
• Professional license free with some limitation
• 100 builds max
• 3 build agents
Intermediate
Intermediate
Continuous Integration with TeamCity
Intermediate
TeamCity Concepts
Project
Sub-project
Build
Build
Intermediate
TeamCity Build Dependencies
Intermediate
Deployment Pipeline with TeamCity
sender.war (v4)
receiver.war (v4)
sender.war (v3)
receiver.war (v3)
sender.war (v2)
receiver.war (v2)
sender.war (v1)
receiver.war (v1)
LOCAL
DEV
TEST
PROD
sender.war (v2)
receiver.war (v2)
sender.war (v3)
receiver.war (v3)
sender.war (v4)
receiver.war (v4)
• TC deploys artifacts thought the pipeline
• TC build dependencies to implement the
pipeline you need
• TC will store artifacts for you
Intermediate
Intermediate Level:
Pro and Cons
• Good level of automation
• Faster coding and quick feedbacks
on breaking changes
• Config of app environments is manual
• Installation on a new server is manual
• No isolation of micro-services
Next Level: Hero
• Docker – Container Platform
• Kubernetes – Orchestrator
• Google Cloud Platform – Cloud Provider
Level Hero
What is Docker?
Container
• Share the same kernel, isolation is done
in user space
• Lower resource usage
• Fast start time
Virtual Machine
• Each VM runs a full copy of the
operating system
• High resource usage
• Slow start time
Hero
What is Docker?
• Containers are built from layers
• Images can be pushed and
pulled to/from a shared repository
(public or private)
• A standardized unit of software
Hero
Why Docker?
• High isolation level (better security)
• Reduce friction between developers and operations
• Runs everywhere and reduce the risk of "works on my PC"
• Fast to stop and start
• Containers are easy to scale, deploy and upgrade
• Leader in container industry
Hero
Dockerfile
$ docker build –t leanitrepo/ci-demo-receiver:latest .
FROM openjdk:8-jdk-alpine
COPY ./target/ci-demo-receiver.jar
/usr/src/ci-demo-receiver.jar
WORKDIR /usr/src/
EXPOSE 8091
CMD ["java", "-jar", "ci-demo-receiver.jar"]
Can be easily integrated in Teamcity
Commands can be added
as build steps
Hero
Containers grows
rapidly
How can we manage an infrastructure
that scales?
Hero
Kubernetes
• An open source container orchestrator
• Based on Borg, a project run by Google
Hero
Kubernetes
• Automates deployment and scaling
• Manage failures
• Binpacking based on resource requirements
• Run on-premise or on the cloud
Hero
Kubernetes Concepts
Nodes
• A physical or virtual machine
• Manage workloads of containers
• Master: coordinates the activity of
the cluster
Hero
Kubernetes Concepts
Management
• Master node exposes an API
• kubectl: command line tool
• Many dashboards are available
• Can be easily integrated in Team City
Hero
kubectl
Hero
Scenario
receiversender
orders_queue
Hero
Scenario
orders_queuesender
receiver
Hero
Scenario
Hero
Google Cloud Platform
• Easy to setup and manage
• Resources can be allocated dinamically
• Can be managed with CLI for task automation
$ gcloud container clusters resize kube-demo --size=3
Hero
Google Cloud Console
Hero
Google Cloud Console
Hero
Deploy to Kubernetes with Team City
Hero
Scaling Pods
$ kubectl scale deployment receiver-deployment --replicas=5
Hero
Deploy Updated Version
$ kubectl set image deployment/receiver-deployment receiver=leanitrepo/ci-demo-receiver:100msec
Hero
Downscaling Pods
$ kubectl scale deployment receiver-deployment --replicas=3
docker@docker:~/dev-marche-demo$ kubectl describe deployment receiver-deployment
Name: receiver-deployment
Namespace: default
CreationTimestamp: Fri, 16 Nov 2018 09:59:32 +0100
Labels: app=dev-marche-demo
component=receiver
Annotations: deployment.kubernetes.io/revision=2
Selector: component=receiver
Replicas: 5 desired | 5 updated | 5 total | 5 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 1 max unavailable, 1 max surge
Hero
Monitoring logs with kubectl or Stackdriver
docker@docker:~/dev-marche-demo$ kubectl logs receiver-deployment-784c5df8cf-l675g --tail=10
2018-11-16 11:35:33,662 [http-nio-8091-exec-7] INFO com.leanit.ci.demo.cidemoreceiver.controllers.StatusController - /status/check endpoint
called
2018-11-16 11:35:34,561 [pool-2-thread-3] INFO com.leanit.ci.demo.cidemoreceiver.config.OrdersReceiver - Consumed Order d80fc7a2-2871-4166-
a59e-b82fbdc280e6 created at 2018-11-16T11:35:24.263Z[GMT]
2018-11-16 11:35:35,563 [pool-2-thread-4] INFO com.leanit.ci.demo.cidemoreceiver.config.OrdersReceiver - Consumed Order e4866ef8-85ff-4e72-
9866-d2ed6cedfb24 created at 2018-11-16T11:35:25.021Z[GMT]
2018-11-16 11:35:36,566 [pool-2-thread-3] INFO com.leanit.ci.demo.cidemoreceiver.config.OrdersReceiver - Consumed Order 9ed744f2-3034-45e6-
a5e5-01805d2ec3c5 created at 2018-11-16T11:35:25.869Z[GMT]
2018-11-16 11:35:37,568 [pool-2-thread-4] INFO com.leanit.ci.demo.cidemoreceiver.config.OrdersReceiver - Consumed Order 1a0d599f-e243-43c9-
9a4e-8e33db2d386c created at 2018-11-16T11:35:26.505Z[GMT]
References
• https://bitbucket.org/account/user/leanitdevs/projects/ZTH
• www.jetbrains.com/teamcity
• https://www.docker.com/
• https://kubernetes.io/
• Continuous Delivery - Jez Humble and David Farley
• Continuous Integration – Paul Duval, Stephen M. Matyas and Andrew Glover
Questions
1. Hero Level
Kubernetes Concepts
Pods
• A set of containers
• Has a unique cluster IP address
• Volumes can be attached
• Can be scaled
Hero
Kubernetes Concepts
Deployments
• Describe how pods can be scaled
• Different strategies can be
configured: Recreate, RollingUpd
ate, Canary
Hero
Kubernetes Concepts
Services
• Exposes a tcp port inside or
outside the cluster
• Balances the load of multiple
pods
• Matches multiple pods with label
selectors
Hero
Kubernetes Concepts
Scaling
Hero

More Related Content

What's hot

Principles of Kubernetes
Principles of KubernetesPrinciples of Kubernetes
Principles of Kubernetes
James Kelly
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
Newt Global Consulting LLC
 
Cloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer ConsoleCloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer Console
Matthew Perrins
 
Rails Applications with Docker
Rails Applications with DockerRails Applications with Docker
Rails Applications with Docker
Laura Frank Tacho
 
Success Factors for a Mature Microservices Implementation
Success Factors for a Mature Microservices ImplementationSuccess Factors for a Mature Microservices Implementation
Success Factors for a Mature Microservices Implementation
Dustin Ruehle
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with Docker
Laura Frank Tacho
 
OpenSlava 2015 When DevOps Hurts
OpenSlava 2015 When DevOps HurtsOpenSlava 2015 When DevOps Hurts
OpenSlava 2015 When DevOps Hurts
Antons Kranga
 
A Cloud Native Platform - Cloud Native Day Santa Monica
A Cloud Native Platform - Cloud Native Day Santa MonicaA Cloud Native Platform - Cloud Native Day Santa Monica
A Cloud Native Platform - Cloud Native Day Santa Monica
Dustin Ruehle
 
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
Docker, Inc.
 
Succesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnetSuccesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnet
Harald Rietman
 
DCEU 18: How To Build Your Containerization Strategy
DCEU 18: How To Build Your Containerization StrategyDCEU 18: How To Build Your Containerization Strategy
DCEU 18: How To Build Your Containerization Strategy
Docker, Inc.
 
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Boyd Hemphill
 
Azure DevOps in Action
Azure DevOps in ActionAzure DevOps in Action
Azure DevOps in Action
Callon Campbell
 
Containerization Strategy
Containerization StrategyContainerization Strategy
Containerization Strategy
Balaji Mariyappan
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realists
Karthik Gaekwad
 
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & HybridAWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
Amazon Web Services
 
Use Docker to Enhance Your Testing
Use Docker to Enhance Your TestingUse Docker to Enhance Your Testing
Use Docker to Enhance Your Testing
TechWell
 
Building a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containersBuilding a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containers
Amazon Web Services
 
SkyBase - a Devops Platform for Hybrid Cloud
SkyBase - a Devops Platform for Hybrid CloudSkyBase - a Devops Platform for Hybrid Cloud
SkyBase - a Devops Platform for Hybrid Cloud
Vlad Kuusk
 
Building a Service Delivery Platform - JCICPH 2014
Building a Service Delivery Platform - JCICPH 2014Building a Service Delivery Platform - JCICPH 2014
Building a Service Delivery Platform - JCICPH 2014
Andreas Rehn
 

What's hot (20)

Principles of Kubernetes
Principles of KubernetesPrinciples of Kubernetes
Principles of Kubernetes
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
 
Cloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer ConsoleCloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer Console
 
Rails Applications with Docker
Rails Applications with DockerRails Applications with Docker
Rails Applications with Docker
 
Success Factors for a Mature Microservices Implementation
Success Factors for a Mature Microservices ImplementationSuccess Factors for a Mature Microservices Implementation
Success Factors for a Mature Microservices Implementation
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with Docker
 
OpenSlava 2015 When DevOps Hurts
OpenSlava 2015 When DevOps HurtsOpenSlava 2015 When DevOps Hurts
OpenSlava 2015 When DevOps Hurts
 
A Cloud Native Platform - Cloud Native Day Santa Monica
A Cloud Native Platform - Cloud Native Day Santa MonicaA Cloud Native Platform - Cloud Native Day Santa Monica
A Cloud Native Platform - Cloud Native Day Santa Monica
 
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
 
Succesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnetSuccesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnet
 
DCEU 18: How To Build Your Containerization Strategy
DCEU 18: How To Build Your Containerization StrategyDCEU 18: How To Build Your Containerization Strategy
DCEU 18: How To Build Your Containerization Strategy
 
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
 
Azure DevOps in Action
Azure DevOps in ActionAzure DevOps in Action
Azure DevOps in Action
 
Containerization Strategy
Containerization StrategyContainerization Strategy
Containerization Strategy
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realists
 
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & HybridAWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
 
Use Docker to Enhance Your Testing
Use Docker to Enhance Your TestingUse Docker to Enhance Your Testing
Use Docker to Enhance Your Testing
 
Building a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containersBuilding a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containers
 
SkyBase - a Devops Platform for Hybrid Cloud
SkyBase - a Devops Platform for Hybrid CloudSkyBase - a Devops Platform for Hybrid Cloud
SkyBase - a Devops Platform for Hybrid Cloud
 
Building a Service Delivery Platform - JCICPH 2014
Building a Service Delivery Platform - JCICPH 2014Building a Service Delivery Platform - JCICPH 2014
Building a Service Delivery Platform - JCICPH 2014
 

Similar to Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker and Kubernetes

DevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesDevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for Kubernetes
Ambassador Labs
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
Docker, Inc.
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Steve Mercier
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
Platform9
 
Enterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up BudgetEnterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up Budget
DevOps.com
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
sparkfabrik
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
Docker, Inc.
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
Brian Christner
 
Migrating to Microservices – It's Easier Than You Think
Migrating to Microservices – It's Easier Than You ThinkMigrating to Microservices – It's Easier Than You Think
Migrating to Microservices – It's Easier Than You Think
DevOps.com
 
Linux Collaboration Summit Keynote: Transformation: It Takes a Platform
Linux Collaboration Summit Keynote: Transformation: It Takes a PlatformLinux Collaboration Summit Keynote: Transformation: It Takes a Platform
Linux Collaboration Summit Keynote: Transformation: It Takes a Platform
cornelia davis
 
How (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaSHow (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaS
Ryan Crawford
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI API
VictorSzoltysek
 
Introduction to DevOps with Azure DevOps Pipelines.pptx
Introduction to DevOps with Azure DevOps Pipelines.pptxIntroduction to DevOps with Azure DevOps Pipelines.pptx
Introduction to DevOps with Azure DevOps Pipelines.pptx
ssuser89c372
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
Bhargav Amin
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - Presentation
Alex Vranceanu
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Ambassador Labs
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
Hazzim Anaya
 
European SharePoint Conference - TH3
European SharePoint Conference - TH3European SharePoint Conference - TH3
European SharePoint Conference - TH3
Rick Van Rousselt
 
Docker Meetup at Docker HQ: Docker Cloud
Docker Meetup at Docker HQ: Docker CloudDocker Meetup at Docker HQ: Docker Cloud
Docker Meetup at Docker HQ: Docker Cloud
Docker, Inc.
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
Eklove Mohan
 

Similar to Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker and Kubernetes (20)

DevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesDevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for Kubernetes
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
 
Enterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up BudgetEnterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up Budget
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
 
Migrating to Microservices – It's Easier Than You Think
Migrating to Microservices – It's Easier Than You ThinkMigrating to Microservices – It's Easier Than You Think
Migrating to Microservices – It's Easier Than You Think
 
Linux Collaboration Summit Keynote: Transformation: It Takes a Platform
Linux Collaboration Summit Keynote: Transformation: It Takes a PlatformLinux Collaboration Summit Keynote: Transformation: It Takes a Platform
Linux Collaboration Summit Keynote: Transformation: It Takes a Platform
 
How (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaSHow (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaS
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI API
 
Introduction to DevOps with Azure DevOps Pipelines.pptx
Introduction to DevOps with Azure DevOps Pipelines.pptxIntroduction to DevOps with Azure DevOps Pipelines.pptx
Introduction to DevOps with Azure DevOps Pipelines.pptx
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - Presentation
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
 
European SharePoint Conference - TH3
European SharePoint Conference - TH3European SharePoint Conference - TH3
European SharePoint Conference - TH3
 
Docker Meetup at Docker HQ: Docker Cloud
Docker Meetup at Docker HQ: Docker CloudDocker Meetup at Docker HQ: Docker Cloud
Docker Meetup at Docker HQ: Docker Cloud
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 

Recently uploaded

Effective Tips for Creating the Best Rich Media Ads .pptx
Effective Tips for Creating the Best Rich Media Ads .pptxEffective Tips for Creating the Best Rich Media Ads .pptx
Effective Tips for Creating the Best Rich Media Ads .pptx
AirtoryInc
 
Week 1 - Pendidikan Pancasila - Gr 1.docx
Week 1 - Pendidikan Pancasila - Gr 1.docxWeek 1 - Pendidikan Pancasila - Gr 1.docx
Week 1 - Pendidikan Pancasila - Gr 1.docx
JunaManroe1
 
Enhancing seamless access using TIGERfed
Enhancing seamless access using TIGERfedEnhancing seamless access using TIGERfed
Enhancing seamless access using TIGERfed
Bangladesh Network Operators Group
 
How God led me to DTS? Through many different signs and connections that I c...
How God led me to DTS? Through many different signs and connections that  I c...How God led me to DTS? Through many different signs and connections that  I c...
How God led me to DTS? Through many different signs and connections that I c...
AshishMohan57
 
Best CSS Animation Libraries for Web Developers
Best CSS Animation Libraries for Web DevelopersBest CSS Animation Libraries for Web Developers
Best CSS Animation Libraries for Web Developers
Shrestha Raaz
 
SisAi World - Software is AI - Providing AI as Software - Protecting the Inte...
SisAi World - Software is AI - Providing AI as Software - Protecting the Inte...SisAi World - Software is AI - Providing AI as Software - Protecting the Inte...
SisAi World - Software is AI - Providing AI as Software - Protecting the Inte...
QingjieDu1
 
Career Development Advice for Network Engineers across the Pacific, presented...
Career Development Advice for Network Engineers across the Pacific, presented...Career Development Advice for Network Engineers across the Pacific, presented...
Career Development Advice for Network Engineers across the Pacific, presented...
APNIC
 
202254.com香蕉影视,沙丘2在线播放,沙丘2线上看,最新电影沙丘2在线,热门电影推荐,2024最新科幻片推荐。
202254.com香蕉影视,沙丘2在线播放,沙丘2线上看,最新电影沙丘2在线,热门电影推荐,2024最新科幻片推荐。202254.com香蕉影视,沙丘2在线播放,沙丘2线上看,最新电影沙丘2在线,热门电影推荐,2024最新科幻片推荐。
202254.com香蕉影视,沙丘2在线播放,沙丘2线上看,最新电影沙丘2在线,热门电影推荐,2024最新科幻片推荐。
yilin01100
 
University of California, Riverside diploma
University of California, Riverside diplomaUniversity of California, Riverside diploma
University of California, Riverside diploma
eufdev
 
Team Cymru Community Services,Overview of all public services
Team Cymru Community Services,Overview of all public servicesTeam Cymru Community Services,Overview of all public services
Team Cymru Community Services,Overview of all public services
Bangladesh Network Operators Group
 
Top 50 Telephone Conversation Sample Examples For IT Industries.pdf
Top 50 Telephone Conversation Sample Examples For IT Industries.pdfTop 50 Telephone Conversation Sample Examples For IT Industries.pdf
Top 50 Telephone Conversation Sample Examples For IT Industries.pdf
Krishna L
 
Understanding Threat Intelligence | What is Threat Intelligence
Understanding Threat Intelligence | What is Threat IntelligenceUnderstanding Threat Intelligence | What is Threat Intelligence
Understanding Threat Intelligence | What is Threat Intelligence
Lumiverse Solutions Pvt Ltd
 
Trump fist pump t shirts Trump fist pump t shirts
Trump fist pump t shirts Trump fist pump t shirtsTrump fist pump t shirts Trump fist pump t shirts
Trump fist pump t shirts Trump fist pump t shirts
exgf28
 
DASH, presented by Elly Tawhai at PacNOG 33
DASH, presented by Elly Tawhai at PacNOG 33DASH, presented by Elly Tawhai at PacNOG 33
DASH, presented by Elly Tawhai at PacNOG 33
APNIC
 
Best Skills to Learn for Freelancing.pdf
Best Skills to Learn for Freelancing.pdfBest Skills to Learn for Freelancing.pdf
Best Skills to Learn for Freelancing.pdf
Million-$-Knowledge {Million Dollar Knowledge}
 
Rent remote desktop server mangohost .net
Rent remote desktop server mangohost .netRent remote desktop server mangohost .net
Rent remote desktop server mangohost .net
pdfsubmission50
 
Digital ethnography of the Polish darknet drug trade community
Digital ethnography of the Polish darknet drug trade communityDigital ethnography of the Polish darknet drug trade community
Digital ethnography of the Polish darknet drug trade community
Piotr Siuda
 
upgrade to zabbix-7 0 como atualiza lts1
upgrade to zabbix-7 0 como atualiza lts1upgrade to zabbix-7 0 como atualiza lts1
upgrade to zabbix-7 0 como atualiza lts1
diogolsew
 
Lordsexch ID: An Ultimate Online Cricket ID Provider In India
Lordsexch ID: An Ultimate Online Cricket ID Provider In IndiaLordsexch ID: An Ultimate Online Cricket ID Provider In India
Lordsexch ID: An Ultimate Online Cricket ID Provider In India
exchangeid32
 
Trump Assassination Shirt Trump Assassination Shirt
Trump Assassination Shirt Trump Assassination ShirtTrump Assassination Shirt Trump Assassination Shirt
Trump Assassination Shirt Trump Assassination Shirt
exgf28
 

Recently uploaded (20)

Effective Tips for Creating the Best Rich Media Ads .pptx
Effective Tips for Creating the Best Rich Media Ads .pptxEffective Tips for Creating the Best Rich Media Ads .pptx
Effective Tips for Creating the Best Rich Media Ads .pptx
 
Week 1 - Pendidikan Pancasila - Gr 1.docx
Week 1 - Pendidikan Pancasila - Gr 1.docxWeek 1 - Pendidikan Pancasila - Gr 1.docx
Week 1 - Pendidikan Pancasila - Gr 1.docx
 
Enhancing seamless access using TIGERfed
Enhancing seamless access using TIGERfedEnhancing seamless access using TIGERfed
Enhancing seamless access using TIGERfed
 
How God led me to DTS? Through many different signs and connections that I c...
How God led me to DTS? Through many different signs and connections that  I c...How God led me to DTS? Through many different signs and connections that  I c...
How God led me to DTS? Through many different signs and connections that I c...
 
Best CSS Animation Libraries for Web Developers
Best CSS Animation Libraries for Web DevelopersBest CSS Animation Libraries for Web Developers
Best CSS Animation Libraries for Web Developers
 
SisAi World - Software is AI - Providing AI as Software - Protecting the Inte...
SisAi World - Software is AI - Providing AI as Software - Protecting the Inte...SisAi World - Software is AI - Providing AI as Software - Protecting the Inte...
SisAi World - Software is AI - Providing AI as Software - Protecting the Inte...
 
Career Development Advice for Network Engineers across the Pacific, presented...
Career Development Advice for Network Engineers across the Pacific, presented...Career Development Advice for Network Engineers across the Pacific, presented...
Career Development Advice for Network Engineers across the Pacific, presented...
 
202254.com香蕉影视,沙丘2在线播放,沙丘2线上看,最新电影沙丘2在线,热门电影推荐,2024最新科幻片推荐。
202254.com香蕉影视,沙丘2在线播放,沙丘2线上看,最新电影沙丘2在线,热门电影推荐,2024最新科幻片推荐。202254.com香蕉影视,沙丘2在线播放,沙丘2线上看,最新电影沙丘2在线,热门电影推荐,2024最新科幻片推荐。
202254.com香蕉影视,沙丘2在线播放,沙丘2线上看,最新电影沙丘2在线,热门电影推荐,2024最新科幻片推荐。
 
University of California, Riverside diploma
University of California, Riverside diplomaUniversity of California, Riverside diploma
University of California, Riverside diploma
 
Team Cymru Community Services,Overview of all public services
Team Cymru Community Services,Overview of all public servicesTeam Cymru Community Services,Overview of all public services
Team Cymru Community Services,Overview of all public services
 
Top 50 Telephone Conversation Sample Examples For IT Industries.pdf
Top 50 Telephone Conversation Sample Examples For IT Industries.pdfTop 50 Telephone Conversation Sample Examples For IT Industries.pdf
Top 50 Telephone Conversation Sample Examples For IT Industries.pdf
 
Understanding Threat Intelligence | What is Threat Intelligence
Understanding Threat Intelligence | What is Threat IntelligenceUnderstanding Threat Intelligence | What is Threat Intelligence
Understanding Threat Intelligence | What is Threat Intelligence
 
Trump fist pump t shirts Trump fist pump t shirts
Trump fist pump t shirts Trump fist pump t shirtsTrump fist pump t shirts Trump fist pump t shirts
Trump fist pump t shirts Trump fist pump t shirts
 
DASH, presented by Elly Tawhai at PacNOG 33
DASH, presented by Elly Tawhai at PacNOG 33DASH, presented by Elly Tawhai at PacNOG 33
DASH, presented by Elly Tawhai at PacNOG 33
 
Best Skills to Learn for Freelancing.pdf
Best Skills to Learn for Freelancing.pdfBest Skills to Learn for Freelancing.pdf
Best Skills to Learn for Freelancing.pdf
 
Rent remote desktop server mangohost .net
Rent remote desktop server mangohost .netRent remote desktop server mangohost .net
Rent remote desktop server mangohost .net
 
Digital ethnography of the Polish darknet drug trade community
Digital ethnography of the Polish darknet drug trade communityDigital ethnography of the Polish darknet drug trade community
Digital ethnography of the Polish darknet drug trade community
 
upgrade to zabbix-7 0 como atualiza lts1
upgrade to zabbix-7 0 como atualiza lts1upgrade to zabbix-7 0 como atualiza lts1
upgrade to zabbix-7 0 como atualiza lts1
 
Lordsexch ID: An Ultimate Online Cricket ID Provider In India
Lordsexch ID: An Ultimate Online Cricket ID Provider In IndiaLordsexch ID: An Ultimate Online Cricket ID Provider In India
Lordsexch ID: An Ultimate Online Cricket ID Provider In India
 
Trump Assassination Shirt Trump Assassination Shirt
Trump Assassination Shirt Trump Assassination ShirtTrump Assassination Shirt Trump Assassination Shirt
Trump Assassination Shirt Trump Assassination Shirt
 

Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker and Kubernetes

  • 1. Continuous Integration and Delivery: from Zero to Hero with TeamCity, Docker and Kubernetes
  • 3. Outline Agenda 1. Who we are 2. Introduction 3. Level Zero: Everything Manual 4. Level Intermediate: introducing a CI Tool 5. Level Hero: Docker + Kubernetes
  • 4. L’azienda Dati Generali Azienda • Sede centrale a Basilea, Svizzera • Development center ad Ancona • Circa 20 professionisti motivati (Int&Est) • Oracle Partner per Agile PLM
  • 5. Il Team Lean IT: Team ✓ Team 20 Persone (Int & Est) ✓ > 75 % Assunti a tempo Indeterminato ✓ > 90 % Laureati in Informatica o Ingegneria Informatica ✓ > 80% Laureati Specialistici ✓ Turnover delle risorse < 7% ultimi 3 anni ✓ >70% del Team ha tra 5 - 10 Anni o oltre i 10 Anni di esperienza di Sviluppo Software ✓ Di questi il 60% ha più di 10 anni di esperienza di Sviluppo Software <2 Anni 2<>5 Anni 5<>10 Anni >10 Team: Anni Esperienza Sviluppo Software <2 Anni 2<>5 Anni 5<>10 Anni >10
  • 6. I Nostri Servizi Lean IT: I Nostri Servizi • IT Consulting • System integration • Sviluppo Software • PLM Consulting • Implementazione e Configurazione • System integration • Helpdesk e supporto • Sviluppo moduli Custom • Consulenza per i processi di Business
  • 7. PLM Application For Product Lifecycle Management
  • 10. Metodologie Scrum Framework ✓ Lean IT: ✓ Sprint Weeks: 2 ✓ Every 2 Weeks: Grooming (normally) on Friday ✓ Every 2 Weeks: Planning (normally) on Monday ✓ Retrospective: Once Months
  • 12. Opportunità ✓ Talenti Mandateci un CV a: recruiting@leanitconsulting.it Esempio al desk all’ingresso ✓ Partner Commerciali / Strategici Contattatemi a: grizzo@leanitconsulting.it
  • 13. Grazie ITALY Lean IT Consulting IT Giulio Rizzo grizzo@leanitconsulting.it Via I Maggio 25/b – 60131 Ancona +39 071 9256426 +39 328 8141675 BUON TECH BAR ☺
  • 14. Disclaimer We are NOT • DevOps/CI/CD GURUs • Affiliated with any of the brands we cite Feel free to interrupt us in case you feel we are saying something really wrong Today we present our journey in the CI/CD world
  • 15. Introduction Setting the Stage • We have a quite long journey to share • We outlined a path to guide us through • Questions are welcome but please do not focus too much in low-level details... • … we don't want to leave at dawn! • Help us to adjust our presentation: how much of a DevOps expert are you?
  • 16. Continuous Integration Continuous Integration is a software development practice where members of a team integrate their work frequently ... leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Introduction Martin Fowler https://martinfowler.com/articles/continuousIntegration.html
  • 17. Continuous Delivery Continuous Delivery is the ability to get changes of all types ... into production ... safely and quickly in a sustainable way. We achieve all this by ensuring our code is always in a deployable state … completely eliminate the integration, testing phases that traditionally followed “dev complete”, as well as code freezes. Introduction Jez Humble https://continuousdelivery.com/
  • 19. Talk is cheap Show me the code
  • 20. Level Zero How we Deliver Our Application in PROD? How would you do it?
  • 21. Level Zero Everything manual! • Testing • Building and packaging • Deployment We all started from here With a bit of attention it works… • … until the number of projects is really small
  • 22. Level Zero Manual Build $ mvn clean package -U sender.war receiver.war JAR WAR WAR demo-utility-lib.jar
  • 23. Level Zero Manual Deploy RDP SERVER sender.war receiver.warDeveloper WAR WAR
  • 24. Level Zero Deployment Pipeline sender.war (v4) receiver.war (v4) sender.war (v3) receiver.war (v3) sender.war (v2) receiver.war (v2) sender.war (v1) receiver.war (v1) LOCAL DEV TEST PROD sender.war (v2) receiver.war (v2) sender.war (v3) receiver.war (v3) sender.war (v4) receiver.war (v4) • Manual deploy of artifacts thought the pipeline • Internal rules to ensure that each environment receives the artifact of the previous one • Conventions on where to store artifacts
  • 26. Zero Level: Considerations Boring … repetitive … dummy ... work • No added value after the first time you do it! • What if you have DEV/TEST/STAGING/PROD envs? Highly subject to human error No versioning of deploy history • What I deployed in DEV? What in TEST? • How to ensure that what has been tested in TEST goes in PROD? Level Zero
  • 28. Introducing a Continuous Integration Tool There are as many CI tools as the stars: Jenkins, TeamCity, Travis CI, Go CD, Bamboo, GitLab CI, CircleCI, Codeship... We are currently – and happily – using Teamcity Objective: automatize the development pipeline Intermediate
  • 29. TeamCity • Developed by JetBrains • Full support for Java and .NET • Professional license free with some limitation • 100 builds max • 3 build agents Intermediate
  • 33. Intermediate Deployment Pipeline with TeamCity sender.war (v4) receiver.war (v4) sender.war (v3) receiver.war (v3) sender.war (v2) receiver.war (v2) sender.war (v1) receiver.war (v1) LOCAL DEV TEST PROD sender.war (v2) receiver.war (v2) sender.war (v3) receiver.war (v3) sender.war (v4) receiver.war (v4) • TC deploys artifacts thought the pipeline • TC build dependencies to implement the pipeline you need • TC will store artifacts for you
  • 34. Intermediate Intermediate Level: Pro and Cons • Good level of automation • Faster coding and quick feedbacks on breaking changes • Config of app environments is manual • Installation on a new server is manual • No isolation of micro-services
  • 35. Next Level: Hero • Docker – Container Platform • Kubernetes – Orchestrator • Google Cloud Platform – Cloud Provider
  • 36. Level Hero What is Docker? Container • Share the same kernel, isolation is done in user space • Lower resource usage • Fast start time Virtual Machine • Each VM runs a full copy of the operating system • High resource usage • Slow start time
  • 37. Hero What is Docker? • Containers are built from layers • Images can be pushed and pulled to/from a shared repository (public or private) • A standardized unit of software
  • 38. Hero Why Docker? • High isolation level (better security) • Reduce friction between developers and operations • Runs everywhere and reduce the risk of "works on my PC" • Fast to stop and start • Containers are easy to scale, deploy and upgrade • Leader in container industry
  • 39. Hero Dockerfile $ docker build –t leanitrepo/ci-demo-receiver:latest . FROM openjdk:8-jdk-alpine COPY ./target/ci-demo-receiver.jar /usr/src/ci-demo-receiver.jar WORKDIR /usr/src/ EXPOSE 8091 CMD ["java", "-jar", "ci-demo-receiver.jar"]
  • 40. Can be easily integrated in Teamcity Commands can be added as build steps Hero
  • 41. Containers grows rapidly How can we manage an infrastructure that scales? Hero
  • 42. Kubernetes • An open source container orchestrator • Based on Borg, a project run by Google Hero
  • 43. Kubernetes • Automates deployment and scaling • Manage failures • Binpacking based on resource requirements • Run on-premise or on the cloud Hero
  • 44. Kubernetes Concepts Nodes • A physical or virtual machine • Manage workloads of containers • Master: coordinates the activity of the cluster Hero
  • 45. Kubernetes Concepts Management • Master node exposes an API • kubectl: command line tool • Many dashboards are available • Can be easily integrated in Team City Hero kubectl
  • 49. Hero Google Cloud Platform • Easy to setup and manage • Resources can be allocated dinamically • Can be managed with CLI for task automation $ gcloud container clusters resize kube-demo --size=3
  • 52. Hero Deploy to Kubernetes with Team City
  • 53. Hero Scaling Pods $ kubectl scale deployment receiver-deployment --replicas=5
  • 54. Hero Deploy Updated Version $ kubectl set image deployment/receiver-deployment receiver=leanitrepo/ci-demo-receiver:100msec
  • 55. Hero Downscaling Pods $ kubectl scale deployment receiver-deployment --replicas=3 docker@docker:~/dev-marche-demo$ kubectl describe deployment receiver-deployment Name: receiver-deployment Namespace: default CreationTimestamp: Fri, 16 Nov 2018 09:59:32 +0100 Labels: app=dev-marche-demo component=receiver Annotations: deployment.kubernetes.io/revision=2 Selector: component=receiver Replicas: 5 desired | 5 updated | 5 total | 5 available | 0 unavailable StrategyType: RollingUpdate MinReadySeconds: 0 RollingUpdateStrategy: 1 max unavailable, 1 max surge
  • 56. Hero Monitoring logs with kubectl or Stackdriver docker@docker:~/dev-marche-demo$ kubectl logs receiver-deployment-784c5df8cf-l675g --tail=10 2018-11-16 11:35:33,662 [http-nio-8091-exec-7] INFO com.leanit.ci.demo.cidemoreceiver.controllers.StatusController - /status/check endpoint called 2018-11-16 11:35:34,561 [pool-2-thread-3] INFO com.leanit.ci.demo.cidemoreceiver.config.OrdersReceiver - Consumed Order d80fc7a2-2871-4166- a59e-b82fbdc280e6 created at 2018-11-16T11:35:24.263Z[GMT] 2018-11-16 11:35:35,563 [pool-2-thread-4] INFO com.leanit.ci.demo.cidemoreceiver.config.OrdersReceiver - Consumed Order e4866ef8-85ff-4e72- 9866-d2ed6cedfb24 created at 2018-11-16T11:35:25.021Z[GMT] 2018-11-16 11:35:36,566 [pool-2-thread-3] INFO com.leanit.ci.demo.cidemoreceiver.config.OrdersReceiver - Consumed Order 9ed744f2-3034-45e6- a5e5-01805d2ec3c5 created at 2018-11-16T11:35:25.869Z[GMT] 2018-11-16 11:35:37,568 [pool-2-thread-4] INFO com.leanit.ci.demo.cidemoreceiver.config.OrdersReceiver - Consumed Order 1a0d599f-e243-43c9- 9a4e-8e33db2d386c created at 2018-11-16T11:35:26.505Z[GMT]
  • 57. References • https://bitbucket.org/account/user/leanitdevs/projects/ZTH • www.jetbrains.com/teamcity • https://www.docker.com/ • https://kubernetes.io/ • Continuous Delivery - Jez Humble and David Farley • Continuous Integration – Paul Duval, Stephen M. Matyas and Andrew Glover
  • 59. Kubernetes Concepts Pods • A set of containers • Has a unique cluster IP address • Volumes can be attached • Can be scaled Hero
  • 60. Kubernetes Concepts Deployments • Describe how pods can be scaled • Different strategies can be configured: Recreate, RollingUpd ate, Canary Hero
  • 61. Kubernetes Concepts Services • Exposes a tcp port inside or outside the cluster • Balances the load of multiple pods • Matches multiple pods with label selectors Hero