Customer communications management (CCM) in the cloud has been contemplated for almost two decades. With the processing and I/O demands of large batch communications the feasibility of hosting these solutions in a public or even private cloud infrastructure was open for debate.
Over the past few years, technology advances and the corporate acceptance of secure data in the cloud have dramatically changed the cloud landscape. In addition, the increase in cloud providers with stable and secure offerings as well as the decrease in the cost of cloud storage has enabled complex solutions to successfully be deployed and managed in a variety of models, including public cloud environments.
However, enterprise-wide CCM operations often have a complex set of capabilities and requirements which initially would seem to limit the options for moving to the cloud. In reality, there are now a wide variety of options for moving CCM to the cloud. The challenge is that having so many options often adds more confusion, which can make it difficult to easily narrow them down to a solution that best fits a given enterprise’s needs. This can be even more complex if CCM needs to fit in a broader experience strategy.
How to Navigate Cloud Terminology
There are many approaches to deploying software in the cloud. New developments in cloud technology and methodology allow for a high degree of flexibility but can also lead to a solution that does not meet expectations if the components are not carefully considered. Understanding a few common terms and how they apply to your use case can make a big difference in architecting a successful solution.
Containerization – Containers are a layer of abstraction between the cloud platform and the application that make it possible for the same code to run in many different operating environments. Some software providers will take existing code designed to be run on a single server and call it cloud-based by making it work in a container. However, taking old, server-based software and deploying it within a single container is no different than running it as a virtual machine (VM). If the CCM application hasn’t been purposely written to fully realize the benefits of microservices running in their own containers, the value of computing at cloud scale is completely lost.
Microservices – As the name implies, microservices are a set of smaller services that can be combined to perform a larger task like providing a complete CCM solution. Tasks like design, orchestration and communication generation can be broken into separate services and executed separately. CCM applications that use microservices have numerous cloud advantages, including targeted scaling (up or down), discreet service management, usability as components via API calls (e.g headless CCM) and many others. Kubernetes and Docker – Kubernetes and Docker are brand names for containers and the tools used to execute and manage them. The primary consideration as a CCM user is whether your CCM application fully supports the Docker/Kubernetes environment. If so, it means you can choose almost any cloud platform. Just make sure the CCM application you choose will also include native support for platform storage (e.g. S3, azure blob, etc.) and database access (e.g. Aurora).
Managed Service – As the name implies, a managed service is a packaged service (or set of services) that can be made available via the cloud. In the case of CCM, you might consider purchasing a “CCM Managed Service.” Typically, this would include the software, operating environment and a set of definable services and service level agreements that meet your use case needs for communications. A cloud managed service model is a way to minimize the overhead of owning and operating a CCM solution.
SaaS – Public cloud (SaaS) is a method of accessing services in the cloud. In the SaaS model, services are generally available via a subscription with a predefined set of service levels. SaaS has typically been viewed as best for SMB or departmental CCM applications. As technology continues to progress, SaaS platforms may become a legitimate consideration for more processing intensive CCM use cases.
So Why Is Now a Good time to Consider Moving CCM to the Cloud?
There are two main reasons why now is the right time to look at moving CCM to the cloud. The first is the maturity of offerings. Cloud technology has advanced to a point where CCM can take full advantage of the benefits of the cloud such as scalability, microservices and high availability, no matter what your communications volume may be.
The second reason is cost. Physical hardware is expensive and challenging to maintain, often becoming a burden and liability. It also impacts upgrades of business-critical applications and new software features that can be tied to new revenue opportunity, customer retention or improved experience. Moving these solutions to cloud models changes the investment from a capex to an opex expense but also eliminates the forecasting necessary to ensure the right amount of hardware is acquired for the software and dedicated resources to manage this infrastructure within the data center.
Why Go All the Way with a Cloud-Based, Microservices CCM Solution?
Microservices are the preference for most modern software solutions architectures. CCM may be a single component in a greater enterprise platform approach for managing customer experience, data, interactions, communications, analytics and more. While you can approach making CCM a single service, the complexity of these solutions benefit from being deployed as microservices to leverage the many benefits that other cloud deployment models cannot achieve. While there may be more upfront work required in designing and moving to a solution with this approach, the investment in the short term and the long run can easily be calculated. Agility — Microservices help development teams create functionality with its own lifecycle and scaling policies. This makes it easier and faster to deploy changes, add new functionality and troubleshoot.
Autoscaling — Microservices allow for automating resource allocations during peak times but also scale down your infrastructure during less busy times. These resources do not need to be allocated up front for peak loads, which provides significant savings when determining infrastructure investment — especially if your volume tends to fluctuate with peak loads that are sporadic or unpredictable.
Connectivity — Microservices depend on integration between each service, so the ability to integrate with external systems is second nature, ensuring extensibility between on-cloud and off-cloud systems and allowing for upgrading various systems to occur in phases.
Data — Data is the center of any CCM, but this data is often located in various systems, needs to comply with a variety of data regulations (GDPR, HiTrust, PHI, FISMA, PCI, SOC2, etc.), securely maintained and tracked.
DR/HA flexibility — Cheaper cloud systems are key to enabling more storage for better replication and zone segmentation. By leveraging cloud deployments, the ability to achieve higher SLAs for high availability of systems is possible.
Maintenance — Microservices provide a foundation for rolling upgrades, allowing for different pods to be updated at the most opportune moments rather than requiring a complete production down to promote changes.
Monitoring — Cloud solutions have a variety of built-in and third-party monitoring solutions available, improving the transparency of the applications running in it natively. When components of CCM are deployed as microservices, this exposes the various steps of communications processing in a way that hasn’t been achievable off cloud, allowing for faster, more direct troubleshooting and reduced down times in the event of an issue.
Portability — Between different platforms and clouds. All major cloud vendors are supporting containerization, providing out-of-the-box solutions for it.
Processing — Typically, processing encompasses integration and throughput. Microservices naturally support both as highlighted in integration above and the ability to scale whether ad hoc or automatically.
Resource utilization — Can be much lower than deploying software in a virtual machine and delivers a higher utilization rate of compute resources than off-cloud environments.
Security — Microservices allow for a solution architecture that can isolate applications from the host system and from each other. This provides a foundation for flexibility in addressing data zone segmentation.
Managed Service or Cloud License
For most enterprises, a SaaS-based solution will not provide the infrastructure and scalability to optimally support the massive volume of communications within large batch files that need to be processed or the increase in number of interactive communications that may come in peaks and require an extremely fast response time. So that narrows most decisions to either a managed service or licensed solution.
Managed services come in a variety of options depending on the agreement in place with the provider. This may include providing everything as a service such as the cloud infrastructure, integrations, security and maintenance of the platform or providing dedicated resources to manage the solution deployed on your own cloud infrastructure where you maintain the agreement with the cloud provider, but the software is managed by the service provider. It is important to clearly articulate in the contract who is responsible for what piece of the platform, service level agreements, DR/HA and anything else that could impact the business and usability of the software. A managed service is ideal for an enterprise that is looking to reduce its resource overhead for maintaining software and technology that requires subject matter expertise. By engaging with a company that specializes in managing CCM as a service, it increases the opportunity to ensure an optimized platform for generating and delivering communications, access and awareness of the latest features, easier upgrades and more. No matter where you are in your CCM cloud journey, it is a great time to take a step back and look at the business objectives you have for your communications management as well as your enterprise cloud strategy. Looking at current production-related issues may uncover a greater need to invest in a solution that takes advantage of the latest cloud technologies, natively, within the software architecture.
Stephanie Pieruccini is a Senior Manager of Product for OpenText CCM. In this role she is responsible for CCM Orchestration for OpenText Exstream as well as the StreamServe and Exstream platform solutions. Her experience comes from a strong knowledge of communication and production management from creation through delivery acquired from covering the print, marketing and CCM markets as an analyst and consultant with InfoTrends as well as serving as the channel development manager for CCM and digital transformation solutions at Neopost USA (Now Quadient). Randy Sparks is the Director of Product Management for OpenText’s CCM offerings. In his current role, he is responsible for OpenText’s CCM product portfolio which includes Exstream, StreamServe and xPression.