SlideShare a Scribd company logo
1 of 9
Download to read offline
Partnering with CAST to extend and
migrate CAST Highlight from AWS to
Microsoft Azure
Stéphane Goudeau
CAST Highlight is a recent offering from CAST Software that enables companies to quickly and
objectively measure the risk, complexity, and cost of their application portfolios. The solution provides
exclusive insights into application risks and opportunities before any investment, rationalization, or
retirement decision is made on an IT asset.
A joint team from CAST and Microsoft worked to define rules that assess the ability of an existing
codebase to migrate to Microsoft Azure. The team then integrated the rules into CAST Highlight and
moved the solution itself to Azure.
In this report, we describe the process and what we did before, during, and after the hackfest, including
the following:
• How we produced the rules that assess the ability to migrate to Azure
• How we benchmarked the rules
• How we migrated the CAST Highlight service to Azure
• What the architecture looked like and future plans
• Learnings from the process
CAST Overview
CAST is an independent software vendor that is a pioneer and world leader in software analysis and
measurement (SAM). With more than $120 million cumulative investment in research and development,
CAST provides the most advanced technology in the world to capture and quantify the reliability,
security, complexity, and size of business applications. CAST introduces fact-based transparency into
software asset management (including application development, maintenance, and sourcing) to
transform it into a management discipline. More than 250 companies across all industry sectors and
geographies rely on CAST to prevent business disruption and build a transparent dialogue with their
service providers. CAST is also an integral part of software delivery and maintenance at the world’s
leading IT service providers and independent software vendors.
Problem statement
Our first objective was to define rules that assess the ability of applications to migrate to Azure and
integrate those rules into CAST Highlight. This was the more-complex task for our team.
Our second objective was to move the existing application to Azure, thus profiting from App Service
features such as auto-scaling and deployment slots. The existing application is a Java web app running
on Apache Tomcat and using PostgreSQL as its database. This is a frequent scenario for web applications
running in Azure, so we did not anticipate having any issues with this task.
Solution, steps, and delivery
The key questions that need to be answered are
• Which applications could be moved?
• How could they be moved?
• How to prioritize them?
To understand which applications should be moved (and when and how), it’s important to create a well-
attributed catalog of these applications. The relative importance of each attribute can then be weighted
and the prioritized list can be built.
Analyzing the applications from a bottom-up perspective is aimed at providing a view into the eligibility,
at a technical level, of an application to migrate. This should be based on both business and technical
questions and on code scanning.
Depending on the existing on-premises application, several Azure services may be considered. CAST
wanted to propose for each service a technical analysis based on the existing code that would enable
evaluation of the level of complexity of migration for each of the Azure targeted services. The final result
of the assessment would be called the “CloudReady index.” With this value, any company can figure out
the applications that have the highest potential value and that are best suited for migration.
Business questions and technical questions would both be handled through an e-form quick interview.
Technical questions would be answered automatically via a pure code analysis.
The automated rules present the following attributes:
• Dependent on a decision tree.
o Analysis is to be executed on a specific targeted service; for example, the Web Apps
feature of Azure App Service.
o Analysis can be launched simultaneously on several services, such as Web Apps and
Service Fabric.
o Depending on the targeted service, rules can vary.
• Weighting of answer for a given rule.
o Unsupported feature corresponds to a negative score.
o Supported feature corresponds to a bonus.
• Rules classification: pattern, language, framework, technology, and so on.
• Complexity: low, moderate, high.
• Impact: code, framework, architecture. We consider the architecture to be impacted as soon we
add a new Azure component (even Azure Storage).
Code analysis is based on identification of specific patterns, such as the following:
• Persistent files
• Temporary files
• App settings configuration
• Registry settings
• Shared caching
• Application logs
• Sensitive data storage protection
• Data encryption keys
• Users authentication
• Code execution
• Services and scheduled tasks
• Inter-applications messaging
The presence or absence of a pattern may be interpreted as a bonus or a negative score, with a specific
weight depending on the impact on code, framework, or architecture. Each pattern is documented as in
the following sample:
Moving CAST Highlight to Azure
We divided the process of migration into the following steps:
1. Analyze existing architecture and technical requirements
2. Propose the first version of the architecture
3. Start to migrate the application
4. Gather the experience
5. Propose the second version of the architecture
6. Iterate
The original architecture consisted of the following:
• A cloud storage subsystem with programmatic CRUD capabilities
• A Java web application running on a Tomcat server
• A PostgreSQL database running on a Linux server
We wanted to leverage the platform as a service (PaaS) architecture and reuse the existing database.
Front end
The front end of CAST Highlight uses Java technologies. The only concern that CAST expressed was the
level of Java support in Azure. That concern was eliminated after looking at a Java website that uses the
customizable installation of Apache Tomcat for Web Apps. (Apache Tomcat is an open-source software
implementation of the Java servlet and Java Server Pages technologies for Azure App Service.)
The next step was simple. We just had to verify that the default web configuration was OK for this Java
application before publishing the app.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpPlatformHandler" path="*" verb="*"
modules="httpPlatformHandler" resourceType="Unspecified"
/>
</handlers>
<httpPlatform processPath="d:homesitewwwrootbinapache-tomcat-
8.0.33binstartup.bat" arguments="start">
<environmentVariables>
<environmentVariable name="CATALINA_OPTS" value="-
Dport.http=%HTTP_PLATFORM_PORT%" />
<environmentVariable name="CATALINA_HOME"
value="d:homesitewwwrootbinapache-tomcat-8.0.33" />
<environmentVariable name="JAVA_OPTS" value="-
Djava.net.preferIPv4Stack=true" />
</environmentVariables>
</httpPlatform>
</system.webServer>
</configuration>
The CAST Highlight website was then deployed to Web Apps with FTP.
Connectivity to the backend
We used Azure Virtual Network integration to enable access from the web app to a database running on
a virtual machine (VM) in an Azure virtual network. With Virtual Network integration, you don’t need to
expose a public endpoint for applications on your VM but can use the private non-Internet routable
addresses instead.
Because we decided to use Resource Manager, it was quite easy to create a new virtual network
configured with a gateway and point-to-site connection: In the networking UI of App Service, simply
select “Create New Virtual Network.”
Database layer
Because a production release of “PostgreSQL as a Service” doesn’t yet exist in Azure, the only option
was to install and set up PostgreSQL on the Linux VM deployed on the integrated virtual network to
which we had connected the Azure web app. The database was then installed on this PostgreSQL
instance.
Storage
We decided to use Azure Premium Storage. With Premium Storage, you can attach multiple persistent
data disks to a VM and configure them to meet your performance and latency requirements. Each data
disk is backed by an SSD disk for maximum input/output performance. This choice also enables CAST to
take advantage of the Microsoft single-instance SLA of 99.9 percent uptime.
At the end of this iteration, we had a very simple architecture, as shown in the following figure:
In a future iteration, the PostgreSQL database might be deployed to a high-availability cluster on Azure
Virtual Machines so that the CAST Highlight solution could guarantee business continuity of service.
The future architecture should evolve in the following way:
Migration steps
We first created a web app from the default “Apache Tomcat 8” template. This approach proved to be
useful because this environment corresponded almost exactly to the target. We used FTP to publish
directly to the web app. The Catalina config file was modified to import three CAST-specific libraries that
were not in the default environment. We established a connection to an integrated virtual network
through the UI. And we cloned an existing Linux + PostgreSQL VM back end in this virtual network (by
using AzCopy to perform a VHD blob copy and a PowerShell script to integrate it into the newly created
VM).
We did not encounter any specific issues during the App Service migration. Using Kudu with the default
Apache Tomcat deployment helped a lot to identify what was required to launch the application. (It took
less than 30 minutes for this part.)
“The solution to publish a Java web app on Azure is really simple” was the shared feedback about the
usage of Azure App Service in our context.
Conclusion
During the technical engagement between Microsoft and CAST, we leveraged skills from both
companies in defining the CloudReady index rules and in migrating the existing Java + PostgreSQL app to
a mixed IaaS-PaaS solution based on Azure App Service.
Since then, we have completed a pilot project with a few ISVs, and the results have been immensely
insightful. This enabled us to adapt the various weights related to questions and patterns.
In the near future, with the anticipated business success of the CAST Highlight service, the architecture
will leverage the autoscaling PaaS benefits and will evolve to eliminate the chance of any availability
issues on the back end.
The CAST team spoke positively not only about how the Azure cloud platform works but about how the
Microsoft platform works with the open source.
The CAST system is written in Java and uses PostgreSQL, so for successful migration it was necessary to
ensure that the technologies used are supported and tested in the cloud. Both Java and PostgreSQL can
be described as “first-class citizens” on Azure, and it was one of the important learnings for the team.
The CAST Highlight solution is now available as a service deployed in Microsoft Azure.
The resulting CloudReady-ness assessment from CAST Highlight enables customers to classify and
prioritize applications before their migration to the cloud.
The code analysis contains detailed key information on what needs to be changed.
CAST Highlight should be of great help for any company that needs to migrate its apps portfolio to the
cloud.

