SlideShare une entreprise Scribd logo
1  sur  36
The Webinar will begin shortly….
Legacy LowdownOptions When Migrating Solaris Applications
Housekeeping Please Participate Use the GoToWebinar controls to ask questions We’ll take most questions at the end
Introductions & Agenda 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
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
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…
Legacy Applications – How did we get to this point? IMPORTANT …but not Vital!
Legacy Applications – How did we get to this point? It is not “If”… but “When”
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!
Just use Zones or Containers…
Just use Zones or Containers… Solaris 9 Solaris 8 Solaris 7 Solaris 2.6
 ret 0 – No potential stability issues. Should run  ret 2 – Potential binary stability, Good chance will not run Tools you already have… Tools already available…included in Solaris 10 OS Analyzes application your are trying to migrate 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 you already have… Example of appcert verifying DB on Solaris 2.6  #> appcert  /path_to_old_app 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 symbols 215 binaries used libnsl.so.1, 136 of these used private symbols 12 binaries used libdga.so.1, 12 of these used private symbols 2 binaries used libdps.so.5, 2 of these used private symbols 7 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.
Tools you already have… Example of apptrace #> apptrace touch /tmp/foo -> 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, consttimespec_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
And you are in a situation … You are in a situation where: ,[object Object]
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,[object Object]
AppZero packages applications/dependencies in VAA* Binaries Libraries Services   Config = Application OS * Virtual Application Appliance (VAA)
The AppZero Virtual Application Appliance VAA) The (           )  VAA: ,[object Object], Executables, libraries, services, scripts, configuration files, network identity, host identity. ,[object Object]
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,[object Object]
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”
What do AppZero intercepts do? ,[object Object]
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

Contenu connexe

Tendances

Virtualization for Development
Virtualization for DevelopmentVirtualization for Development
Virtualization for Development
elliando dias
 
Enterprise Java Virtualization, Sacha Labourey
Enterprise Java Virtualization, Sacha LaboureyEnterprise Java Virtualization, Sacha Labourey
Enterprise Java Virtualization, Sacha Labourey
OpenBlend society
 
Cloud foundry elastic architecture and deploy based on openstack
Cloud foundry elastic architecture and deploy based on openstackCloud foundry elastic architecture and deploy based on openstack
Cloud foundry elastic architecture and deploy based on openstack
OpenCity Community
 
彭—Elastic architecture in cloud foundry and deploy with openstack
彭—Elastic architecture in cloud foundry and deploy with openstack彭—Elastic architecture in cloud foundry and deploy with openstack
彭—Elastic architecture in cloud foundry and deploy with openstack
OpenCity Community
 
Sesion Marzo Zaragoza
Sesion Marzo ZaragozaSesion Marzo Zaragoza
Sesion Marzo Zaragoza
Fran Navarro
 
Windows Azure: Is Azure right for you?
Windows Azure: Is Azure right for you?Windows Azure: Is Azure right for you?
Windows Azure: Is Azure right for you?
Intergen
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
George Kanellopoulos
 

Tendances (20)

Virtualization for Development
Virtualization for DevelopmentVirtualization for Development
Virtualization for Development
 
Enterprise Java Virtualization, Sacha Labourey
Enterprise Java Virtualization, Sacha LaboureyEnterprise Java Virtualization, Sacha Labourey
Enterprise Java Virtualization, Sacha Labourey
 
Cloud foundry elastic architecture and deploy based on openstack
Cloud foundry elastic architecture and deploy based on openstackCloud foundry elastic architecture and deploy based on openstack
Cloud foundry elastic architecture and deploy based on openstack
 
Windows Azure Platform - The Color of Cloud Computing
Windows Azure Platform - The Color of Cloud ComputingWindows Azure Platform - The Color of Cloud Computing
Windows Azure Platform - The Color of Cloud Computing
 
彭—Elastic architecture in cloud foundry and deploy with openstack
彭—Elastic architecture in cloud foundry and deploy with openstack彭—Elastic architecture in cloud foundry and deploy with openstack
彭—Elastic architecture in cloud foundry and deploy with openstack
 
Jazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
Jazoon 2012 - Systems Integration in the Cloud Era with Apache CamelJazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
Jazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
 
Systems Resource Management with NetIQ AppManager
Systems Resource Management with NetIQ AppManagerSystems Resource Management with NetIQ AppManager
Systems Resource Management with NetIQ AppManager
 
Virtualization meisen 042811
Virtualization meisen 042811Virtualization meisen 042811
Virtualization meisen 042811
 
Virtualization
VirtualizationVirtualization
Virtualization
 
CloudBees PaaS Presentation at Oakland JUG
CloudBees PaaS Presentation at Oakland JUGCloudBees PaaS Presentation at Oakland JUG
CloudBees PaaS Presentation at Oakland JUG
 
