legacy lowdown - options when migrating solaris applications

36
The Webinar will begin shortly….

Upload: appzero

Post on 20-May-2015

907 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Legacy Lowdown - Options When Migrating Solaris Applications

The Webinar will begin shortly….

Page 2: Legacy Lowdown - Options When Migrating Solaris Applications

Legacy Lowdown Options When Migrating Solaris Applications

Page 3: Legacy Lowdown - Options When Migrating Solaris Applications

Housekeeping

• Please Participate

• Use the GoToWebinar controls to ask questions

• We’ll take most questions at the end

Page 4: Legacy Lowdown - Options When Migrating Solaris Applications

• AppZero – application virtualization software vendor

– Server applications (Solaris, Linux, Windows) and Windows desktop

– Founded in 2006 – Solaris application virtualization first product

– Patented and field-proven software• Randy Whitcroft – Solaris Business Development

• Ernesto Benedito – Lead Architect UNIX platform

• Legacy Lowdown

– Legacy Applications – How did we get to this point?

– Binary Compatibility Guarantee – Are you covered?

– Will your apps fit into Zones/Containers?

– Tools to help you know where you stand

– The Appzero Solution

– Q&A

Introductions & Agenda

Page 5: Legacy Lowdown - Options When Migrating Solaris Applications

AppZero Solaris in action ….

• Large Telecommunications Provider

– Large database used in development and support of hardware offering– Evolved over time…faced a choice: start over or use AppZero– AppZero within full production environment: “It just runs…no need to manage”

• Financial Investment Firm

– Legacy customer information and data required for audit purposes– Application and database virtualized with AppZero in production– Originally intended to be an interim solution… now, no plans to change

• Systems Integrator

– Providing support for large telecom company in EMEA– Single instance of application cloned or duplicated…then deployed

• Software Vendor– Build customer environment internally to replicate issues and provide technical support– Support time reduced from weeks down to days/hours

Page 6: Legacy Lowdown - Options When Migrating Solaris Applications

Legacy Applications – How did we get to this point?

• Organizations invested heavily into either customized or even custom built line of business applications.

• Over time, the data centers were upgraded and updated as newer applications were added, capabilities were enhanced, and performance requirements increased.

• A great deal has changed over the last number of years! Vendors have come and gone, systems adhered to Moore’s law of technology growth, and technology has moved to become a vital component of any business.

• And for many different reasons many organizations have been left with…

Page 7: Legacy Lowdown - Options When Migrating Solaris Applications

Legacy Applications – How did we get to this point?

IMPORTANT

…but not Vital!

Page 8: Legacy Lowdown - Options When Migrating Solaris Applications

Legacy Applications – How did we get to this point?

It is not “If”…

but “When”

Page 9: Legacy Lowdown - Options When Migrating Solaris Applications

Binary Compatibility Guarantee

Sun/Oracle Binary Compatibility Guarantee was released over a decade ago…

• Key elements around how an application was to be built using Sun recommended best practices to ensure that there was a binary compatibility

– Developers did not know about it.

– Developers just ignored it

– Was not available when the application was built

• Very few applications on 2.6 or 7 qualified• You either meet the requirements or you don’t…just 1%

of application can mean everything

The bottom line…this option may not be an option!

Page 10: Legacy Lowdown - Options When Migrating Solaris Applications

Just use Zones or Containers…

Page 11: Legacy Lowdown - Options When Migrating Solaris Applications

Just use Zones or Containers…

Solaris 9

Solaris 8

Solaris 7

Solaris 2.6

Page 12: Legacy Lowdown - Options When Migrating Solaris Applications

• ret 0 – No potential stability issues. Should run

• ret 2 – Potential binary stability, Good chance will not run

Tools you already have…

• appcert• Utility used to verify ABI compatibility problems

• It checks ELF of your app and compares library symbols against host interface

• It can’t check everything

• apptrace• Utility to verify interface compatibility problem.

• Mostly for developers. Complex output, similar to Truss output

• Tools already available…included in Solaris 10 OS

• Analyzes application your are trying to migrate

Page 13: Legacy Lowdown - Options When Migrating Solaris Applications

Tools you already have…

The following (166 of 784) components had no problems detected:

