SlideShare a Scribd company logo
ECS & Docker:
Secure Async Execution @
Brennan Saeta
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
scala-ecs-docker-coursera
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon London
www.qconlondon.com
Scala, ECS, Docker: Delayed Execution @Coursera
The Beginnings — 2012
10
courses
1 million
learners
worldwide
4
partners
Education at Scale
1,800
courses
18 million
learners
worldwide
140
partners
Outline
• Evolution of Coursera’s nearline execution systems
• Next-generation execution framework: Iguazú
• Iguazú application deep dive:
GrID — evaluating programming assignments
Key Takeaways
• What is nearline execution, and why it is useful
• Best practices for running containers in production
in the cloud
• Hardening techniques for securely operating
container infrastructure at scale
A history of
nearline execution
Scala, ECS, Docker: Delayed Execution @Coursera
Coursera Architecture (2012)
PHP
Monolith
Early days - Requirements
• Video re-encoding for distribution
• Grade computation for 100,000+ learners
• Pedagogical data exports for courses
Coursera Architecture (2012)
PHP
Monolith
Cascade Architecture
PHP
Monolith
PHP
Monolith
Cascade
Cascade Architecture
PHP
Monolith
PHP
Monolith
Cascade
Queue
Upgrading to Scala
Re-architecting delayed execution for our 2nd generation
learning platform.
Upgrading to the JVM
• Leverage mature Scala & JVM ecosystems for code
sharing
• JVM much more reliable (no memory leaks)
• New job model: scheduled recurring jobs.
• Named: Saturn
Saturn Architecture
Service A
Service B
Service C
C*
Online Serving
Scala/micro-service architecture
C*
Saturn Architecture
Service A
Service B
Service C
C*
Online Serving
Scala/micro-service architecture
Saturn
C*
Saturn Architecture
Service A
Service B
Service C
C*
Saturn
C*
ZK
Ensemble
Saturn Architecture
Saturn
Leader ZK
Ensemble
Service A
Service B
Service C
C*C*
Problems with Saturn
• Single master meant naïve implementation ran all
jobs in same JVM
• Huge CPU contention @ top of the hour
• OOM Exceptions & GC issues
Enter: Docker
Containers allow for resource isolation!
CC-by-2.0 https://www.flickr.com/photos/photohome_uk/1494590209
Supported Features
Platform
Saturn Docker
Amazon
ECS
Iguazú
Run code ✅ ✅ ✅ ✅
Resource
Isolation ❌ ✅ ✅ ✅
Clusters /
HA ☑️ ❌ ✅ ✅
Great
developer
workflow
✅ ❌ ❌ ✅
Scheduled
Jobs ✅ ❌ ❌ ✅
Supported Features
Platform
Saturn Docker
Amazon
ECS
Iguazú
Run code ✅ ✅ ✅ ✅
Resource
Isolation ❌ ✅ ✅ ✅
Clusters /
HA ✅ ❌ ✅ ✅
Great
developer
workflow
✅ ❌ ❌ ✅
Scheduled
Jobs ✅ ❌ ❌ ✅
Supported Features
Platform
Saturn Docker
Amazon
ECS
Iguazú
Run code ✅ ✅ ✅ ✅
Resource
Isolation ❌ ✅ ✅ ✅
Clusters /
HA ✅ ❌ ✅ ✅
Great
developer
workflow
✅ ❌ ❌ ✅
Scheduled
Jobs ✅ ❌ ❌ ✅
Supported Features
Platform
Saturn Docker
Amazon
ECS
Iguazú
Run code ✅ ✅ ✅ ✅
Resource
Isolation ❌ ✅ ✅ ✅
Clusters /
HA ✅ ❌ ✅ ✅
Great
developer
workflow
✅ ❌ ❌ ✅
Scheduled
Jobs ✅ ❌ ❌ ✅
Supported Features
Platform
Saturn Docker
Amazon
ECS
???
Run code ✅ ✅ ✅ ✅
Resource
Isolation ❌ ✅ ✅ ✅
Clusters /
HA ✅ ❌ ✅ ✅
Great
developer
workflow
✅ ❌ ❌ ✅
Scheduled
Jobs ✅ ❌ ❌ ✅
Solution: Iguazú
Marissa Strniste (https://www.flickr.com/photos/mstrniste/5999464924) CC-BY-2.0
Solution: Iguazú
• Framework & service for
asynchronous execution
• Optimized Scala developer
experience for Coursera
• Unified scheduler supports:
• Immediate execution (nearline)
• Scheduled recurring execution
(cron-like)
• Deferred execution (run once @
time X)
Marissa Strniste (https://www.flickr.com/photos/mstrniste/5999464924) CC-BY-2.0
Iguazú Architecture
Iguazú
Frontend
Iguazú
Scheduler
Iguazú
Backend
CassandraServices Services
Iguazú
Admin
Iguazú
Workers
SQS
ECS API
Devs
Users
Iguazú Architecture
Iguazú
Frontend
Iguazú
Scheduler
Iguazú
Backend
CassandraServices Services
Iguazú
Admin
Iguazú
Workers
SQS
Queue
ECS API
Devs
Users
Iguazú Architecture
Iguazú
Frontend
Iguazú
Scheduler
Iguazú
Backend
CassandraServices Services
Iguazú
Admin
Iguazú
Workers
ECS API
Devs
Users
SQS
Queue
Iguazú Architecture
Iguazú
Frontend
Iguazú
Scheduler
Iguazú
Backend
CassandraServices Services
Iguazú
Admin
Iguazú
Workers
ECS API
Devs
Users
ZK Ensemble
SQS
Queue
Iguazú Architecture
Iguazú
Frontend
Iguazú
Scheduler
Iguazú
Backend
CassandraServices Services
Iguazú
Admin
Iguazú
Workers
ECS API
Devs
Users
ZK Ensemble
SQS
Queue
Autoscale, autoscale,
autoscale!
Autoscaling ⇄ Iguazú ⇆ ECS
Iguazu
ECS APIAutoscaling
EC2
Worker
EC2
Worker
Shutdown
Lifecycle
Notification Poll Worker
Job Status
All finished
Proceed
Term-
inate EC2
Worker
Failure in Nearline Systems
• Most jobs are non-idempotent
• Iguazú: At most once execution
• Time-bounded delay
• Future: At least once execution
• With caveats
Iguazú adoption by the numbers
~100 jobs in
production
>1000 runs
per day
>100 different job
schedules
Iguazú Applications
Nearline Jobs
• Pedagogical Instructor
Data Exports
• System Integrations
• Course Migrations
Scheduled Recurring Jobs
• Course Reminders
• System Integrations
• Payment reconciliation
• Course translations
• Housekeeping
• Build artifact archival
• A/B Experiments
While containers may help you
on your journey, they are not
themselves a destination.CC-by-2.0 https://www.flickr.com/photos/usoceangov/5369581593
Writing an Iguazu Job
class AbReminderJob @Inject() (abClient: AbClient, email: EmailAPI)
extends AbstractJob {
override val reservedCpu = 1024 // 1 CPU core
override val reservedMemory = 1024 // 1 GB RAM
def run(parameters: JsValue) = {
val experiments = abClient.findForgotten()
logger.info(s"Found ${experiments.size} forgotten experiments.")
experiments.foreach { experiment =>
sendReminder(experiment.owners, experiment.description)
}
}
}
Writing an Iguazu Job
class AbReminderJob @Inject() (abClient: AbClient, email: EmailAPI)
extends AbstractJob {
override val reservedCpu = 1024 // 1 CPU core
override val reservedMemory = 1024 // 1 GB RAM
def run(parameters: JsValue) = {
val experiments = abClient.findForgotten()
logger.info(s"Found ${experiments.size} forgotten experiments.")
experiments.foreach { experiment =>
sendReminder(experiment.owners, experiment.description)
}
}
}
Writing an Iguazu Job
class AbReminderJob @Inject() (abClient: AbClient, email: EmailAPI)
extends AbstractJob {
override val reservedCpu = 1024 // 1 CPU core
override val reservedMemory = 1024 // 1 GB RAM
def run(parameters: JsValue) = {
val experiments = abClient.findForgotten()
logger.info(s"Found ${experiments.size} forgotten experiments.")
experiments.foreach { experiment =>
sendReminder(experiment.owners, experiment.description)
}
}
}
Writing an Iguazu Job
class AbReminderJob @Inject() (abClient: AbClient, email: EmailAPI)
extends AbstractJob {
override val reservedCpu = 1024 // 1 CPU core
override val reservedMemory = 1024 // 1 GB RAM
def run(parameters: JsValue) = {
val experiments = abClient.findForgotten()
logger.info(s"Found ${experiments.size} forgotten experiments.")
experiments.foreach { experiment =>
sendReminder(experiment.owners, experiment.description)
}
}
}
Writing an Iguazu Job
class AbReminderJob @Inject() (abClient: AbClient, email: EmailAPI)
extends AbstractJob {
override val reservedCpu = 1024 // 1 CPU core
override val reservedMemory = 1024 // 1 GB RAM
def run(parameters: JsValue) = {
val experiments = abClient.findForgotten()
logger.info(s"Found ${experiments.size} forgotten experiments.")
experiments.foreach { experiment =>
sendReminder(experiment.owners, experiment.description)
}
}
}
Testing an Iguazu job
The Hollywood Principle
applies to distributed
systems. CC-by-2.0 https://www.flickr.com/photos/raindog808/354080327
Deploying a new Iguazu Job
• Developer
• merge into master… done
• Jenkins Build Steps
• Compile & package job JAR
• Prepare Docker image
• Pushes image into registry
• Register updated job with
Amazon ECS API
Invoking an Iguazú Job
// invoking a job with one function call
// from another service via REST framework RPC
val invocationId = iguazuJobInvocationClient
.create(IguazuJobInvocationRequest(
jobName = "exportQuizGrades",
parameters = quizParams))
A clean
environment
increases reliability.CC-by-2.0 https://www.flickr.com/photos/raindog808/354080327
Evaluating Programming
Assignments
An application of Iguazú
Scala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @Coursera
Design Goals
Elastic
Infrastructure
No
Maintenance
Near Real-time Secure
Infrastructure
Design Goals
Elastic
Infrastructure
No
Maintenance
Near Real-time Secure
Infrastructure
Design Goals
Elastic
Infrastructure
No
Maintenance
Near Real-time Secure
Infrastructure
Solution: GrID
Patrick Hoesly (https://www.flickr.com/photos/zooboing/5665221326/) CC-BY-2.0
• Service + framework for grading
programming assignments
• Builds on Iguazú
• Named for Tron’s “digital frontier”
• Backronym: Grading Inside Docker
High-level GrID Architecture
Learners
GrID
Iguazú
S3 Bucket
ECS APIs
Grading MachinesVPC Firewalls
Coursera Production Account Coursera GrID Grading Account
High-level GrID Architecture
Learners
GrID
Iguazú
S3 Bucket
ECS APIs
Grading MachinesVPC Firewalls
Coursera Production Account Coursera GrID Grading Account
High-level GrID Architecture
Learners
GrID
Iguazú
S3 Bucket
ECS API
Grading MachinesVPC Firewalls
Production Acct GrID Grading Account
High-level GrID Architecture
Learners
GrID
Iguazú
S3 Bucket
ECS API
Grading
Machines
VPC
Firewalls
Production Acct GrID Grading Account
Design Goals
Elastic
Infrastructure
No
Maintenance
Near Real-time Secure
Infrastructure
Programming Assignments
The Security Challenge
Compiling and running untrusted, arbitrary code on
our cluster in near real time.
Would you like to compile and run C code from random
people on the Internet on your servers?
FROM redis
FROM ubuntu:latest
FROM jane’s-image
Security Assumptions
• Run arbitrary binaries
• Instructor grading scripts may have vulnerabilities
• ∴ Grading code is untrusted
• Unknown vulnerabilities in Docker and Linux
name-spacing and/or container implementation
Security Goals
Prevent submitted code from:
• impacting the evaluation of other submissions.
• disrupting the grading environment (e.g., DoS)
• affecting the rest of the Coursera learning platform
Grading assignment submissions
CC-by-2.0 https://www.flickr.com/photos/dherholz/4367511580/
Scala, ECS, Docker: Delayed Execution @Coursera
CPU CPU CPU CPU
RAM
Alice’s Container
Alice’s
Submission
Grader
Bob’s Container
Bob’s
Submission
Grader
Mallory’s
Container
Mallory’s
Submission
Grader
Kernel
Disk
CPU CPU CPU CPU
RAM
Alice’s Container
Alice’s
Submission
Grader
Bob’s Container
Bob’s
Submission
Grader
Mallory’s
Container
Mallory’s
Submission
Grader
Kernel
Disk
CPU cgroups CPU cgroups
RAM — cgroups
Alice’s Container
Alice’s
Submission
Grader
Bob’s Container
Bob’s
Submission
Grader
Mallory’s
Container
Mallory’s
Submission
Grader
Kernel
Disk
CPU cgroups CPU cgroups
RAM — cgroups
Alice’s Container
Alice’s
Submission
Grader
Bob’s Container
Bob’s
Submission
Grader
Mallory’s
Container
Mallory’s
Submission
Grader
Kernel
Disk
CPU cgroups CPU cgroups
RAM — cgroups
Alice’s Container
Alice’s
Submission
Grader
Bob’s Container
Bob’s
Submission
Grader
Mallory’s
Container
Mallory’s
Submission
Grader
Kernel
Disk — blkio limits & btrfs quotas
CPU cgroups CPU cgroups
RAM — cgroups
Alice’s Container
Alice’s
Submission
Grader
Bob’s Container
Bob’s
Submission
Grader
Mallory’s
Container
Mallory’s
Submission
Grader
Kernel
Disk — blkio limits & btrfs quotas
Attacks: Kernel Resource
Exhaustion
• Open file limits per container
(nofile)
• nproc Process limits
• Limit kernel memory per cgroup
• Limit execution time
Scala, ECS, Docker: Delayed Execution @Coursera
CPU cgroups CPU cgroups
RAM — cgroups
Alice’s Container
Alice’s
Submission
Grader
Bob’s Container
Bob’s
Submission
Grader
Mallory’s
Container
Mallory’s
Submission
Grader
Kernel — cgroups, ulimits
Disk — blkio limits & btrfs quotas Network
Attacks: Network attacks
Attacks:
• Bitcoin mining
• DoS attacks on other systems
• Access Amazon S3 and other AWS APIs
Defense:
• Deny network access
Docker Network Modes
NetworkDisabled too restrictive
• Some graders require local loopback
• Feature also deprecated
--net=none + deny net_admin + audit
network
• Isolation via Docker creating an
independent network stack for each
container
github.com/coursera/amazon-ecs-agent
CC-by-2.0 https://www.flickr.com/photos/valentinap/253659858
CC-by-2.0 https://www.flickr.com/photos/jessicafm/2834658255/
CC-by-2.0 https://www.flickr.com/photos/donnieray/11501178306/in/photostream/
Defense in Depth
• Mandatory Access Control (App Armor)
• Allows auditing or denying access to a
variety of subsystems
• Drop capabilities from bounding set
• No need for NET_BIND_SERVICE,
CAP_FOWNER, MKNOD
• Deny root within container
Deny Root Escalations
• We modify instructor grader images
before allowing them to be run
• Clears setuid
• Inserts C wrapper to drop privileges from
root and redirect stdin/stdout/stderr
• Run cleaning job on another Iguazú
cluster
• Run Docker in Docker!
• Docker 1.10 adds User Namespaces
If all else fails…
• Utilizes VPC security measures to
further restrict network access
• No public internet access
• Security group to restrict
inbound/outbound access
• Network flow logs for auditing
• Separate AWS account
• Run in an Auto Scaling group
• Regularly terminate all grading EC2
instances
Other Security Measures
• Utilize AWS CloudTrail for audit logs
• Third-party security monitoring
(Threat Stack)
• No one should log in, so any TTY is an alert
• Penetration testing by third-party red
team (Synack)
Lessons Learned - GrID
• Building a platform for code
execution is hard!
• Carefully monitor disk usage
• Run the latest kernels
• Latest security patches
• btrfs wedging on older kernels
• Default Ubuntu 14.04 kernel not new
enough!
Reliable deploy
tooling pays for itself.
Thank you!
Brennan Saeta
github/saeta
@bsaeta
saeta@coursera.org
Frank Chen
github/frankchn
@frankchn
frankchn@coursera.org
GrID lead Iguazú Lead
Questions?
Brennan Saeta
github/saeta
@bsaeta
saeta@coursera.org
Frank Chen
github/frankchn
@frankchn
frankchn@coursera.org
GrID lead Iguazú Lead
Watch the video with slide synchronization on
InfoQ.com!
https://www.infoq.com/presentations/scala-
ecs-docker-coursera

More Related Content

PPTX
Docker & ECS: Secure Nearline Execution
PDF
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
PPTX
Amazon ECS at Coursera: A unified execution framework while defending against...
PPTX
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
PDF
Serverless in java Lessons learnt
PDF
Continuous Integration and Deployment Best Practices on AWS
ODP
Developing Microservices with Apache Camel
PDF
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...
Docker & ECS: Secure Nearline Execution
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
Amazon ECS at Coursera: A unified execution framework while defending against...
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
Serverless in java Lessons learnt
Continuous Integration and Deployment Best Practices on AWS
Developing Microservices with Apache Camel
Meetup Melbourne August 2017 - Agile Integration with Apache Camel microservi...

What's hot (18)

PPTX
Nashorn: JavaScript that doesn't suck - Tomer Gabel, Wix
PDF
4 JVM Web Frameworks
PDF
Priming Your Teams For Microservice Deployment to the Cloud
PPT
Docker in the Cloud
PDF
Serverless in Java Lessons learnt
PPTX
Sas 2015 event_driven
PDF
Developing Java based microservices ready for the world of containers
PDF
Everything-as-code. A polyglot adventure. #DevoxxPL
PDF
Adopting Java for the Serverless world at Serverless Meetup Italy
PDF
Everything-as-code. Ein polyglottes Abenteuer
PDF
Innovating faster with SBT, Continuous Delivery, and LXC
PDF
Managed Container Orchestration with Amazon ECS
PPTX
Docker on AWS - the Right Way
PPT
DevOpsCon Cloud Workshop
PDF
Serverless in production, an experience report (IWOMM)
PDF
Kubernetes on AWS
PPTX
Continuous delivery and deployment on AWS
PPTX
Serverless integration with Knative and Apache Camel on Kubernetes
Nashorn: JavaScript that doesn't suck - Tomer Gabel, Wix
4 JVM Web Frameworks
Priming Your Teams For Microservice Deployment to the Cloud
Docker in the Cloud
Serverless in Java Lessons learnt
Sas 2015 event_driven
Developing Java based microservices ready for the world of containers
Everything-as-code. A polyglot adventure. #DevoxxPL
Adopting Java for the Serverless world at Serverless Meetup Italy
Everything-as-code. Ein polyglottes Abenteuer
Innovating faster with SBT, Continuous Delivery, and LXC
Managed Container Orchestration with Amazon ECS
Docker on AWS - the Right Way
DevOpsCon Cloud Workshop
Serverless in production, an experience report (IWOMM)
Kubernetes on AWS
Continuous delivery and deployment on AWS
Serverless integration with Knative and Apache Camel on Kubernetes
Ad

Viewers also liked (17)

PDF
Commerce 2015 Activity Report
PPS
IQ ve EQ
PPS
PPS
Vefat ilanı
PDF
PLANET
PPS
Büyük tehlike !!!
PDF
Yahoo Finance Dec 19, 2009 Anchor Led IPOs Lack Listing Punch
PDF
Emerging economies and export promotion mechanisms_a case study of China and ...
DOCX
NDT PCN MULTI WITH ROPEACCESS CV
DOC
Binukumar resume- QA-QC ENGINEER
DOC
ANSARY CV ARABIC.DOC
DOCX
CV MUHTADI AZMAN
PDF
MediaEval 2016: A Hybrid Approach for Verifying Multimedia Use on Twitter
PDF
Paut full notes
PPTX
Industrial Ethernet, Part 2: Case Studies
PDF
What you need to know about franchising + licensing abroad
DOC
CV jayendra 1
Commerce 2015 Activity Report
IQ ve EQ
Vefat ilanı
PLANET
Büyük tehlike !!!
Yahoo Finance Dec 19, 2009 Anchor Led IPOs Lack Listing Punch
Emerging economies and export promotion mechanisms_a case study of China and ...
NDT PCN MULTI WITH ROPEACCESS CV
Binukumar resume- QA-QC ENGINEER
ANSARY CV ARABIC.DOC
CV MUHTADI AZMAN
MediaEval 2016: A Hybrid Approach for Verifying Multimedia Use on Twitter
Paut full notes
Industrial Ethernet, Part 2: Case Studies
What you need to know about franchising + licensing abroad
CV jayendra 1
Ad

Similar to Scala, ECS, Docker: Delayed Execution @Coursera (20)

PDF
Velocity NYC 2016 - Containers @ Netflix
PDF
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
PDF
Clocker - How to Train your Docker Cloud
PDF
How to Train Your Docker Cloud
PDF
Containerising bootiful microservices javaeeconf
PDF
Voxxed Days Vienna - The Why and How of Reactive Web-Applications on the JVM
PPTX
How and why we evolved a legacy Java web application to Scala... and we are s...
PDF
NetflixOSS Open House Lightning talks
PPTX
Ansible benelux meetup - Amsterdam 27-5-2015
PDF
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
PPTX
20171122 aws usergrp_coretech-spn-cicd-aws-v01
PDF
Docker and Puppet for Continuous Integration
PDF
Reactive Web-Applications @ LambdaDays
PPTX
AWS ECS workshop
PDF
Application Delivery Patterns
PDF
Cannibalising The Google App Engine
PDF
2016 07 - CloudBridge Python library (XSEDE16)
PPTX
Docker & Daily DevOps
PPTX
Docker and-daily-devops
PPTX
What’s New in CloudStack 4.15 - CloudStack European User Group Virtual, May 2021
Velocity NYC 2016 - Containers @ Netflix
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Clocker - How to Train your Docker Cloud
How to Train Your Docker Cloud
Containerising bootiful microservices javaeeconf
Voxxed Days Vienna - The Why and How of Reactive Web-Applications on the JVM
How and why we evolved a legacy Java web application to Scala... and we are s...
NetflixOSS Open House Lightning talks
Ansible benelux meetup - Amsterdam 27-5-2015
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
20171122 aws usergrp_coretech-spn-cicd-aws-v01
Docker and Puppet for Continuous Integration
Reactive Web-Applications @ LambdaDays
AWS ECS workshop
Application Delivery Patterns
Cannibalising The Google App Engine
2016 07 - CloudBridge Python library (XSEDE16)
Docker & Daily DevOps
Docker and-daily-devops
What’s New in CloudStack 4.15 - CloudStack European User Group Virtual, May 2021

More from C4Media (20)

PDF
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
PDF
Next Generation Client APIs in Envoy Mobile
PDF
Software Teams and Teamwork Trends Report Q1 2020
PDF
Understand the Trade-offs Using Compilers for Java Applications
PDF
Kafka Needs No Keeper
PDF
High Performing Teams Act Like Owners
PDF
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
PDF
Service Meshes- The Ultimate Guide
PDF
Shifting Left with Cloud Native CI/CD
PDF
CI/CD for Machine Learning
PDF
Fault Tolerance at Speed
PDF
Architectures That Scale Deep - Regaining Control in Deep Systems
PDF
ML in the Browser: Interactive Experiences with Tensorflow.js
PDF
Build Your Own WebAssembly Compiler
PDF
User & Device Identity for Microservices @ Netflix Scale
PDF
Scaling Patterns for Netflix's Edge
PDF
Make Your Electron App Feel at Home Everywhere
PDF
The Talk You've Been Await-ing For
PDF
Future of Data Engineering
PDF
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Next Generation Client APIs in Envoy Mobile
Software Teams and Teamwork Trends Report Q1 2020
Understand the Trade-offs Using Compilers for Java Applications
Kafka Needs No Keeper
High Performing Teams Act Like Owners
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Service Meshes- The Ultimate Guide
Shifting Left with Cloud Native CI/CD
CI/CD for Machine Learning
Fault Tolerance at Speed
Architectures That Scale Deep - Regaining Control in Deep Systems
ML in the Browser: Interactive Experiences with Tensorflow.js
Build Your Own WebAssembly Compiler
User & Device Identity for Microservices @ Netflix Scale
Scaling Patterns for Netflix's Edge
Make Your Electron App Feel at Home Everywhere
The Talk You've Been Await-ing For
Future of Data Engineering
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More

Recently uploaded (20)

PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Spectroscopy.pptx food analysis technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Electronic commerce courselecture one. Pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
sap open course for s4hana steps from ECC to s4
Advanced methodologies resolving dimensionality complications for autism neur...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Review of recent advances in non-invasive hemoglobin estimation
Spectroscopy.pptx food analysis technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Electronic commerce courselecture one. Pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
MIND Revenue Release Quarter 2 2025 Press Release
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Network Security Unit 5.pdf for BCA BBA.
Programs and apps: productivity, graphics, security and other tools
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Understanding_Digital_Forensics_Presentation.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Spectral efficient network and resource selection model in 5G networks
Building Integrated photovoltaic BIPV_UPV.pdf
sap open course for s4hana steps from ECC to s4

Scala, ECS, Docker: Delayed Execution @Coursera