have skills to manage IT infrastructure • What server size? • Which OS version? • When do we patch OS? • How do we patch OS? downtime! • Tuning server performance • How much remaining capacity do we have? • Handling server failures • Servers are highly underutilized • Pay even if you’re not running any workload – pay for time, not for the actual work
components ◦ Hard to understand interdependencies ◦ Partial deployments impossible ◦ Either all works or nothing works ◦ Shared data store ◦ Shared codebase – teams are overlapping WHY MICROSERVICES? Microservices ◦ Separation of responsibilites between components – easier to understand ◦ Individually deployable pieces ◦ Easier to test functionalities in isolation ◦ No sharing of code ◦ No sharing of data ◦ Graceful degradation of service
Handles authorization, access control, monitoring, API version management • Highly scalable, highly resilient service • Scales dynamically to handle ANY load • Seamless integration with AWS services (like Lambda or Kinesis) or any custom HTTP endpoint • Caching out of the box • Charging per million API calls ($3.50 per million API calls) + traffic out
compute service • Triggered by: API gateway call, SNS notification, Kinesis stream, S3 object upload, CloudWatch alarm, Amazon Echo.... • Pay only for running time (in 100ms increments) • Never pay for idle! • Don’t worry about overprovisioning or underprovisioning • Automatically scales to handle ANY load • Supports Node.JS, Python, Java and C# from today!! • Your code is secured – encrypted at rest • Monitoring out of the box
sec • Allocated memory from 128 MB up to 1.5 GB (in 64 MB increment) • Available CPU power proportional to allocated memory • 500 MB of non-persistent disk space • Function size (with dependencies) less than 50 MB • Execution is stateless, but beware – containers are reused! • Latency on first request
at ANY scale? • Can you afford unpredictable running costs? • Do you need to individually deploy ony pieces of your application? • Do you need to be able to experiment and iterate quickly with parts of your application? • Are you building microservices?
No well-proven patterns to follow, everyone is still experimenting • No mature frameworks to help us build and deploy • Still only few players in the game (AWS Lambda, Azure Functions, Google Cloud Functions, IBM OpenWisk, Webtask.io....) • Harder to develop and test locally • Do you really need this architecture? • In some cases it’s cheaper to run a fleet of EC2s
First million executions free, each additional million $0.20 $95 / month for each instace Our monthly cost $2,162 $950 Our yearly cost $25,944 $11,400 • 100 exeucutions / sec • Each execution lasts 1 sec • Each execution is allocated 512 MB of memory $14,500 difference per year!