SlideShare a Scribd company logo
1 of 121
Download to read offline
Confidential │ ©2021 VMware, Inc.
Leveraging Standard
Buildpacks to Migrate
Not-So-Standard Apps
SpringOne 2021
Matthew Campbell
& Brandon Blincoe
VMware App Navigator Services
Confidential │ ©2021 VMware, Inc. 2
This presentation may contain product features or functionality that are currently under
development.
This overview of new technology represents no commitment from VMware to deliver these
features in any generally available product.
Features are subject to change, and must not be included in contracts, purchase orders, or sales
agreements of any kind.
Technical feasibility and market demand will affect final delivery.
Pricing and packaging for any new features/functionality/technology discussed or presented, have
not been determined.
The information in this presentation is for informational purposes only and may not be incorporated into any contract. There is no
commitment or obligation to deliver any items presented herein.
Disclaimer
Confidential │ ©2021 VMware, Inc. 3
Abstract
Heritage apps come in all shapes and sizes. The wheel of technology rolls on and many of us find
ourselves responsible for valuable software built with technologies that make us uncertain how to
leverage modern cloud platforms.
We’ve been helping customers tackle their not-so-standard apps for years, and buildpacks have
become an indispensable tool in our toolbelt. The big question is: what do you do when you don’t have
a buildpack that fits your app? We’ve found there’s almost always a standard buildpack that applies with
a little work. In this talk, we’ll run through a few apps from our history, talk through our process of
experimentation, and figure out how to get them running on Cloud Foundry together.
This talk is for the app practitioners responsible for moving to the cloud but aren’t sure their app will fit.
You’ll be surprised by the ways you can leverage just a little refactoring and the magic of buildpacks to
help you get to the cloud in a standard way without a rewrite.
Confidential │ ©2021 VMware, Inc. 4
Who We Are
Application Modernization Practitioners
Matthew Campbell
Solutions Architect, VMware App Modernization
Brandon Blincoe
Program Manager, VMware App Modernization
LinkedIn: mtthwcmpbll
Twitter: @mtthwcmpbll
Web: snowfort.com
LinkedIn: brandonblincoe
Twitter: @brandonblincoe
Web: bblincoe.com
Confidential │ ©2021 VMware, Inc. 5
Agenda Why Talk About This Now?
Navigating Our Way on the Modernization Journey
Let’s Walk Through An Example
Our Replatforming Journal
When Should You Replatform?
Decide Based on Business Needs
Q&A
A Breakout Session
Join the Slack channel!
#session-migrating-not-so-stan
dard-apps-with-buildpacks
Confidential │ ©2021 VMware, Inc. 6
Why Talk About This Now?
Where we’re all at on the modernization journey
Confidential │ ©2021 VMware, Inc. 7
Many of us find ourselves
responsible for valuable
software built with technologies
that make us uncertain how to
leverage modern cloud
platforms.
Confidential │ ©2021 VMware, Inc. 8
The Last Hundred Yards
Our work with customers involves being strategic about portfolios big and small, modernizing big
systems, replatforming old and new software, and deciding when to invest in writing new code.
App modernization is a journey, and we’re seeing more and more that customers are already well
on their way.
You’ve done easy stuff.
You’ve done some big scary stuff.
What about weird stuff?
Ooooo, a cloud haiku!
Confidential │ ©2021 VMware, Inc. 9
Buildpacks are Powerful Tools For the Whole Organization
● They give you an opinionated target to aim for
● They take a little (or a lot) of work off your teams
● They provide a common baseline of deployment for your organization
● They reduce the number of teams or people needed to patch security vulnerabilities
● They’re vendor agnostic a growing community of support
Confidential │ ©2021 VMware, Inc. 10
Let’s Walk Through An Example
Our Replatforming Journal
Confidential │ ©2021 VMware, Inc. 11
➜ open http://apptx.wtf
Today, we have a circa-2000’s Perl
web app running on Apache httpd
inside of a Virtual Machine...argh!
We want this site to get the
benefit of running in our Cloud
Foundry platform, but we can’t
afford to rewrite it today. Let’s
get started!
Confidential │ ©2021 VMware, Inc. 12
A Map of the Production Deployment
This is where our application
lives (we think). It’s all of the
stuff that makes our site
different than some other
rehash-based site.
Confidential │ ©2021 VMware, Inc. 13
➜ ls
Let’s take a look around our
development machine...
Confidential │ ©2021 VMware, Inc. 14
➜ cf target
Am I logged into the Cloud
Foundry?
Confidential │ ©2021 VMware, Inc. 15
➜ cf buildpacks
What buildpacks are available?
Confidential │ ©2021 VMware, Inc. 16
Can I just cf push it?
Confidential │ ©2021 VMware, Inc. 17
➜ cf push rehash
Just as we expected, there’s no
buildpack that knows how to
detect this random collection of
web server configuration.
Confidential │ ©2021 VMware, Inc. 18
➜ are there custom buildpacks out there?
This one looks promising?
And old.
Confidential │ ©2021 VMware, Inc. 19
➜ cf push rehash -b https://github.com/...
Pushing with this buildpack
fails...
Confidential │ ©2021 VMware, Inc. 20
➜ cf logs rehash
It looks like the buildpack is
expecting some weird stuff on
the filesystem.
I’m not going to chase this too
far, I’m mostly just testing the
water for an out-of-the-box
solution.
Confidential │ ©2021 VMware, Inc. 21
Is there a opinionated
buildpack that builds
the environment we need?
Confidential │ ©2021 VMware, Inc. 22
What do we mean by an opinionated buildpack?
Confidential │ ©2021 VMware, Inc. 23
What do we mean by an opinionated buildpack?
Confidential │ ©2021 VMware, Inc. 24
What do we mean by an opinionated buildpack?
Confidential │ ©2021 VMware, Inc. 25
What do we mean by an opinionated buildpack?
Confidential │ ©2021 VMware, Inc. 26
➜ vi manifest.yml
Let’s add the PHP buildpack to
our manifest.
Confidential │ ©2021 VMware, Inc. 27
➜ cf push
And it... starts?
Confidential │ ©2021 VMware, Inc. 28
➜ https://rehash.apps.pcfone.io/site/apptx.wtf/htdocs/about.pl
This looks like our Perl
code...not processing and
serving our webpage.
Confidential │ ©2021 VMware, Inc. 29
How do I customize the
configuration of an
opinionated buildpack?
Confidential │ ©2021 VMware, Inc. 30
➜ options.json
Let’s take a look at the Cloud
Foundry Docs...
Confidential │ ©2021 VMware, Inc. 31
➜ what are those defaults?
We need to customize these
values.
Confidential │ ©2021 VMware, Inc. 32
➜ mkdir .bp-config
Let’s build a custom
configuration.
Confidential │ ©2021 VMware, Inc. 33
➜ vim .bp-config/options.json
Let’s specify the version of
Apache httpd we use in our
production environment.
Confidential │ ©2021 VMware, Inc. 34
➜ cf push
It looks like we can’t download
and install httpd 2.2.29… it was
worth a try!
Confidential │ ©2021 VMware, Inc. 35
➜ more research
Back to the docs!
What else is available for us to
change?
Confidential │ ©2021 VMware, Inc. 36
➜ grab the defaults from the repo...
The PHP buildpack has an
opinionated configuration. Let’s
start with taking a look at the
defaults.
Confidential │ ©2021 VMware, Inc. 37
➜ vim .bp-config/httpd/httpd.conf
What is the default Apache
httpd configuration provided by
the buildpack?
Looks like the configuration is
modularized...
Confidential │ ©2021 VMware, Inc. 38
➜ vim .bp-config/httpd/extra/httpd-modules.conf
Is mod_perl available to us
out-of-the-box?
Confidential │ ©2021 VMware, Inc. 39
➜ cf push
If we get rid of the
HTTPD_VERSION, we can push
with these default files and get
the same result as the
buildpack.
Confidential │ ©2021 VMware, Inc. 40
➜ vim .bp-config/httpd/httpd.conf
Let’s try enabling mod_perl and
see what happens
Confidential │ ©2021 VMware, Inc. 41
➜ cf push
Confidential │ ©2021 VMware, Inc. 42
➜ cf logs rehash
Looks like the modules are not
available to us.
Confidential │ ©2021 VMware, Inc. 43
How does this application
depend on its current
environment?
Confidential │ ©2021 VMware, Inc. 44
Where does mod_perl come from?
mod_perl is usually either
installed through the OS
package manager...
… or built from source
on that machine for that
machine.
Confidential │ ©2021 VMware, Inc. 45
➜ apt-cf-packager
Confidential │ ©2021 VMware, Inc. 46
➜ vim manifest.yml
We’ll make sure we’re targeting
our intended stack here...
...and set FLATTEN to false to
make sure we get all of the files
related to Perl and Apache.
Confidential │ ©2021 VMware, Inc. 47
➜ vim public/apt.yml
All we need are these two
packages to install mod_perl
and mod_apreq2
These are the names we’d use
with sudo apt-get
install
Confidential │ ©2021 VMware, Inc. 48
➜ cf push
Pushing it starts an app, and
going to this route in our
browser will let us download our
artifacts.
Confidential │ ©2021 VMware, Inc. 49
➜ download the packages
Time to download locally and
stick it into our app!
Confidential │ ©2021 VMware, Inc. 50
➜ let’s take a look at that download...
This directory contains our
mod_perl.so and
mod_apreq2.so for Apache to
load.
Here’s the supporting Perl 5.26
modules.
Confidential │ ©2021 VMware, Inc. 51
➜ cp -R lib lib-cflinuxfs3
Confidential │ ©2021 VMware, Inc. 52
➜ vim .bp-config/httpd/httpd.conf
Load our modules from an
absolute path from the pushed
directory.
Confidential │ ©2021 VMware, Inc. 53
➜ cf push
Confidential │ ©2021 VMware, Inc. 54
➜ cf logs rehash
Looks like the directory doesn’t
exist where we expected it to
be.
Confidential │ ©2021 VMware, Inc. 55
➜ cf ssh rehash
Confidential │ ©2021 VMware, Inc. 56
➜ ls ~
Confidential │ ©2021 VMware, Inc. 57
➜ ls app
This doesn’t look like the
directory we pushed...
Confidential │ ©2021 VMware, Inc. 58
➜ ls app/htdocs
This is what we would’ve
expected to be at
/home/vcap/app
Confidential │ ©2021 VMware, Inc. 59
➜ back to the php-buildpack docs!
Can we specify a different path?
Confidential │ ©2021 VMware, Inc. 60
➜ vim .bp-config/options.json
Let’s specify the specific htdocs
directory for our site within our
codebase.
Confidential │ ©2021 VMware, Inc. 61
➜ cf push
Confidential │ ©2021 VMware, Inc. 62
➜ cf ssh rehash
Much better!
Confidential │ ©2021 VMware, Inc. 63
➜ lets check the perl-status
Confidential │ ©2021 VMware, Inc. 64
➜ cf logs rehash
Looks like we can’t find Apache
modules that we need.
Confidential │ ©2021 VMware, Inc. 65
➜ vim startup.pl
Let’s create a startup script to
use libraries at specific paths.
Confidential │ ©2021 VMware, Inc. 66
➜ vim .bp-config/httpd/httpd.conf
Let’s configure our server to
load our startup script and
configure the additional
vendored module paths
Confidential │ ©2021 VMware, Inc. 67
➜ cf push
Wait...did that work?!
Confidential │ ©2021 VMware, Inc. 68
➜ open /perl-status
Now it’s time to run our
application.
We have a working Apache
server that can serve up Perl!
Confidential │ ©2021 VMware, Inc. 69
➜ vim .bp-config/httpd/httpd.conf
We can just include the app’s
configuration in our httpd.conf.
(Make sure to change any
hard-coded paths to use
$HOME or /home/vcap/app in
slash.conf and any included site
configuration files)
Confidential │ ©2021 VMware, Inc. 70
➜ cf push
Confidential │ ©2021 VMware, Inc. 71
➜ cf logs rehash
Now we’re missing
application-specific Perl
modules. We’re going to have
to go spelunking into the
production VM to figure out
where this lives.
Confidential │ ©2021 VMware, Inc. 72
Unfortunately, our app is also embedded in the environment!
This is where our application
lives (we think) so that’s what
we’re pushing
Confidential │ ©2021 VMware, Inc. 73
Unfortunately, our app is also embedded in the environment!
but it’s also over here!
Confidential │ ©2021 VMware, Inc. 74
Unfortunately, our app is also embedded in the environment!
and some over here!
Confidential │ ©2021 VMware, Inc. 75
Unfortunately, our app is also embedded in the environment!
(and probably some
in here!)
Confidential │ ©2021 VMware, Inc. 76
Unfortunately, our app is also embedded in the environment!
For now, maybe we can
use our vendoring trick
and just pull in the
application modules over
here into
lib-cflinuxfs3 ?
Confidential │ ©2021 VMware, Inc. 77
➜ cp site_perl lib-cflinuxfs3/perl5/
I wonder if this version mismatch
is going to bite us?
Confidential │ ©2021 VMware, Inc. 78
➜ cf push
Confidential │ ©2021 VMware, Inc. 79
➜ cf logs rehash
Yep! We can’t mix and match
perl modules between versions
Confidential │ ©2021 VMware, Inc. 80
Can I build my own
environment
and deploy it with the binary
buildpack?
Confidential │ ©2021 VMware, Inc. 81
Let’s move up a layer!
Instead of pushing this...
Confidential │ ©2021 VMware, Inc. 82
Let’s move up a layer!
PHP
Buildpack
Confidential │ ©2021 VMware, Inc. 83
Let’s move up a layer!
... we’ll push the
environment and the
installation.
Confidential │ ©2021 VMware, Inc. 84
Let’s move up a layer!
Binary
Buildpack
Confidential │ ©2021 VMware, Inc. 85
➜ vim manifest.yml
Let’s push the previous directory
and our entire environment.
The Binary Buildpack requires
an explicit start command.
Confidential │ ©2021 VMware, Inc. 86
➜ cf push
Confidential │ ©2021 VMware, Inc. 87
➜ cf logs rehash-binary
Oh shoot! That path looks like
the absolutely path on our
production VM!
Confidential │ ©2021 VMware, Inc. 88
➜ vim .bp-config/httpd/httpd.conf
Confidential │ ©2021 VMware, Inc. 89
➜ vim .bp-config/httpd/httpd.conf
Maybe we can just replace all
with the expected structure?
Confidential │ ©2021 VMware, Inc. 90
➜ cf push
Confidential │ ©2021 VMware, Inc. 91
➜ cf logs rehash-binary
Wait...this looks a bit better.
Loading libperl.so is a new one...
Confidential │ ©2021 VMware, Inc. 92
Where the honk is libperl.so?
A quick search shows
us it’s tucked in over
here….
It’s in our pushed files,
so why isn’t our server
seeing it then?
Confidential │ ©2021 VMware, Inc. 93
➜ vim bin/startup.sh
Let’s move to a startup script to
have more control.
Confidential │ ©2021 VMware, Inc. 94
➜ vim manifest.yml
We’ll call our startup script
instead of the hard-coded
command
Confidential │ ©2021 VMware, Inc. 95
➜ cf logs rehash-binary
It looks like we’re using the
Apache and Perl in rehash-env.
...but we’re still seeing the same
problem loading libperl.so.
Confidential │ ©2021 VMware, Inc. 96
➜ yep, we Googled it
(And we got to read through
fifteen year old forum posts)
It looks like we might have
trouble with the Apache built on
the production environment.
Confidential │ ©2021 VMware, Inc. 97
Can I rebuild my Application to
look like the final deployment
structure?
Confidential │ ©2021 VMware, Inc. 98
➜ cf logs rehash-binary
The application doesn’t look
much different, but cf push
shows a new error!
We’re missing a mysql shared
library.
Confidential │ ©2021 VMware, Inc. 99
➜ vim manifest.yml
Let’s update our manifest to
include the Apt Buildpack as
well as the Binary Buildpack.
Confidential │ ©2021 VMware, Inc. 100
➜ vim apt.yml
Confidential │ ©2021 VMware, Inc. 101
➜ cf push
Confidential │ ©2021 VMware, Inc. 102
➜ cf logs rehash-binary
We can’t connect to the
database on a local socket.
That’s how the prod VM worked,
so I think we’re in business!
Confidential │ ©2021 VMware, Inc. 103
How is this application configured
to talk to its external dependencies
(like a database)?
Confidential │ ©2021 VMware, Inc. 104
➜ vim Password.pm
This particular app builds a
custom Perl module that
embeds a “virtual user” holding
all of our configuration.
If you find this kind of
connection in code (or maybe
configuration that’s interpreted
by code), you can change it to
connect to your cloud services!
Confidential │ ©2021 VMware, Inc. 105
➜ cf create-service p.mysql db-small rehash-mysql
Confidential │ ©2021 VMware, Inc. 106
➜ vim manifest.yml
We’ll add our new service
instance to bind to our app
Confidential │ ©2021 VMware, Inc. 107
➜ cf env rehash (or via Apps Manager)
After pushing our app with the
updated manifest, we’ll get a set
of randomly generated
credentials.
We’ll grab them...
Confidential │ ©2021 VMware, Inc. 108
➜ vim Password.pm
… go back to our credential data
inside our application...
Confidential │ ©2021 VMware, Inc. 109
➜ vim Password.pm
… and we’ll just manually
hard-code this service binding’s
credentials for now.
We’ll want to pull from
VCAP_SERVICES eventually, but
this is the smallest possible test.
Confidential │ ©2021 VMware, Inc. 110
➜ cf push
Confidential │ ©2021 VMware, Inc. 111
➜ cf logs rehash-binary
Progress!
Now we’re failing because of
missing tables, which means
we’re connecting.
Confidential │ ©2021 VMware, Inc. 112
➜ one-time schema installation
The app sets up its schema with
a one-time administrative task.
We’ll run this targeting our new
database and...
...we fail because our MySQL
instance isn’t using the same
sql_mode as our production
environment.
Confidential │ ©2021 VMware, Inc. 113
➜ we have a few options...
Option 1: We can figure out
how to configure the service
instance to look more like our
production database.
Confidential │ ©2021 VMware, Inc. 114
➜ we have a few options...
Option 1: We can figure out
how to configure the service
instance to look more like our
production database.
Option 2: We can connect back
to our production database from
the cloud.
Confidential │ ©2021 VMware, Inc. 115
➜ we have a few options...
Option 1: We can figure out
how to configure the service
instance to look more like our
production database.
Option 2: We can connect back
to our production database from
the cloud.
Option 3: We can create a new
database that looks more like
our production database.
Confidential │ ©2021 VMware, Inc. 116
➜ we have a few options...
Option 1: We can figure out
how to configure the service
instance to look more like our
production database.
Option 2: We can connect back
to our production database from
the cloud.
Option 3: We can create a new
database that looks more like
our production database.
Option 4: We can refactor the
app to be able to use the
provided service instance.
Confidential │ ©2021 VMware, Inc. 117
➜ cf push
One more time...
Confidential │ ©2021 VMware, Inc. 118
➜ open https://v2.apptx.wtf
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
YES YES YES YES YES YES YES
Confidential │ ©2021 VMware, Inc. 119
When Should You Replatform?
Confidential │ ©2021 VMware, Inc.
TDA AppTx FY19Q1
App Modernization Journey
Easy Wins
Obvious
Rewrites
Big Business
Value
Non-trivial apps
not ready for
the cloud
Inherited
Heritage
Apps
You are here!
● Gain Operational Benefits Leverage your platform tooling, such
as pipelines, and governance as you move to the cloud
● Maximize Your Return 5 days of replatforming work is much
much cheaper than committing to a full rewrite today
● Continue Your Journey Replatforming is a means to an end -
it’s the beginning of a modernization journey for many apps
● Gain Fast Insights You inherited an app that you don’t know
much about yet! Use replatforming as a quick start guide.
Back Office
Support
Thank You
Confidential │ ©2021 VMware, Inc.

