Cloud-native development shines a light on APIs, microservices, chatbots, and next-generation cloud services.
By Tom Haunert
Amit Zavery, senior vice president of integration products at Oracle, explains that chatbot technology uses not just role-based algorithms but also dataset learning and intent-based user interactions.
Cloud-native development is changing the way developers work, from application architectures to delivery schedules. Modern architectures make it possible to develop modular applications more quickly, and they enable communication about architecture between developers—communication that becomes even more critical in the development of APIs, microservices, machine learning, chatbots, and more. Oracle Magazine caught up with Amit Zavery, senior vice president of integration products at Oracle, to discuss cloud-native architectures and how they are supporting cloud services, future development, and futuristic development.
Oracle Magazine: How is cloud-native development changing application delivery schedules and architectures?
Zavery: The big change is the move from a big bang release approach to a combination of Agile development and continuous integration and delivery.
Continuous integration and delivery is much more agile than a waterfall-based software development process, in which a developer writes a piece of code that gets handed off to QA for testing, and then handed off for system testing, followed by a handoff to release engineering before the change gets delivered as a big patch or a big release more than a year or a year-and-a-half later. With continuous integration and delivery, when a developer changes some application code it is tested as part of the development process and propagated into the internal and external versions of the application in an integrated process rather than through a waterfall release.
Cloud-native development also separates the development architecture from particular hardware platforms or systems. Development can move seamlessly between different development environments and systems. If a development project uses containers, for example, the developers know that containers enable them to move application workloads to other locations, but they don’t need to know about the underlying infrastructure.
The API is really your contract with the rest of the developer community and the rest of the world.
Oracle Magazine: What is the role of APIs in cloud-native development? And what about microservices?
Zavery: With modular software architecture, you can evolve components or modules independently, move and integrate them, and make the components work together, but you can still make changes to a particular component without impacting the whole application. And historically, modules had limited sets of APIs, perhaps not very well defined. These APIs did provide an interface that developers could work through, but they were not used consistently.
With cloud-native development, new cloud services are dependent on a lot of different functionality coming from various different services. To support those new services, it is important to develop and build your own functionality as a microservice—a self-contained piece of software with well-defined APIs. The APIs provide the definition and interaction with a microservice and expose the microservice to users and developers, who can extract functionality through the APIs and evolve their overall application using multiple microservices.
And tomorrow, for example, if you want to use a different credit card processing engine or a different service for your shipping, you can switch to a different microservice with its well-defined APIs without having to rewrite your application for each change.
Cloud-native development can move seamlessly between different development environments and systems says Amit Zavery, senior vice president of integration products at Oracle.
Oracle Magazine: How should developers prioritize the use of APIs in cloud-native development projects?
Zavery: If you’re a developer doing cloud-native development of next-generation applications and systems but you don’t use an API-first paradigm, I think you will be quite inefficient and make development very expensive. The API is really your contract with the rest of the developer community and the rest of the world. If you’re defining your APIs right, other users are going to be able to easily take advantage of all the functionality you’re building into your services.
So it’s very, very important that developers think about this interface and prioritize how and what they’re doing with APIs and how they build them. The lifecycle of APIs is critical in terms of how you design the APIs, how you publish them, how you share them, how you document them, how you test them, how you analyze them, how you monetize them, and how you secure them. So you can’t just say, “I’ll design the right API, but I have no responsibility beyond that to manage the whole lifecycle.”
Oracle Magazine: Mobile, machine learning, and chatbot technologies are getting a lot of attention and are part of a lot of development plans. What should developers be looking for when they use these technologies in app development?
Zavery: The combination of desktop and mobile applications and websites has fragmented the application user experience. It is creating “app fatigue,” making and providing a fragmented user experience in which users have to continuously switch between applications for minor pieces of functionality. There needs to be a better way to interface with and do business with different organizations.
This is where the evolution of chatbots comes in. People are already using a lot of messenger services, be it Facebook Messenger or WeChat or WhatsApp, and they are interacting or interfacing with other friends and family or users who are on the same communication channel.
But now businesses can also start to take advantage of these messenger services to provide specific information a user might be looking for. This could be from B2B; it could be from B2C. What chatbots allow developers to do is provide a new interface for their application data—data that already exists in their databases—without having to create a brand-new application interface or create a new user experience through a new mobile app.
Intelligent chatbots have a very good neural network–based and artificial intelligence–based underlying infrastructure and technology, but it doesn’t need to be exposed to the end user or even the developer in many cases. The technology uses not just role-based algorithms but also dataset learning and intent-based user interactions to provide better navigation and context-based information to the end user as well.
Developers building mobile apps should use native mobile interfaces but also incorporate chatbot and newer-generation machine learning algorithms so that user interaction is simple and so that applications can evolve very quickly with newer ways of interfacing with those application back ends.
What chatbots allow developers to do is provide a new interface for their application data—data that already exists in their databases—without having to create a brand-new application interface.
Oracle Magazine: How does Oracle support API, mobile, and chatbot development?
Zavery: For developing APIs, we have Oracle API Platform Cloud Service. Developers can use it to start building an API and managing the lifecycle of an API. We recently acquired a company called Apiary, which offers API design and governance tooling. Developers can use the Apiary tools to design, develop, publish, and test their APIs. Apiary tooling combined with Oracle API Platform Cloud Service automates complete API lifecycle management so developers can design and deliver APIs easily.
Once you’ve defined those APIs, you want to deploy them and integrate multiple applications together. For those tasks, we offer Oracle Integration Cloud Service.
Beyond that, we also have Oracle Mobile Cloud Service, which allows any customer to build native as well as hybrid mobile applications. It provides a mobile back end as a service, allowing you to take any of your existing application back ends, expose them, and create mobile front ends, which you can then deploy through native iOS and Android applications, or deliver as hybrid apps to a browser on a mobile device.
And associated with mobile apps, we’ve been developing neural network–based chatbot capabilities, where a developer can create a chatbot interface to a lot of popular messaging services and take data as well as information coming from multiple applications and allow users to interact with it.
This article was originally published in Oracle Magazine.
Photography by Bob Adler/Verbatim