SlideShare a Scribd company logo
Marco Berube,
Erik Nelson
Rehosting Apps Between k8s
Clusters And Automating
Deployment Using Crane
1
2
Accelerate your journey to Kubernetes
with the Konveyor Community
A community of people passionate about
helping others modernize and migrate
their applications to the hybrid cloud by
building tools and best practices on
how to break down monoliths, adopt
containers, and embrace Kubernetes.
www.konveyor.io
Watch The Presentation
https://youtu.be/s-0dXfjfPkA
4
Agenda
● What is Crane?
● Crane use-cases
● Introduction to Crane commands
● Demo
5
Quick update on Crane
Crane is a project in the Konveyor community to migrate
applications from kubernetes to kubernetes/OpenShift.
MTC 1.x is not Crane. MTC = OCP to OCP migration
Crane doesn't have a downstream name yet. Expected release
around ~spring 2022. Will come as command line power tools +
OpenShift "easy" migration button.
6
1. I would like developers to migrate their own applications between clusters
(without admin permissions)
1. I would like to provision my application from pipeline, but migrate my application state
(PVs, secrets, …)
1. I would like to use this migration opportunity to improve my current situation
(leverage pipeline provisioning, transform my app to better use latest kubernetes features, etc.)
1. MTC 1.0 is very easy to use, but can be difficult to customize and troubleshoot.
Lessons learned from MTC 1.x
and most requested features
7
Why a migration tool?
Could you just re-provision your applications on a
new cluster from pipeline?
1. My application can be re-provision from pipeline, but I want to migrate my application state.
1. I cannot re-provision my application from pipeline, but I'd like to take this migration
opportunity to adopt some new best practices.
1. We don't have CI/CD automation for all our apps, some have just been provisioned manually
for all kinds of reasons.
OpenShift cluster
8
Many customers only have a small fraction of their applications
leveraging continuous delivery and automation.
Some customers now have hundreds or even thousands of apps that
have been manually deployed. In addition, some of the kubernetes
manifest used to provisioned those apps had hard-coded values for
a specific cluster, or expect specific environment conditions to run.
For these reasons, those apps become "pets" and customers are
afraid of any change that could impact them.
Why migrating apps is hard for
many customers?
Automated deployment
Manually deployed
OCP3 cluster
9
Current OCP3 to 4 migration scenarios
Automated deployment
Manually deployed
OCP4 cluster
Automated deployment
Manually deployed
Scenario 1 - Migration from pipeline
(automated deployment)
Scenario 2 - Migration toolkit (MTC/Crane)
Scenario 2 requires a significant effort, but it works.
MTC solves a short-term OCP4 upgrade problem by
migrating applications as-is to OCP4 (backup/restore)
and solve some environment transformation issues
with scripts (like Migration hooks).
That said, at the end of this migration, you have not
improved your situation. Even with all this migration
effort, you still have the same ratio of applications
without automated deployments, locked into a brand
new OCP4 cluster.
OCP3 cluster
10
Migrating manually deployed apps at scale to a
continuous deployment model?
Automated deployment
Manually deployed
OCP4 cluster
Automated
deployment
Scenario 1 - Migration from pipeline
(automated deployment)
Scenario 3 - Automated creation of pipeline
We know automated deployments is the
right long term solution. But if you have
hundreds or thousands of apps, going back
to manually generate this automation would
be unrealistic.
We believe this has be simplified and
automated when possible.
11
Migration steps
Scenario #1 - Simple migration from unknown deployment
Source cluster
MyApplication
Kubernetes
objects
Kubernetes
objects
Kubernetes
objects
PV1
Internal Images
PV2
Destination cluster
MyApplication
Kubernetes
objects
Kubernetes
objects
Kubernetes
objects
PV1
Internal Images
PV2
Crane
State migration
Crane Image migration
Crane reconstruct manifest and import
12
Migration steps
Scenario #2 - known deployment
Source cluster
MyApplication
Kubernetes
objects
Kubernetes
objects
Kubernetes
objects
PV1
Internal Images
PV2
Destination cluster
MyApplication
Kubernetes
objects
Kubernetes
objects
Kubernetes
objects
PV1
Internal Images
PV2
Crane
State migration
>_
CODE
[>>>]
CI
[###]
CD
[yml]
MANIFEST
*
IMAGE
GIT
13
Migration Scenario #3
automated creation of pipeline
Source cluster
MyApplication
Kubernetes
objects
Kubernetes
objects
Kubernetes
objects
PV1
Internal Images
PV2
Destination cluster
MyApplication
Kubernetes
objects
Kubernetes
objects
Kubernetes
objects
PV1
Internal Images
PV2
[>>>]
CI
[###]
CD
*
IMAGE
Crane
State migration
Crane Image migration
>_
CODE
[yml]
MANIFEST
Crane reconstruct manifest
GIT
In this scenario, Crane would reconstruct manifests from the existing application and provide transform tools to help a developper quickly generate non-
environment specific automation. Those new manifests are pushed to GIT and a new pipeline gets generated to support this deployment. PVs and Images can
also optionally be migrated during the pipeline execution.
Crane creates a
new pipeline
% crane export ...
% crane transform …
% crane apply ...
% git add | commit | push
14
Reconstructing manifest
export, transform and push example
MyApplication
Kubernetes
objects
Kubernetes
objects
Kubernetes
objects
[###]
CD
[yml]
MANIFEST
GIT
Migrating state
direct migration example
Source cluster
PV1 PV2
Destination cluster
PV1 PV2
% crane transfer-pvc ...
16
Demo
Join the Konveyor Community
www.konveyor.io

More Related Content

PPT
Angular.ppt
PDF
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
PDF
Learned from KIND
PPTX
Helm.pptx
PPTX
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
PDF
Kubernetes Application Deployment with Helm - A beginner Guide!
PPTX
Deploying Azure DevOps using Terraform
PDF
Usando React Native & Multi Módulos para Escalar App Creditas
Angular.ppt
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
Learned from KIND
Helm.pptx
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
Kubernetes Application Deployment with Helm - A beginner Guide!
Deploying Azure DevOps using Terraform
Usando React Native & Multi Módulos para Escalar App Creditas

What's hot (20)

PPTX
Kubernetes PPT.pptx
PPTX
Kubernetes CI/CD with Helm
PDF
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
PDF
How Kubernetes helps Devops
PDF
Deploy Application on Kubernetes
PDF
Helm - Application deployment management for Kubernetes
PPTX
Introduction to angular with a simple but complete project
PPTX
Migrating Java JBoss EAP Applications to Kubernetes With S2I
PDF
Introduction to Docker
PDF
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
PDF
Introduction to Kubernetes Workshop
PPTX
Kubernetes Introduction
PDF
Docker 101: An Introduction
PPTX
Kubernetes 101 for Beginners
PDF
ArgoCD Meetup PPT final.pdf
PDF
The Need of Cloud-Native Application
PDF
Deploy 22 microservices from scratch in 30 mins with GitOps
PPTX
VMware Tanzu Kubernetes Connect
PDF
Kubernetes - introduction
PPTX
DevOps with Kubernetes
Kubernetes PPT.pptx
Kubernetes CI/CD with Helm
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
How Kubernetes helps Devops
Deploy Application on Kubernetes
Helm - Application deployment management for Kubernetes
Introduction to angular with a simple but complete project
Migrating Java JBoss EAP Applications to Kubernetes With S2I
Introduction to Docker
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
Introduction to Kubernetes Workshop
Kubernetes Introduction
Docker 101: An Introduction
Kubernetes 101 for Beginners
ArgoCD Meetup PPT final.pdf
The Need of Cloud-Native Application
Deploy 22 microservices from scratch in 30 mins with GitOps
VMware Tanzu Kubernetes Connect
Kubernetes - introduction
DevOps with Kubernetes
Ad

Similar to Rehosting apps between k8s clusters and automating deployment using crane (20)

PDF
Rehosting apps between k8s clusters and automating deployment using crane c...
PPTX
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
PDF
Azure Day Rome 2019 Reloaded - Strangle(r pattern) your legacy application ru...
PPTX
Tackle-test: An Automatic Unit-level Test Case Generator
PPTX
Observability and Orchestration of your GitOps Deployments with Keptn
PDF
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
PPTX
Application cloudification with liberty and urban code deploy - UCD
PDF
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
PPTX
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
PDF
IRJET- Implementation of Cloud Energy Saving System using Virtual Machine...
PPTX
Jenkins_K8s (2).pptx
PDF
Kubernetes deep dive - - Huawei 2015-10
PDF
Introduction of Kubernetes - Trang Nguyen
PDF
Driving Digital Transformation With Containers And Kubernetes Complete Deck
PDF
Successful K8S Platforms in Airgapped Environments
PDF
kubernetesNotes_ggggggbggggggggggggggg.pdf
PPTX
kubernetes_Ajhhhhhhhghhbggggygghghhhghhh.pptx
PDF
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
PDF
Gentle introduction to containers and kubernetes
PPTX
TRAINING_ABOUT_KUBERNETES_Nguyen_Si_Nhan.pptx
Rehosting apps between k8s clusters and automating deployment using crane c...
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Azure Day Rome 2019 Reloaded - Strangle(r pattern) your legacy application ru...
Tackle-test: An Automatic Unit-level Test Case Generator
Observability and Orchestration of your GitOps Deployments with Keptn
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
Application cloudification with liberty and urban code deploy - UCD
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
IRJET- Implementation of Cloud Energy Saving System using Virtual Machine...
Jenkins_K8s (2).pptx
Kubernetes deep dive - - Huawei 2015-10
Introduction of Kubernetes - Trang Nguyen
Driving Digital Transformation With Containers And Kubernetes Complete Deck
Successful K8S Platforms in Airgapped Environments
kubernetesNotes_ggggggbggggggggggggggg.pdf
kubernetes_Ajhhhhhhhghhbggggygghghhhghhh.pptx
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Gentle introduction to containers and kubernetes
TRAINING_ABOUT_KUBERNETES_Nguyen_Si_Nhan.pptx
Ad

More from Konveyor Community (16)

PDF
State of application modernization 2024 report
PPTX
Tackle 2: New capabilities for modernizing applications to leverage Kubernetes
PPTX
State of application modernization 2022
PPTX
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
PPTX
Migrating from oracle soa suite to microservices on kubernetes
PPTX
How to Modernize Virtualized Workloads
PPTX
Tackle Containerization Advisor (TCA) for Legacy Applications
PPTX
Cost Control and Rapid Innovation in Kubernetes with OpenRewrite
PPTX
Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...
PPTX
Data-centric Application Analysis with Open-source Tool Tackle-DiVA
PPTX
Automate Workflows With The Open-source Cloud-native Tool Boomerang Flow
PPTX
[Konveyor] adding security to dev ops for your kubernetes native applications
PPTX
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
PPTX
[Konveyor] roles & processes that make application modernization projects...
PPTX
Modern Security Pain Points with Application Modernization - With Jermaine Ed...
PPTX
[Konveyor] address technical risks when implementing workload modernization u...
State of application modernization 2024 report
Tackle 2: New capabilities for modernizing applications to leverage Kubernetes
State of application modernization 2022
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Migrating from oracle soa suite to microservices on kubernetes
How to Modernize Virtualized Workloads
Tackle Containerization Advisor (TCA) for Legacy Applications
Cost Control and Rapid Innovation in Kubernetes with OpenRewrite
Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...
Data-centric Application Analysis with Open-source Tool Tackle-DiVA
Automate Workflows With The Open-source Cloud-native Tool Boomerang Flow
[Konveyor] adding security to dev ops for your kubernetes native applications
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
[Konveyor] roles & processes that make application modernization projects...
Modern Security Pain Points with Application Modernization - With Jermaine Ed...
[Konveyor] address technical risks when implementing workload modernization u...

Recently uploaded (20)

PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Cloud computing and distributed systems.
PDF
Modernizing your data center with Dell and AMD
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
KodekX | Application Modernization Development
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPT
Teaching material agriculture food technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Big Data Technologies - Introduction.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
cuic standard and advanced reporting.pdf
PPTX
A Presentation on Artificial Intelligence
Encapsulation_ Review paper, used for researhc scholars
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Cloud computing and distributed systems.
Modernizing your data center with Dell and AMD
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Review of recent advances in non-invasive hemoglobin estimation
KodekX | Application Modernization Development
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
20250228 LYD VKU AI Blended-Learning.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Teaching material agriculture food technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Big Data Technologies - Introduction.pptx
The AUB Centre for AI in Media Proposal.docx
The Rise and Fall of 3GPP – Time for a Sabbatical?
cuic standard and advanced reporting.pdf
A Presentation on Artificial Intelligence

Rehosting apps between k8s clusters and automating deployment using crane

  • 1. Marco Berube, Erik Nelson Rehosting Apps Between k8s Clusters And Automating Deployment Using Crane 1
  • 2. 2 Accelerate your journey to Kubernetes with the Konveyor Community A community of people passionate about helping others modernize and migrate their applications to the hybrid cloud by building tools and best practices on how to break down monoliths, adopt containers, and embrace Kubernetes. www.konveyor.io
  • 4. 4 Agenda ● What is Crane? ● Crane use-cases ● Introduction to Crane commands ● Demo
  • 5. 5 Quick update on Crane Crane is a project in the Konveyor community to migrate applications from kubernetes to kubernetes/OpenShift. MTC 1.x is not Crane. MTC = OCP to OCP migration Crane doesn't have a downstream name yet. Expected release around ~spring 2022. Will come as command line power tools + OpenShift "easy" migration button.
  • 6. 6 1. I would like developers to migrate their own applications between clusters (without admin permissions) 1. I would like to provision my application from pipeline, but migrate my application state (PVs, secrets, …) 1. I would like to use this migration opportunity to improve my current situation (leverage pipeline provisioning, transform my app to better use latest kubernetes features, etc.) 1. MTC 1.0 is very easy to use, but can be difficult to customize and troubleshoot. Lessons learned from MTC 1.x and most requested features
  • 7. 7 Why a migration tool? Could you just re-provision your applications on a new cluster from pipeline? 1. My application can be re-provision from pipeline, but I want to migrate my application state. 1. I cannot re-provision my application from pipeline, but I'd like to take this migration opportunity to adopt some new best practices. 1. We don't have CI/CD automation for all our apps, some have just been provisioned manually for all kinds of reasons.
  • 8. OpenShift cluster 8 Many customers only have a small fraction of their applications leveraging continuous delivery and automation. Some customers now have hundreds or even thousands of apps that have been manually deployed. In addition, some of the kubernetes manifest used to provisioned those apps had hard-coded values for a specific cluster, or expect specific environment conditions to run. For these reasons, those apps become "pets" and customers are afraid of any change that could impact them. Why migrating apps is hard for many customers? Automated deployment Manually deployed
  • 9. OCP3 cluster 9 Current OCP3 to 4 migration scenarios Automated deployment Manually deployed OCP4 cluster Automated deployment Manually deployed Scenario 1 - Migration from pipeline (automated deployment) Scenario 2 - Migration toolkit (MTC/Crane) Scenario 2 requires a significant effort, but it works. MTC solves a short-term OCP4 upgrade problem by migrating applications as-is to OCP4 (backup/restore) and solve some environment transformation issues with scripts (like Migration hooks). That said, at the end of this migration, you have not improved your situation. Even with all this migration effort, you still have the same ratio of applications without automated deployments, locked into a brand new OCP4 cluster.
  • 10. OCP3 cluster 10 Migrating manually deployed apps at scale to a continuous deployment model? Automated deployment Manually deployed OCP4 cluster Automated deployment Scenario 1 - Migration from pipeline (automated deployment) Scenario 3 - Automated creation of pipeline We know automated deployments is the right long term solution. But if you have hundreds or thousands of apps, going back to manually generate this automation would be unrealistic. We believe this has be simplified and automated when possible.
  • 11. 11 Migration steps Scenario #1 - Simple migration from unknown deployment Source cluster MyApplication Kubernetes objects Kubernetes objects Kubernetes objects PV1 Internal Images PV2 Destination cluster MyApplication Kubernetes objects Kubernetes objects Kubernetes objects PV1 Internal Images PV2 Crane State migration Crane Image migration Crane reconstruct manifest and import
  • 12. 12 Migration steps Scenario #2 - known deployment Source cluster MyApplication Kubernetes objects Kubernetes objects Kubernetes objects PV1 Internal Images PV2 Destination cluster MyApplication Kubernetes objects Kubernetes objects Kubernetes objects PV1 Internal Images PV2 Crane State migration >_ CODE [>>>] CI [###] CD [yml] MANIFEST * IMAGE GIT
  • 13. 13 Migration Scenario #3 automated creation of pipeline Source cluster MyApplication Kubernetes objects Kubernetes objects Kubernetes objects PV1 Internal Images PV2 Destination cluster MyApplication Kubernetes objects Kubernetes objects Kubernetes objects PV1 Internal Images PV2 [>>>] CI [###] CD * IMAGE Crane State migration Crane Image migration >_ CODE [yml] MANIFEST Crane reconstruct manifest GIT In this scenario, Crane would reconstruct manifests from the existing application and provide transform tools to help a developper quickly generate non- environment specific automation. Those new manifests are pushed to GIT and a new pipeline gets generated to support this deployment. PVs and Images can also optionally be migrated during the pipeline execution. Crane creates a new pipeline
  • 14. % crane export ... % crane transform … % crane apply ... % git add | commit | push 14 Reconstructing manifest export, transform and push example MyApplication Kubernetes objects Kubernetes objects Kubernetes objects [###] CD [yml] MANIFEST GIT
  • 15. Migrating state direct migration example Source cluster PV1 PV2 Destination cluster PV1 PV2 % crane transfer-pvc ...
  • 17. Join the Konveyor Community www.konveyor.io