The following (462 of 784) components had no problems detected, but could not be completely checked:

The following (156 of 784) components have potential stability problems:

333 binaries used libc.so.1, 6 of these used private symbols215 binaries used libnsl.so.1, 136 of these used private symbols12 binaries used libdga.so.1, 12 of these used private symbols2 binaries used libdps.so.5, 2 of these used private symbols7 binaries used libXext.so.0, 2 of these used private symbols

Summary of various warnings: - non-POSIX libthread fork call  (5 binaries) - references sys_errlist/sys_nerr  (1 binaries) - unbound symbols  (460 binaries)

Result code 2 => some_problems_detected(156

EXIT STATUS     2        Some of the objects checked have  potential  binary              stability problems.

• #> appcert /path_to_old_app

• Example of appcert verifying DB on Solaris 2.6

Page 14: Legacy Lowdown - Options When Migrating Solaris Applications

Tools you already have…

-> touch -> libc.so.1:int atexit(int (*)() = 0xff3c5bb4)<- touch -> libc.so.1:atexit()-> touch -> libc.so.1:int atexit(int (*)() = 0x11ae8)<- touch -> libc.so.1:atexit()-> touch -> libc.so.1:char * setlocale(int = 0x6, const char * = 0x11af8 "")<- touch -> libc.so.1:setlocale() = 0x22e00-> touch -> libc.so.1:char * textdomain(const char * = 0x11afc "SUNW_OST_OSCMD")<- touch -> libc.so.1:textdomain() = 0x22690-> touch -> libc.so.1:char * basename(char * = 0xffbffb10 "touch")<- touch -> libc.so.1:basename() = 0xffbffb10-> touch -> libc.so.1:strcmp(0xffbffb10, 0x11b0c, 0x0) ** NR-> touch -> libc.so.1:int getopt(int = 0x2, char *const * = 0xffbffa1c, const char * = 0x11b20 "acfmr:d:t:")<- touch -> libc.so.1:getopt() = 0xffffffff-> touch -> libc.so.1:stat64(0xffbffb16, 0xffbff888, 0x11b20) ** NR-> touch -> libc.so.1:int * ___errno(void)<- touch -> libc.so.1:___errno() = 0xff039c7c-> touch -> libc.so.1:int * ___errno(void)<- touch -> libc.so.1:___errno() = 0xff039c7c-> touch -> libc.so.1:int creat64(const char * = 0xffbffb16 "/tmp/foo", mode_t = 0x1b6)<- touch -> libc.so.1:creat64() = 0x4-> touch -> libc.so.1:int futimens(int = 0x4, const timespec_t * = 0x0)<- touch -> libc.so.1:futimens()-> touch -> libc.so.1:int close(int = 0x4)<- touch -> libc.so.1:close()-> touch -> libc.so.1:exit(0x0, 0x0, 0x0) ** NR

• #> apptrace touch /tmp/foo

• Example of apptrace

Page 15: Legacy Lowdown - Options When Migrating Solaris Applications

And you are in a situation …

You are in a situation where:- You get an extensive report with an intimidating summary!

- You probably find your app uses private, unbound or obsolete symbols, it shouldn’t. Even if your app happens to work on a newer OS, it doesn’t mean it will continue to with newer updates.

- Even if you get a green light from the report you can’t be 100% sure the app will work (the tool cannot check everything)

- Applications with green light can still fail (e.g. they assume certain FS layout, queries for certain release version, etc.)

- Or even worse:- your app is statically linked, issuing system calls in assembly, or

simply doesn’t work under a branded zone

Page 16: Legacy Lowdown - Options When Migrating Solaris Applications

With appzero …

16

Solaris 9

Solaris 8

Solaris 7

Solaris 2.6

• Solaris 10 Kernel

• ZFS • FMA • DTrace • Containers

• Solaris 2.6, 7, 8, 9

• Appzero

• Virtual Application Appliance

Page 17: Legacy Lowdown - Options When Migrating Solaris Applications

Application

OS

AppZero packages applications/dependencies in VAA*

Config

Binaries

Libraries

Services

* Virtual Application Appliance (VAA)

=

Page 18: Legacy Lowdown - Options When Migrating Solaris Applications

The AppZero Virtual Application Appliance VAA)

