#Intro
- Data lake
- Cloud infrastructure
- Can't afford hardware cost of maintaining throughput bursts
- Goes from 0 activitiy to massive activity
- 90% of batch processing data transforming / machine learning
- Run continuously at different intervals
- Value throughput over latency
- Configuration, datamangement, batch process improvement of costs
- Value latency over throughput
- Online processing
- Online processes run continuously
- Continuous deployment without downtime
- 100s of repos
- No dedicated ops / support
- Leasing
- People who work in production
- "A person's claim to a resource for a period of time"
- Should be isolated (can't interact / interfere)
- Automatic termination
- Financial and commercial benefits for solving these problems
- Solutions done in FP / Haskell mostly
- Complex Systems
- Infra deployment is complex system
- Define operation config
- Type check
- Serialize
- Store
- Every server has daemon in haskell
- Reads config
- Manages lifecycle, monitoring, registration
- All solutions have individual servers / infrastructure
- Want unifies solution for batch and online leasing #Three types
- Each has its own
- Referred to as an 'amp'
- Have the knobs to control
- High scalability
- Managing constraints with cost and time
- Controlling config knobs
- Handling task allocation
- Task defines:
- Capability
- Execution
- Task submitted to scheduler, finds capability that meets task's requirements
- When found, task is allocated to resource
- If none, scheduler controls how capability is scaled to make it
- Tasks delayed / allocated at high resource costs
- Multiple services for different problems
- 'Hydra'
- Distributed cron
- Dependant tasks
- Hydra Task
- Runs at some time
- Executes some command
- Requirements met -> hydra submits task to scheulder
- Task becomes monitored
- Continuous deployment system
- Deployment starts with commit
- Gets picked up, published to store
- Start server, puts commit on newly started server
- Actually two servers
- If deployed successfuly, they are "healthy/active"
####The perfect program
update . calculate =<< read
- Define goal
- Encode every step in lifecycle deployment process
- Establish task with given configuration
- Check for health
- Deployment result is
Monad
- "Fingerprint"
- User nick
- Softare type
- Permissions
- Can be customized to fit needs
- For ex. daily deploy -> fingerprint contains date