+ All Categories
Home > Documents > Deploy an API gateway with Docker - Sandro...

Deploy an API gateway with Docker - Sandro...

Date post: 28-May-2020
Category:
Upload: others
View: 64 times
Download: 0 times
Share this document with a friend
23
Deploy an API gateway with Docker Sandro Cirulli Oxford University Press (OUP) API Days Nordic University of Tampere, Finland 19 May 2016
Transcript

Deploy an API gateway with Docker

Sandro CirulliOxford University Press (OUP)

API Days NordicUniversity of Tampere, Finland

19 May 2016

Table of contents

1. Introduction

2. What is an API gateway

3. What is Docker

4. Technical Configuration

5. Demo

6. Benefits of Docker

7. Alternative Approaches

8. Summary

About me

I I work as Platform Tech Lead at Oxford University Press(OUP)

I I am responsible for system architecture and DevOps (CI,Docker, AWS, deployment)

I I started using APIs and Docker in 2014-15 for developinglanguage resources at OUP

3/23

Oxford University Press (OUP)

I Oxford University Press (OUP) is a world-renowneddictionary publisher

I OUP launched the Oxford Global Languages (OGL) initiativeto digitize under-represented languages

I OUP launched languages websites for Zulu, Northern Sotho,Malay, Urdu, Indonesian, and Setswana

4/23

Oxford Global Languages (OGL)Vision

I Localized websites and digital access for multiple languages

I Language communities contributing content (crowdsourcing)

I Supporting digitally under-represented languages

I Flexible data serving multiple needs

5/23

Zulu language websitepowered by APIs and Docker

6/23

API Gateway

What is an API gateway?

I An API gateway is a single entry point for APIs in a serviceinfrastructure

I It provides authentication and authorization layers

I It routes, load balances, and caches requests to the API

8/23

What is an API gateway?

Source: http://microservices.io/patterns/apigateway.html

9/23

Microservices architecture for OGL project

10/23

Docker

What is DockerI Docker is an open-source project that automates the

deployment of applications into software containers

I Docker packages an application with all of its dependencies -no more ”worked on my machine” problems

I Docker isolates applications and resources

I Docker guarantees that the system will run the sameregardless of the running environment - build, ship, and runany app, anywhere

12/23

Traditional vs Docker Deployment

Source: Miell, I. and Sayers, A. H. (2016) Docker in Practice, Manning.

13/23

Docker Images and Containers

Object-oriented programming analogy:

I Docker images are likeclasses

I Docker images areblueprints

I Docker images are likerecipes

I Docker containers are likeobjects

I Docker containers areconcrete instances ofDocker images

I Docker containers are likedishes

14/23

Why using Docker for an API gateway?

I Infrastructure as code

I Replicate configuration accross environments

I Avoid dependencies conflicts

I Facilitate portability and automation

15/23

Technical Configuration

I Dockerfile

I nginx and 3scale

I https and SSL certificates

3scale Forum

17/23

Demo

I Build and run a container on AWS

I Run curl commands to interact with the API

I Debug logs inside the container

Benefits of Docker

I Reusability: spin up new containers in no time

I Portability: migrate quickly to bigger machines or frombare-metal to the cloud

I Automation: deployment is easily automated and lesserror-prone

19/23

Alternative ApproachesDocker API gateway from 3scale

Check out the 3scale implementation of a Docker API gateway:

https://github.com/3scale/docker-gateway

20/23

Alternative ApproachesServerless Architecture

Check out:

I Mikael Puittinen’s workshop on AWS Serverless

I Nicolas Grenie’s presentation on Serverless API

Some considerations:

I Check your use cases and application architecture

I Make a cost analysis

I Check your cloud provider

I Server and serverless architectures can coexist

21/23

Summary

I An API gateway is a single entry point for APIs andprovides authentication and authorization layers

I Docker makes it easier to replicate the configuration acrossmultiple environments

I Docker automates deployment and makes it lesserror-prone

22/23

Thank you for your attention!

Contact:www.sandrocirulli.net/contact

[email protected]

Slides:www.sandrocirulli.net/apidaysnordic2016

GitHub:github.com/cirulls/docker-api-gateway

Links:OGL programme: www.oxforddictionaries.com/ogl


Recommended