Showing posts with label PaaS. Show all posts
Showing posts with label PaaS. Show all posts

Wednesday, 10 April 2019

Why migrating to cloud based open-source database makes sense ?

Over the years businesses in the SME and Enterprise segment build applications and deployed prepackaged applications on multi-modal commercial RDBMS systems  such as My SQL sever, Oracle and DB2. These DBMS was first designed in the 70s when optimal utilisation of memory and compute resources was critical for performance of application transactions and query processing of various decision support systems.

Since then these RDBMS have evolved into a common IT staple for managing clusters of structured and unstructured data in business environment of any sector. In fact, they have a strong influence on how applications were designed and built in the past.

Most RDBMS vendors also built prepackaged applications that resided on their RDBMS systems further locking customers into their environment, though it must be noted that many of these applications were the foundation for business process automation and integrations that drove workforce productivity.

The complexities of running open-source databases in house..

Growing data and high cost

While many of these solution resulted in high performing systems of the time (pre cloud era) over the years businesses started to incur high cost to maintain the exponentially growing organisational data due to automation, mobility, web and sensors. These included DB licenses, ETL related tools and software licenses, storage, compute, and increasing number of human resources to administer performance of the data layer empowering various business processes.

Migration to open-source databases..

In much recent times, businesses have been experimenting with open-source databases for some applications where data growth is significant in order to cut database licensing cost. But this attempt resulted in various problems such as limited features (or features are not as robust as commercial systems), steep learning curve, expensive support and constant config, bug fixing, patching and performance tuning activities. While businesses were able to escape the licensing cost, maintaining a dedicated database team that keeps the open-source databases at an optimal level was a time consuming and arduous effort on the organisation's part.

Scaling based on forecast demand

To add salt to the pain, all of these cost are incurred based on forecasted demand as most businesses are scaling systems in a conventional environment (without cloud capabilities) which means cost is incurred way before the business hits the projected demand. Though this is a universal problem with most conventional IT architectures that lacks cloud capabilities to instantly provision, scale, update, patch and de-provision based on internal demand.

New cloud based applications and microservices...

As we enter the cloud era, application architectures started to take effect of the SOA capabilities of cloud, with high levels of abstraction in every layer (e.g infrastructure, data, intergration and application).

A polyglot architecture where developers can take advantage of the best DBMS, programming language and other ready cloud services including AI, IOT, and Bigdata that accelerates application delivery, begin to take center stage. Apart from SQL type of DBMS, no SQL requirements to support other data types such as value store, document, graph, time series and in-memory DBMS started to emerge as demand rises to 40%. All of a sudden, purpose built DBMS were starting to look much appealing to developer communities every where as opposed to multi models.

Choosing to build such an applications on commercial database can make projects less viable in terms of both cost and feature sets required for a cloud environment where service orientation and scaling instantaneously based on demand is of high importance.

Why cloud based open-source databases are a good option?

Thanks to increasing popularity of public clouds, open-source databases today are mature enough in terms of features and support for wider adoption in businesses including large enterprises.

Overcome management constraints posed by on premise deployments...

It's common to find MySQL, PosgreSQL, MariaDB, MongoDB and countless others in organisations' on premise environment, underpinning many critical business application both prepackaged and customised, but then those implementations are plagued with similar issues surrounding commercial databases such as scalability, availability, security and high operational cost to keep it updated and running.

Cloud providers' DBPaas services eliminates this issue by removing day to day operational complexities from businesses that just want to use the services to build various business solutions to increase quality of engagement with existing and new types of audiences.

Wider adoption and value extension is now possible....

With database administrative task out of the equation, tech teams can now focus on migrating more applications on open-source databases for better value and standardisations within the organisations.

High priority business requirements can be addressed much faster than before with available team and funds, curbing the need for any shadow IT by LOBs.

Refactor apps for the cloud..

Another indirect benefit of this exercise is to modernise legacy applications sitting on premise environments. The migration process is an excellent opportunity to learn more on what pure cloud based databases can do for some applications.

