Deploying microservices to the cloud

What is this about?

  • Microservices overview 
  • Docker overview 
  • Dockerizing a service
  • Deploying a Docker container to the cloud
  • Container orchestrators overview
  • Evolving the containers
  • Cross-Cutting concerns
  • Wrap up

Microservices 

 

Microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.

 

Docker

  • A technology for building/running in an isolated operating system.
  • Provides process/resource isolation while running in a single OS Kernel 
  • Different from vm, lighter, faster, easily integrated

Container creation

Docker

Container creation

Docker on local

Docker-Machine

Docker on cloud

Container orchestrators

Kubernetes

  • Powerful system for running containers
  • Pods
  • Services
  • Replication controllers
  • Rolling updates
  • Scale and Autoscale

How do we connect?

Docker on kubernetes

System evolve

  • No system is ever "done"
  • All of your microservices will change
  • Deployments are necessary

System evolve

CI Practices

  • Use a CI Server (Jenkings, Team Services, Bamboo, Travis CI, etc) with parallel tasks.
  • Create a process (build) for each service
  • Each process compiles, build image, tag image and run tests
  • One to one mapping between sources and images
  • Run tests inside container (Optional)
  • Run full system test using docker compose

CI Pipeline

Cross-cutting concerns

  • Logging (ELK, Application insights, Google monitor, etc)
  • Security (DNS, Https, certificates, etc)
  • Caching (CDN, redis, etc)
  • Metrics
  • Scaling
  • Multi-tenancy (Namespaces, subnets, policies, etc)

Wrap up

https://github.com/camiloahm/scaleconf-deploying-microservices

We´re hiring

engineering@bizagi.com

Thanks

Made with Slides.com