YTread Logo
YTread Logo

Enabling distributed digital business with API-first architecture (Google Cloud Next '17)

Jun 11, 2021
so I'm going to talk to you today,

first

let me introduce myself. I am TANF. I had a product strategy at Apogee at Google and what I'm going to talk to you about today is this API idea,

first

thinking about how you should think about your API:

digital

products, some of the different ways APIs are shared and reused. and how you should think about the API as part of an ecosystem rather than simply a way to expose your applications. as

digital

services, one of these and there I am, let me skip over that, in general, when we talk about APIs, we first think about what we are and what we mean by that is this idea that the starting point of your APIs is not It should just be what you have. in the database, what you have in your application server or in a

business

context, what you have in your

business

service bus, but really starting from this idea of ​​what are the experiences that you are trying to power and what do we see in a kind of traditional IT. and I also think that, from a first-order point of view, what most developers who approach this problem come to is to say: you know, I have this stack, I have this application that I built, I have, you know, maybe a system legacy that I want to make them available, so APIs are simply a way of exposing this service and depending on how I'm going to think about my API program, maybe I'm forming an API team or maybe this is more of a informal micro. context of the service concept and just, you know, sharing on an ad hoc basis these are the services that I have available, but in general there is this idea of ​​what we at Apogee would call this digital value chain, which is that you expose these services in A variety of participating developers go and use these APIs and build applications and ultimately they may show up pushing a set of applications that you know a user actually interacts with and the first API thought basically reverses that and says: " Okay, there's a set of experiences that I need to deliver there's a set of partnerships that I want to build, you know, maybe I want to create new types of business models that are made possible by APIs and I need to start with that end in mind and design my APIs to Meet those needs I need to think about what the developer experience will be I need to think about what the Terms of Service will be and I'm going to build an API program around that and most of the people we see start from that previous slide , but the really successful API programs, the companies that you see that are actually API-based, we all see companies like Twilio and Stripe that have been very successful in building API-based businesses, they start this way, they start think of the developer. experience and start to think as much as possible about the user experiences that these APIs can ultimately drive, so since that's the case, why don't we do this?
enabling distributed digital business with api first architecture google cloud next 17
Why doesn't everyone do it well? The answer is that there are many different types. APIs, in fact, are three different ways of looking at APIs and one of the things I hope you learn from this presentation is whenever you start the discussion about APIs in your development teams within your company, in any context that people start talking about. we should follow an API strategy and start having some questions about what we mean by these APIs because there are at least three different forms of APIs, there really are APIs from a service perspective, whether we're talking about new style microservices or old style services.

architecture

oriented, there are AP Isis interactions and then there are AP Isis products and we will look at each of these in this presentation and all of these APIs exist within the ecosystems.
enabling distributed digital business with api first architecture google cloud next 17

More Interesting Facts About,

enabling distributed digital business with api first architecture google cloud next 17...

The fundamental truth of an API is that it is designed to share services. Data connects experiences between systems between applications between people, so you have to think about the ecosystem consideration, regardless of what the purpose is, which of these three types of API it is that you are creating, so the API is a service if you are a developer. If you're in IT or if you're in a startup, this is the area of ​​APIs that I think most developers understand intuitively because it's what we live in, what we know, it's how we build our software in these days, but these APIs take many different forms, even within this context, the main way that most developers end up interacting with APIs is to access the back-end resources that their applications need and what they need.
enabling distributed digital business with api first architecture google cloud next 17
What we see is that if you're building an app you need access to data you need to be able to interact with the outside world, perhaps through email services, most people don't use their company's email server to send their interactions. via email, they might be connecting to an enterprise service bus or something. form of integration

architecture

if you are part of an enterprise, those of you in the services space platforms, if you are using Cloud Foundry or Heroku, this idea of ​​the 12 factor model will be very familiar to you and this idea that the loads of Your applications' work can scale better if you separate stateful services and treat them as external services, so this might be a way to start thinking about APIs because that's how you're going to get your data or how you're going to get your data.
enabling distributed digital business with api first architecture google cloud next 17
We're going to access your storage or maybe even an external service and obviously there's a whole set of companies that Google included. This is the nature of Google's

cloud

platform that provides it with a set of capabilities that will be used to drive. your apps are pretty interesting in the enterprise space and some of you are in your press space some of you in the starb space we see a big divide in the enterprise space most of these services we talk about are probably behind your firewall maybe time in your own data center, whereas if you are doing a new Greenfield development, if your startup will hopefully get them from the variety of incredible database services or storage service options that you have, but even if you are doing this internally, you are still thinking.
In this way, we see very few companies that are approaching creating new internal services for their applications and that are now not thinking about saying how do we make these relaxing services, how do we make these API-based and in fact , more and more are going and using the A type of popular developer portal format that allows internal developers to discover and use these APIs and there is a lot of interesting work being done here to replace this ESB approach in the Cloud Foundry world, in the world of Kubernetes, there is this concept of a service broker that provides a better level of mechanism to integrate these services now, inevitably, in these conversations we get questions about microservices and in fact, you know at Apogee we interact with customers, this becomes the most common topic these days, wait a minute we are talking. about making microservices, what is the difference between APIs and microservices and also, by extension, what is the difference between microservices, service-oriented architecture, so there are a lot of definitions of this of microservices floating around one that I really I would have stuck with it when People have asked me what the difference is between microservices.
It's really talking about the fact that microservices are trying to solve all the scalability problems, the challenge of decomposing your application into independent units of work that can be scaled. at the appropriate tiers, the right container instances for those workloads, each of them can be elastically scaled independently, microservices are generally not intended to be a reuse mechanism, again, you know the best analogy with microservices: We took the components from the spring world and now we're putting them in two containers, it allows us to do things like have polyglot programming within our development teams. These are all good reasons to use microservices, it's not to say that you can't make microservices for the purpose of sharing and reuse, but you have to understand that you're going to pay a penalty in terms of agility.
The wider the net of your service dependency graph, the more people will depend on your services, the more you will translate from being or transform from being a very agile application development team, which may have been how this started. journey to become a service provider you now have to worry about many other considerations and it becomes a full time job in itself, these are the ecosystem considerations you had Referring to the above, I am going to delve a little deeper later in this presentation, so the

next

form of API and this really confuses a lot of people is this idea of ​​API interactions zhis and actually like us.
I've worked with companies and most companies had really adopted this idea of ​​architecture or service-oriented in the early 2000s and there were a set of blueprints and patterns for reuse that the design of services, the level of granularity of the service, etc., were actually encouraged as best practices. Those turned out to be anti-patterns when moving to mobile, and in fact hindered many people even more when they tried to adopt things like IOT. There are several reasons for this, but the idea was that these services that are used to drive front-end interactions look very different than the services that are used to expose back-end resources, they are purpose-built, these APIs experience determine the Netflix coined to describe them and is popular among people studying different API designs.
The patterns look very different to services that are designed for broad reuse which you might be using when you are creating a backend service that you want to be used by many different applications and in fact the lifespan of these is very different. In the mobile world, this is further compounded by the fact that many mobile developers, if there is no SDK to access these APIs, consider the API complete and that is why when you see companies that are trying to have success with mobile developers, if you look at, for example, Firebase. provides a real first-class mobile experience.
They do this by providing very well-built application SDKs that developers can easily integrate into any idea IDE environment they are using Xcode. That have? They've put a lot of thought into this developer experience. most API developers, most API architects that I talk to, they want to push as much as possible, you know, this SDK issue is pushed aside, you see some good approaches, a lot of the popularity Swagger's now open API is because it allows you to express these APIs in a way that can be quickly accessed through SDK client libraries that can be automatically generated from the current API experience.
The API adds a new feature in that some of these again are specifically designed, they are not designed. for reuse, they can be created by your front-end developers, so you may have a team that is creating your API for general reuse, but you have your web developers who are creating single page applications that need special APIs to power those experiences and you These Afra may mention mobile clients that again need specific APIs to power specific experiences. Know anyone who goes to a shopping site. Go to Amazon. See a Buy It Now button. Obviously, downstream, it's going to go and have an internal API that it handles. payment processing, but there will be a separate interaction or experience API that will drive the Buy It Now button.
This is not an anti-pattern that you can have, you can have multiple forms of API to drive multiple forms of interactions the way you do. By having this mediation layer, companies that build user experiences around APIs have some sort of mediation layer that might be something that wasn't built in js. In fact, much of node's popularity is due to the fact that it is JavaScript. since you know that JSON is the native data format, it's a great place to go and basically create this layer of mediation that can go and take this internal backend API that might have been designed for general use and create these little services that they have a purpose - created for perhaps a specific interaction when the user presses a button in your mobile application, the function of API management platforms, if you want to know why many companies implement technologies like Apogee API management platforms , which provide this mediation layer type mechanism, etc. could be a reason why you find yourself looking at that type of product or technology, so the third aspect of API is API zhis products and this tends to really separate the thinking from those two previous cases in thescenarios you are thinking about.
API is a service, it's actually your developers, your software development team leads those who may be thinking about what services are being designed for broader reuse in AP has its interactions, it's probably a front-end team, but now you have the scenario where you go and say: I want to build a business model around APIs and in that case what you're doing is really thinking about how you're going to manage these API zhis products and this tends to do trip people up because there are a number of different people involved in creating APIs, so you have your developers creating the API, you have a set of people who are testing them, you have a whole set of operational concerns, whether that you're doing classic enterprise-style centralized operations or if we're using more of a DevOps approach, we still have a whole set of considerations around that, now we need to think about how to manage this API lifecycle and what we've seen is that the Companies are successful with this and have someone in the API Product Manager role and it's not always a full time job, it may be part of another role but there is someone whose job it is to make sure all aspects of the lifecycle of the API and, most importantly, the critical metrics that determine whether the API is successful are being taken care of, so that when you are building an API, suddenly now you have considerations and if you are the API product manager, you are very focused in your API design, if you're building a payment processing API, we have multiple clients, you know? offer payment transaction gateways if you are the product manager of one of those APIs then you say how can I provide a better developer experience than someone like Stripe, you already know and the way you are doing it is through superior documentation , maybe. better client SDKs and you're looking at the design of the API itself, you know?
Know? What is the number of parameters I have to send? Are these payloads the correct size? Are they easy for developers to understand? and sending a lot of data that doesn't really make sense for my application, that's where API design comes in, if it's designed properly from best practices, a lot of new security concerns, one of the things we've seen as we've been in a lot of these API hackathons is that people who have the challenge of developers using a new API getting authentication right, it's a big problem just saying OAuth isn't always the solution, there's still many things they need.
It needs to be improved so that developers can understand and make a curl call that allows them to get results from an API and then the last piece, and this is probably the most important set of considerations that aspiring API Product Managers should think about. the metrics for success. This is the difference between API cz as a product or simply API as a project. Your API success metrics will be different depending on your business. John Mercer, the founder of programmable. web several years ago made the observation that I agree that it's necessary, regardless of the context of what your API is, that you need to go and think about the classic marketing funnel, some of you go and say, "Hey, I'm building ".
API, this means I'm a marketing person, well not necessarily, but you have to think about how people are going to adopt them and each step they're going through, so I identified a set of metrics and a process that goes along with those metrics of finding developers, maybe promoting your API, they are collected in Hacker News, they are found through Google searches, people are tweeting about it, what are you doing, you are making them go to a developer portal, They are registering. If you use it within an app, you have active use of that API within a series of apps that shipped, maybe you have monetization associated with it.
This will be different for you. Everyone's API business is different. Some of this won't work. It doesn't apply because you're doing internal APIs, but even in internal API ecosystems there will be a set of metrics you'll need to manage; this is what it means to be a service provider because you need to know your customers and be able to provide them The quality of service you basically need to manage: these metrics, so hopefully these three forms of APIs make sense. Hopefully for those of you who are involved in API projects, you can think and map out what you're doing with these types of APIs, but what I want to talk about now is the ecosystem that the API sits in because this is where things get. really get interesting, it's not as simple as going and saying, you know, am I exposing my API?
Let's rest or I see this G RPC thing. What are the technical considerations? Knows? Do you use a gateway with caching? Not all of those requirements are very important, but it's the ecosystems your APIs are used in that are really the reason you're doing this more often. Companies operate within ecosystems. If you're a company that's becoming a digital business, you're probably already moving a lot of your supply chains, your value chains to be digitally mediated and that might be what's driving your API thinking you can do it internally within of your IT processes. Those represent an ecosystem and a value chain.
Most of what we're talking about here is that the people who get excited about this stuff tend to be industry analysts, they tend not so much to be developers and IT people start talking about. Value chains are okay, hopefully, it's a core service that, generally, when you build APIs, you'll be serving one or more ecosystems, you'll have your internal ecosystems, those are kind of APIs that you share with. your friends on your team your internal developers but this range is available there may be partner ecosystems there may be industry ecosystems there may be public ecosystems all of these have new considerations new requirements in general what we see is that people take this approach that I am sorry to say that It's a little naive, but that being said, it's the path that everyone takes and that's to go and say, well, we're going to build our API for internal use and then we're going to open it up to the outside world and it's going to be great.
When you go back to my first slide, you tend to find a lot of new considerations hitting you over the head. Hopefully halfway through this presentation you're starting to get an idea of ​​what some of those are, but talk about how these ecosystems are different if you're creating ecosystems for your API services, they're predominantly internal, this is what you're doing to share and reuse the applications you build, the systems you build, the backend resources you build with other developers there are several different approaches to this, there is the classic one, so approach now the people who were architects so often it means service-oriented architecture, those of us who were around at the time go and say, well, you know there's nothing wrong.
So it just says that we should create services that should be designed for reuse and we'll get all kinds of profits from it. productivity from that. What we found was that most organizations ended up finding that they had to impose a strong form of central governance to make this happen and there is a slippery slope that gets you there and in fact I think about half of the companies that are adopting microservices They will end up there the same way you end up on this slippery slope. and say that all we have to do is accept a common set of conventions and that all our services can be reused, then no one can agree on what those common sets of conventions are, hence the strong core governance model, now it What tends to work is this idea of ​​an API Management Model, an API model where you go and say look, I'm going to expose this API like this, it's going to be a calm API so all your clients can talk to it, We are going to document it in a standard way. to use the open API specification to document it and I'm going to create a developer portal and that's where you'll find it and if that API doesn't work the way you like, then what you need to do is build. your own client libraries to access them and maybe use your own Middleware if maybe you'll use nodejs if it's something you want to build yourself to shape and convert that API to your use cases this tends to work very well we see that the interaction model and tent and that nodejs, as I said before, that nodejs model tends to be more closely associated with situations where these APIs need to be exposed for interaction purposes, this has a lot of interesting aspects.
You know, mobile was the main driver of this, but we now see things like conversational computing, we see things like if you're using Google Assistant, if you're using Alexa, if you're using any of these series, you're seeing that now you have the capacity if you are actually providing your services within the standard interaction. models that can now be used within these new types of conversational interaction models, but we also see that there are a lot of business drivers for this retail, people look at this and people in the retail industry say: this is how I'm going to light the channel engagement models and you find that there's a need to make your APIs available out of the box so you can actually talk to an eCommerce stack, you might be able to talk to some kind of direct response email. interaction system, etc., these tend to try to support an ecosystem in this model, they tend to try or Drive you to get your API is to adapt to certain patterns at the moment.
I say patterns, not standards, there aren't as many standards in these areas as there could be and You know, I think in both models people tend not to think of themselves as a participating ecosystem, but I think more and more they'll let me talk about ecosystems. of products because I think that's where things get more interesting. In product ecosystems, there are a variety of different ways that people make their APIs available for other people to use, so basically the idea here is that you're taking your business capability and you're packaging it as a block. building that other companies can go and integrate into their business processes, so in terms of how to find these APIs right now, the predominant way that people find and interact with APIs is actually kind of a blueprint. traditional one-sided commerce where people go and discover the API usually through a prior process. -existing business relationship or are they leveraging a major brand if I go and need to send an SMS API the API there are a set of options very well known options that people learn about through conventional marketing mechanisms, but where?
Things get more interesting when you have this platform-oriented approach where you can actually bring these APIs together and promote them and combine them in different ways. Some of the examples of this that we see are, for example, if you look at the association between mind and body. which provides scheduling services for things like yoga studios, gyms, etc., and what happened with Google Maps, this is an example of a bilateral relationship where both companies share services and data with each other to create two app experiences different ones with a lot of synergy between them, so if I go to Google Maps and say I want to be able to go and, you know, I book a session with a fitness instructor, I can go in and do that. and Google Maps will call the mind-body API and they will be able to find the nearest gym where it is available and book it directly, that's what we actually see on the right side of this screen that shows booked with Google.
I can get to this through the map UX, now the flip side of this is that Google Maps integrates with mind and body within their app, so if my body provides a private label app to a string specific to gyms or to end users through the variety of channels that they do, that users can access and get access to Google Maps with all of their location-based services, but in the context of this app experience, I think that what we're seeing very successful within the API space is where you can basically cross-pollinate this experience by sharing data and processing some of the other forms of this slide, are things that I think you'll see more of as we look at. in the future of different forms of ecosystems, one of the things I wanted to leave you with at the end of this presentation is this impression, this session that I just did is the first part of what here at The Next Day at Google, Chet Kapoor, CEO from Apogee at Google, will talk about this vision of a connected business platform and how all of these different ecosystems drive different types of business models.businesses and some of these business models that we see are actually these clearinghouses. and markets for digital services and we're going to go into a lot more depth in that keynote tomorrow, so let me wrap this up, so when we talk about APIs first and we talk about API-centric thinking, I hope this presentation has given you this perspective of Thinking In this from the outside in approach, even if your APIs are predominantly used for internal purposes, it makes sense if your scope of reuse is wide enough if you are working with other development teams that are beyond the scope of your scope where you don't this. scrubbing with them or not regularly interacting with them once you suddenly need to think of your API consumers as customers now if your API is designed to be API products zhis and you will definitely have to think about this, competitiveness. of your API, the success of your API as a product will really come down to the developer experience you create and the quality of service you provide, being able to identify which form of API you are creating is simply designed for service reuses. and a microservice, is it something that drives an interaction or is it this API byproduct that will help you think about how to organize your team around it, where it sits within your organization if it's designed for API as a service?
In that classic sense, maybe it's something that settles in if you're in an IT organization that is within you, you know your classic integration center of excellence. Although we are CP, we generally see and advocate for people to move away from that strong centralized model if it is an interaction. you're probably sitting with your front-end team but even if so, now you have considerations like how can I allow my front-end team to create these interaction APIs and make sure they're still secure and if your API is a product, so do you have an API product manager for the latter?
The concept of managing your API is the very important digital partnership. This tends to be the lightbulb moment for most people when thinking about their API programs, especially when you're trying to explain the value of APIs to the business people at your company. Suddenly, when organizations understand that an API is a digital partnership, they understand all the responsibilities and opportunities that come with it, and ultimately, regardless of how APIs are used, you have to think about ecosystems, the nature of ecosystems will be different for each. one of those APIs, but ultimately, the moment you have someone other than the person who created your API, created that API using API, you now have an ecosystem that you need to cultivate, grow and achieve success.

If you have any copyright issue, please Contact