More Related Content

What's hot

Successful and Sustainable Business Transformation: The 4 x 3 Approach
Successful and Sustainable Business Transformation: The 4 x 3 ApproachSuccessful and Sustainable Business Transformation: The 4 x 3 Approach
Successful and Sustainable Business Transformation: The 4 x 3 ApproachVMware Tanzu
 
How VMware IT Modernized My VMware to Deliver an Exceptional Customer Experience
How VMware IT Modernized My VMware to Deliver an Exceptional Customer ExperienceHow VMware IT Modernized My VMware to Deliver an Exceptional Customer Experience
How VMware IT Modernized My VMware to Deliver an Exceptional Customer ExperienceVMware Tanzu
 
Pivotal Platform: A First Look at the October Release
Pivotal Platform: A First Look at the October ReleasePivotal Platform: A First Look at the October Release
Pivotal Platform: A First Look at the October ReleaseVMware Tanzu
 
Outcomes-Oriented Roadmap: From Vision to Reality
Outcomes-Oriented Roadmap: From Vision to RealityOutcomes-Oriented Roadmap: From Vision to Reality
Outcomes-Oriented Roadmap: From Vision to RealityVMware Tanzu
 
VMware Tanzu Application Service as an Integration Platform
VMware Tanzu Application Service as an Integration PlatformVMware Tanzu Application Service as an Integration Platform
VMware Tanzu Application Service as an Integration PlatformVMware Tanzu
 