Application-Driven Virtualization: Architectural Considerations
Application-Driven Virtualization: Architectural ConsiderationsApplication-Driven Virtualization: Architectural Considerations
Application-Driven Virtualization: Architectural Considerations
 
Spring, Java Web Apps to the cloud
Spring, Java Web Apps to the cloudSpring, Java Web Apps to the cloud
Spring, Java Web Apps to the cloud
 
Sesion Marzo Zaragoza
Sesion Marzo ZaragozaSesion Marzo Zaragoza
Sesion Marzo Zaragoza
 
Windows Azure: Is Azure right for you?
Windows Azure: Is Azure right for you?Windows Azure: Is Azure right for you?
Windows Azure: Is Azure right for you?
 
Oracle VM Consolidation and Path to the Cloud
Oracle VM Consolidation and Path to the CloudOracle VM Consolidation and Path to the Cloud
Oracle VM Consolidation and Path to the Cloud
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
 
Harbour IT & VMware - vForum 2010 Wrap
Harbour IT & VMware - vForum 2010 WrapHarbour IT & VMware - vForum 2010 Wrap
Harbour IT & VMware - vForum 2010 Wrap
 
Virtualizing Business Critical Apps
Virtualizing Business Critical AppsVirtualizing Business Critical Apps
Virtualizing Business Critical Apps
 
Prodware wa college - marcel meijer
Prodware   wa college - marcel meijerProdware   wa college - marcel meijer
Prodware wa college - marcel meijer
 
Roger boesch news xd_xa_nov (1)
Roger boesch news xd_xa_nov (1)Roger boesch news xd_xa_nov (1)
Roger boesch news xd_xa_nov (1)
 

En vedette

En vedette (7)

Introduction to Google Web Toolkit - part 1
Introduction to Google Web Toolkit - part 1Introduction to Google Web Toolkit - part 1
Introduction to Google Web Toolkit - part 1
 
GNU Octave: Strutture dati e I/O
GNU Octave: Strutture dati e I/OGNU Octave: Strutture dati e I/O
GNU Octave: Strutture dati e I/O
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
Virtual Machines
Virtual MachinesVirtual Machines
Virtual Machines
 
Google Adword Guide
Google  Adword  GuideGoogle  Adword  Guide
Google Adword Guide
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
Virtual machine
Virtual machineVirtual machine
Virtual machine
 

Similaire à Legacy Lowdown - Options When Migrating Solaris Applications

Process control daemon
Process control daemonProcess control daemon
Process control daemon
haish
 
outpass system
outpass systemoutpass system
outpass system
Dhivakar K
 

Similaire à Legacy Lowdown - Options When Migrating Solaris Applications (20)

Internship msc cs
Internship msc csInternship msc cs
Internship msc cs
 
Process control daemon
Process control daemonProcess control daemon
Process control daemon
 
Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1
 
Web application penetration testing lab setup guide
Web application penetration testing lab setup guideWeb application penetration testing lab setup guide
Web application penetration testing lab setup guide
 
outpass system
outpass systemoutpass system
outpass system
 
Alfresco Day Barcelona 2016 - Developer Track - Herramientas para administrad...
Alfresco Day Barcelona 2016 - Developer Track - Herramientas para administrad...Alfresco Day Barcelona 2016 - Developer Track - Herramientas para administrad...
Alfresco Day Barcelona 2016 - Developer Track - Herramientas para administrad...
 
FOISDBA-Ver1.1.pptx
FOISDBA-Ver1.1.pptxFOISDBA-Ver1.1.pptx
FOISDBA-Ver1.1.pptx
 
Backtrack Manual Part4
Backtrack Manual Part4Backtrack Manual Part4
Backtrack Manual Part4
 
Ubuntu Core 技术详解
Ubuntu Core 技术详解Ubuntu Core 技术详解
Ubuntu Core 技术详解
 
Embedded Systems
Embedded SystemsEmbedded Systems
Embedded Systems
 
Introduction to Embedded Linux
Introduction to Embedded LinuxIntroduction to Embedded Linux
Introduction to Embedded Linux
 
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
 
Explore Android Internals
Explore Android InternalsExplore Android Internals
Explore Android Internals
 
Desktop interview qestions & answer
Desktop interview qestions & answerDesktop interview qestions & answer
Desktop interview qestions & answer
 
Easy way to learn Core java full material
Easy way to learn Core java full materialEasy way to learn Core java full material
Easy way to learn Core java full material
 
Corejava ratan
Corejava ratanCorejava ratan
Corejava ratan
 
Interview questions
Interview questionsInterview questions
Interview questions
 
Symbian OS
Symbian  OS Symbian  OS
Symbian OS
 
Alfresco Support tools
Alfresco Support toolsAlfresco Support tools
Alfresco Support tools
 
