How is the public cloud different than the private cloud? How can containers help you run your public scale effectively at scale? These are the slides that accompanied a webcast on our YouTube site.
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Webcast: DevOps in AWS is different! How can containers help?
1. DevOps in AWS is
Different!
How can Containers
Help?
Ed Lee
Saradhi Sreegiriraju
Feb 2 2017 @ 10:05 PST
VOIP or Dial-in (see chat)
Questions? Hit the GTW chat or @applatix
4. What we will talk about
• Warning: Public cloud ≠ private cloud!
• To get the benefits of the public cloud, you must operate differently
• How DevOps and containers are critical to success in public cloud
• Our lessons learned in working with containers at scale in AWS
5. Two important questions in
computing
• P = NP?
• If true, no fundamental difference between solving a problem and verifying
the solution to a problem
• Anyone who could appreciate Mozart, could compose like Mozart
• Answer: Unknown
6. Two important questions in
computing
• Public Cloud = Private Cloud?
• If true, no fundamental difference between using public cloud vs. private cloud
• No new skills, tools or processes are needed and there are no special benefits to
using public cloud vs. private cloud
• Answer: Public Cloud ≠ Private Cloud
8. The public cloud is
• Programmable (API driven)
• Enables developer self-service
• Huge on-demand marketplace
• New tools and skills
Private cloud
Public Cloud
VMs
Self-service
Spot instances
Global scale
Agility
Serverless
Microservices
Auto-scale
9. A public cloud instance is not a
VM!
• Public cloud instance is more like a server than a VM
• Lift and shift (right-size instances) ➜ sticker shock (meter is always running)
• How do Google and Facebook get 80% utilization? Containers!
Container
On-Premises Public Cloud
VMs Instances
10. On-premises is driven by silos
• Manage a fixed pool of resources
• Ticket-driven operations
• Resource constraints => utilization
Dev
Ops
Infra
40+ tools
VMs
On-Premises
Chef, Puppet, …
Git, Jenkins, …
cmds
CODE
use/operatescripts
11. Public cloud is driven by APIs
• Manage a fixed pool of resources
• Ticket-driven operations
• Resource constraints => utilization
• Infinite, on-demand resources
• Developer self-service via APIs
• Auto-scale => focus on cycle time
Dev
Ops
Infra
40+ tools
VMs
On-Premises
Chef, Puppet, …
Git, Jenkins, …
Public Cloud
Dev Ops
Infra APIs
cmds
CODE
CODE CODEuse/operate program
scripts
12. Traditional thinking is Resource
Constrained“Prioritize projects to use the available fixed resources”
Cloud thinking is Time
Constrained“Is this job worth the cost of running it?”
13. Unshackle your most precious
resources – engineers!
• An engineer costs $200K/year ➡
$800/work day
• 10% for infrastructure ➡ $80/ work day
• $80 on AWS buys
• m4.large ➡ 800 instance hours per day
• 8 hour day ➡ 100 m4.large instances
• What does this mean?
• Think and operate differently in public cloud
• Auto-scaling, bursting, spot instances
provide great leverage
15. What is DevOps?
• “Continuous delivery to enable business agility” – business definition
• “CI + CD + Automated Testing + CM + deployment” – process definition
• “DevOps is a culture” – analyst definition
• Regardless of your definition, DevOps is a must to use public cloud effectively
17. How do containers help with
DevOps in the public cloud?
• Containers provide light weight virtualization ➡ 80% utilization
• Avoid de-virtualization and sticker shock!
• Containers provide portability and consistency
• Ideal for DevOps, specifically in dynamic public cloud environments
• Containers provide better analytics
• Cost, perf, resource usage at a “job” rather than “server” granularity
• Containers allow converting servers to services
• Leverage microservices for fast iteration & quick software delivery
18. Challenges in running containers
on AWS at scale
• Container orchestration at scale
(scheduling across a cluster)
• Auto-scaling (up and down) cluster
• Public vs. private subnets
• Service discovery and routing to apps
• AWS API call limits
• Persistent storage – stability,
efficiency
• Lots of OS/container related bugs
• Networking, load-balancers, and DNS
• Application-level log management
• Application level security & control
20. So, what do you need to execute
successful DevOps strategy?
• Infrastructure management
• EC2 (47+ types), S3, …
• AWS monitoring/governance
• E.g. AWS Cost Explorer,
AWS Cloud Watch, …
• Container orchestration
• Kubernetes, Docker Swarm,
Mesos
• Persistent volume management
• EBS, EFS, Flocker, …
• Routing and load balancing
• ELB, NGINX, VPC peering
• DevOps tools & processes
• Jenkins, Chef, Puppet, …
• Artifact management
• Nexus, ECR, Artifactory, …
• Tie everything together
• Experimentation
• Scripting
21. Key Takeaways
• Public cloud ≠ private cloud
• VM != instance ➡ use containers for virtualization & efficiency
• Switch from resource constrained thinking to time constrained
thinking
• A lot of research and experimentation of APIs and tools to put
together a solution ➡ resource intensive
22. Thank you!
• For more resources see http://applatix.com/resources
• Feedback? Questions? info@applatix.com or
@applatix
• Our next Webinar:
Day 1 with AWS: What practices to put in place NOW?
Feb 19th, 10 am PT
Series, starting with high level problems/issues
In the future discuss more specific problems/solutions
Survey questions:
What percent of your workloads do you anticipate running in AWS in the next 12 months?
- <25%
- 25%-50%
- 50% - 75%%
- >75%
Are you using AWS?
Are you using containers on AWS?
Are you doing DevOps with containers at scale?
Are you building cloud native apps?
Our Mission: Take DevOps from a culture to a product
What: DevOps app + microservices for the public cloud
Why? Simplify moving apps to the cloud and unleash its potential
Shrink-wraps 150+ cloud APIs, technologies and DevOps tools
Scott chimes in on the last bullet.
- systems guys
- built DevOps systems
- Over the 18 months, we’ve had a front row seat to containers and rapidly changing technologies
- lots of battle scars as we deployed at customer sites
Ability to pontificate does not necessarily equate to the ability to create a solution.
In theory, theory and practice are the same. In practice, theory and practice are different
How many believe public cloud is just a larger version of the private cloud?
Drive the public cloud with code, not CMDs
DevOps enables agility & high utilization
DevOps is to automation, what the self-driving car is to cruise control
Devops + cloud => peanut butter + jelly
No AWS native support managing resources, security and ACLs
Instability/panics
Storage drivers
Memory limits & accounting
AWS API call limits
Designed as a substitute for manual provisioning
Not designed for managing dynamic infrastructure
Integrating networking, load-balancers, and DNS
ELBs are expensive, and do not work well for exposing many containerized services (bad interactions with subnets and security groups)
Many of these tools have been around for decades, not only pre-dating public cloud, but also virtualization. They are ill suited in this new landscape.
Lots of landmines in the public cloud; beware. Applatix can help