webcast: devops in aws is different! how can containers help?

Post on 12-Apr-2017

360 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

DevOps in AWS is Different!

How can Containers Help?

Ed Lee Saradhi Sreegiriraju

Feb 2 2017 @ 10:05 PSTVOIP or Dial-in (see chat)

Questions? Hit the GTW chat or @applatix

Who are we?

Ed Lee Saradhi Sreegiriraju

Challenges we address (without the product pitch)

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

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

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

How is Public Cloud Different?

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-serviceSpot instances

Global scale

Agility

ServerlessMicroservices

Auto-scale

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!

ContainerOn-Premises Public Cloud

VMs Instances

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

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 APIscmds

CODE

CODE CODEuse/operate programscripts

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?”

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

DevOps and Containers help succeed in Public

Cloud

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

What are containers?

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

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

What does it all mean?

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

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

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

Extra slides

top related