The successful design, deployment and management of application programming interfaces (APIs) will go a long way toward connecting end-users and developers with the compute and application resources they need.
In a new BrightTalk webcast, Reza Shafii, director of product management for MuleSoft, identified the seven key elements that should go into every enterprise-scale service and API management strategy. Interestingly, he observes, those people already well-versed in service oriented architecture principles and practices will find nothing new in the fundementals of API management: "The principles underneath SOA initiatives really are basically the same," he says. The only difference is the API model flows from developers and user communities themselves, while SOA, as it was practiced, tended to be monolithic, top-down projects in the enterprise.
Every successful enterprise API strategy requires a consistent, agile way to design and develop APIs, a solid and enterprise-grade runtime, and a way to measure usage and perfromance, Shafii says.
Here are Shafi's "seven habits of highly effective API management strategies:"
1) Apply an API-first design approach: Keep API development entirely separate from what's going on with the back-end application. (An SOA best practice, by the way.) "Instead of going in and implementing the application and then building an API on top of it, first create an interface as perfect a way as you can make it," says Shafii. "Then hook that into the back-end logic. This allows you to separate concerns, and allows you to focus on a well defined and crystal clear API implementation." This makes testing the API easier as well, he adds.
2) Choose a solid API runtime: "The choice of the runtime here matters quite a bit," Shafii says, noting that an enterprise API needs all the "ilities" -- scalability, availability, reliability -- right from the start. The API should also run both on-premises and in the cloud without modification, he adds. "This gives you a whole host of possibilities, including ability to burst into the cloud when extra resources are needed, or actually being able to eventually move from an on-premise model to a cloud model when you’re ready for it."
3) Create a central service repository: Another key piece is to expose the API in a centralized repository, so that it is easily discoverable by developers and end-users.
4) Manage services through versions, policies and contracts: As with any system or application, versioning is crucial, as is security and policy management.
5) Promote and socialize your API: Part of the process is to build a community around the API, Shafii urges -- with a portal that provides support and information.
6) Monitor and assess API usage through metrics and analytics: As with anything in business, the more you measure, the more you can track progress and results. Tracking metrics helps you "better understand the usage of your API, both from an underlying technical aspect as well as a business aspect," says Shafii.
7) Refactor API to improve API consumer experience and productivity: "It's all about continuous improvement," says Shafii. Keep on revisiting the API, he urges.