More Related Content

What's hot

Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)
Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)
Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)
VMware Tanzu
 
Strangling the Monolith With a Data-Driven Approach: A Case Study
Strangling the Monolith With a Data-Driven Approach: A Case StudyStrangling the Monolith With a Data-Driven Approach: A Case Study
Strangling the Monolith With a Data-Driven Approach: A Case Study
VMware Tanzu
 
ParasoftServiceVirtualizationAPITestingIgnis
ParasoftServiceVirtualizationAPITestingIgnisParasoftServiceVirtualizationAPITestingIgnis
ParasoftServiceVirtualizationAPITestingIgnis
Sonya S
 

What's hot (18)

Democratize development with Microsoft Power Apps and AI builder
Democratize development with Microsoft Power Apps and AI builderDemocratize development with Microsoft Power Apps and AI builder
Democratize development with Microsoft Power Apps and AI builder
 
Automating End-to-End Business Scenario Testing
Automating End-to-End Business Scenario TestingAutomating End-to-End Business Scenario Testing
Automating End-to-End Business Scenario Testing
 
Application Deployement Strategies
Application Deployement StrategiesApplication Deployement Strategies
Application Deployement Strategies
 
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
 
Simply zdlc
Simply zdlcSimply zdlc
Simply zdlc
 
Test Data Management: A Healthcare Industry Case Study
Test Data Management: A Healthcare Industry Case StudyTest Data Management: A Healthcare Industry Case Study
Test Data Management: A Healthcare Industry Case Study
 