Many cloud databases such as Aurora, Dynamodb, Azure, Google Cloud Bigtable, Google Cloud Datastore, Aspara and DocumentDB are quickly maturing in feature sets and support for other open-source database engines especially MySQL, PostgreSQL, MariaDB and etc. These cloud databases are designed for cloud applications and is highly service oriented to scale unprecedentedly in a highly available and secure manner.

Taking advantage to create low risk initiatives to migrate at least some applications to these cloud databases can result in elimination of years of technical debt inflicting your IT environment.

So, where to get started ?

Identify the open-source equivalent of your commercial database/s

Best method is to start from DBMS systems that contributes to a significant share of the licensing cost and prioritise those pending upgrades and require additional licensing. Identify how many applications are affected, documentations, customisions and integrations to external systems.

Research potential open-source databases and their fit to replace your current commercial databases. Upon a selection, start segregating apps that can and cannot be migrated to the new target database.

Identify cloud based open source database providers....

Next research and identify cloud vendors who provide DBpaas services for open source and cloud based databases. Most cloud vendors such as Aws, GCP, Ali, IBM, Azure provide services for MySQL, PostgreSQL, Maria DB, MongoDB, Firestore and other popular open-source databases. They manage bug fixes, patches, upgrades and scaling, along with day to day operations enabling a far less number of DBAs to manage a bigger number of database clusters.


Rate migration complexities for each app...

Once service providers of choice are identified, explore portfolio of tools provided and recommended by user communities (3rd party) to make an initial assessment on migration complexities of the selected applications. When choosing or building migration tools, think of repeatable usage for both data and refactoring requirements.

Once the potential tools are selected run some initial rest to rate apps, based on migration complexities (single step, multiple step, data size, refactoring levels) and other criterias such as critical app, number of users and etc. At the end of the phase select your pilot case or cases.

Contact 1 or 2 cloud providers to start experimenting...

Next contact your current or suitable cloud providers to compare services and pick one that best suit your business in the long run. You can decide this based on range of service offerings, supported open-source DBMS and cloud databases, price-service effictiveness, cloud eco system offered (other services, partners, user communities, availability zones and etc).

Upon selection of vendor, start experimenting your pilot cases ranging from low to high complexity. Document challenges faced and resolved with future migrations in mind, which means processes must be repeatable and automated as much as possible.

Create a migration schedule and milestone for large scale impact

Having assessed pros and cons of migrating to open-source databases operations to the cloud, build a schedule for migrating apps to the cloud and start executing them in line with business objectives. Leave room for changes in the event new priorities enters the business.

Start large scale migration of all target environment..

Upon completion of pilot migration case, refining and further automation of tools start to migrate applications with low complexities first to the new cloud based open-source database, one at a time.

Address any refactoring needs and test each service before moving to the next, till all low complexity migrations are completed. Repeat the process for complex migration projects. Keep updating schedules, findings and refine tools if neccesary.

Relieve resources for high impact projects

At the end of this process, your team would have not only realised licensing reduction and much stable performance of your databases powering critical applications but eliminated at least some technical debt around critical applications and relieved valuable IT resources for other high impact projects to build new business capabilities, improve access to business insight and performance of queries instead of maintaining 'lights on' projects.

Navigating Values - Cost, Technology Debt, Data ROI and IT Resources

Often a open-source database adoption is initiated due to lack of funds for commercial databases or to cut back on commercial licenses that results in millions of dollars of recurring cost.

Cost

But moving to a cloud provider and consuming DBpaas services results in cost reduction in all types of licensing including those used in ETL processes. In addition , users need not incur cost until a demand arises. This changed how tech organisations plan for future needs, while allocations are made, they don't have to be spent until need arise.

Technology debt that hinders availability, scalability and security design

