@MIT series is a group of articles being written to describe my learning path attending to the Cloud & DevOps: Continuous Transformation at the MIT.

This article at a glance — TL;DR

Docker, Containers Orchestration and Public Key Infrastructure (PKI)

The content

How the stack of software components used to run an application got more and more complex when compared to past years.

In past years a huge number of web applications used to run on top of LAMP (Linux, Apache, MySQL, and PHP/Pearl). Nowadays we have several different possible approaches for each one of the layers of this acronym.

Containers are the most recent evolution we have for running our apps. They followed these steps:

  1. The dark age: undergoing painful moments to run your app on a new machine (probably using more time to run the app than actually writing it).
  2. Virtualizing (using VMs) to run our apps, but having the trade-off of VMs’ slowness.
  3. Containers — They are a lightweight solution that allows us to write our code in any operating system and then rerun it easily in another operating system.

The difference between Virtual Machines and Docker:

  • Virtual Machines = Applications + Libraries + Operating System.
  • Docker = Applications + Libraries.

The analogy between the evolution of how humanity solved the problem of transporting goods across the globe using containers (real and physical containers) compared to how software developers used the containers abstraction to make our lives way easier when trying to run an application for the first time.

Kubernetes is introduced and the benefits approached:

  • Less work for DevOps teams.
  • Easy to collect metrics.
  • Automation of several tasks like metrics collecting, scaling, monitoring, etc.

Public key infrastructure:

  • More and more needed interaction machine-to-machine requires more sophisticated methods of authentication rather than user and password.
  • Private and public keys are used to hash and encrypt/decrypt messages and communications.

Exercises and Assignments

Exercise 1: Running a simple node app with docker (building and running the app)


  1. Build a docker image
  2. Publish it to dockerhub.com
  3. Run a local ghost blog using docker
  4. Publish a sample post


All the resources used to reach the results above are stored in this GitHub repository: https://github.com/guisesterheim/MITCloudAndDevOps




Sharing experiences on IT subjects. Working for AWS. DevOps, Kubernetes, Microservices, Terraform, Ansible, and Java

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Stuck while installing Django? Here’s some steps for you to follow.

CS 373 Fall 2021: Andrew Luo

Docker Registry Service Account Validation.

Urban Logistics Network Simulation in Python

The best reason to use DynamoDB streams is…

Learning in the time of Corona

Mastering CSS ::before and ::after

CSS logo

5 Essential Macros to Build a Test Framework in C++

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Guilherme Sesterheim

Guilherme Sesterheim

Sharing experiences on IT subjects. Working for AWS. DevOps, Kubernetes, Microservices, Terraform, Ansible, and Java

More from Medium

Does Multi Cloud Makes Sense?

orange clouds on the sunset

How to Use Microservices Using Simple Queue Service

CI/CD system with AWS Codepipeline and Elastic Beanstalk for any docker project

SAP Homogeneous Migration From Azure to AWS