| CPC G06F 9/547 (2013.01) [G06F 8/60 (2013.01); G06F 9/455 (2013.01); G06F 9/4881 (2013.01); G06F 9/505 (2013.01); G06F 9/5072 (2013.01); G06F 9/5083 (2013.01); G06F 11/203 (2013.01); G06F 11/362 (2013.01); G06F 11/3644 (2013.01); G06F 21/602 (2013.01); H04L 67/10 (2013.01); G06F 3/0482 (2013.01); G06F 8/63 (2013.01); G06F 8/71 (2013.01); G06F 9/45558 (2013.01); G06F 2009/45562 (2013.01)] | 20 Claims | 

| 
               1. A method of distributing microservice containers for a service across a plurality of computing environments, the method comprising: 
            receiving, at an Application Programming Interface (API) registry, a first service that is built from a plurality of containerized microservices to be deployed in a container platform, wherein the container platform comprises a plurality of computing environments; 
                receiving, at the API registry, deployment criteria for deploying the first service in the container platform, wherein each of the plurality of containerized microservices comprises an attribute corresponding to the deployment criteria; 
                accessing, by the API registry, characteristics of the plurality of computing environments; 
                deploying, by the API registry, the first service comprising the plurality of containerized microservices across the plurality of computing environments based on the deployment criteria and the characteristics of the plurality of computing environments, wherein values for microservice attributes are matched with the characteristics of the plurality of computing environments to determine on which of the plurality of computing environments each individual microservice in the plurality of containerized microservices is deployed; 
                providing, by the API registry, an API function for the first service; 
                receiving, by the API registry, a request for a second service to use the API function of the first service, wherein both the first service and the second service are registered with the API registry, and the request comprises a programming language used by the second service; 
                generating, by the API registry, and in response to the request for the second service to use the API function of the first service, a client library in the programming language of the second service, wherein the client library comprises a class definition representing the first service and a member function of the class definition that includes code for directly calling the first service through a service endpoint; and 
                sending, by the API registry, and in response to the request to use the API function of the first service, the client library for the first service to the second service, wherein a source code of the second service comprises an instance of the class definition such that when source code of the second service later calls the API function using the member function of the class definition from the client library, the member function instead addresses the first service directly through the service endpoint of the first service without calling the API function at the API registry. 
               |