Application Performance Management 9.30 HPE whats new | 360 View
Application Performance Management 9.30 HPE whats new | 360 ViewApplication Performance Management 9.30 HPE whats new | 360 View
Application Performance Management 9.30 HPE whats new | 360 View
 
From APM to Business Monitoring with AppDynamics Analytics
From APM to Business Monitoring with AppDynamics AnalyticsFrom APM to Business Monitoring with AppDynamics Analytics
From APM to Business Monitoring with AppDynamics Analytics
 
Database Visibility and Troubleshooting Hands-on Lab - AppSphere16
Database Visibility and Troubleshooting Hands-on Lab - AppSphere16Database Visibility and Troubleshooting Hands-on Lab - AppSphere16
Database Visibility and Troubleshooting Hands-on Lab - AppSphere16
 
Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)
Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)
Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)
 
Re-Platforming Applications for the Cloud
Re-Platforming Applications for the CloudRe-Platforming Applications for the Cloud
Re-Platforming Applications for the Cloud
 
Fidelity Test Data Management
Fidelity Test Data ManagementFidelity Test Data Management
Fidelity Test Data Management
 
Case Study: Security Testing
Case Study: Security TestingCase Study: Security Testing
Case Study: Security Testing
 
Strangling the Monolith With a Data-Driven Approach: A Case Study
Strangling the Monolith With a Data-Driven Approach: A Case StudyStrangling the Monolith With a Data-Driven Approach: A Case Study
Strangling the Monolith With a Data-Driven Approach: A Case Study
 
Automate Your Backups at Scale
Automate Your Backups at ScaleAutomate Your Backups at Scale
Automate Your Backups at Scale
 
ParasoftServiceVirtualizationAPITestingIgnis
ParasoftServiceVirtualizationAPITestingIgnisParasoftServiceVirtualizationAPITestingIgnis
ParasoftServiceVirtualizationAPITestingIgnis
 
Click to Disk Troubleshooting with AppDynamics and OpsDataStore - AppSphere16
Click to Disk Troubleshooting with AppDynamics and OpsDataStore - AppSphere16Click to Disk Troubleshooting with AppDynamics and OpsDataStore - AppSphere16
Click to Disk Troubleshooting with AppDynamics and OpsDataStore - AppSphere16
 