Another key value is the migration process trigger application modernisation activities to refactor key business solutions on premise to scale and perform better in the cloud both public and private. Migrating to cloud based databases such as Aurora and Azure increases these values by leveraging services enabling high availability, concurrency, business continuity, security, and scallibility.

IT Resources

These values are best navigated with scale of adoption horizontally and vertically. The wider the adoption the higher the value accross the organisation, freeing resources time, money and people to do what matters most to your growth - improving experience for customers, creating business innovation, increasing efficiencies and speed to react to market opportunities.

Sunday, 24 February 2019

Making Sense of Public Cloud Investments

The public cloud infrastructure services (Iaas) market, according to Gartner's estimation is reaching $60 billion in 2019 and is growing at 27% YoY (fastest growing cloud services segment) from the previous year. Assuming Asia contributes 25% of the global share, turns the region into a critical geo for cloud vendors to battle for market leadership. 

However, cloud practitioners in Asia are still somewhat battling with what is considered as decade old cloud myths evolving around security, compliance, IT control and short term ROIs when conversing with regional customers riding on conventional structures and work cultures. This includes financial institutions, communication service providers, retailers, manufacturers and other asset intensive industries.

While these are all valid concerns, over the years premium cloud vendors have more than proven that their infrastructure and platform services (IaaS, PaaS) are superior to any single institutional  environment in terms of performance, security, reliability and overall economics to sustain just about any type of workloads. The public cloud values are now evolving rapidly with introduction of newer, advanced services in opensource databases, artificial intelligence, low code coding, and running mission critical workloads, enabling businesses to gain better control of operations as they cut waste, optimise performance, develop the much needed new capabilities and differentiators faster than ever. 

Open-source Database Services

Businesses have been dabbling with open-source databases (as well as open-source operating systems, libraries and tools) even before cloud computing services emerged and was aware of the potential to free organisations from growing commercial database licensing burdens. However, managing these open-source databases required additional training, operational and maintenance resources, apart from the unpredictable fixes and releases from the open source community. These issues limited the usage of open-source databases such as PosgreSQL to a small number of non critical, in-house development projects and applications in the past. 

This scenario changed in the recent years as cloud computing companies started to offer fully managed open-source database services such as PostgreSQL, MariaDB, MySQL and many others. Businesses start to increase adoption overnight by consuming cloud based open-source database services for existing and new applications while gaining new efficiencies, never possible before. The polyglot nature of cloud native development, where multiple types of databases and models are deployed in an application composed of micro-services and API calls only drives this trend further. 

Popularity of open-source databases according to DB Engine Ranking site, is about to converge with commercial databases in 2019 or in the early parts 2020. 

Artificial Intelligence, Machine Learning, Deep Learning

Explore pre-trained ML models

If new to artificial intelligence and its sub domains machine learning, deep learning and transfer learning, take advantage of the various pre-trained models offered by public cloud vendors such as Google, AWS and Microsoft to perform prediction, classifications, natural language processing (NLP), speech processing, computer vision (video, image and object recognition), decision support and planning tasks. 

Start by experimenting solutions to business problems while inflating returns on organisational data assets. This provides an opportunity for the business to quickly reap benefits from readily available models where the team need only prepare data, select features and train the model for required tasks (e.g predictions, classifications).  Trained models can then be deployed with other production applications and systems through APIs to apply learnings on new data samples.

Building custom models..

As the internal team gain experience and get familiarise with ML projects, commence a process to create step-by-step AI playbook to define and prioritise business problems that can be addressed with AI, data preparation, algorithms selection, and developing a model to make predictions. This exercise should involve critical members from business, data science and the engineering teams, ideally aligned to addressing growth challenges, resources optimisation, innovation and enhancing customer experience. 

Machine learning and deep learning frameworks such as Tensorflow, Pytorch, MXNET, Keras, Caffe, Scikit, Microsoft Cognitive Toolkit and Theano, that comes readily packaged with interface, libraries, tools, pre-built and optimised components facilitates fast development of AI models without getting into the details of underlying algorithms and complex architectures. 

