SlideShare a Scribd company logo
APACHE SLING&FRIENDSTECHMEETUP
2- 4SEPTEMBER 2019
Deep-diveinto cloud-native AEM deployments based on Kubernetes
Tomek Rękawek, Adobe
2
Cloud: whatand why?
Wewanttomovefrom
3
to
4
Cloud:why?
5
 RunningAEM at scale
 Hassle-freedeployments
 The cloud provider (AWS, Azure) should worry about
infrastructure
Agenda
6
 Jobs
 Content migration
 New indexes
 QA
 Docker&Kubernetesintroduction
 Architectureoverview
 Publishpersistence
 Cloud Segment Store
 Golden publish
 Compaction
 Sidecarservices
7
Docker & Kubernetesintroduction
Thepowerofstandardization
8
DockerizedAEM
9
 AEM in Docker image
 Composite Node Store
 /apps& /libs storedin thecontainer
 Actualcontentlives outside,in the VOLUMEorMongoDB
 OSGi Feature Model
 DefinesAEMandcustomerapplication
 Featurelauncherstartsit inside container
 Covered in Karl& David’spresentation
 SeeadaptTo() 2017 talk for moredetails
Mini intro toKubernetes
10
 Launches Docker containers without worrying about the underlying VMs
 Dictionary
 Pod–a groupofcontainersstartingtogetheron asingle machine
 Service –internalloadbalancer,exposinganumberofpodreplicas underasingle address
 Ingress– exposesa service underanpublic httpaddress
 Everyentity is represented by a YAML object in K8s API server
 TheYAML is the desired state, K8s knows how to get there
DeploymentswithHelm
11
 Helm – K8s apps management
 Chart – a bunch of K8s YAML descriptors,
with a simple templating
 Whole AEMdeployment canbe
installed/upgraded with a single command
Image:https://helm.sh
12
Architecture overview
AEMKubernetessetup
13
14
Publishpersistence evolution
Problemdefinition
15
 Author persistence is easy-ish with MongoDB
 Publish is harder –local SegmentMK, no clustering
 Thepublish farm is kept up-to-date with replication
 However:
 weneed toprovidethenew publishinstanceswitha segment store,
 copyit fromanotherinstance.
 Problems:
 copyingfiles betweenpodsis hardandhacky,
 whatif there’snopublishto copyfrom?
Cloud SegmentStore
16
 A new plugin for the Segment Node Store
 Nodes are stored in a cloud storage service
 No tar files, raw segments grouped in dirs
 Can be used in RW or RO modes
Goldenpublish
17
 A designated publish instance
 Not connectedto LB
 It maintainsa “golden copy” of the
segmentstore
 New publish just clone it
Problem:duplicatedbinaries andstartuptime
18
Golden publish
Segment 1
Segment 2
Segment 4
Segment 3
Segment x
Publish 1
Segment 1
Segment 2
Segment 4
Segment 3
Segment y
Publish 2
Segment 1
Segment 2
Segment 4
Segment 3
Segment z
Publish 3 (starting)
Segment 1
Segment 2
Segment 3
Segment 4
 Multiple copies of the same segments 1-4 ($$$)
 Cloning a bucket takes time during the publish start ( 🕑🕑🕑)
Optimization:a singlesegmentstore
19
20
Publishpersistence: compaction
Compaction
21
Out-of-bandpublish update
22
 This pattern willbe usefulin many cases
 We may clone thepublish repository,
modify it and re-deploy instanceson
top of it
 Persisted message queuewill apply
missingchanges
23
Sidecar services
Sidecar approach
24
 A single pod can run many containers, sharing their volumes and
localhost interface
 We can use them for the auxiliaryservices (sidecars):
 Dispatcher in the publish pod
 Upload logs to Splunk
 Warmup service
AEMpod withsidecars
25Sidecaricon: Flaticons.com
26
Jobs
Kubernetesjob
27
 Starts a pod
 Meantto perform a specific task and finish
 Unlikethe deployment, which run indefinitely
 Willbe restarted if fails
 Jobs provides a way to interactwiththe deployed AEM
28
Contentmigration
Contentmigration
29
 How to migrate old content to K8s?
 Access problem
 old AEM envs shouldn’t have access to the K8s (encapsulation)
 K8s shouldn’t be able to access oldAEMs (they can be installed
anywhere)
 Solution:demilitarized zone