OPS Executive insights Webinar - Tanzu Slides
OPS Executive insights Webinar - Tanzu SlidesOPS Executive insights Webinar - Tanzu Slides
OPS Executive insights Webinar - Tanzu SlidesVMware Tanzu
 
State of Steeltoe 2020
State of Steeltoe 2020State of Steeltoe 2020
State of Steeltoe 2020VMware Tanzu
 
Aaron Swain at VMware Tanzu Public Sector Connect 2021
Aaron Swain at VMware Tanzu Public Sector Connect 2021Aaron Swain at VMware Tanzu Public Sector Connect 2021
Aaron Swain at VMware Tanzu Public Sector Connect 2021VMware Tanzu
 
From Pivotal to VMware Tanzu: What you need to know
From Pivotal to VMware Tanzu: What you need to knowFrom Pivotal to VMware Tanzu: What you need to know
From Pivotal to VMware Tanzu: What you need to knowVMware Tanzu
 
July 30: How User-Centered Design Drives Impactful Products and Services
July 30: How User-Centered Design Drives Impactful Products and ServicesJuly 30: How User-Centered Design Drives Impactful Products and Services
July 30: How User-Centered Design Drives Impactful Products and ServicesVMware Tanzu
 
What Does it Take to Deliver a Solution to Process Over $2B in Loans from Inc...
What Does it Take to Deliver a Solution to Process Over $2B in Loans from Inc...What Does it Take to Deliver a Solution to Process Over $2B in Loans from Inc...
What Does it Take to Deliver a Solution to Process Over $2B in Loans from Inc...VMware Tanzu
 