Digital Assurance - Today & Tomorrow
Digital Assurance - Today & TomorrowDigital Assurance - Today & Tomorrow
Digital Assurance - Today & Tomorrow
 

Similar to Cloud Readiness : CAST & Microsoft Azure Partnership Overview

Stackato PaaS Architecture white paper
Stackato PaaS Architecture white paperStackato PaaS Architecture white paper
Stackato PaaS Architecture white paper
Angie Hirata
 
Azure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish KalamatiAzure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish Kalamati
Girish Kalamati
 

Similar to Cloud Readiness : CAST & Microsoft Azure Partnership Overview (20)

Refactoring Web Services on AWS cloud (PaaS & SaaS)
Refactoring Web Services on AWS cloud (PaaS & SaaS)Refactoring Web Services on AWS cloud (PaaS & SaaS)
Refactoring Web Services on AWS cloud (PaaS & SaaS)
 
Build on AWS: Migrating and Platforming
Build on AWS: Migrating and PlatformingBuild on AWS: Migrating and Platforming
Build on AWS: Migrating and Platforming
 
Designing migration for azure
Designing migration for azureDesigning migration for azure
Designing migration for azure
 
Evolution of netflix conductor
Evolution of netflix conductorEvolution of netflix conductor
Evolution of netflix conductor
 
Stackato PaaS Architecture white paper
Stackato PaaS Architecture white paperStackato PaaS Architecture white paper
Stackato PaaS Architecture white paper
 
Why NBC Universal Migrated to MongoDB Atlas
Why NBC Universal Migrated to MongoDB AtlasWhy NBC Universal Migrated to MongoDB Atlas
Why NBC Universal Migrated to MongoDB Atlas
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source
 
Azure App Service Deep Dive
Azure App Service Deep DiveAzure App Service Deep Dive
Azure App Service Deep Dive
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
 
kreuzwerker AWS Modernizing Legacy Operations with Containerized Solutions 20...
kreuzwerker AWS Modernizing Legacy Operations with Containerized Solutions 20...kreuzwerker AWS Modernizing Legacy Operations with Containerized Solutions 20...
kreuzwerker AWS Modernizing Legacy Operations with Containerized Solutions 20...
 
Cloudera federal summit
Cloudera federal summitCloudera federal summit
Cloudera federal summit
 
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB AtlasMongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
 
AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)
AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)
AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)
 
Cloud Atlas Presentation Ignite Sept 2017
Cloud Atlas Presentation Ignite Sept 2017Cloud Atlas Presentation Ignite Sept 2017
Cloud Atlas Presentation Ignite Sept 2017
 
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer DemandPaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
 
Global Azure 2024 - On-Premises to Azure Cloud: .NET Web App Journey
Global Azure 2024 - On-Premises to Azure Cloud: .NET Web App JourneyGlobal Azure 2024 - On-Premises to Azure Cloud: .NET Web App Journey
Global Azure 2024 - On-Premises to Azure Cloud: .NET Web App Journey
 
DevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to HabitatDevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to Habitat
 
Azure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish KalamatiAzure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish Kalamati
 
(ENT211) Migrating the US Government to the Cloud | AWS re:Invent 2014
(ENT211) Migrating the US Government to the Cloud | AWS re:Invent 2014(ENT211) Migrating the US Government to the Cloud | AWS re:Invent 2014
(ENT211) Migrating the US Government to the Cloud | AWS re:Invent 2014
 

More from CAST

Application Performance: 6 Steps to Enhance Performance of Critical Systems
Application Performance: 6 Steps to Enhance Performance of Critical SystemsApplication Performance: 6 Steps to Enhance Performance of Critical Systems
Application Performance: 6 Steps to Enhance Performance of Critical Systems
CAST
 
Application Assessment - Executive Summary Report
Application Assessment - Executive Summary ReportApplication Assessment - Executive Summary Report
Application Assessment - Executive Summary Report
CAST
 
Cloud Migration: Azure acceleration with CAST Highlight
Cloud Migration: Azure acceleration with CAST HighlightCloud Migration: Azure acceleration with CAST Highlight
Cloud Migration: Azure acceleration with CAST Highlight
CAST
 
Shifting Vendor Management Focus to Risk and Business Outcomes
Shifting Vendor Management Focus to Risk and Business OutcomesShifting Vendor Management Focus to Risk and Business Outcomes
Shifting Vendor Management Focus to Risk and Business Outcomes
CAST
 