The ( ) VAA:

Packages all the elements required by the application to run:

Executables, libraries, services, scripts, configuration files, network identity, host identity.

Requires a compatible OS on the target machine

Is isolated from the underlying OS and from other VAAs.

Sees a configurable, merged view of its own files and those of the OS

Makes no changes to the underlying OS

Can be managed independently and run without conflict.

Enables old applications to be migrated to new OS and hardware

Complements Oracle Solaris Zones and Oracle VM Server for SPARC

Page 19: Legacy Lowdown - Options When Migrating Solaris Applications

AppZero Solaris elements

Appzero director: orchestrates interaction of application and underlying OS

(Solaris 9, 10)

• Appzero creator: packages application and dependencies into VAA

(Solaris 9, 10)

• Virtual Application Appliance (VAA) = container = capsule

(Solaris 2.6, 7, 8, 9 and 10)

Solaris 9 or 10

appzeroSol 2.6 App Sol 7 App Sol 8 App HTTP

10.0.0.10

Page 20: Legacy Lowdown - Options When Migrating Solaris Applications

How does AppZero work under the hood?

• Appzero uses “intercepts” – A point of control inserted between an application and the OS

• Appzero intercepts certain system calls – Virtualization logic in both the kernel and userland space

• Executes when the application executes– Not a background process or “agent”

Page 21: Legacy Lowdown - Options When Migrating Solaris Applications

What do AppZero intercepts do?

• Process tracking– fork, exit, wait– If parent is in appliance context then child is in capsule

• Monitor– read, write, send, recv, sendto, recvfrom– Track H/W resource usage; CPU, memory, network & disk

• Parameter Spoofing– uname, ioctl, getmsg, bind, sendmsg,– CFM: open, stat, fstat, etc.– Modify a parameter sent to or received from the kernel

• Process tracking– fork, exit, wait– If parent is in appliance context then child is in capsule

• Monitor– read, write, send, recv, sendto, recvfrom– Track H/W resource usage; CPU, memory, network & disk

• Parameter Spoofing– uname, ioctl, getmsg, bind, sendmsg,– CFM: open, stat, fstat, etc.– Modify a parameter sent to or received from the kernel

Page 22: Legacy Lowdown - Options When Migrating Solaris Applications

AppZero 3 Step Process

VAA

AppZero

CreatorPhysical

1. Analyze 3. Run/Manage

VAA

2. Virtualize

Page 23: Legacy Lowdown - Options When Migrating Solaris Applications

1. Analyze

• Analyze if the application has:– Dependencies on kernel drivers deployed by the application.– Special hardware requirements available/installed only on the source server,

such a dedicated backup hardware device.

• Source System:– Review file system: i.e. mount points, total disk space needed, special

asynchronous vs. synchronous I/O requirements.

– Review services: determine which services are required for the app that will end up in the appliance

