Ronald Kurr
Long time software developer.
Ron Kurr
Winter 2017
Internet Gateway
NAT Gateway
EC2 Instance
AMI
Spot Instance
Auto Scaling Group
Application Load Balancer
WAF
CloudFront
Distribution
Edge Location
Route 53
Hosted Zone
Route Table
Registry
ECS
Container
Not everything lives within an AZ
6 subnets spread across 3 AZs
6 subnets spread across 3 AZs
6 subnets spread across 3 AZs
http --verbose https://d1phq4yrkrmw68.cloudfront.net/alpha/ elb==internal-Phoen-LoadB-ZMUPOXFQ3RGN-477287101.us-west-2.elb.amazonaws.com port==80 endpoint==/bravo/
GET /alpha/?elb=internal-Phoen-LoadB-ZMUPOXFQ3RGN-477287101.us-west-2.elb.amazonaws.com&port=80&endpoint=%2Fbravo%2F HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: d1phq4yrkrmw68.cloudfront.net
User-Agent: HTTPie/0.9.9
HTTP/1.1 200
Connection: keep-alive
Content-Type: application/json;charset=UTF-8
Date: Wed, 01 Mar 2017 21:10:47 GMT
Transfer-Encoding: chunked
Via: 1.1 4ddddf0243e9305f37605c71001e5dd7.cloudfront.net (CloudFront)
X-Amz-Cf-Id: yQv2ex7TZJ70PUtWDQecKravhqull3g5Nl13R0dwRrZ8ibxc42vxvg==
X-Application-Context: application
X-Cache: Miss from cloudfront
{
"calculated-return-path": "http://d1phq4yrkrmw68.cloudfront.net/bravo",
"incoming-headers": {
"accept": "*/*",
"accept-encoding": "gzip, deflate",
"cloudfront-forwarded-proto": "https",
"cloudfront-is-desktop-viewer": "true",
"cloudfront-is-mobile-viewer": "false",
"cloudfront-is-smarttv-viewer": "false",
"cloudfront-is-tablet-viewer": "false",
"cloudfront-viewer-country": "US",
"host": "internal-phoen-loadb-zmupoxfq3rgn-477287101.us-west-2.elb.amazonaws.com",
"user-agent": "HTTPie/0.9.9",
"x-amz-cf-id": "xV8kpuwQPkRGzd4Ovc4kxXfWyMLs8ho-mdzfkd6vcFo6FOexuq6ezA==",
"x-amzn-trace-id": "Self=1-58b738d7-7b8c79b3681047004e7014d3;Root=1-58b738d7-4f77d80103ec7114311376d6",
"x-forwarded-host": "d1phq4yrkrmw68.cloudfront.net",
"x-forwarded-port": "80",
"x-forwarded-proto": "http"
},
"served-by": "ip-10-0-50-205.us-west-2.compute.internal",
"status-code": 200,
"timestamp": "2017-03-01T21:10:47.534Z"
}
Need to translate AWS-specific proxy headers
listener:8000 <=== this port for 10 services
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/ten
...
listener:8010 <==== this port for another 10 services
/ninety-nine
/ninety-two
/ninety-three
/ninety-four
/ninety-five
/ninety-six
/ninety-seven
/ninety-eight
/ninety-nine
/one-hundred
The Elastic Container Service (ECS) is AWS’ entry into the multihost Docker space. Although there is a lot of competition in this area, there aren’t many off-premises managed solutions out there yet. Although ECS seems like a good first step, we are worried that it is overly complicated at the moment and lacks a good abstraction layer. If you want to run Docker on AWS, though, this tool should certainly be high on your list. Just don’t expect it to be easy to get started with. Assess."
CoreOS is a Linux distribution designed to run large, scalable systems. All applications deployed on a CoreOS instance are run in separate Docker containers, and CoreOS provides a suite of tools to help manage them, including etcd their own distributed configuration store. Newer services, such as fleet, help cluster management by ensuring that a specific number of service instances are always kept running. FastPatch allows atomic CoreOS upgrades using an active-passive root partition scheme and helps with quick rollback in case of problems. These new developments make CoreOS well worth looking into if you are already comfortable with Docker. Assess."
Kubernetes is Google's answer to the problem of deploying containers into a cluster of machines, which is becoming an increasingly common scenario. It is not the solution used by Google internally but an open source project that originated at Google and has seen a fair number of external contributions. Since we mentioned Kubernetes on the previous Radar, our initial positive impressions have been confirmed, and we are seeing successful use of Kubernetes in production at our clients. Trial."
HashiCorp continues to turn out interesting software. The latest to catch our attention is Nomad, which is competing in the ever-more-populated scheduler arena. Major selling points include not just being limited to containerized workloads, and operating in multi–data center / multiregion deployments. Assess."
The emerging Containers as a Service (CaaS) space is seeing a lot of movement and provides a useful option between basic IaaS (Infrastructure as a Service) and more opinionated PaaS (Platform as a Service). While Rancher creates less noise than some other players, we have enjoyed the simplicity that it brings to running Docker containers in production. It can run stand-alone as a full solution or in conjunction with tools like Kubernetes. Trial."
We've continued to have positive experiences deploying the Apache Mesos platform to manage cluster resources for highly distributed systems. Mesos abstracts out underlying computing resources such as CPU and storage, aiming to provide efficient utilization while maintaining isolation. Mesos includes Chronos for distributed and fault-tolerant execution of scheduled jobs, and Marathon for orchestrating long-running processes in containers. Trial."
Currently, there is no opinion on Docker Enterprise.
$75 - 200/month per node
Currently, there is no opinion on Apprenda Platform.
Contact us.
Currently, there is no opinion on Deis.
Currently, there is no opinion on Canonical Distribution of Kubernetes.
Currently, there is no opinion on Red Hat's support of Kubernetes.
Origin is the upstream community project that powers OpenShift. Built around a core of Docker container packaging and Kubernetes container cluster management, Origin is also augmented by application lifecycle management functionality and DevOps tooling. Origin provides a complete open source container application platform.
Conveniences built atop K8S
Kubernetes, Mesos, and Swarm: Comparing the Rancher Orchestration Engine Options
Docker Native gives you the quickest ramp-up with little to no vendor lock-in beyond dependence on Docker. However, Docker Native is very bare bones at the moment and if you need to get complicated, larger-scale applications to production you need to choose one of Mesos/Marathon or Kubernetes.
If you are doing a green field implementation and either don’t have strong opinions about how to layout clusters, or your opinions agree with those of Google, then Kubernetes is a better choice.
Rancher and Tectonic sit atop Kubernetes, providing UIs, catalogs, etc.
ECS
no GUI for deployment
only need to learn Amazon stuff
no on-premises version
will have to craft some pieces ourselves
Kubernetes
no licensing fee
no GUI (work in progress)
more stuff to learn
can work on premises
popular and continues to gain mind share
understands Amazon (ALBs, Route 53)
Rancher Labs
lots of goodness
unsure of support cost (contact us)
push button AWS set up
Swarm/Kubernetes/Mesos compatible
CoreOS
lots of goodness
only uses Kubernetes
10 nodes free (contact us)
Mesosphere
enterprise support (contact us)
proven to scale better than K8
easy installation
free, purchase support as needed
works in AWS
works in VMWare
encapsulates best practices in installer
handles the quarterly K8S upgrades
Deis
gone dark after the acquisition
consulting seems to be the focus
Docker Swarm
AWS support unknown
smaller community
By Ronald Kurr
Discussion on the current state of using Docker in the Amazon cloud. February 2017