Monitoring shootout loadays
Monitoring shootout loadaysMonitoring shootout loadays
Monitoring shootout loadays
 

Dernier

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Dernier (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Legacy Lowdown - Options When Migrating Solaris Applications

  • 1. The Webinar will begin shortly….
  • 2. Legacy LowdownOptions When Migrating Solaris Applications
  • 3. Housekeeping Please Participate Use the GoToWebinar controls to ask questions We’ll take most questions at the end
  • 4. Introductions & Agenda 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
  • 5. 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
  • 6. 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…
  • 7. Legacy Applications – How did we get to this point? IMPORTANT …but not Vital!
  • 8. Legacy Applications – How did we get to this point? It is not “If”… but “When”
  • 9. 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!
  • 10. Just use Zones or Containers…
  • 11. Just use Zones or Containers… Solaris 9 Solaris 8 Solaris 7 Solaris 2.6
  • 12. ret 0 – No potential stability issues. Should run ret 2 – Potential binary stability, Good chance will not run Tools you already have… Tools already available…included in Solaris 10 OS Analyzes application your are trying to migrate 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
  • 13. Tools you already have… Example of appcert verifying DB on Solaris 2.6 #> appcert /path_to_old_app 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 symbols 215 binaries used libnsl.so.1, 136 of these used private symbols 12 binaries used libdga.so.1, 12 of these used private symbols 2 binaries used libdps.so.5, 2 of these used private symbols 7 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.
  • 14. Tools you already have… Example of apptrace #> apptrace touch /tmp/foo -> 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, consttimespec_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
  • 15.
  • 16. 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.
  • 17. 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)
  • 18. Applications with green light can still fail (e.g. they assume certain FS layout, queries for certain release version, etc.)
  • 20.
  • 21. AppZero packages applications/dependencies in VAA* Binaries Libraries Services Config = Application OS * Virtual Application Appliance (VAA)
  • 22.
  • 23. Is isolated from the underlying OS and from other VAAs.
  • 24. Sees a configurable, merged view of its own files and those of the OS
  • 25. Makes no changes to the underlying OS
  • 26. Can be managed independently and run without conflict.
  • 27. Enables old applications to be migrated to new OS and hardware
  • 28.
  • 29. 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”
  • 30.
  • 32. If parent is in appliance context then child is in capsule
  • 34. read, write, send, recv, sendto, recvfrom
  • 35. Track H/W resource usage; CPU, memory, network & disk
  • 37. uname, ioctl, getmsg, bind, sendmsg,
  • 38. CFM: open, stat, fstat, etc.
  • 39.
  • 40. 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
  • 41. 2. Create Virtualize to VAA Source Output VAA VAA Physical AppZero Creator Approaches for creating a VAA: 1. Learn mode 2. Fresh Install on empty VAA 3. Whole HD capture Portable Data Center Final format can be uncompressed or compressed & encrypted file
  • 42. Encapsulating a legacy system Move to create machine tar.gz file Export/share/mount AppZero - screate Install Target Solaris 10 Modern Solaris 10 server Source Solaris 2.6 with Application Ultra10 Note: Creation of a VAA requires access to the files in the legacy system:
  • 43. AppZero Creator: Capture files, refine properties Select services Resource utilization Start up mode Review files in the VAA Tweak mount points
  • 44. appzero solaris 3. Run/Manage VAA optionally keeps the network identity and hostid of the source system AppZero Controller on target machine SOURCE Solaris 2.6 TARGET Solaris 10 DHCP server VAA - Solaris 2.6 App IP = 10.0.0.6 MAC = 08:00:20:b1:41:47 Client name = old app IP = 10.0.0.6 IP = 10.0.0.10
  • 45. Where do the VAA files reside? appzero appzero NAS/SAN Solaris Solaris csuperblock cdata /usr/local/appzero/appliances/vaa/ /etc .. /bin cstore /lib /product/.. X VAA VAA VAA
  • 46.
  • 47. dock – Register an appliance
  • 48. undock – Unregister an appliance
  • 49. startup - Runs the defined startup script for an appliance
  • 50. shutdown - Runs the defined shutdown script for an appliance
  • 51. run - Runs an executable inside an appliance
  • 52. procl - Display appliance process list
  • 53. prop - Display appliance property
  • 54. edit - Edit appliance property
  • 55. cprop - Display controller properties
  • 56. cedit - Edit controller properties
  • 57. compress - Compress an expanded fileset into a .con file
  • 58. uncompress - Expand an appliance's .con file
  • 59. upgrade - Upgrade an appliance
  • 60.
  • 61. 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
  • 62. 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...
  • 63. 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
  • 64. 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
  • 65. 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 rwhitcroft@appzero.com Ernesto Beneditoebenedito@appzero.com Share this recorded session with your colleagues at www.appzero.com For more information or product download visit : www.appzero.com