Pick a cloud vendor for ML-as-a-service that best fit your needs...

Top public cloud vendors such as AWS, Microsoft Azure, Alibaba and Google provide support to most of the frameworks mentioned above for custom building models apart from their pre trained model offers for common business problems. New developers can benefit from starting with frameworks such as Keras and delve deeper into Tensorflow or other suitable frameworks as they get accustomed with the building blocks and programming languages.

Develop cloud native applications faster ...

Today a challenge sparks an idea, an idea turns into a prototype and a prototype transforms into a multi-platform first release in just matter of days and weeks. Aside from core infrastructure services, cloud vendors offer various advanced services ranging from devop, language SDKs, container orchestration, serverless computing, no to low code development platforms (both proprietary and open-source), APIs, code libraries to ready templates to help organisations accelerate application development arising from sudden business needs. 

Most post cloud applications are series of micro-services connected to one another via APIs leveraging languages, databases and code bases most suitable for the required function and the supporting technical environment.

No to Low Code Platforms

In addition, low code platforms such as Mendix, Outsystems, Google App Maker, Appian, and Microsoft Power App empowers traditional developers, IT professionals and to a certain degree the average business users to accelerate software delivery for business use cases made up of common features and components by simply utilising existing templates, forms, objects, drag and drop of prebuilt features.

Ensure performance of mission critical applications....

Learn which of your mission critical applications are suffering from intermittent or persistent performance issues affecting business processes critical to productivity, customer experience and revenue activities. Cloud vendors offer various services and pricing plans to optimise business applications from SAP, Oracle, Microsoft, IBM and others where data grows exponentially with transactions in time.

Exploring public cloud offers for the aforementioned type of applications can reveal credible areas of savings, operational simplification, performance improvement, speedy delivery of new business requirements, higher utilisation, improved security and compliance. Keeping a revisable record of requirements and working with cloud vendors to formulate cloud contracts to efficiently counter all planned and unplanned workloads can free internal resources for myriad of higher impact business activities.

Know values, learn constraints and strategise for long term...

Ultimately cloud values can vary significantly from business to business depending on the nature of operational model and the overall ecosystem. The four areas mentioned here are general enough for most sectors, though some businesses might benefit immensely from other emerging tech such as augmented reality, IOT, 3D or bigdata platform services.

In addition, identifying constraints that prohibit enterprise architectures from extracting full potential of public cloud eliminates aimless unproductive explorations. For instance legacy apps on rigid centralised architectures that may not gain much efficiencies when moved to the cloud.

Finally having a solid long term strategy, helps. For instance all new development and deployment to take the 'Cloud First' approach, or maintaining a hybrid cloud environment with only unpredictable workloads moving to public cloud or 'Cloud Only' approach where the internal teams build in-house brokerage capabilities to fully monitor its environments on multiple public clouds and perform various optimisation as needed.

Wednesday, 6 February 2019

How to Choose a Public Cloud ?

This is a popular question, especially for startup and SMB leaderships, whom may not have an advance tech team at their disposal to support with queries and selections when picking a public cloud that returns the most value for new development or migrate existing workloads. Please note that these questions and methods are skewed towards screening IT infrastructure and platform service provider and not so much the Saas provider (we might cover that in another piece of cheat sheet separately).

Ask Questions
Here are couple of things (in no particular order), that your team can use to prepare before meeting the service providers.  

Please note that it's a really bad idea to meet them unprepared, as it provides a white canvas opportunity for the vendor to paint anything they like. It is highly recommended that you avoid such situations. 

