Software-Defined Networks (SDN) and the Cloud

This is a re-post of my article, originally published on The Ravello Blog.

SDNThe advent of the cloud has brought with it major changes in the size and nature of networks. These changes pose new challenges for network management. Software-defined networks (SDN) have the potential for helping network managers cope with their ever increasing workloads.

In the public cloud, the network could be very different from what it is in the datacenter. By enabling the automation of network configuration, Software-Defined Networks make it possible to manage network interfaces in the same way as software.

SDN presents the network administrator with the option of handing some or all aspects of network provisioning and management to a third party. The configuration of the network, which includes things such as host names, IP address and firewall rules, is an essential part of an application’s configuration. The configuration can be performed on-demand through the same interface or using an API.

This approach is particularly relevant for large-scale enterprise deployments, where large workloads necessitate automatic on-the-fly configuration, and sometimes even multiple replicas of identical networks, maintaining complete segregation.

The SDN Market

The main players in today’s SDN market are Cisco and VMware. With the acquisition of NSX, VMware is currently promoting its SDN offering as the next step in the evolution of virtualization. NSX lays down an “overlay” network on top of your existing network with the aim of saving time on configuration, improving performances, and lower costs. Cisco, on the other hand, offers a solution that combines SDN and infrastructure. It enables you to define and enforce policies through application-centric infrastructure.

Unfortunately, SDN implementation is not easy – it is not compatible with default networks, and requires a lot of work on infrastructure.

Prospects for SDN Adoption

Despite the optimism of SDN proponents, it is likely to take time before the adoption of SDNs truly catches on. When the concept of server virtualization was first introduced, it was difficult to convince the enterprise that it was reliable to virtualize their workloads – to recognize their potential and make the necessary adjustments to enable their adoption. Similarly, the spread of SDN adoption will probably be gradual. SDN faces the challenge of overcoming decision-makers’ fears of losing control. It takes time to establish trust in any new technology and changes in organization culture rarely occur overnight. Ongoing developments in network virtualization and SDNs definitely merit monitoring and consideration.


The Multi-Cloud Future: Challenges and Benefits

This is a re-post of my article, originally published on The Ravello Blog.

sunset-cloudsOver the last year, as enterprise awareness of the cloud has increased, more and more enterprises outsource their workload deployments to the cloud, in most cases to a single cloud provider or vendor. But the market is rapidly changing with more and more options becoming available from a variety of public IaaS providers, including Amazon, HP, IBM, RackSpace as well as private offerings such as Openstack and VMware.

The new deployment options make it possible to mix and match platforms and cloud providers, as well as to set up hybrid clouds where you keep some of your resources in your on-premises datacenter or private cloud while migrating parts of your workload to one or more public clouds. In this post I will elaborate more about the challenges, as well as the benefits of a multi-cloud environment.

Challenges of multi-cloud deployment

  • Complexity – The biggest challenge of multi-cloud is its inherent complexity – different technologies, different interfaces, different services, and different terminology. There is currently no standardization of terminology, instance sizes, or methodologies across cloud vendors.
  • Interoperability – or lack thereof – between different cloud vendors. This necessitates using workarounds or APIs to make the application set up work on different platforms and clouds. Specialized tools, such as Ravello, can be used to achieve seamless deployment on different external cloud providers.
  • Management overhead – Multi-cloud requires a higher level of expertise in determining what to move to the cloud, where, when and why. This brings with it an increase in overall management overhead, including investments in VPN connections and monitoring. The implementation of different platforms requires expertise in a more diverse range of subjects.

And of course, as with any public cloud solution, the issues of compliance, security, and availability must always be taken into consideration.

Benefits of multi-cloud

  • Autonomy – The ability to deploy your applications on different cloud providers has the clear advantage of reducing dependency on a single vendor. The resulting lower level of lock-in improves your position in negotiating with vendors for better SLA and/or costs. The ability to easily switch vendors means that you can take advantage of the most attractive offers available at any given time.
  • Hybridity – You can keep some applications on-premises and others on one or more public clouds, based on a variety of considerations, such as security, performance or cost optimization. For example, a hybrid cloud solution can also be used to provide faster service, particularly if your customers are located in different countries. Deploying your applications on a cloud that is closer to your customer’s geographical location can result in better response time and performance.
  • Extended capabilities – Different cloud providers support different platforms and offer constantly changing packages of capabilities. Some features, for example, Database as a Service, might not be supported by all cloud providers. It might be a good idea to shop around, comparing the various cloud offerings to identify which providers offer the best fit for you. You might prefer to pay more for specific deployments if it means you get special capabilities, while continuing to take advantage of lower costs offered by a different provider for resources where those capabilities are not relevant.

Bottom line

IMHO, the benefits of utilizing multiple platforms heavily outweigh the challenges. If cloud management is in place, including policies, automation and transparency, moving to a multi-cloud platform configuration can help you lower costs and improve performance. Over time, focusing on product development that is not dependent on a specific single cloud provider will also contribute to creating a better, more robust product that is supported on multiple platforms.