2-phasemigration
30
 Phase 1
 Themigrator tool (crx2oak-like jar) is used to
export old AEM content into a cloud storage
service
 Phase 2
 A Kubernetes job is used to apply the migrated
content on the cloud instances
31
Newindexes
Addingnew index
32
 Indexesaretricky
 /oak:index is a part of the mutable content
 But indexdefinitions belongs to the application
 Onlyaddingnew indexesis supported
 Whena new indexis addedin /oak:index,it’ll haveanextra
useIfExistspropertyreferencing immutable part/apps
 This bounds the index definition tothe application version andDocker
image
 This /appspathhaveto beaddedas well
• /oak:index/my-new-index
• useIfExists: /apps/indexes@v3
• /apps/indexes
• v3: true
Mutable part
Immutable part
Mutablecontent:addingnew index
33
 Indexingjob should be runbefore the actual app deployment
 Thejob will:
1. Look forthe new index defs in /oak:index
2. Perform out of band indexing ofthe content
3. Save the new indexing content tothe production repository
 TheuseIfExists will makesure that the newindexis ignored, untilthe
newimageis installed
 When the new image is deployed, the /apps part will be updated and the
new index will beused
34
Other topics
Relatedtopics
35
 Feature model usage in Docker (covered in David’s and Karl’stalk)
 Replication (covered in Timothee’s talk)
 Monitoring with Prometheus and Grafana
 CI/CD pipeline
 Network policies
 …
36
Thanks!

More Related Content

What's hot

Overweight and obesity problem: Overweight and obesity trends
Overweight and obesity problem: Overweight and obesity trendsOverweight and obesity problem: Overweight and obesity trends
Overweight and obesity problem: Overweight and obesity trends
International Food Policy Research Institute (IFPRI)
 
Obesity & overweight
Obesity & overweightObesity & overweight
Obesity & overweight
Dr. Mohabbat Ali
 
Chapter 23 Nutrition, Cancer, and HIV Infection
Chapter 23 Nutrition, Cancer, and HIV Infection Chapter 23 Nutrition, Cancer, and HIV Infection
Chapter 23 Nutrition, Cancer, and HIV Infection
KellyGCDET
 
My Carbohydrate Guide
My Carbohydrate GuideMy Carbohydrate Guide
My Carbohydrate Guide
TFMG
 
Healthy Diet and Scleroderma
Healthy Diet and SclerodermaHealthy Diet and Scleroderma
Healthy Diet and Scleroderma
Scleroderma Foundation of Greater Chicago
 
التغذية العلاجية بنظام غذائي منخفض الكربوهيدرات لمرض السكر من النوع الثاني
التغذية العلاجية بنظام غذائي منخفض الكربوهيدرات لمرض السكر من النوع الثانيالتغذية العلاجية بنظام غذائي منخفض الكربوهيدرات لمرض السكر من النوع الثاني
التغذية العلاجية بنظام غذائي منخفض الكربوهيدرات لمرض السكر من النوع الثاني
Arwa M. Amin
 
Nutrition COPD.ppt
Nutrition COPD.pptNutrition COPD.ppt
Nutrition COPD.ppt
ShajahanPS
 
CHO COUNTING
CHO COUNTINGCHO COUNTING
CHO COUNTING
nutritionistrepublic
 
Branch Chain Amino Acid in Cirrhosis ppt.pptx
Branch Chain Amino Acid in Cirrhosis ppt.pptxBranch Chain Amino Acid in Cirrhosis ppt.pptx
Branch Chain Amino Acid in Cirrhosis ppt.pptx
Dr. Awadhesh
 
Nutrition therapy work shop dawly first part 2017
Nutrition therapy work shop dawly   first part  2017Nutrition therapy work shop dawly   first part  2017
Nutrition therapy work shop dawly first part 2017
FarragBahbah
 
Obesity
ObesityObesity
Carbohydrate Counting
Carbohydrate CountingCarbohydrate Counting
Carbohydrate Counting
Emily Todhunter
 
Importance Of Nutrition In Cancer Patients
Importance Of Nutrition In Cancer PatientsImportance Of Nutrition In Cancer Patients
Importance Of Nutrition In Cancer Patients
Azam Jafri
 