More from CAST (20)

Six steps-to-enhance-performance-of-critical-systems
Six steps-to-enhance-performance-of-critical-systemsSix steps-to-enhance-performance-of-critical-systems
Six steps-to-enhance-performance-of-critical-systems
 
Application Performance: 6 Steps to Enhance Performance of Critical Systems
Application Performance: 6 Steps to Enhance Performance of Critical SystemsApplication Performance: 6 Steps to Enhance Performance of Critical Systems
Application Performance: 6 Steps to Enhance Performance of Critical Systems
 
Application Assessment - Executive Summary Report
Application Assessment - Executive Summary ReportApplication Assessment - Executive Summary Report
Application Assessment - Executive Summary Report
 
Cloud Migration: Azure acceleration with CAST Highlight
Cloud Migration: Azure acceleration with CAST HighlightCloud Migration: Azure acceleration with CAST Highlight
Cloud Migration: Azure acceleration with CAST Highlight
 
Cloud Migration: Cloud Readiness Assessment Case Study
Cloud Migration: Cloud Readiness Assessment Case StudyCloud Migration: Cloud Readiness Assessment Case Study
Cloud Migration: Cloud Readiness Assessment Case Study
 
Digital Transformation e-book: Taking the 20X20n approach to accelerating Dig...
Digital Transformation e-book: Taking the 20X20n approach to accelerating Dig...Digital Transformation e-book: Taking the 20X20n approach to accelerating Dig...
Digital Transformation e-book: Taking the 20X20n approach to accelerating Dig...
 
Why computers will never be safe
Why computers will never be safeWhy computers will never be safe
Why computers will never be safe
 
Green indexes used in CAST to measure the energy consumption in code
Green indexes used in CAST to measure the energy consumption in codeGreen indexes used in CAST to measure the energy consumption in code
Green indexes used in CAST to measure the energy consumption in code
 
9 Steps to Creating ADM Budgets
9 Steps to Creating ADM Budgets9 Steps to Creating ADM Budgets
9 Steps to Creating ADM Budgets
 
Improving ADM Vendor Relationship through Outcome Based Contracts
Improving ADM Vendor Relationship through Outcome Based ContractsImproving ADM Vendor Relationship through Outcome Based Contracts
Improving ADM Vendor Relationship through Outcome Based Contracts
 
Drive Business Excellence with Outcomes-Based Contracting: The OBC Toolkit
Drive Business Excellence with Outcomes-Based Contracting: The OBC ToolkitDrive Business Excellence with Outcomes-Based Contracting: The OBC Toolkit
Drive Business Excellence with Outcomes-Based Contracting: The OBC Toolkit
 
CAST Highlight: Code-level portfolio analysis. FAST.
CAST Highlight: Code-level portfolio analysis. FAST.CAST Highlight: Code-level portfolio analysis. FAST.
CAST Highlight: Code-level portfolio analysis. FAST.
 
Shifting Vendor Management Focus to Risk and Business Outcomes
Shifting Vendor Management Focus to Risk and Business OutcomesShifting Vendor Management Focus to Risk and Business Outcomes
Shifting Vendor Management Focus to Risk and Business Outcomes
 
Applying Software Quality Models to Software Security
Applying Software Quality Models to Software SecurityApplying Software Quality Models to Software Security
Applying Software Quality Models to Software Security
 
The business case for software analysis & measurement
The business case for software analysis & measurementThe business case for software analysis & measurement
The business case for software analysis & measurement
 
Cast Highlight Software Maintenance Infographic
Cast Highlight Software Maintenance InfographicCast Highlight Software Maintenance Infographic
Cast Highlight Software Maintenance Infographic
 
What is system level analysis
What is system level analysisWhat is system level analysis
What is system level analysis
 
Deloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical DebtDeloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical Debt
 
What you should know about software measurement platforms
What you should know about software measurement platformsWhat you should know about software measurement platforms
What you should know about software measurement platforms
 
CRASH Report 2014
CRASH Report 2014CRASH Report 2014
CRASH Report 2014
 

Recently uploaded

