2015-08-28

The cloud has proven itself out as an infrastructure platform, enabling companies to quickly and cleanly scale applications up or down depending on demand, while bringing infrastructure costs in line with actual usage through an economic model that’s often more advantageous than making large capital investments in the data center.  But once your organization determines that a move to the cloud is the right move to make, how do you go about migrating your applications?  In an article this week on DevOps.com, Tom Batchelor from XebiaLabs offers some recommendations in making your cloud move a successful one.

“The first decision is perhaps the hardest: determining which variant of the cloud is best for your apps and your organization. Private or public cloud? Factors you should consider are: data security, privacy, legal compliance, network latency, whether the organization has the in-house resources to create and maintain a private cloud, and which cloud flavor provides the best combination of flexibility, compliance and cost-effectiveness.”

Once your organization is comfortable in what type of cloud variant is most appropriate comes the technical challenge of actually migrating your applications.  “Moving apps can be very difficult as many apps are complex and tied closely to the infrastructure landscape where they are deployed,” Batchelor writes, adding that, “Moving to a new landscape, such as the cloud, can be fraught with risks and challenges.”

To help manage the migration in a controlled and disciplined manner, Batchelor recommends evaluating an Application Release Automation (ARA) tool like IBM UrbanCode Deploy or CA Release Automation.  “These tools, according to Gartner, offer versioning to enable best practices in moving related artifacts, applications, configurations and data together across the application life cycle,” writes Batchelor.  Typically, ARA tools are deployed in a Continuous Delivery scenario to assist organizations in releasing faster or more frequently, but those same benefits apply to the use case of migrating applications to the cloud.

“At its simplest, an ARA tool helps developers to map application components and configurations to targets, such as binary code, connection configuration, database updates, queue definitions,and web service end-points. This helps to remove the coupling between the application and its host infrastructure.”

One of the features of an ARA tool that works really well for the purposes of migration is the ability to create a package that contains an application’s components and configuration settings.  According to Batchelor, “Nearly all ARA tools will enable you to define the application in the tool, ideally specifying a package for each version of each application.”

When it comes to deploying the database component of the app, ARA tools offer some basic capability for deploying SQL scripts, but if your scenario calls for a greater degree of control and tighter feedback loops, consider Datical DB as a potential solution.  Similar to ARA tools, Datical employs a model-based approach that allows for a greater level of automation and a finer degree of control, along with additional capabilities like simulating a database deployment before making any actual changes to a target environment.  Because Datical DB uses the native JDBC driver provided by the RDBMS, it can connect to any database instance, whether that’s physical, virtual, on-premise cloud or off-premise – all that’s required is a network connection.  Lastly, Datical DB comes with out-of-the-box integrations for the most popular ARA tools, allowing you to design database migration processes and call Datical from within the ARA solution, making your migration to the cloud that much easier to manage.

Show more