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

Simplicity or Sophistication: Choose two

Simplicity or Sophistication: Choose two

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

B78415ec052d8811a4f31c4746cbde9f?s=128

Senthil V S

March 30, 2018
Tweet

Transcript

  1. Simplicity or Sophistication: Choose two Senthil V S VP Engineering

  2. Ready for questions?

  3. Cook or Buy

  4. Tailor-made or Readymade

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

    based scalable platform • Simplicity of PaaS vs Sophistication of IaaS • Our approach • Technical details, code, demo
  6. IaaS

  7. PaaS

  8. 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
  9. PaaS is force-fitting IaaS is hard What did we do…

  10. Or something in-between Cook or Buy

  11. Build a PaaS on IaaS

  12. Build a PaaS on IaaS Whaaaat??? Don’t panic. Let’s see

    it in action
  13. Demo Creating a service Deploying the service Scaling it Monitoring

    & logs
  14. 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
  15. 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
  16. 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
  17. Show me code

  18. Learnings

  19. ECS is not batteries-included. Simple and does the job. Well.

  20. env.sample Why?

  21. THE feature of Cloudformation: Idempotency

  22. Never hand-code Cloudformation template

  23. Testing infra code. How?

  24. Version your commands
 
 and store it as metadata with

    cloudformation templates
  25. Bake-in monitoring and alerts

  26. Service should have only one way to configure Environment variables

    Do you smell?
  27. Treat secrets and other configurations same.

  28. Q & A