Here are the questions/ areas worth exploring;
  1. A list of current IT operations (e.g. applications, tools, analytics, security, data-warehouse and etc.) and technologies in place (e.g Operating systems, databases, development tools and languages, security, infrastructure or even other clouds in place).
  2. A list of projected/strategic business activities and their automation/digitalisation needs (e.g mobile app, big data analytics, buyer & seller optimisation, etc.)
  3. Customisability of compute and memory requirements (in other words, how much control do you have on your VM or VMs).
  4. Pro and cons of owning the PaaS level...
  5. Standard tech questions - Interoperability, portability,  new app development cycle, security, redundancy, backup and recovery features.
  6. The type and size of technology eco-system that the cloud provider connects to - here you are simply looking for three things; suitability of the technology to your operation; standardisation and; provider that connects with a larger eco-system of technologies (e.g Hadoop, ML, AI, Blockchain, Mobile App Platform and a host of other opensource pieces).
  7. Pricing mechanism and projections for on-boarding; utilisation blocks (e.g by minutes, hours, monthly, yearly, types of workload - predictive and unpredictive); exit or off-boarding (be aware that some vendors charge even during off-boarding to migrate data and other intellectual assets off of their platform – this happens when you complete contractual term and don’t plan to renew);
  8. Discount and rebate applications - when you get them, and when you don't (ask both questions)?
  9. What is the lock-in period (e.g 1 to 3 years). What happens if you exit prematurely. What is the unnatural discontinuation cost?
  10. What service guarantee does the vendor provide (e.g. SLA, compliance, security)?
  11. What happens when vendor fail to deliver service (system performance, security, data, compliance)”according to contractual term? 
  12. What support procedures are in place when a support request is registered?
  13. What if you need to scale ? How quickly you can scale the needed footprint?
  14. What about trainings and upskill activities?
  15. What SMB focused programs does the vendor have in place? Some service providers might have special programs for you to mingle with other users in your category and connect. This can be an added bonus to your business as you can tap onto the knowledge and resources of a wider network.
Request for a Pilot Test
if you are happy with the information gathered through the pre-meeting research and cloud salesperson's answers to aforesaid questions, move on to a test request for the tools and  platform services in question.  Scope the test areas according to your procurement needs to stay on course with your current needs. Look out for performance, usability, flexibility, scalability, security and inter-operability results to support and corroborate information you gathered (unless the test fail to do so).

Tap Talks in the Grapevine
It’s a good idea at this point to fraternise with other fellow startups and SMBs who may have already been using the services first hand.  Their experience could be a valuable addition of information to your decisions. Though, when collecting information from informal sources such as this, be aware of the timelines - a problem or disadvantage that existed a year ago may not apply anymore as cloud companies improve (especially the largest 3 or 4) at a rapid pace.

What is a Satisfactory Outcome?

What are you looking to map with these initial questions and explorative activities?
  1. Your IT computing and operational requirement based on business roadmap.
  2. Suitability of the service provider/s and their offerings to support your business and future growth.
  3. Good understanding of tools and services recommended by vendor before you embark on them.
  4. clear idea on pricing matters; discounts and rebates applications; contractual terms.
  5. Outline or scope of duties and responsibilities between you and your vendor in regards to your IT footprint. 
  6. Cost of discontinuation of business relationship upon completion of contractual terms.
  7. Cost and consequences of discontinuation of business relationship due to premature termination of contract.
  8. Your rights when service provider fails you? e.g service delivery, compliance, security or data breach.
  9. Exit and migration path to other clouds.


Finally, a piece of useful advice to stay productive and avoid frustrations. Expect for contact points to change at anytime while dealing with vendors or any external parties for that matter. As such, it would be wise to document all requirements, arrangements and agreements to terms, contractual and non. This will help you save time in the reestablishment and reinstatement of such interactions which looses sight due to change of contact points.

In addition, get feedback from both business(finance included) and technical team members on the selection before concluding.

Happy Screening!!!!

Thursday, 4 October 2018

Google Summit 2018 - Kuala Lumpur

Overall a good event but was crowded with some 2000 people at venue, making conversation and moving around the event hall, real hard.


