2. Scope of this presentation
Not about tools
itโs about architecture
3. Architecture Principles & Concepts
1. Infrastructure as a Code
2. Automation
3. Immutability
4. Distributed (Characteristics)
5. Deployment Strategies
6. Cloud based
7. Developer friendly
8. Future
4. 1. Infrastructure as a Code
- Defining the infrastructure as DSL
- Document all the changes
- Sharing, Reviewing
5. 2. Automation
โAutomation is easy, Architecture is hardโ
- Chef for automation
- Keep things simple!
- Local vs Cloud system simulation on Docker
- Community cookbooks
6. 3. Immutability: Platform
- Minimal Chef usage - only 130 commits!
- Love immutable infrastructure
- Dependencies are containerized
โIn the end Service come, Service go!โ
8. 4. Distributed
A. Resource Sharing
B. Openness
C. Concurrency
D. Scalability
E. Fault Tolerance
F. Transparency
9. A. Resource Sharing
- Think about your microservice in terms of computing
resources required, defined by SLA.
- (Service footprint + SLA) = Data Driven Scalability. No
magic scaling, No guessing.
- High resource utilization across the cluster; saves
money!
10. B. Openness
- Mesos Frameworks
- Big data frameworks are first class citizens
14. F. Transparency
- Access to the scheduled processes
- Service Discovery
- Capacity metrics
- Cluster members details
15.
16. 5. Deployment Strategies
- Rolling Deployment
- Rollback functionality
- Deployment versioning
- Deployment dependencies
- Instant re-scheduling upon failure
- Docker as a first class citizen
17. 6. Cloud Based
- Virtual Private Cloud (VPC)
- Only 2 IPs are exposed to the public
- Public & Private subnets
- Split-Horizon DNS (*.internal.domain)
18. 7. Developer Friendly :)
- Create a new project
- Deploy from anywhere
- From any branch
- In few minutes!
- Ask Ben! for test deployment