Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How we built Heroku-like PaaS over AWS with just Python

How we built Heroku-like PaaS over AWS with just Python

We get high level of customizability with IaaS like AWS and utmost convenience with PaaS like Heroku. We blended the benefits of these two and this talk is about sharing the journey.

You will learn about our journey of building a simple CLI tool for creating and deploying services with a single command.

Senthil V S

July 09, 2018
Tweet

More Decks by Senthil V S

Other Decks in Programming

Transcript

  1. Agenda • Definitions • IaaS • PaaS • Simpl: Microservices

    based scalable platform • Simplicity of PaaS vs Sophistication of IaaS • Our approach • Technical details, code, demo
  2. Simpl architecture Streaming Platform Services Streaming Platform Streaming Platform Streaming

    Platform Data Pipeline Dashboards Analytics ML models Merchant Apps Simpl Website Different tech stacks Scalability requirements Security requirements
  3. Cloudlift • Built by two developers at Simpl & in

    production use • Used in a heroku style. (Yeah. You can call it heroic style ;)) • Hides the complexity • Fully customizable
  4. Cloudlift • Containerized services • Infrastructure as code • Cloudformation

    • ECS • Simpl specific conventions • Environment == ECS Cluster • Service == [ECS service] • Deployment • Environment • Config • Image • Python based command line tool
  5. What happens on deploy_service ? Push local docker 
 image

    to ECR Ensure S3 has all required config env.sample Docker registry ECR S3 bucket configuration.simpl Update the task definition with image version & env vars ECS runs new containers with updated version Stops the old version once new are up ★ The service name is guessed from current dir ★ image name is same as repo name in 
 spinal case without simpl- prefix ★ latest version is picked to push 1 2 3 4 5