All Projects → CAAPIM → Microgateway

CAAPIM / Microgateway

Licence: other
Security and management for microservices, with rich functionalities of the CA API Gateway family

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Microgateway

Scalecube Services
ScaleCube Services is a high throughput, low latency reactive microservices library built to scale. it features: API-Gateways, service-discovery, service-load-balancing, the architecture supports plug-and-play service communication modules and features. built to provide performance and low-latency real-time stream-processing. its open and designed to accommodate changes. (no sidecar in a form of broker or any kind)
Stars: ✭ 482 (+1277.14%)
Mutual labels:  api-gateway, service-discovery, service-mesh
Apioak
Full Lifecycle Management API Gateway.
Stars: ✭ 335 (+857.14%)
Mutual labels:  api-gateway, apis, service-mesh
Kong
🦍 The Cloud-Native API Gateway
Stars: ✭ 30,838 (+88008.57%)
Mutual labels:  api-management, api-gateway, apis
Product Apim
Welcome to the WSO2 API Manager source code! For info on working with the WSO2 API Manager repository and contributing code, click the link below.
Stars: ✭ 508 (+1351.43%)
Mutual labels:  api-management, api-gateway, apis
Gravitee Gateway
Gravitee.io - API Management - OpenSource API Gateway
Stars: ✭ 1,123 (+3108.57%)
Mutual labels:  api-management, api-gateway
Fusio
Open source API management platform
Stars: ✭ 946 (+2602.86%)
Mutual labels:  api-management, api-gateway
Apisix Docker
the docker for Apache APISIX
Stars: ✭ 119 (+240%)
Mutual labels:  api-management, api-gateway
Api Umbrella
Open source API management platform
Stars: ✭ 1,735 (+4857.14%)
Mutual labels:  api-management, api-gateway
Apiman
API Management
Stars: ✭ 606 (+1631.43%)
Mutual labels:  api-management, api-gateway
Istio Workshop
In this workshop, you'll learn how to install and configure Istio, an open source framework for connecting, securing, and managing microservices, on Google Kubernetes Engine, Google’s hosted Kubernetes product. You will also deploy an Istio-enabled multi-service application
Stars: ✭ 120 (+242.86%)
Mutual labels:  api-management, api-gateway
Mockbin
Mock, Test & Track HTTP Requests and Response for Microservices
Stars: ✭ 1,782 (+4991.43%)
Mutual labels:  api-management, apis
Kanali
A Kubernetes Native API Management Solution
Stars: ✭ 192 (+448.57%)
Mutual labels:  api-management, api-gateway
Tyk
Tyk Open Source API Gateway written in Go, supporting REST, GraphQL, TCP and gRPC protocols
Stars: ✭ 6,968 (+19808.57%)
Mutual labels:  api-management, api-gateway
Tyk Kubernetes
Tyk + Kubernetes integration (guide).
Stars: ✭ 63 (+80%)
Mutual labels:  api-management, api-gateway
Istio
Connect, secure, control, and observe services.
Stars: ✭ 28,970 (+82671.43%)
Mutual labels:  api-management, service-mesh
Enroute
EnRoute Universal Gateway: Cloud Native API gateway with OpenAPI support and free L7 rate-limiting built on Envoy proxy
Stars: ✭ 126 (+260%)
Mutual labels:  api-management, api-gateway
Tree Gateway
This is a full featured and free API Gateway
Stars: ✭ 160 (+357.14%)
Mutual labels:  api-management, api-gateway
juno-agent
juno-agent
Stars: ✭ 46 (+31.43%)
Mutual labels:  service-discovery, service-mesh
Apisix
The Cloud-Native API Gateway
Stars: ✭ 7,920 (+22528.57%)
Mutual labels:  api-management, api-gateway
platform
Apinf - Open source API management platform with multi proxy and protocol support
Stars: ✭ 69 (+97.14%)
Mutual labels:  api-management, api-gateway

CA Microgateway

What is CA Microgateway

CA Microgateway provides secure service mesh for microservices with rich functionalities of the CA API Gateway family including SSL/TLS, OAuth, service discovery packed in a docker container. You can also easily extend the capabilities of CA Microgateway by building your own policy using the policy building capability available to CA API Gateways.

More features, including the Policy Manager needed to extend CA Microgateway, are available in the free trial version.

CA Microgateway

Benefits

  • Secure microservices without writing the same code in every service
  • Integrate with microservices pattern and infrastructure. e.g. Consul service registry
  • Optimize internal and external client APIs and reduce API chattiness
  • Optimize network traffic by providing caching, circuit breaking ...etc

Related microservices patterns

Extending CA Microgateway

Get started

Supported platforms:

  • Linux
  • MacOS