– Review kernel parameters: many applications require specific kernel parameters (e.g. #semaphores, shared memory, etc)

• Complete the application profile

Page 24: Legacy Lowdown - Options When Migrating Solaris Applications

VAA

2. Create

VAA

AppZero

Creator

Physical

Virtualize to VAA

Data Center

Source Output

Approaches for creating a VAA:

1. Learn mode

2. Fresh Install on empty VAA

3. Whole HD capture

Final format can be uncompressed or

compressed & encrypted file

Portable

Page 25: Legacy Lowdown - Options When Migrating Solaris Applications

Encapsulating a legacy system

Move to create machine• tar.gz file

• Export/share/mount

• AppZero - screate

Source

Solaris 2.6 with Application

Ultra10

Target

Solaris 10

Modern Solaris 10 server

Install

Note: Creation of a VAA requires access to the files in the legacy system:

Page 26: Legacy Lowdown - Options When Migrating Solaris Applications

AppZero Creator: Capture files, refine properties

• Select services

• Resource utilization

• Start up mode

Review files in the VAA

Tweak mount points

Page 27: Legacy Lowdown - Options When Migrating Solaris Applications

solarisappzero

3. Run/Manage

SOURCESolaris 2.6

TARGETSolaris 10

VAA - Solaris 2.6 App

IP = 10.0.0.10

DHCP server

IP = 10.0.0.6

VAA optionally keeps the network identity and hostid of

the source system

MAC = 08:00:20:b1:41:47

Client name = old app

IP = 10.0.0.6

AppZero Controller on target machine

Page 28: Legacy Lowdown - Options When Migrating Solaris Applications

Where do the VAA files reside?

/usr/local/appzero/appliances/vaa/

csuperblockcdata

cstore

.. /etc/bin/lib/product/..

Solaris

appzero

Solaris

appzero

VAA

NAS/SAN

XXVAAVAA

Page 29: Legacy Lowdown - Options When Migrating Solaris Applications

AppZero Controller: managing VAAs

• [root@tps31 bin]# ./appzctrl <cmd>– where CMD is:

• list - Display list of appliances

• dock – Register an appliance• undock – Unregister an appliance

• startup - Runs the defined startup script for an appliance• shutdown - Runs the defined shutdown script for an appliance• run - Runs an executable inside an appliance

• procl - Display appliance process list• prop - Display appliance property• edit - Edit appliance property

• cprop - Display controller properties• cedit - Edit controller properties• compress - Compress an expanded fileset into a .con file• uncompress - Expand an appliance's .con file• upgrade - Upgrade an appliance• sysversion - Displays controller and kernel module version

Page 30: Legacy Lowdown - Options When Migrating Solaris Applications

What type of application can I put on a VAA?

– Custom and proprietary applications– Of the shelf applications.– A simple “hello world” type of application– A Web server– A database (DBMS)– A complex ERP system– Etc……..

appzero

application (s)

VAA

Do I have to change or recompile my app? NO

Note: apps with proprietary kernel drivers require specific conditions

Page 31: Legacy Lowdown - Options When Migrating Solaris Applications

VAAs and Oracle Solaris Zones

• Basic VAA– No virtual networking– Doesn’t have Identity. UOS identity inherited– Globally compared with chroot environment. (but is not a chroot environment)– Application isolation

• Virtualized Network– Manually set network identity– Basic capsule capabilities plus identity mapping

• Own Identity IP address, hostname, MAC, system ID are virtualized with values defined in  the appliance properties

• AppZero Controller installed on the Global Zone– VAA managed across Zones

Page 32: Legacy Lowdown - Options When Migrating Solaris Applications

You’re probably wondering about ….

• Level of effort: no re-engineering

– Familiarize staff with AppZero solution

– Virtualize/encapsulate application and test

– Implementation is a copy, not an installation

• Time frame: a day to a week depending on complexity

• Skill level: application-knowledgeable admin or analyst

• Cost: one time costs

– Creator $5K, VAA $5K, Annual maintenance 20%

– VAA can be used in dev/test/pre-production/production/cloud/DR concurrently

• Migration as a Service Program

– $12,500 per application. Risk Free! Contact us for more information...

Page 33: Legacy Lowdown - Options When Migrating Solaris Applications

And maybe ….

• Where it won’t work: – Solaris on x86 platforms, Solaris 2.5, Solaris to/from Linux, Windows, or UNIX

• What about applications with kernel drivers?– Doable under specific conditions

• Performance overhead: a non-issue – Application performance tends to improve running on current OS and new hardware

• (%0 pure CPU, %3 business apps,%10 compilers.)

• Reliability: years of production use at large accounts

Page 34: Legacy Lowdown - Options When Migrating Solaris Applications

AppZero application virtualization summary ….

• Package once, run everywhere

• Eliminate application/application conflicts (sandbox)

• Run application on new hardware -- better performance/lower cost

• Server consolidation

• Continuity and disaster recovery

Page 35: Legacy Lowdown - Options When Migrating Solaris Applications

Next steps….

• No-charge “AppZero Application Assessment ”– Technical analysis of your application environment

• App components

• Services

• 3rd party dependencies• Kernel modules• Fit with AppZero

• Connect directly with us– Randy Whitcroft [email protected]– Ernesto Benedito [email protected]

• Share this recorded session with your colleagues at www.appzero.com

• For more information or product download visit : www.appzero.com

Page 36: Legacy Lowdown - Options When Migrating Solaris Applications