colorectal class.pptx
colorectal class.pptxcolorectal class.pptx
colorectal class.pptx
adityasingla007
 
Obesity Awareness
Obesity AwarenessObesity Awareness
Obesity Awareness
Sharanya Rajan
 
Obesity
Obesity Obesity
PATIENT-GENERATED SUBJECTIVE GLOBAL ASSESSMENT (PG-SGA): A REVIEW
PATIENT-GENERATED SUBJECTIVE GLOBAL ASSESSMENT (PG-SGA): A REVIEW PATIENT-GENERATED SUBJECTIVE GLOBAL ASSESSMENT (PG-SGA): A REVIEW
PATIENT-GENERATED SUBJECTIVE GLOBAL ASSESSMENT (PG-SGA): A REVIEW
Neeleshkumar Maurya
 
Metabolic Syndrome and Dietary Guidelines for its prevention
Metabolic Syndrome and Dietary Guidelines for its preventionMetabolic Syndrome and Dietary Guidelines for its prevention
Metabolic Syndrome and Dietary Guidelines for its prevention
nutritionistrepublic
 
Intermittent fasting and metabolic syndrome
Intermittent fasting and metabolic syndromeIntermittent fasting and metabolic syndrome
Intermittent fasting and metabolic syndrome
fathi neana
 
MNT for DM by DrSelim
MNT for DM by DrSelimMNT for DM by DrSelim

What's hot (20)

Overweight and obesity problem: Overweight and obesity trends
Overweight and obesity problem: Overweight and obesity trendsOverweight and obesity problem: Overweight and obesity trends
Overweight and obesity problem: Overweight and obesity trends
 
Obesity & overweight
Obesity & overweightObesity & overweight
Obesity & overweight
 
Chapter 23 Nutrition, Cancer, and HIV Infection
Chapter 23 Nutrition, Cancer, and HIV Infection Chapter 23 Nutrition, Cancer, and HIV Infection
Chapter 23 Nutrition, Cancer, and HIV Infection
 
My Carbohydrate Guide
My Carbohydrate GuideMy Carbohydrate Guide
My Carbohydrate Guide
 
Healthy Diet and Scleroderma
Healthy Diet and SclerodermaHealthy Diet and Scleroderma
Healthy Diet and Scleroderma
 
التغذية العلاجية بنظام غذائي منخفض الكربوهيدرات لمرض السكر من النوع الثاني
التغذية العلاجية بنظام غذائي منخفض الكربوهيدرات لمرض السكر من النوع الثانيالتغذية العلاجية بنظام غذائي منخفض الكربوهيدرات لمرض السكر من النوع الثاني
التغذية العلاجية بنظام غذائي منخفض الكربوهيدرات لمرض السكر من النوع الثاني
 
Nutrition COPD.ppt
Nutrition COPD.pptNutrition COPD.ppt
Nutrition COPD.ppt
 
CHO COUNTING
CHO COUNTINGCHO COUNTING
CHO COUNTING
 
Branch Chain Amino Acid in Cirrhosis ppt.pptx
Branch Chain Amino Acid in Cirrhosis ppt.pptxBranch Chain Amino Acid in Cirrhosis ppt.pptx
Branch Chain Amino Acid in Cirrhosis ppt.pptx
 
Nutrition therapy work shop dawly first part 2017
Nutrition therapy work shop dawly   first part  2017Nutrition therapy work shop dawly   first part  2017
Nutrition therapy work shop dawly first part 2017
 
Obesity
ObesityObesity
Obesity
 
Carbohydrate Counting
Carbohydrate CountingCarbohydrate Counting
Carbohydrate Counting
 
Importance Of Nutrition In Cancer Patients
Importance Of Nutrition In Cancer PatientsImportance Of Nutrition In Cancer Patients
Importance Of Nutrition In Cancer Patients
 
colorectal class.pptx
colorectal class.pptxcolorectal class.pptx
colorectal class.pptx
 
Obesity Awareness
Obesity AwarenessObesity Awareness
Obesity Awareness
 
Obesity
Obesity Obesity
Obesity
 
PATIENT-GENERATED SUBJECTIVE GLOBAL ASSESSMENT (PG-SGA): A REVIEW
PATIENT-GENERATED SUBJECTIVE GLOBAL ASSESSMENT (PG-SGA): A REVIEW PATIENT-GENERATED SUBJECTIVE GLOBAL ASSESSMENT (PG-SGA): A REVIEW
PATIENT-GENERATED SUBJECTIVE GLOBAL ASSESSMENT (PG-SGA): A REVIEW
 