Prerequisites

  • A docker host

    You can use Docker on your laptop or in the Cloud (get Docker here)

    Docker-machine (https://docs.docker.com/machine/drivers) can be used as a quick way to deploy a remote Docker host.

    Run the following command to validate that you can reach your Docker host.

    docker info
    
  • The cloned, or downloaded, content from this GitHub repository

  • Accepted licensing terms (required to start the Microgateway):

    By passing the value "true" to the environment variable ACCEPT_LICENSE in the file get-started/docker-compose/config/license-agreement.env, you are expressing your acceptance of the CA Trial and Demonstration Agreement.

    The initial Product Availability Period for your trial of CA Microgateway shall be sixty (60) days from the date of your initial deployment. You are permitted only one (1) trial of CA Microgateway per Company, and you may not redeploy a new trial of CA Microgateway after the end of the initial Product Availability Period.

Deploy CA Microgateway

The following tasks will typically be done by a Gateway sysadmin.

  • Start CA Microgateway:

    cd get-started/docker-compose
    
    docker-compose --project-name microgateway \
                   --file docker-compose.yml \
                   --file docker-compose.db.consul.yml \
                   --file docker-compose.lb.dockercloud.yml \
                   up -d --build
    
  • Verify that CA Microgateway container is up and running:

    docker ps --format "table {{.Names}}\t{{.Status}}"
    

    Should return:

    NAMES                STATUS
    microgateway_lb_1    Up About a minute
    microgateway_ssg_1   Up About a minute (healthy)
    microgateway_consul_1    Up About a minute
    

Wait for "healthy" status (~2 minutes); you can repeat the command to refresh status.

  • Once CA Microgateway is up and running, you can list the APIs that have been published to it:

    curl --insecure --user "admin:password" https://localhost/quickstart/1.0/services
    

    If the Microgateway has just been started for the first time, it should return an empty set:

    []
    

Other Docker admin tasks that you can do with the container ...

  • Print the logs:

    docker-compose --project-name microgateway \
                   --file docker-compose.yml \
                   --file docker-compose.db.consul.yml \
                   --file docker-compose.lb.dockercloud.yml \
                   logs --follow
    
  • Scale up/down the Gateway:

    docker-compose --project-name microgateway \
                   --file docker-compose.yml \
                   --file docker-compose.db.consul.yml \
                   --file docker-compose.lb.dockercloud.yml \
                   up -d --scale ssg=2
    

    The Gateway has no scaling limit because it is based on the The Twelve-Factor App.

  • Stop the Gateway:

    docker-compose --project-name microgateway \
                   --file docker-compose.yml \
                   --file docker-compose.db.consul.yml \
                   --file docker-compose.lb.dockercloud.yml \
                   down --volumes
    

Expose a microservice API

The following steps will typically be done by a developer, and may be done at the command line (per instructions below), or via your favourite API development environment, such as Postman.

  • First, create a file named Gatewayfile with the following content:

    {
        "Service": {
        "name": "Google Search",
        "gatewayUri": "/demo_google",
        "httpMethods": [ "get" ],
        "policy": [
          {
            "RouteHttp" : {
              "targetUrl": "http://www.google.com/search${request.url.query}",
              "httpMethod" : "Automatic"
            }
          }
        ]
      }
    }
    

    Save the file into the same directory from which you will make the next API call.

    The Gatewayfile is a JSON file that describes a "meta-policy" that will be published to the Microgateway. Gatewayfile will create a new service that will be accessible at "/demo_google" and will route requests to http://www.google.com.

  • Then, add your API to CA Microgateway:

    note: if you stopped the Microgateway previously, please start it up again.

    curl --insecure \
         --user "admin:password" \
         --url https://localhost/quickstart/1.0/services \
         --data @Gatewayfile
    

    Should return confirmation from CA Microgateway that the Google Search API was successfully published:

    {
      "success": true,
      "message": "Quickstart service created successfully. There maybe a delay of 10 seconds before the service is available."
    }
    
  • Now, verify that your API is exposed (by listing all published APIs):

    curl --insecure --user "admin:password" https://localhost/quickstart/1.0/services
    

    Should return a list containing the new Google Search service:

    [
      {
          "ServiceName": "Google Search",
          "ServiceUri": "/demo_google",
          "ServiceId": "8d06f72fcf8447ad99ca4833714e0497",
          "ServiceTimeStamp": "1509564356239"
      }
    ]
    
  • Finally, try using your exposed API:

    curl --insecure \
         --header "User-Agent: Mozilla/5.0" \
         'https://localhost/demo_google?q=CA'
    

    This API call should return HTML content from the proxied website:

    <!doctype html><html itemscope="" itemtype="http://schema.org/SearchResultsPage" lang="en"><head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
    <meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image">
    <link href="https://github.com/images/branding/product/ico/googleg_lodp.ico" rel="shortcut icon">
    ...
    

    Alternatively, you can call the API directly from the browser: https://localhost/demo_google?q=CA.

Next steps

For more complex scenarios, try these other tutorials

End-to-End Demos

Samples

Documentation

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].