everythingpossible - Fotolia
Businesses do not operate in the cloud. Rather, they operate in many clouds, six on average, according to one recent study. With dozens of software as a service providers each offering specialized platforms, it's up to a business's IT developers to write the applications and conduits that connect these wildly different systems and get them to function as a unified continuum. Call it multi-SaaS integration. Ken Yagen, vice president of products at MuleSoft, a San Francisco provider of platform integration and connectivity products, shared his thoughts with SearchCloudApplications on living in a multi-SaaS world and crucial developer skills.
Businesses today subscribe to many SaaS platforms, including customer relationship management, payroll, order fulfillment, analytics and more. What are the critical issues developers must keep in mind when undertaking multi-SaaS integration with these wildly different platforms?
Ken Yagen: The most critical issues in integrating are correctly mapping the business data objects between solutions and ensuring the integrations are implemented in a way that guarantees reliability, availability and consistency across systems. Every system has its own governance about how you can access data (such as availability SLAs, throttling limits, record limits, et cetera) and their own schedule on when APIs or data objects change.
What is the secret in multi-SaaS integration to getting these disparate services working together?
Yagen: A developer needs an integration platform that abstracts and manages many of these concerns, an ability to supplement the API calls with additional optimizations that mitigate limitations of those APIs and gives the developer easy-to-use tools that allow him or her to focus on the core needs around data mapping and orchestration.
Developers also need to keep in mind that as more companies aim for a digital transformation, people within and outside an enterprise will be able to access parts of the network using consumption models that are familiar to their way of working. By decentralizing IT, developers allow the integrated SaaS solutions to be adopted across the enterprise, not just through a central IT function.
Many SaaS platforms have their own captive PaaS for developing apps -- Salesforce with Heroku and force.com, for example. When developing custom server-side, mobile or Web apps on one PaaS that are likely to touch other cloud SaaS platforms, what are the key considerations for developers?
Ken Yagenvice president of products, MuleSoft
Yagen: Developers need to know the definition of the API of the other platform and the metadata describing the data structure of the business objects they want to access. The PaaS should provide them some capability to gain access to this at design time or the ability to supplement it with external tools that offer the capability. Developers are often trapped by the ability to make an easy REST API call to another system only to have the integration break when deployed to production without proper error handling, transaction monitoring, or alerting.
What role do containers play? Is that among the developer skills that have become mandatory?
Yagen: New technologies like containers and microservices are one approach that allows you to decouple external dependencies, exposing them internally as an experience API. You can manage the lifecycle more directly and apply additional transformations that present your applications with the experience you need, while buffering them from the external models exposed by these other systems. To do this effectively, you should standardize how you build and manage these internal API abstraction layers.
This all leads to testing in a multi-SaaS integration environment. What do you recommend for testing and what obstacles are likely to be encountered?
Yagen: Live data always provides the most realistic way to test. Capturing and replicating live data is one way to test in a multi-SaaS scenario. Replicating data from production to test systems and the availability of sandboxes gives the most flexibility. More mature SaaS applications offer this capability, and you can use data integration tools like DataLoader.io to populate test data.
What hurdles does MuleSoft foresee as companies attempt to implement multi-SaaS integration?
Yagen: SaaS integration is becoming ever more complex. You have to understand the various formats (data types, operations, et cetera) of each application, be able to keep up with the rapid pace of updates, and understand an application's various use cases. MuleSoft recommends taking an API-led approach to connectivity, where you build purposeful APIs that represent various systems, processes and experiences. The componentized APIs are reusable and can be modified quickly without disrupting business processes.
Would reusable APIs reduce complexity?
Yagen: Reusable APIs for connectivity to various systems allow you to abstract the complexity of the underlying system and provide it for reuse by IT teams of varying technical knowledge. This is known as becoming a composable enterprise, and it transforms how IT supports the business.
What are the developer skills needed to make multi-SaaS integration work?
Yagen: Developers that want to go it alone need to understand APIs and the characteristics of working with REST and SOAP APIs and the data formats exposed, such as JSON and XML. With REST, you need to understand the semantics of HTTP and whether the API you are interacting with follows these properly. You also need to understand modern, Web authentication and session management protocols, as well as how error handling works. Alternatively, a good connectivity platform that provides an abstraction on these APIs and provides well documented connectors, templates and best practices, can allow a developer to move past these concerns and work directly with the applications and business data. In terms of the bigger picture, understanding how to shift to composability with API-led connectivity builds a relationship between developers and the rest of the business to retain a company's competitive status in the market.
Tips for developing a cloud testing strategy
Is a multicloud approach right for your company?
How to get the most out of SaaS applications