As expected, every stream emphasised on artificial intelligence, machine learning and deep learning infusion in Google products such as G Suite and various other cloud offerings. Server-less computing or Google Cloud Function range of services for building application back ends (IOT, api gateways, and etc), real time data processing, virtual assistants, chat bots, image analysis and text analysis for different use cases was another area of highlight.

Tools, documentation and support for developer community was shared with various strategies to cut development work, transition to micro-services architecture, adopt containerisation and get solutions to market a lot quickly.

There seem to be quite an uptake and interest from enterprise customers too, with many re-platforming traditional applications or deploying new applications on GCP. Local CSP, Celcom Axiata seem to have moved their Drupal based portal, e-commerce system Magento, analytics, and a few other business applications onto GCP. AirAsia and Maxis, each presented a successful use case as well.

Startups as suspected, are starting their business journey by default on public clouds such as GCP and almost all that presented are early stage players. Though, I was really hoping for a late stage startup story, to learn more on how growing organisations are transitioning and juggle between public cloud and in-house IT footprint.

There were no mention of interoperability or portability of solutions in any track, though RedHat did have a slot to talk about their cloud management and application packaging solution including Ansible Tower.


As for me personally, I didn't discover anything particularly new, but then again, I am part of at least 12 different global discussion groups on FB that keeps me on track with the tech world.

However, understanding how Malaysian customers are seeing success with GCP made it worthwhile. Though, customers seem to be sticking to proven use cases alone and I did not come across anyone innovating a disruptive new service just yet. Many spoke about CapEX, risk reduction, business relationship and time to market as key drivers and values.

None of the customers made any reference of internal cloud teams responsible for drawing their cloud strategies and risk management measures or exit plans to protect against vendor lock in, cost spiral or security concerns. Perhaps we will see those topics to appear in the coming years as adoption matures and customers start to ramp up internal strategies.

Lastly, there were 3 women speakers that I noticed - one from Google and the rest from customer organisation. Among attendees too, the number of women can be counted.

None of the tracks I attended accommodated Q&A somehow (data insight track) which was a big letdown. Perhaps, this was done to keep to the schedule.

Wednesday, 19 September 2018

Application Portability when Switching Clouds

Every business develops and runs a fair bit of custom code applications to automate value chain delivery to customers, partners, employees, and even supplier interactions. Highly progressive businesses are driven by data which means these businesses continuously build, integrate, stage and deploy custom code to improve a range of outcomes namely process automation, user experience, operational visibility, compliance, and governance at dizzying speed.

Cloud services both IaaS and PaaS are natural choices today for development teams when it comes to realising business services internal and external. In fact, Rightscale recently cited in their ‘State of the Cloud Report’, that in average 48% of SMB workloads run on public clouds.

While healthy public cloud adoption is projected to continue among SMBs at slightly higher pace than enterprises, there is no denying that decision loops concerning the tools and cloud services selected are primarily dependent on the development models (continuous integration / continuous delivery) in practice and often comes with some degree of compromise made between available budget, source code control, speed of development, application portability and interoperability in the future.

Requirements and priorities change

Business priorities change as product or service adoption increases, market factors open new opportunities, competitive landscape tightens or new innovations enter the playing field, all of which involves scaling at a pace never imagined in the pre-internet era. Public clouds large and small, without a doubt power millions of businesses to build solutions quickly and cost effectively with a lot less overhead to meet growth objectives. However, a judiciously selected cloud partner today may cease to be relevant in a future point.


Over time, businesses may need to reassess relationship with existing cloud providers for various reasons ranging from  cost optimisation, security, governance, vendor lock-in, overall performance, cloud bursting to new technology requirement for AI, IOT, VR/AR/MR, 3D and mobile, making application portability a key concern for businesses wishing to switch cloud providers.

Switching public cloud providers in alignment with business goals

