In the two previous posts in this series, we’ve explained cloud migration using the analogy of moving to a new home. The analogy presents applications as personal belongings and infrastructure as the properties you’re moving between.
Once your possessions are delivered to your new home, your journey is nearly complete. The final stage in this journey is to set up services for your home (e.g. water, power, Internet) so you can enjoy your new house as you originally intended.
The same applies to cloud migration. Deploying an application in a cloud environment isn’t enough. The application now needs services before it can be production ready. Provisioning application services may seem trivial at first glance, but requires careful consideration if you would like to turn your cloud house into a cloud home.
Core Application Services in the Cloud
The cloud requires application services just like you had in the data center. New technology providers and cloud vendors have solutions designed for the cloud and many traditional appliance vendors have refactored their appliances to run in the cloud. Three primary application service solutions your applications need in the cloud are:
- Load Balancing
Load balancing is the process of distributing network traffic across infrastructure. This ensures no single server bears too much demand. But load balancing can do more than just act as a network traffic cop. Many of the cloud-native load balancers include application performance monitoring and have predictive analytics that can identify and react to traffic issues in real-time. While load balancers have traditionally been confined to hardware appliances, cloud load balancers are defined by software. Modern, software-defined load balancers, unless it is exclusive to a particular cloud, can also bring cloud-like agility back to the data center.
- Web Application Firewall (WAF)
There are vulnerabilities that are common in both new and existing web applications, so much so that web attacks are now the #1 cause of data breaches. A Web Application Firewall, or WAF, prevents attacks on web-based applications through the use of custom rules and policies. Similar to load balancing, WAFs were traditionally hardware appliances but modern software-defined solutions are able to deliver better performance and visibility in the cloud. Today, there is a growing urgency to address data privacy protection with initiatives like GDPR on the horizon. If your applications are exposed to the web, a WAF is a necessary application service to have in your arsenal.
- Service Mesh for Microservices
The first article in this series discussed the rise of microservices architecture. The speed and flexibility this architecture provides is why many enterprises are investing to develop new container-based applications or re-architect existing applications into a microservices application. However, the complexity of this architecture does pose a challenge. Providing application services to a handful of VMs is significantly easier than providing application services to hundreds or even thousands of containers. A service mesh is a layer of communication infrastructure that provides a flexible framework for network services designed for applications using container technology and microservices architecture. Back to the home analogy. Today you have many Internet-connected devices in your home. Having a dedicated, physical line connected to each device in your home isn’t practical, which is why you use WiFi. WiFi provides the same services in a much more scalable way. This is how a service mesh functions for containers and microservices. If microservices are in your future, you need consider a service mesh.
Beware of Opinionated Application Services and Infrastructure
Services makes your house livable. But there can be a catch that makes things considerably more difficult. When we move homes we often run into unforeseen snags. Electricity has a higher cost. Your previous Internet provider doesn’t offer the services or speeds in your new area. The new ISP can’t come until next week. Google blocked YouTube on your Amazon Fire TV. And the Apple TV your folks gave you as a housewarming gift doesn’t work with your Android phone.
The same is true of the application services on-premises and in the cloud. Traditionally, services were provided by hardware appliances in the data center. Migrating to the cloud means leaving the hardware behind. Cloud native services may have better performance and elasticity, but some lack the maturity and feature-richness of their hardware counter-parts. Until now, enterprises have been forced into a compromising position—choose security and governance in the data center or speed and elasticity in the cloud.
Future Proofed Application Services
Modern application services are no longer limited to physical appliances. Traditional vendors are releasing virtualized editions and new software-defined application delivery solutions are bridging the gap between speed and security. When selecting application services, future proof your application services by evaluating solutions against the following criteria:
- Infrastructure Agnostic - Modern enterprises leverage hybrid environments. The previous article in the series explained how a hybrid cloud is like having a portal between your country ranch (data center) and your penthouse in the city (cloud). Best of breed application services need to work in both environments seamlessly. You may have a great solution in one environment, but if it doesn’t span across on-premises and cloud environments you’ll experience decreased performance and ease-of-use with increases in complexity and cost.
- Elasticity and Automation - Elastic scale is a driving force for cloud migration. IT organizations want to automate the provisioning of resources to increase application velocity. However, application services can compromise these efforts if they require manual provisioning and configuration. It doesn’t matter if you can spin up VMs in a matter of minutes if it still takes days to provision application services. Avoid “hurry up and wait” application service providers. Look for application service providers that integrate with all the cloud platforms so you can have elasticity everywhere.
- Centralized Management - Application services are applied either per-app or per-tenant. Per-app deployments offer granular controls, but increase complexity as each set of application services needs to be configured on an app-by-app basis. Per-tenant deployments are simpler, but don’t give the control modern enterprises need. The best application services providers offer centralized management allowing these services to be deployed as many and managed as one.
- Visibility and Analytics - The health of your applications and infrastructure is critical for the business. Cloud providers rarely provide the detailed information you’re used to on-premises, so it’s important that your application services provide monitoring so you have the intelligence necessary to trust the new environment and ensure that everything is working as it should.
To put a fine point on this using the analogy of a home, future proofed application services function a lot a smart assistant like Amazon Echo or Google Home. They work with all kinds of smart devices (e.g. lights, thermostats, cameras, doorbells)—agnostic. You can script commands and skills to automatically set the temperature and lighting based on triggers—elasticity and automation. They function as a centralized controller for all devices either by home, room, or individual smart device—centralized management. And you can see and control each device from the controller as well as identify when any smart device has an issue—visibility. These smart assistants play an important role turning a house into a home. Expect the same from application service providers in the cloud.
The application and infrastructure landscape are rapidly changing. It’s easy to focus exclusively on application modernization and cloud migration initiatives, but value is only achieved once those applications are running in production. Application services, like load balancing and WAF, play a critical role in getting your applications and infrastructure environments production-ready. Be sure that your application services are designed to support your IT initiatives. The right choice will turn your cloud house into a cloud home.