Metabolic Syndrome and Dietary Guidelines for its prevention
Metabolic Syndrome and Dietary Guidelines for its preventionMetabolic Syndrome and Dietary Guidelines for its prevention
Metabolic Syndrome and Dietary Guidelines for its prevention
 
Intermittent fasting and metabolic syndrome
Intermittent fasting and metabolic syndromeIntermittent fasting and metabolic syndrome
Intermittent fasting and metabolic syndrome
 
MNT for DM by DrSelim
MNT for DM by DrSelimMNT for DM by DrSelim
MNT for DM by DrSelim
 

Similar to Deep-dive into cloud-native AEM deployments based on Kubernetes

Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
QAware GmbH
 
CD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas KolenkinCD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas Kolenkin
DataArt
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_
kanedafromparis
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
Mario-Leander Reimer
 
A hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stackA hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stack
QAware GmbH
 
Docker, cornerstone of an hybrid cloud?
Docker, cornerstone of an hybrid cloud?Docker, cornerstone of an hybrid cloud?
Docker, cornerstone of an hybrid cloud?
Adrien Blind
 
Experiences with AWS immutable deploys and job processing
Experiences with AWS immutable deploys and job processingExperiences with AWS immutable deploys and job processing
Experiences with AWS immutable deploys and job processing
Docker, Inc.
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloud
Massimiliano Dessì
 
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e JavaCome costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
Codemotion
 
IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017
Robert Parker
 
Api Versioning with Docker and Nginx
Api Versioning with Docker and NginxApi Versioning with Docker and Nginx
Api Versioning with Docker and Nginx
tech.kartenmacherei
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned
RightScale
 
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]
Adrien Blind
 
20220406 - SDAN_Presentation1_SDANOverview.pdf
20220406 - SDAN_Presentation1_SDANOverview.pdf20220406 - SDAN_Presentation1_SDANOverview.pdf
20220406 - SDAN_Presentation1_SDANOverview.pdf
ssuser34f58c1
 
Api versioning w_docker_and_nginx
Api versioning w_docker_and_nginxApi versioning w_docker_and_nginx
Api versioning w_docker_and_nginx
Lee Wilkins
 
Cloud orchestration risks
Cloud orchestration risksCloud orchestration risks
Cloud orchestration risks
Glib Pakharenko
 
Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...
Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...
Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...
Amazon Web Services
 
Cloud Run - the rise of serverless and containerization
Cloud Run - the rise of serverless and containerizationCloud Run - the rise of serverless and containerization
Cloud Run - the rise of serverless and containerization
Márton Kodok
 
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
tdc-globalcode
 
Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3
Velocidex Enterprises
 

Similar to Deep-dive into cloud-native AEM deployments based on Kubernetes (20)

Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
 
CD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas KolenkinCD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas Kolenkin
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
 
A hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stackA hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stack
 
Docker, cornerstone of an hybrid cloud?
Docker, cornerstone of an hybrid cloud?Docker, cornerstone of an hybrid cloud?
Docker, cornerstone of an hybrid cloud?
 
Experiences with AWS immutable deploys and job processing
Experiences with AWS immutable deploys and job processingExperiences with AWS immutable deploys and job processing
Experiences with AWS immutable deploys and job processing
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloud
 
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e JavaCome costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
 
IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017
 
Api Versioning with Docker and Nginx
Api Versioning with Docker and NginxApi Versioning with Docker and Nginx
Api Versioning with Docker and Nginx
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned
 
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]
 
20220406 - SDAN_Presentation1_SDANOverview.pdf
20220406 - SDAN_Presentation1_SDANOverview.pdf20220406 - SDAN_Presentation1_SDANOverview.pdf
20220406 - SDAN_Presentation1_SDANOverview.pdf
 
Api versioning w_docker_and_nginx
Api versioning w_docker_and_nginxApi versioning w_docker_and_nginx
Api versioning w_docker_and_nginx
 
