Click to learn more about author Andrew C. Oliver.
Companies are pursuing a hybrid cloud architecture in order to facilitate their move to the public cloud, upscale existing applications, and secure private data. The term “hybrid cloud” is used loosely, sometimes just referring to having some applications in the cloud. A truly hybrid cloud architecture is application specific. It means that parts of the application are in the public cloud while other parts of the application are hosted behind the firewall in the corporate data center.
There are multiple reasons why adopting a hybrid cloud architecture makes sense. These can involve the need for edge acceleration to data security to incomplete legacy migrations. Here are the some of the key things to consider when pursuing a hybrid cloud architecture:
1. Avoid Cloud Lock-in: Amazon Web Services has a legion of people telling you that you do not need multicloud and should instead rely upon their proprietary services. However, decades of experience with vendors saying such things and locking you into their platforms should inform you otherwise. More to the point, hybrid cloud IS multicloud. Your services should be written so that they are portable and can be easily migrated to other operating environments as your needs change. That means avoiding vendor or platform specific code in your applications wherever possible.
2. Decompose Legacy Apps into Manageable Services: A services architecture allows for standardization across your private and public cloud infrastructure. It also allows services to find each other when moved with minimal code changes.
3. Kubernetes: Kubernetes is an important tool for managing service components and infrastructure. It is also currently the best way to ensure portability between your private cloud and public cloud as well as different cloud service providers.
4. Service Mesh: A service mesh such as Istio allows services to find each other and manages their interaction. It allows you to move services and add additional services in the event that some become overloaded. Since Istio 0.8, it has supported hybrid cloud architectures and communication through ingress/egress gateways which supports sharing services between clusters. Isitio allows you to manage, secure, and route communication between services.
5. GraphQL: GraphQL makes it easier to control how your microservices interact with your data sources, helping you avoid thrashing API calls. GraphQL also makes your system more independent and portable, instead of focusing on specific API calls or how data should be retrieved, developers focus on which section of the data graph should be fetched or changed. This is even more useful when cobbling data together from two environments or potentially relocating things. Additionally, it is a forcing function making your developers organize the way the application communicates with the backend.
6. Distributed SQL: Even if you are still using NoSQL databases like MongoDB, most back-office applications are based on relational databases. Much of the functionality requires real data integrity beyond the faux-transactions that most NoSQL databases provide. While you can live without a NoSQL database, you cannot live without a relational database somewhere. Distributed SQL databases are resilient, scalable and performant in a cloud environment. Distributed SQL databases have a way to replicate and partition data between your on-premise cloud and the public cloud. This is one of the two choke points, you cannot go hybrid without figuring out your database.
No matter which versions of these things you choose, these are the most important pieces of a hybrid cloud architecture. On any cloud journey one should also remember that “the price of freedom is eternal vigilance.” Vendors always want “stickiness” or a way to keep you from leaving besides just that you like their tool or service. Public clouds are especially perilous this way. Your job is to mitigate this. Try to stick to software licensed under an OSI-approved open source software license and standards like SQL and you can cloud with both confidence and freedom.
This year has been a great forcing function for large and small organizations alike and many have accelerated their move to the cloud but since not everything can be shipped to the cloud at once, using a hybrid cloud architecture can enable applications to move more quickly. It is easier to do now than ever before with some of the newer technologies and techniques like Kubernetes, GraphQL, and Distributed SQL databases. When you put them together your applications can have your datacenter and leave it too.