Distribute Your App and Engage Your Community with a Helm Repository
Distribute Your App and Engage Your Community with a Helm RepositoryDistribute Your App and Engage Your Community with a Helm Repository
Distribute Your App and Engage Your Community with a Helm RepositoryVMware Tanzu
 
Accelerate Application Migration - August 5, 2020
Accelerate Application Migration - August 5, 2020Accelerate Application Migration - August 5, 2020
Accelerate Application Migration - August 5, 2020VMware Tanzu
 
The Path Towards Spring Boot Native Applications
The Path Towards Spring Boot Native ApplicationsThe Path Towards Spring Boot Native Applications
The Path Towards Spring Boot Native ApplicationsVMware Tanzu
 
Should That Be a Microservice ?
Should That Be a Microservice ?Should That Be a Microservice ?
Should That Be a Microservice ?Rohit Kelapure
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
 
vSphere with Kubernetes Virtual Event- June 16, 2020
vSphere with Kubernetes Virtual Event- June 16, 2020vSphere with Kubernetes Virtual Event- June 16, 2020
vSphere with Kubernetes Virtual Event- June 16, 2020VMware Tanzu
 
Enterprise Application Migration
Enterprise Application MigrationEnterprise Application Migration
Enterprise Application MigrationVMware Tanzu
 
VMware Tanzu Introduction
VMware Tanzu IntroductionVMware Tanzu Introduction
VMware Tanzu IntroductionVMware Tanzu
 

What's hot (20)

Successful and Sustainable Business Transformation: The 4 x 3 Approach
Successful and Sustainable Business Transformation: The 4 x 3 ApproachSuccessful and Sustainable Business Transformation: The 4 x 3 Approach
Successful and Sustainable Business Transformation: The 4 x 3 Approach
 
How VMware IT Modernized My VMware to Deliver an Exceptional Customer Experience
How VMware IT Modernized My VMware to Deliver an Exceptional Customer ExperienceHow VMware IT Modernized My VMware to Deliver an Exceptional Customer Experience
How VMware IT Modernized My VMware to Deliver an Exceptional Customer Experience
 
Pivotal Platform: A First Look at the October Release
Pivotal Platform: A First Look at the October ReleasePivotal Platform: A First Look at the October Release
Pivotal Platform: A First Look at the October Release
 
Outcomes-Oriented Roadmap: From Vision to Reality
Outcomes-Oriented Roadmap: From Vision to RealityOutcomes-Oriented Roadmap: From Vision to Reality
Outcomes-Oriented Roadmap: From Vision to Reality
 
VMware Tanzu Application Service as an Integration Platform
VMware Tanzu Application Service as an Integration PlatformVMware Tanzu Application Service as an Integration Platform
VMware Tanzu Application Service as an Integration Platform
 
OPS Executive insights Webinar - Tanzu Slides
OPS Executive insights Webinar - Tanzu SlidesOPS Executive insights Webinar - Tanzu Slides
OPS Executive insights Webinar - Tanzu Slides
 
State of Steeltoe 2020
State of Steeltoe 2020State of Steeltoe 2020
State of Steeltoe 2020
 
Aaron Swain at VMware Tanzu Public Sector Connect 2021
Aaron Swain at VMware Tanzu Public Sector Connect 2021Aaron Swain at VMware Tanzu Public Sector Connect 2021
Aaron Swain at VMware Tanzu Public Sector Connect 2021
 
From Pivotal to VMware Tanzu: What you need to know
From Pivotal to VMware Tanzu: What you need to knowFrom Pivotal to VMware Tanzu: What you need to know
From Pivotal to VMware Tanzu: What you need to know
 
July 30: How User-Centered Design Drives Impactful Products and Services
July 30: How User-Centered Design Drives Impactful Products and ServicesJuly 30: How User-Centered Design Drives Impactful Products and Services
July 30: How User-Centered Design Drives Impactful Products and Services
 
What Does it Take to Deliver a Solution to Process Over $2B in Loans from Inc...
What Does it Take to Deliver a Solution to Process Over $2B in Loans from Inc...What Does it Take to Deliver a Solution to Process Over $2B in Loans from Inc...
What Does it Take to Deliver a Solution to Process Over $2B in Loans from Inc...
 
Distribute Your App and Engage Your Community with a Helm Repository
Distribute Your App and Engage Your Community with a Helm RepositoryDistribute Your App and Engage Your Community with a Helm Repository
Distribute Your App and Engage Your Community with a Helm Repository
 
Accelerate Application Migration - August 5, 2020
Accelerate Application Migration - August 5, 2020Accelerate Application Migration - August 5, 2020
Accelerate Application Migration - August 5, 2020
 
The Path Towards Spring Boot Native Applications
The Path Towards Spring Boot Native ApplicationsThe Path Towards Spring Boot Native Applications
The Path Towards Spring Boot Native Applications
 
Tanzu Basic
Tanzu BasicTanzu Basic
Tanzu Basic
 
Should That Be a Microservice ?
Should That Be a Microservice ?Should That Be a Microservice ?
Should That Be a Microservice ?
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
vSphere with Kubernetes Virtual Event- June 16, 2020
vSphere with Kubernetes Virtual Event- June 16, 2020vSphere with Kubernetes Virtual Event- June 16, 2020
vSphere with Kubernetes Virtual Event- June 16, 2020
 
Enterprise Application Migration
Enterprise Application MigrationEnterprise Application Migration
Enterprise Application Migration
 
VMware Tanzu Introduction
VMware Tanzu IntroductionVMware Tanzu Introduction
VMware Tanzu Introduction
 

Similar to Leveraging Standard Buildpacks to Migrate Not-So-Standard Apps

Building Kubernetes images at scale with Tanzu Build Service
Building Kubernetes images at scale with Tanzu Build ServiceBuilding Kubernetes images at scale with Tanzu Build Service
Building Kubernetes images at scale with Tanzu Build ServiceVMware Tanzu
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookVMware Tanzu
 
CloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdfCloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdfahjensen
 
GitOps on Kubernetes with Carvel
GitOps on Kubernetes with CarvelGitOps on Kubernetes with Carvel
GitOps on Kubernetes with CarvelAlexandre Roman
 
Crafting a New Enterprise App Platform with Cloud Foundry, Kubernetes, Istio,...
Crafting a New Enterprise App Platform with Cloud Foundry, Kubernetes, Istio,...Crafting a New Enterprise App Platform with Cloud Foundry, Kubernetes, Istio,...
Crafting a New Enterprise App Platform with Cloud Foundry, Kubernetes, Istio,...VMware Tanzu
 
Application Modernization: Migrating mainframe apps to the cloud using Spring
Application Modernization: Migrating mainframe apps to the cloud using SpringApplication Modernization: Migrating mainframe apps to the cloud using Spring
Application Modernization: Migrating mainframe apps to the cloud using SpringVMware Tanzu
 
Breaking tradition the future of package management with kubernetes
Breaking tradition   the future of package management with kubernetesBreaking tradition   the future of package management with kubernetes
Breaking tradition the future of package management with kubernetesLibbySchulze
 
2023_2_CNCF_TAP_Backstage.pdf
2023_2_CNCF_TAP_Backstage.pdf2023_2_CNCF_TAP_Backstage.pdf
2023_2_CNCF_TAP_Backstage.pdfahjensen
 
Building Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonBuilding Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonLeon Stigter
 
Going Serverless Using the Spring Framework Ecosystem
Going Serverless Using the Spring Framework EcosystemGoing Serverless Using the Spring Framework Ecosystem
Going Serverless Using the Spring Framework EcosystemVMware Tanzu
 
Robert Van Voorhees at VMware Tanzu Public Sector Connect 2021
Robert Van Voorhees at VMware Tanzu Public Sector Connect 2021Robert Van Voorhees at VMware Tanzu Public Sector Connect 2021
Robert Van Voorhees at VMware Tanzu Public Sector Connect 2021VMware Tanzu
 
Vmware Tanzu Kubernetes Connect(Spanish)
Vmware Tanzu Kubernetes Connect(Spanish)Vmware Tanzu Kubernetes Connect(Spanish)
Vmware Tanzu Kubernetes Connect(Spanish)GabrielaRodriguez182401
 
The Business Benefits of GitOps
The Business Benefits of GitOpsThe Business Benefits of GitOps
The Business Benefits of GitOpsVMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptxVMware Tanzu
 
Continuous delivery with Spring Cloud Pipelines Case Study
Continuous delivery with Spring Cloud Pipelines Case StudyContinuous delivery with Spring Cloud Pipelines Case Study
Continuous delivery with Spring Cloud Pipelines Case StudyKamil Kochański
 
Enterprise DevOps Series: Using VS Code & Zowe
Enterprise DevOps Series: Using VS Code & ZoweEnterprise DevOps Series: Using VS Code & Zowe
Enterprise DevOps Series: Using VS Code & ZoweDevOps.com
 
Container Orchestration with Traefik 2.x
Container Orchestration with Traefik 2.xContainer Orchestration with Traefik 2.x
Container Orchestration with Traefik 2.xJakub Hajek
 
Spring Data JDBC: Beyond the Obvious
Spring Data JDBC: Beyond the ObviousSpring Data JDBC: Beyond the Obvious
Spring Data JDBC: Beyond the ObviousVMware Tanzu
 

Similar to Leveraging Standard Buildpacks to Migrate Not-So-Standard Apps (20)

Building Kubernetes images at scale with Tanzu Build Service
Building Kubernetes images at scale with Tanzu Build ServiceBuilding Kubernetes images at scale with Tanzu Build Service
Building Kubernetes images at scale with Tanzu Build Service
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
 
CloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdfCloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdf
 
What Is Spring?
What Is Spring?What Is Spring?
What Is Spring?
 
GitOps on Kubernetes with Carvel
GitOps on Kubernetes with CarvelGitOps on Kubernetes with Carvel
GitOps on Kubernetes with Carvel
 
Crafting a New Enterprise App Platform with Cloud Foundry, Kubernetes, Istio,...
Crafting a New Enterprise App Platform with Cloud Foundry, Kubernetes, Istio,...Crafting a New Enterprise App Platform with Cloud Foundry, Kubernetes, Istio,...
Crafting a New Enterprise App Platform with Cloud Foundry, Kubernetes, Istio,...
 
Application Modernization: Migrating mainframe apps to the cloud using Spring
Application Modernization: Migrating mainframe apps to the cloud using SpringApplication Modernization: Migrating mainframe apps to the cloud using Spring
Application Modernization: Migrating mainframe apps to the cloud using Spring
 
Breaking tradition the future of package management with kubernetes
Breaking tradition   the future of package management with kubernetesBreaking tradition   the future of package management with kubernetes
Breaking tradition the future of package management with kubernetes
 
2023_2_CNCF_TAP_Backstage.pdf
2023_2_CNCF_TAP_Backstage.pdf2023_2_CNCF_TAP_Backstage.pdf
2023_2_CNCF_TAP_Backstage.pdf
 
Building Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonBuilding Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and Tekton
 
Going Serverless Using the Spring Framework Ecosystem
Going Serverless Using the Spring Framework EcosystemGoing Serverless Using the Spring Framework Ecosystem
Going Serverless Using the Spring Framework Ecosystem
 
Robert Van Voorhees at VMware Tanzu Public Sector Connect 2021
Robert Van Voorhees at VMware Tanzu Public Sector Connect 2021Robert Van Voorhees at VMware Tanzu Public Sector Connect 2021
Robert Van Voorhees at VMware Tanzu Public Sector Connect 2021
 
Vmware Tanzu Kubernetes Connect(Spanish)
Vmware Tanzu Kubernetes Connect(Spanish)Vmware Tanzu Kubernetes Connect(Spanish)
Vmware Tanzu Kubernetes Connect(Spanish)
 
The Business Benefits of GitOps
The Business Benefits of GitOpsThe Business Benefits of GitOps
The Business Benefits of GitOps
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Continuous delivery with Spring Cloud Pipelines Case Study
Continuous delivery with Spring Cloud Pipelines Case StudyContinuous delivery with Spring Cloud Pipelines Case Study
Continuous delivery with Spring Cloud Pipelines Case Study
 
Enterprise DevOps Series: Using VS Code & Zowe
Enterprise DevOps Series: Using VS Code & ZoweEnterprise DevOps Series: Using VS Code & Zowe
Enterprise DevOps Series: Using VS Code & Zowe
 
What Is Spring?
What Is Spring?What Is Spring?
What Is Spring?
 
Container Orchestration with Traefik 2.x
Container Orchestration with Traefik 2.xContainer Orchestration with Traefik 2.x
Container Orchestration with Traefik 2.x
 
Spring Data JDBC: Beyond the Obvious
Spring Data JDBC: Beyond the ObviousSpring Data JDBC: Beyond the Obvious
Spring Data JDBC: Beyond the Obvious
 

