Living Hybrid in the IT World
Living Hybrid in the IT World
Being on solid ground and up in the air at the same time isn't easy. Let's look at the two types of hybrid cloud scenarios.
Join the DZone community and get the full member experience.Join For Free
See why enterprise app developers love Cloud Foundry. Download the 2018 User Survey for a snapshot of Cloud Foundry users’ deployments and productivity.
We get to hear the word “Hybrid” a lot. Hybrid cars, hybrid animals, hybrid solutions and hybrid clouds are some examples. For academic and business world, hybrid means, “derived or composed of heterogeneous sources.”
You might have heard a lot about hybrid solutions, hybrid clouds and going hybrid. When thinking through this I noticed two perspectives to look at.
Hybrid as a Hosting/Deployment Strategy
I have seen many places where architects, consultants, etc. claim we are following an hybrid cloud approach in our organization. These organizations had all their enterprise IT solutions hosted on-premises and now moving to the cloud. When doing so, their approach is move a non-mission-critical app to the cloud first, learn from it and and follow it for more apps. In my opinion, this is a hybrid deployment strategy. They keep some apps in cloud and the rest on-premises. But to achieve a functionality, most of the times they operate independently; there is no involvement of cloud and on-prem components together to achieve a functionality.
Hybrid as a Solution Strategy
Other scenario is a solution consisting of components deployed in both cloud and on-premises. To achieve a functionality, both components should function together. For example, consider an integration service running in the cloud which talks to a third party service hosted by some other vendor/partner and also talks to a service hosted on-premises to update your database. During one request to the integration service, it also touches the on-premises component. This is a hybrid solution.
Challenges in Adopting a Hybrid Strategy
Adopting a hybrid solution strategy is more difficult than adopting a hybrid deployment strategy. Some of the challenges you face in both strategies include:
- On-premises components need to be exposed to the cloud components (for a hybrid solution).When exposing the on-premises components security becomes a key concern. How do you restrict access to only your cloud components and not to anyone else? There can be different options such as protecting with credentials, IP whitelisting, accessing via a VPN, etc.
- Operations team needs to follow different approaches when maintaining and monitoring the cloud components.
- There may be concerns on sensitive data going out of your data center. If an API call is carrying sensitive information and it is hitting a cloud component, you have reasons to be worried about it.
- Additional latency introduced by the cloud to on-premises or on-premises to cloud communications.
If I was adopting a hybrid strategy I would prefer to have following characteristics in it:
- Avoid any cloud to on-premises communications. This removes the requirement of exposing the on-premises components to cloud.
- I would prefer a SaaS solution to be used as the cloud component rather than having to maintain some components in the cloud by myself.
- Route non-sensitive data through cloud and route the sensitive data through on-prem components
But, one thing to note is, its not easy to adopt a hybrid strategy with above characteristics. I’ll write about a hybrid API Management strategy with above characteristics very soon.
Until then, your thoughts are welcome…
Opinions expressed by DZone contributors are their own.