Many ISVs for instance may have chosen to develop and deploy new age applications such as IOT for instance, on a certain PaaS service to reduce cost of building the infrastructure and platform themselves. As business grows, the once economically viable solution begins to blow out of proportion financially as usage base explodes. In this case the business is left with two scenarios; one they could look for another provider with similar or equivalent PaaS services at better price points; the second is to choose a IaaS provider and construct their own PaaS layer for more control over application dependencies (e.g. data services, runtime, OS, networking, encryption, and virtualisation).

Application re-platforming processes and routines differs cloud to cloud

The cloud platform on which an application runs and DevOp environment determine how tools (e.g. Ansible, Chef, Puppet and etc.), automation and standardisations are applied in simplifying deployment when migrating applications from one cloud provider to another.

While a standard process perhaps can be established to automate packaging, conduct optimisation, generate VM or container images and orchestrate deployment artefacts, the knowledge sets or expertise involved varies from one cloud platform to another. Though, there are several steps and best practices that can be adopted by DevOp to ensure portability of applications and data today.

Choose cloud providers that support Open Virtualisation Format

Chose to work with cloud service providers that support widely accepted application packaging formats such as the ‘Open Virtualisation Format (OVF)’, formulated and recommended by the Distributed Management Task Force (DMTF). This method standardises packaging of virtual machine based software regardless of cloud platforms which means migrating to a new environment or multiple clouds is swift and resource efficient.

Containerise applications

Another best practice that is gaining momentum recently, is to re-platform applications running on virtual machine instances to a container based platform such as Docker. Containerisation packs application code and all dependencies in a container image that is a repeatable artefact and multiple containers can be deployed on a single VM sharing the same resources. Aside, from the obvious administrative efficiencies and cost savings, this method is ideal to support microservices development architecture (or polyglot architecture) and distributed applications on serverless cloud instances and virtual machines.

Container orchestration and cluster management solutions such as Kubernetes and Docker Swarm facilitates orchestration, clustering, scheduling and integration of large number of container images and typically is sufficient to scale applications as needed. Consider both tools and a proof of concept with each technology, using real-world workloads.

Open standard interfaces and APIs

Open APIs and vendor specific APIs (extensions of SOA architectures) allow users to move data and expose services between clouds while masking complexities behind any one interface (e.g. functional, admin, business). In a real world situation the use of vendor specific APIs are unavoidable even in a ‘open standards friendly’ DevOp environment, especially when the business footprint in a particular cloud is significant.

API management is mandatory in maintaining balance and isolating refitting work when necessary. Security concerns should be maintained throughout the linkages by deploying third party access rights management and other tools, as data securely travels between clouds.

Adopt multi-cloud management platform

Another method to facilitate cloud migration is to implement a suitable multi-cloud management platform that integrates multiple public cloud environments (e.g. AWS, GCP, Azure, Digital Ocean and etc.) including private clouds. This creates an overlay that masks underlying platform differences that allows for easier movement of applications, workflows, and data.

Build own PaaS

Vendor lock-in and portability issues are higher in PaaS services than in IaaS. One option to reduce such reliance is to build an in-house PaaS with tools such as Dokku and Flynn, an open source platform solution for everything that is needed for running applications in production.

Conclusion

Portability and interoperability between clouds is a journey that begins from the point a business on-boards its first cloud service.

Containerising applications, automating deployment processes across multiple clouds, building tools, creating a controllable PaaS layer or at least selecting one that has an equivalent alternative, leveraging open technologies wherever possible, using standard APIs and abstracting integration layers are some of the best practices that can be adopted throughout a cloud lifecycle to ensure smooth exit when need arises. These same best practices reduces vendor lock-in,  unexpected cost spirals, time and material needed to move workloads across public clouds.

Applications and systems with below average portability scores simply don't make the cut as a good migration target to other clouds. In some cases, it might be even easier to just recreate them on a new platform.

Migration processes too must be planned and executed in systematic manner with necessary tooling and automations in place to create a repetitive migration asset that includes the learnings that can be shared with the entire team.

Last but not the least, when porting over to the new cloud, systems must be fully tested and stabilised prior to terminating the old environment in ensuring business continuity.