More from VMware Tanzu

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItVMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleVMware Tanzu
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductVMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready AppsVMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023VMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchVMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishVMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - FrenchVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootVMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerVMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeVMware Tanzu
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsVMware Tanzu
 
SpringOne Tour: Doing Progressive Delivery with your Team
SpringOne Tour: Doing Progressive Delivery with your TeamSpringOne Tour: Doing Progressive Delivery with your Team
SpringOne Tour: Doing Progressive Delivery with your TeamVMware Tanzu
 

More from VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 
SpringOne Tour: Doing Progressive Delivery with your Team
SpringOne Tour: Doing Progressive Delivery with your TeamSpringOne Tour: Doing Progressive Delivery with your Team
SpringOne Tour: Doing Progressive Delivery with your Team
 

Recently uploaded

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 

Recently uploaded (20)

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 

Leveraging Standard Buildpacks to Migrate Not-So-Standard Apps

  • 1. Confidential │ ©2021 VMware, Inc. Leveraging Standard Buildpacks to Migrate Not-So-Standard Apps SpringOne 2021 Matthew Campbell & Brandon Blincoe VMware App Navigator Services
  • 2. Confidential │ ©2021 VMware, Inc. 2 This presentation may contain product features or functionality that are currently under development. This overview of new technology represents no commitment from VMware to deliver these features in any generally available product. Features are subject to change, and must not be included in contracts, purchase orders, or sales agreements of any kind. Technical feasibility and market demand will affect final delivery. Pricing and packaging for any new features/functionality/technology discussed or presented, have not been determined. The information in this presentation is for informational purposes only and may not be incorporated into any contract. There is no commitment or obligation to deliver any items presented herein. Disclaimer
  • 3. Confidential │ ©2021 VMware, Inc. 3 Abstract Heritage apps come in all shapes and sizes. The wheel of technology rolls on and many of us find ourselves responsible for valuable software built with technologies that make us uncertain how to leverage modern cloud platforms. We’ve been helping customers tackle their not-so-standard apps for years, and buildpacks have become an indispensable tool in our toolbelt. The big question is: what do you do when you don’t have a buildpack that fits your app? We’ve found there’s almost always a standard buildpack that applies with a little work. In this talk, we’ll run through a few apps from our history, talk through our process of experimentation, and figure out how to get them running on Cloud Foundry together. This talk is for the app practitioners responsible for moving to the cloud but aren’t sure their app will fit. You’ll be surprised by the ways you can leverage just a little refactoring and the magic of buildpacks to help you get to the cloud in a standard way without a rewrite.
  • 4. Confidential │ ©2021 VMware, Inc. 4 Who We Are Application Modernization Practitioners Matthew Campbell Solutions Architect, VMware App Modernization Brandon Blincoe Program Manager, VMware App Modernization LinkedIn: mtthwcmpbll Twitter: @mtthwcmpbll Web: snowfort.com LinkedIn: brandonblincoe Twitter: @brandonblincoe Web: bblincoe.com
  • 5. Confidential │ ©2021 VMware, Inc. 5 Agenda Why Talk About This Now? Navigating Our Way on the Modernization Journey Let’s Walk Through An Example Our Replatforming Journal When Should You Replatform? Decide Based on Business Needs Q&A A Breakout Session Join the Slack channel! #session-migrating-not-so-stan dard-apps-with-buildpacks
  • 6. Confidential │ ©2021 VMware, Inc. 6 Why Talk About This Now? Where we’re all at on the modernization journey
  • 7. Confidential │ ©2021 VMware, Inc. 7 Many of us find ourselves responsible for valuable software built with technologies that make us uncertain how to leverage modern cloud platforms.
  • 8. Confidential │ ©2021 VMware, Inc. 8 The Last Hundred Yards Our work with customers involves being strategic about portfolios big and small, modernizing big systems, replatforming old and new software, and deciding when to invest in writing new code. App modernization is a journey, and we’re seeing more and more that customers are already well on their way. You’ve done easy stuff. You’ve done some big scary stuff. What about weird stuff? Ooooo, a cloud haiku!
  • 9. Confidential │ ©2021 VMware, Inc. 9 Buildpacks are Powerful Tools For the Whole Organization ● They give you an opinionated target to aim for ● They take a little (or a lot) of work off your teams ● They provide a common baseline of deployment for your organization ● They reduce the number of teams or people needed to patch security vulnerabilities ● They’re vendor agnostic a growing community of support
  • 10. Confidential │ ©2021 VMware, Inc. 10 Let’s Walk Through An Example Our Replatforming Journal
  • 11. Confidential │ ©2021 VMware, Inc. 11 ➜ open http://apptx.wtf Today, we have a circa-2000’s Perl web app running on Apache httpd inside of a Virtual Machine...argh! We want this site to get the benefit of running in our Cloud Foundry platform, but we can’t afford to rewrite it today. Let’s get started!
  • 12. Confidential │ ©2021 VMware, Inc. 12 A Map of the Production Deployment This is where our application lives (we think). It’s all of the stuff that makes our site different than some other rehash-based site.
  • 13. Confidential │ ©2021 VMware, Inc. 13 ➜ ls Let’s take a look around our development machine...
  • 14. Confidential │ ©2021 VMware, Inc. 14 ➜ cf target Am I logged into the Cloud Foundry?
  • 15. Confidential │ ©2021 VMware, Inc. 15 ➜ cf buildpacks What buildpacks are available?
  • 16. Confidential │ ©2021 VMware, Inc. 16 Can I just cf push it?
  • 17. Confidential │ ©2021 VMware, Inc. 17 ➜ cf push rehash Just as we expected, there’s no buildpack that knows how to detect this random collection of web server configuration.
  • 18. Confidential │ ©2021 VMware, Inc. 18 ➜ are there custom buildpacks out there? This one looks promising? And old.
  • 19. Confidential │ ©2021 VMware, Inc. 19 ➜ cf push rehash -b https://github.com/... Pushing with this buildpack fails...
  • 20. Confidential │ ©2021 VMware, Inc. 20 ➜ cf logs rehash It looks like the buildpack is expecting some weird stuff on the filesystem. I’m not going to chase this too far, I’m mostly just testing the water for an out-of-the-box solution.
  • 21. Confidential │ ©2021 VMware, Inc. 21 Is there a opinionated buildpack that builds the environment we need?
  • 22. Confidential │ ©2021 VMware, Inc. 22 What do we mean by an opinionated buildpack?
  • 23. Confidential │ ©2021 VMware, Inc. 23 What do we mean by an opinionated buildpack?
  • 24. Confidential │ ©2021 VMware, Inc. 24 What do we mean by an opinionated buildpack?
  • 25. Confidential │ ©2021 VMware, Inc. 25 What do we mean by an opinionated buildpack?
  • 26. Confidential │ ©2021 VMware, Inc. 26 ➜ vi manifest.yml Let’s add the PHP buildpack to our manifest.
  • 27. Confidential │ ©2021 VMware, Inc. 27 ➜ cf push And it... starts?
  • 28. Confidential │ ©2021 VMware, Inc. 28 ➜ https://rehash.apps.pcfone.io/site/apptx.wtf/htdocs/about.pl This looks like our Perl code...not processing and serving our webpage.
  • 29. Confidential │ ©2021 VMware, Inc. 29 How do I customize the configuration of an opinionated buildpack?
  • 30. Confidential │ ©2021 VMware, Inc. 30 ➜ options.json Let’s take a look at the Cloud Foundry Docs...
  • 31. Confidential │ ©2021 VMware, Inc. 31 ➜ what are those defaults? We need to customize these values.
  • 32. Confidential │ ©2021 VMware, Inc. 32 ➜ mkdir .bp-config Let’s build a custom configuration.
  • 33. Confidential │ ©2021 VMware, Inc. 33 ➜ vim .bp-config/options.json Let’s specify the version of Apache httpd we use in our production environment.
  • 34. Confidential │ ©2021 VMware, Inc. 34 ➜ cf push It looks like we can’t download and install httpd 2.2.29… it was worth a try!
  • 35. Confidential │ ©2021 VMware, Inc. 35 ➜ more research Back to the docs! What else is available for us to change?
  • 36. Confidential │ ©2021 VMware, Inc. 36 ➜ grab the defaults from the repo... The PHP buildpack has an opinionated configuration. Let’s start with taking a look at the defaults.
  • 37. Confidential │ ©2021 VMware, Inc. 37 ➜ vim .bp-config/httpd/httpd.conf What is the default Apache httpd configuration provided by the buildpack? Looks like the configuration is modularized...
  • 38. Confidential │ ©2021 VMware, Inc. 38 ➜ vim .bp-config/httpd/extra/httpd-modules.conf Is mod_perl available to us out-of-the-box?
  • 39. Confidential │ ©2021 VMware, Inc. 39 ➜ cf push If we get rid of the HTTPD_VERSION, we can push with these default files and get the same result as the buildpack.
  • 40. Confidential │ ©2021 VMware, Inc. 40 ➜ vim .bp-config/httpd/httpd.conf Let’s try enabling mod_perl and see what happens
  • 41. Confidential │ ©2021 VMware, Inc. 41 ➜ cf push
  • 42. Confidential │ ©2021 VMware, Inc. 42 ➜ cf logs rehash Looks like the modules are not available to us.
  • 43. Confidential │ ©2021 VMware, Inc. 43 How does this application depend on its current environment?
  • 44. Confidential │ ©2021 VMware, Inc. 44 Where does mod_perl come from? mod_perl is usually either installed through the OS package manager... … or built from source on that machine for that machine.
  • 45. Confidential │ ©2021 VMware, Inc. 45 ➜ apt-cf-packager
  • 46. Confidential │ ©2021 VMware, Inc. 46 ➜ vim manifest.yml We’ll make sure we’re targeting our intended stack here... ...and set FLATTEN to false to make sure we get all of the files related to Perl and Apache.
  • 47. Confidential │ ©2021 VMware, Inc. 47 ➜ vim public/apt.yml All we need are these two packages to install mod_perl and mod_apreq2 These are the names we’d use with sudo apt-get install
  • 48. Confidential │ ©2021 VMware, Inc. 48 ➜ cf push Pushing it starts an app, and going to this route in our browser will let us download our artifacts.
  • 49. Confidential │ ©2021 VMware, Inc. 49 ➜ download the packages Time to download locally and stick it into our app!
  • 50. Confidential │ ©2021 VMware, Inc. 50 ➜ let’s take a look at that download... This directory contains our mod_perl.so and mod_apreq2.so for Apache to load. Here’s the supporting Perl 5.26 modules.
  • 51. Confidential │ ©2021 VMware, Inc. 51 ➜ cp -R lib lib-cflinuxfs3
  • 52. Confidential │ ©2021 VMware, Inc. 52 ➜ vim .bp-config/httpd/httpd.conf Load our modules from an absolute path from the pushed directory.
  • 53. Confidential │ ©2021 VMware, Inc. 53 ➜ cf push
  • 54. Confidential │ ©2021 VMware, Inc. 54 ➜ cf logs rehash Looks like the directory doesn’t exist where we expected it to be.
  • 55. Confidential │ ©2021 VMware, Inc. 55 ➜ cf ssh rehash
  • 56. Confidential │ ©2021 VMware, Inc. 56 ➜ ls ~
  • 57. Confidential │ ©2021 VMware, Inc. 57 ➜ ls app This doesn’t look like the directory we pushed...
  • 58. Confidential │ ©2021 VMware, Inc. 58 ➜ ls app/htdocs This is what we would’ve expected to be at /home/vcap/app
  • 59. Confidential │ ©2021 VMware, Inc. 59 ➜ back to the php-buildpack docs! Can we specify a different path?
  • 60. Confidential │ ©2021 VMware, Inc. 60 ➜ vim .bp-config/options.json Let’s specify the specific htdocs directory for our site within our codebase.
  • 61. Confidential │ ©2021 VMware, Inc. 61 ➜ cf push
  • 62. Confidential │ ©2021 VMware, Inc. 62 ➜ cf ssh rehash Much better!
  • 63. Confidential │ ©2021 VMware, Inc. 63 ➜ lets check the perl-status
  • 64. Confidential │ ©2021 VMware, Inc. 64 ➜ cf logs rehash Looks like we can’t find Apache modules that we need.
  • 65. Confidential │ ©2021 VMware, Inc. 65 ➜ vim startup.pl Let’s create a startup script to use libraries at specific paths.
  • 66. Confidential │ ©2021 VMware, Inc. 66 ➜ vim .bp-config/httpd/httpd.conf Let’s configure our server to load our startup script and configure the additional vendored module paths
  • 67. Confidential │ ©2021 VMware, Inc. 67 ➜ cf push Wait...did that work?!
  • 68. Confidential │ ©2021 VMware, Inc. 68 ➜ open /perl-status Now it’s time to run our application. We have a working Apache server that can serve up Perl!
  • 69. Confidential │ ©2021 VMware, Inc. 69 ➜ vim .bp-config/httpd/httpd.conf We can just include the app’s configuration in our httpd.conf. (Make sure to change any hard-coded paths to use $HOME or /home/vcap/app in slash.conf and any included site configuration files)
  • 70. Confidential │ ©2021 VMware, Inc. 70 ➜ cf push
  • 71. Confidential │ ©2021 VMware, Inc. 71 ➜ cf logs rehash Now we’re missing application-specific Perl modules. We’re going to have to go spelunking into the production VM to figure out where this lives.
  • 72. Confidential │ ©2021 VMware, Inc. 72 Unfortunately, our app is also embedded in the environment! This is where our application lives (we think) so that’s what we’re pushing
  • 73. Confidential │ ©2021 VMware, Inc. 73 Unfortunately, our app is also embedded in the environment! but it’s also over here!
  • 74. Confidential │ ©2021 VMware, Inc. 74 Unfortunately, our app is also embedded in the environment! and some over here!
  • 75. Confidential │ ©2021 VMware, Inc. 75 Unfortunately, our app is also embedded in the environment! (and probably some in here!)
  • 76. Confidential │ ©2021 VMware, Inc. 76 Unfortunately, our app is also embedded in the environment! For now, maybe we can use our vendoring trick and just pull in the application modules over here into lib-cflinuxfs3 ?
  • 77. Confidential │ ©2021 VMware, Inc. 77 ➜ cp site_perl lib-cflinuxfs3/perl5/ I wonder if this version mismatch is going to bite us?
  • 78. Confidential │ ©2021 VMware, Inc. 78 ➜ cf push
  • 79. Confidential │ ©2021 VMware, Inc. 79 ➜ cf logs rehash Yep! We can’t mix and match perl modules between versions
  • 80. Confidential │ ©2021 VMware, Inc. 80 Can I build my own environment and deploy it with the binary buildpack?
  • 81. Confidential │ ©2021 VMware, Inc. 81 Let’s move up a layer! Instead of pushing this...
  • 82. Confidential │ ©2021 VMware, Inc. 82 Let’s move up a layer! PHP Buildpack
  • 83. Confidential │ ©2021 VMware, Inc. 83 Let’s move up a layer! ... we’ll push the environment and the installation.
  • 84. Confidential │ ©2021 VMware, Inc. 84 Let’s move up a layer! Binary Buildpack
  • 85. Confidential │ ©2021 VMware, Inc. 85 ➜ vim manifest.yml Let’s push the previous directory and our entire environment. The Binary Buildpack requires an explicit start command.
  • 86. Confidential │ ©2021 VMware, Inc. 86 ➜ cf push
  • 87. Confidential │ ©2021 VMware, Inc. 87 ➜ cf logs rehash-binary Oh shoot! That path looks like the absolutely path on our production VM!
  • 88. Confidential │ ©2021 VMware, Inc. 88 ➜ vim .bp-config/httpd/httpd.conf
  • 89. Confidential │ ©2021 VMware, Inc. 89 ➜ vim .bp-config/httpd/httpd.conf Maybe we can just replace all with the expected structure?
  • 90. Confidential │ ©2021 VMware, Inc. 90 ➜ cf push
  • 91. Confidential │ ©2021 VMware, Inc. 91 ➜ cf logs rehash-binary Wait...this looks a bit better. Loading libperl.so is a new one...
  • 92. Confidential │ ©2021 VMware, Inc. 92 Where the honk is libperl.so? A quick search shows us it’s tucked in over here…. It’s in our pushed files, so why isn’t our server seeing it then?
  • 93. Confidential │ ©2021 VMware, Inc. 93 ➜ vim bin/startup.sh Let’s move to a startup script to have more control.
  • 94. Confidential │ ©2021 VMware, Inc. 94 ➜ vim manifest.yml We’ll call our startup script instead of the hard-coded command
  • 95. Confidential │ ©2021 VMware, Inc. 95 ➜ cf logs rehash-binary It looks like we’re using the Apache and Perl in rehash-env. ...but we’re still seeing the same problem loading libperl.so.
  • 96. Confidential │ ©2021 VMware, Inc. 96 ➜ yep, we Googled it (And we got to read through fifteen year old forum posts) It looks like we might have trouble with the Apache built on the production environment.
  • 97. Confidential │ ©2021 VMware, Inc. 97 Can I rebuild my Application to look like the final deployment structure?
  • 98. Confidential │ ©2021 VMware, Inc. 98 ➜ cf logs rehash-binary The application doesn’t look much different, but cf push shows a new error! We’re missing a mysql shared library.
  • 99. Confidential │ ©2021 VMware, Inc. 99 ➜ vim manifest.yml Let’s update our manifest to include the Apt Buildpack as well as the Binary Buildpack.
  • 100. Confidential │ ©2021 VMware, Inc. 100 ➜ vim apt.yml
  • 101. Confidential │ ©2021 VMware, Inc. 101 ➜ cf push
  • 102. Confidential │ ©2021 VMware, Inc. 102 ➜ cf logs rehash-binary We can’t connect to the database on a local socket. That’s how the prod VM worked, so I think we’re in business!
  • 103. Confidential │ ©2021 VMware, Inc. 103 How is this application configured to talk to its external dependencies (like a database)?
  • 104. Confidential │ ©2021 VMware, Inc. 104 ➜ vim Password.pm This particular app builds a custom Perl module that embeds a “virtual user” holding all of our configuration. If you find this kind of connection in code (or maybe configuration that’s interpreted by code), you can change it to connect to your cloud services!
  • 105. Confidential │ ©2021 VMware, Inc. 105 ➜ cf create-service p.mysql db-small rehash-mysql
  • 106. Confidential │ ©2021 VMware, Inc. 106 ➜ vim manifest.yml We’ll add our new service instance to bind to our app
  • 107. Confidential │ ©2021 VMware, Inc. 107 ➜ cf env rehash (or via Apps Manager) After pushing our app with the updated manifest, we’ll get a set of randomly generated credentials. We’ll grab them...
  • 108. Confidential │ ©2021 VMware, Inc. 108 ➜ vim Password.pm … go back to our credential data inside our application...
  • 109. Confidential │ ©2021 VMware, Inc. 109 ➜ vim Password.pm … and we’ll just manually hard-code this service binding’s credentials for now. We’ll want to pull from VCAP_SERVICES eventually, but this is the smallest possible test.
  • 110. Confidential │ ©2021 VMware, Inc. 110 ➜ cf push
  • 111. Confidential │ ©2021 VMware, Inc. 111 ➜ cf logs rehash-binary Progress! Now we’re failing because of missing tables, which means we’re connecting.
  • 112. Confidential │ ©2021 VMware, Inc. 112 ➜ one-time schema installation The app sets up its schema with a one-time administrative task. We’ll run this targeting our new database and... ...we fail because our MySQL instance isn’t using the same sql_mode as our production environment.
  • 113. Confidential │ ©2021 VMware, Inc. 113 ➜ we have a few options... Option 1: We can figure out how to configure the service instance to look more like our production database.
  • 114. Confidential │ ©2021 VMware, Inc. 114 ➜ we have a few options... Option 1: We can figure out how to configure the service instance to look more like our production database. Option 2: We can connect back to our production database from the cloud.
  • 115. Confidential │ ©2021 VMware, Inc. 115 ➜ we have a few options... Option 1: We can figure out how to configure the service instance to look more like our production database. Option 2: We can connect back to our production database from the cloud. Option 3: We can create a new database that looks more like our production database.
  • 116. Confidential │ ©2021 VMware, Inc. 116 ➜ we have a few options... Option 1: We can figure out how to configure the service instance to look more like our production database. Option 2: We can connect back to our production database from the cloud. Option 3: We can create a new database that looks more like our production database. Option 4: We can refactor the app to be able to use the provided service instance.
  • 117. Confidential │ ©2021 VMware, Inc. 117 ➜ cf push One more time...
  • 118. Confidential │ ©2021 VMware, Inc. 118 ➜ open https://v2.apptx.wtf YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES
  • 119. Confidential │ ©2021 VMware, Inc. 119 When Should You Replatform?
  • 120. Confidential │ ©2021 VMware, Inc. TDA AppTx FY19Q1 App Modernization Journey Easy Wins Obvious Rewrites Big Business Value Non-trivial apps not ready for the cloud Inherited Heritage Apps You are here! ● Gain Operational Benefits Leverage your platform tooling, such as pipelines, and governance as you move to the cloud ● Maximize Your Return 5 days of replatforming work is much much cheaper than committing to a full rewrite today ● Continue Your Journey Replatforming is a means to an end - it’s the beginning of a modernization journey for many apps ● Gain Fast Insights You inherited an app that you don’t know much about yet! Use replatforming as a quick start guide. Back Office Support
  • 121. Thank You Confidential │ ©2021 VMware, Inc.