PaaSLane from Cloud Technology Partners is a tool that greatly facilitates the process of migrating an application to the cloud by comparing its source code to known safe best practice. It claims a 25% enhancement in migration time. We suspect that in many cases this will easily be achieved, plus PaaSLane removes a lot of uncertainty.
Don’t be confused by the “PaaS” in PaaSLane. It doesn’t refer to a Platform as a Service. PaaSLane is primarily targeted at IaaS (Infrastructure as a Service) migrations to Amazon Web Services, OpenStack, etc. We posted about PaaSLane 1 at a point when it was just starting to get customer adoption. Customer feedback has led to a significant number of enhancements in the product, as well as to a clearer understanding of its role in the application migration lifecycle.
To recap, there are various issues that routinely arise when migrating an existing application to an IaaS cloud. There may be hard-coded IP addresses or code that assumes access to a persistent local filesystem, or there may be an embedded email service used for outgoing email. None of these are particularly good ideas in an IaaS application—the IP addresses won’t be right because they are assigned dynamically by the cloud, local filesystems can’t be assumed to be shared and persistent (without a huge additional cost and limit on scalability), and if you are sending email from a cloud, you would be best advised to use the cloud’s email service to avoid it getting flagged as spam. Furthermore, there are some architectures that work well in the cloud: loosely coupled services that interact through HTTP/REST/JSON, for example. Applications can often be carved into pieces this way at the point of migration so as to allow effective use of elasticity.
None of this is “rocket science,” but there is a lot of grunt work, and it isn’t necessarily information that is widely understood and disseminated within development teams. Further, if the codebase that is being migrated has lost its original development team, the new team doing the cloud migration will have to resort to trawling through the code to find potential issues. Being programmers, they would likely write some form of regular expression parser to help them out, but that’s error-prone and really just re-inventing the wheel, because there are techniques in “code analysis” that can be used to define fairly sophisticated rulesets that can be applied to codebases to identify these kinds of patterns, and this is what PaaSLane does.
PaaSLane is essentially a code analysis toolset that works in both Java and .NET environments and is populated with continuously updated rulesets for identifying:
- Best practices for developing cloud applications
- Blockers that would prevent an application from running in a specific cloud platform
- Service recommendations for a platform’s built-in web services to replace third-party or custom-written services
- Optimizations that enhance an application’s compatibility, elasticity, or performance on a given cloud platform
- Governance and policy issues to help enforce corporate standards
- Code quality standards to improve the overall quality of an application.
Enhancements in 2.0 are as follows:
- C#.NET support as well as Java
- Enhanced filtering and exploring of detailed findings
- Interactive charting and filtering
- 250 new rules (up to a total of 400)
- Summary reporting via PDF
- Filtered Excel exporting
- Enhanced source code upload speed
- There is now a free trial at www.paaslane.com.
It is becoming clear that PaaSLane can operate at a number of points in a migration.
When planning a project to migrate applications to the cloud, a key part of the ROI calculation is the cost and timescale of doing the migration. PaaSLane gives you a simple way of identifying the areas of the codebase that need to be amended, so you can scope the project. If you are an end-user, it gives you a degree of certainty on costs and timescales. When applied to a group of applications, it also allows you to prioritize application migration by “cloud readiness” to ensure early project successes. If you are a cloud integrator, PaaSLane gives you a reliable way of pricing migration jobs, stopping you from taking on “suicide jobs,” or indeed from overbidding on relatively straightforward projects.
During the migration, PaaSLane gives you a plan for the development team to follow that points out the changes that need to be made, focusing their efforts to specific lines of code and avoiding a long process of code familiarization. The detailed steps in the plan allow progress to be measured against milestones. PaaSLane users can estimate the development effort against each change, customizing the estimates based on the availability and capability of programming resource.
Once the migration has occurred, PaaSLane can be integrated into a continuous build/test/deploy cycle to identify any further changes that should be made to the application. The key point here is that the cloud infrastructure layer is extremely dynamic. As new features are added to the cloud (and occasionally removed), new best practices emerge, and these are codified in new PaaSLane rulesets.
PaaSLane has a “hybrid cloud architecture,” which means either it is delivered as a SaaS solution (entirely run by Cloud Technology Partners on a cloud), it is delivered in-house as a software solution, or parts of the architecture can be run in-house, with other parts in the cloud.
PaaSLane has a web-based user interface with a scalable architecture based on asynchronously interacting services along the lines that its rulesets would recommend to its customers. There is a core server accessed by a web browser that manages the user interaction. Analysis is performed by a number of asynchronous profiler agents, which can also be triggered via continuous integration server. Reporting data is stored in anonymized form in an analytics big data store. SSL is used for interaction amongst components.