Cloud orchestration risks
Cloud orchestration risksCloud orchestration risks
Cloud orchestration risks
 
Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...
Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...
Mythical Mysfits: Monolith to Microservice with Docker and AWS Fargate (CON21...
 
Cloud Run - the rise of serverless and containerization
Cloud Run - the rise of serverless and containerizationCloud Run - the rise of serverless and containerization
Cloud Run - the rise of serverless and containerization
 
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
 
Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3
 

More from Tomasz Rękawek

Radio ad blocker
Radio ad blockerRadio ad blocker
Radio ad blocker
Tomasz Rękawek
 
Emulating Game Boy in Java
Emulating Game Boy in JavaEmulating Game Boy in Java
Emulating Game Boy in Java
Tomasz Rękawek
 
Zero downtime deployments for the Sling-based apps using Docker
Zero downtime deployments for the Sling-based apps using DockerZero downtime deployments for the Sling-based apps using Docker
Zero downtime deployments for the Sling-based apps using Docker
Tomasz Rękawek
 
CRX2Oak - all the secrets of repository migration
CRX2Oak - all the secrets of repository migrationCRX2Oak - all the secrets of repository migration
CRX2Oak - all the secrets of repository migration
Tomasz Rękawek
 
SlingQuery
SlingQuerySlingQuery
SlingQuery
Tomasz Rękawek
 
Code metrics
Code metricsCode metrics
Code metrics
Tomasz Rękawek
 
Inter-Sling communication with message queue
Inter-Sling communication with message queueInter-Sling communication with message queue
Inter-Sling communication with message queue
Tomasz Rękawek
 
Sling Dynamic Include
Sling Dynamic IncludeSling Dynamic Include
Sling Dynamic Include
Tomasz Rękawek
 
Shooting rabbits with sling
Shooting rabbits with slingShooting rabbits with sling
Shooting rabbits with sling
Tomasz Rękawek
 

More from Tomasz Rękawek (9)

Radio ad blocker
Radio ad blockerRadio ad blocker
Radio ad blocker
 
Emulating Game Boy in Java
Emulating Game Boy in JavaEmulating Game Boy in Java
Emulating Game Boy in Java
 
Zero downtime deployments for the Sling-based apps using Docker
Zero downtime deployments for the Sling-based apps using DockerZero downtime deployments for the Sling-based apps using Docker
Zero downtime deployments for the Sling-based apps using Docker
 
CRX2Oak - all the secrets of repository migration
CRX2Oak - all the secrets of repository migrationCRX2Oak - all the secrets of repository migration
CRX2Oak - all the secrets of repository migration
 
SlingQuery
SlingQuerySlingQuery
SlingQuery
 
Code metrics
Code metricsCode metrics
Code metrics
 
Inter-Sling communication with message queue
Inter-Sling communication with message queueInter-Sling communication with message queue
Inter-Sling communication with message queue
 
Sling Dynamic Include
Sling Dynamic IncludeSling Dynamic Include
Sling Dynamic Include
 
Shooting rabbits with sling
Shooting rabbits with slingShooting rabbits with sling
Shooting rabbits with sling
 

Recently uploaded

APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 

Recently uploaded (20)

APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 

Deep-dive into cloud-native AEM deployments based on Kubernetes

  • 1. APACHE SLING&FRIENDSTECHMEETUP 2- 4SEPTEMBER 2019 Deep-diveinto cloud-native AEM deployments based on Kubernetes Tomek Rękawek, Adobe
  • 5. Cloud:why? 5  RunningAEM at scale  Hassle-freedeployments  The cloud provider (AWS, Azure) should worry about infrastructure
  • 6. Agenda 6  Jobs  Content migration  New indexes  QA  Docker&Kubernetesintroduction  Architectureoverview  Publishpersistence  Cloud Segment Store  Golden publish  Compaction  Sidecarservices
  • 9. DockerizedAEM 9  AEM in Docker image  Composite Node Store  /apps& /libs storedin thecontainer  Actualcontentlives outside,in the VOLUMEorMongoDB  OSGi Feature Model  DefinesAEMandcustomerapplication  Featurelauncherstartsit inside container  Covered in Karl& David’spresentation  SeeadaptTo() 2017 talk for moredetails
  • 10. Mini intro toKubernetes 10  Launches Docker containers without worrying about the underlying VMs  Dictionary  Pod–a groupofcontainersstartingtogetheron asingle machine  Service –internalloadbalancer,exposinganumberofpodreplicas underasingle address  Ingress– exposesa service underanpublic httpaddress  Everyentity is represented by a YAML object in K8s API server  TheYAML is the desired state, K8s knows how to get there
  • 11. DeploymentswithHelm 11  Helm – K8s apps management  Chart – a bunch of K8s YAML descriptors, with a simple templating  Whole AEMdeployment canbe installed/upgraded with a single command Image:https://helm.sh
  • 15. Problemdefinition 15  Author persistence is easy-ish with MongoDB  Publish is harder –local SegmentMK, no clustering  Thepublish farm is kept up-to-date with replication  However:  weneed toprovidethenew publishinstanceswitha segment store,  copyit fromanotherinstance.  Problems:  copyingfiles betweenpodsis hardandhacky,  whatif there’snopublishto copyfrom?
  • 16. Cloud SegmentStore 16  A new plugin for the Segment Node Store  Nodes are stored in a cloud storage service  No tar files, raw segments grouped in dirs  Can be used in RW or RO modes
  • 17. Goldenpublish 17  A designated publish instance  Not connectedto LB  It maintainsa “golden copy” of the segmentstore  New publish just clone it
  • 18. Problem:duplicatedbinaries andstartuptime 18 Golden publish Segment 1 Segment 2 Segment 4 Segment 3 Segment x Publish 1 Segment 1 Segment 2 Segment 4 Segment 3 Segment y Publish 2 Segment 1 Segment 2 Segment 4 Segment 3 Segment z Publish 3 (starting) Segment 1 Segment 2 Segment 3 Segment 4  Multiple copies of the same segments 1-4 ($$$)  Cloning a bucket takes time during the publish start ( 🕑🕑🕑)
  • 22. Out-of-bandpublish update 22  This pattern willbe usefulin many cases  We may clone thepublish repository, modify it and re-deploy instanceson top of it  Persisted message queuewill apply missingchanges
  • 24. Sidecar approach 24  A single pod can run many containers, sharing their volumes and localhost interface  We can use them for the auxiliaryservices (sidecars):  Dispatcher in the publish pod  Upload logs to Splunk  Warmup service
  • 27. Kubernetesjob 27  Starts a pod  Meantto perform a specific task and finish  Unlikethe deployment, which run indefinitely  Willbe restarted if fails  Jobs provides a way to interactwiththe deployed AEM
  • 29. Contentmigration 29  How to migrate old content to K8s?  Access problem  old AEM envs shouldn’t have access to the K8s (encapsulation)  K8s shouldn’t be able to access oldAEMs (they can be installed anywhere)  Solution:demilitarized zone
  • 30. 2-phasemigration 30  Phase 1  Themigrator tool (crx2oak-like jar) is used to export old AEM content into a cloud storage service  Phase 2  A Kubernetes job is used to apply the migrated content on the cloud instances
  • 32. Addingnew index 32  Indexesaretricky  /oak:index is a part of the mutable content  But indexdefinitions belongs to the application  Onlyaddingnew indexesis supported  Whena new indexis addedin /oak:index,it’ll haveanextra useIfExistspropertyreferencing immutable part/apps  This bounds the index definition tothe application version andDocker image  This /appspathhaveto beaddedas well • /oak:index/my-new-index • useIfExists: /apps/indexes@v3 • /apps/indexes • v3: true Mutable part Immutable part
  • 33. Mutablecontent:addingnew index 33  Indexingjob should be runbefore the actual app deployment  Thejob will: 1. Look forthe new index defs in /oak:index 2. Perform out of band indexing ofthe content 3. Save the new indexing content tothe production repository  TheuseIfExists will makesure that the newindexis ignored, untilthe newimageis installed  When the new image is deployed, the /apps part will be updated and the new index will beused
  • 35. Relatedtopics 35  Feature model usage in Docker (covered in David’s and Karl’stalk)  Replication (covered in Timothee’s talk)  Monitoring with Prometheus and Grafana  CI/CD pipeline  Network policies  …

Editor's Notes

  1. Hello! My name is Tomek Rękawek, I work for Adobe. In this presentation I‘ll tell you abou the cloud setup for AEM that we‘re workin on. I won‘t be able to cover any dates, licensing or prices, but I‘ll show as many technical details as possible, so I hope you‘ll enjoy it.