Recently uploaded (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
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...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
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
 
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...
 

Cloud Readiness : CAST & Microsoft Azure Partnership Overview

  • 1. Partnering with CAST to extend and migrate CAST Highlight from AWS to Microsoft Azure Stéphane Goudeau CAST Highlight is a recent offering from CAST Software that enables companies to quickly and objectively measure the risk, complexity, and cost of their application portfolios. The solution provides exclusive insights into application risks and opportunities before any investment, rationalization, or retirement decision is made on an IT asset. A joint team from CAST and Microsoft worked to define rules that assess the ability of an existing codebase to migrate to Microsoft Azure. The team then integrated the rules into CAST Highlight and moved the solution itself to Azure. In this report, we describe the process and what we did before, during, and after the hackfest, including the following: • How we produced the rules that assess the ability to migrate to Azure • How we benchmarked the rules • How we migrated the CAST Highlight service to Azure • What the architecture looked like and future plans • Learnings from the process CAST Overview CAST is an independent software vendor that is a pioneer and world leader in software analysis and measurement (SAM). With more than $120 million cumulative investment in research and development, CAST provides the most advanced technology in the world to capture and quantify the reliability, security, complexity, and size of business applications. CAST introduces fact-based transparency into software asset management (including application development, maintenance, and sourcing) to transform it into a management discipline. More than 250 companies across all industry sectors and geographies rely on CAST to prevent business disruption and build a transparent dialogue with their service providers. CAST is also an integral part of software delivery and maintenance at the world’s leading IT service providers and independent software vendors. Problem statement Our first objective was to define rules that assess the ability of applications to migrate to Azure and integrate those rules into CAST Highlight. This was the more-complex task for our team.
  • 2. Our second objective was to move the existing application to Azure, thus profiting from App Service features such as auto-scaling and deployment slots. The existing application is a Java web app running on Apache Tomcat and using PostgreSQL as its database. This is a frequent scenario for web applications running in Azure, so we did not anticipate having any issues with this task. Solution, steps, and delivery The key questions that need to be answered are • Which applications could be moved? • How could they be moved? • How to prioritize them? To understand which applications should be moved (and when and how), it’s important to create a well- attributed catalog of these applications. The relative importance of each attribute can then be weighted and the prioritized list can be built. Analyzing the applications from a bottom-up perspective is aimed at providing a view into the eligibility, at a technical level, of an application to migrate. This should be based on both business and technical questions and on code scanning. Depending on the existing on-premises application, several Azure services may be considered. CAST wanted to propose for each service a technical analysis based on the existing code that would enable evaluation of the level of complexity of migration for each of the Azure targeted services. The final result of the assessment would be called the “CloudReady index.” With this value, any company can figure out the applications that have the highest potential value and that are best suited for migration. Business questions and technical questions would both be handled through an e-form quick interview. Technical questions would be answered automatically via a pure code analysis. The automated rules present the following attributes: • Dependent on a decision tree. o Analysis is to be executed on a specific targeted service; for example, the Web Apps feature of Azure App Service.
  • 3. o Analysis can be launched simultaneously on several services, such as Web Apps and Service Fabric. o Depending on the targeted service, rules can vary. • Weighting of answer for a given rule. o Unsupported feature corresponds to a negative score. o Supported feature corresponds to a bonus. • Rules classification: pattern, language, framework, technology, and so on. • Complexity: low, moderate, high. • Impact: code, framework, architecture. We consider the architecture to be impacted as soon we add a new Azure component (even Azure Storage). Code analysis is based on identification of specific patterns, such as the following: • Persistent files • Temporary files • App settings configuration • Registry settings • Shared caching • Application logs • Sensitive data storage protection • Data encryption keys • Users authentication • Code execution • Services and scheduled tasks • Inter-applications messaging The presence or absence of a pattern may be interpreted as a bonus or a negative score, with a specific weight depending on the impact on code, framework, or architecture. Each pattern is documented as in the following sample:
  • 4. Moving CAST Highlight to Azure We divided the process of migration into the following steps: 1. Analyze existing architecture and technical requirements 2. Propose the first version of the architecture 3. Start to migrate the application 4. Gather the experience 5. Propose the second version of the architecture 6. Iterate The original architecture consisted of the following: • A cloud storage subsystem with programmatic CRUD capabilities • A Java web application running on a Tomcat server • A PostgreSQL database running on a Linux server We wanted to leverage the platform as a service (PaaS) architecture and reuse the existing database. Front end The front end of CAST Highlight uses Java technologies. The only concern that CAST expressed was the level of Java support in Azure. That concern was eliminated after looking at a Java website that uses the customizable installation of Apache Tomcat for Web Apps. (Apache Tomcat is an open-source software implementation of the Java servlet and Java Server Pages technologies for Azure App Service.) The next step was simple. We just had to verify that the default web configuration was OK for this Java application before publishing the app.
  • 5. <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" /> </handlers> <httpPlatform processPath="d:homesitewwwrootbinapache-tomcat- 8.0.33binstartup.bat" arguments="start"> <environmentVariables> <environmentVariable name="CATALINA_OPTS" value="- Dport.http=%HTTP_PLATFORM_PORT%" /> <environmentVariable name="CATALINA_HOME" value="d:homesitewwwrootbinapache-tomcat-8.0.33" /> <environmentVariable name="JAVA_OPTS" value="- Djava.net.preferIPv4Stack=true" /> </environmentVariables> </httpPlatform> </system.webServer> </configuration> The CAST Highlight website was then deployed to Web Apps with FTP. Connectivity to the backend We used Azure Virtual Network integration to enable access from the web app to a database running on a virtual machine (VM) in an Azure virtual network. With Virtual Network integration, you don’t need to expose a public endpoint for applications on your VM but can use the private non-Internet routable addresses instead. Because we decided to use Resource Manager, it was quite easy to create a new virtual network configured with a gateway and point-to-site connection: In the networking UI of App Service, simply select “Create New Virtual Network.” Database layer Because a production release of “PostgreSQL as a Service” doesn’t yet exist in Azure, the only option was to install and set up PostgreSQL on the Linux VM deployed on the integrated virtual network to
  • 6. which we had connected the Azure web app. The database was then installed on this PostgreSQL instance. Storage We decided to use Azure Premium Storage. With Premium Storage, you can attach multiple persistent data disks to a VM and configure them to meet your performance and latency requirements. Each data disk is backed by an SSD disk for maximum input/output performance. This choice also enables CAST to take advantage of the Microsoft single-instance SLA of 99.9 percent uptime. At the end of this iteration, we had a very simple architecture, as shown in the following figure: In a future iteration, the PostgreSQL database might be deployed to a high-availability cluster on Azure Virtual Machines so that the CAST Highlight solution could guarantee business continuity of service. The future architecture should evolve in the following way:
  • 7. Migration steps We first created a web app from the default “Apache Tomcat 8” template. This approach proved to be useful because this environment corresponded almost exactly to the target. We used FTP to publish directly to the web app. The Catalina config file was modified to import three CAST-specific libraries that were not in the default environment. We established a connection to an integrated virtual network through the UI. And we cloned an existing Linux + PostgreSQL VM back end in this virtual network (by using AzCopy to perform a VHD blob copy and a PowerShell script to integrate it into the newly created VM). We did not encounter any specific issues during the App Service migration. Using Kudu with the default Apache Tomcat deployment helped a lot to identify what was required to launch the application. (It took less than 30 minutes for this part.) “The solution to publish a Java web app on Azure is really simple” was the shared feedback about the usage of Azure App Service in our context. Conclusion During the technical engagement between Microsoft and CAST, we leveraged skills from both companies in defining the CloudReady index rules and in migrating the existing Java + PostgreSQL app to a mixed IaaS-PaaS solution based on Azure App Service. Since then, we have completed a pilot project with a few ISVs, and the results have been immensely insightful. This enabled us to adapt the various weights related to questions and patterns.
  • 8. In the near future, with the anticipated business success of the CAST Highlight service, the architecture will leverage the autoscaling PaaS benefits and will evolve to eliminate the chance of any availability issues on the back end. The CAST team spoke positively not only about how the Azure cloud platform works but about how the Microsoft platform works with the open source. The CAST system is written in Java and uses PostgreSQL, so for successful migration it was necessary to ensure that the technologies used are supported and tested in the cloud. Both Java and PostgreSQL can be described as “first-class citizens” on Azure, and it was one of the important learnings for the team. The CAST Highlight solution is now available as a service deployed in Microsoft Azure. The resulting CloudReady-ness assessment from CAST Highlight enables customers to classify and prioritize applications before their migration to the cloud. The code analysis contains detailed key information on what needs to be changed.
  • 9. CAST Highlight should be of great help for any company that needs to migrate its apps portfolio to the cloud.