Jump to content


Photo

Docker Webinar Series Part 2: From Dev to Production QA


No replies to this topic

#1 Adam Hawkins

Adam Hawkins

    Newbie

  • Moderators
  • 4 posts

Posted 09 November 2016 - 06:03 PM

Here's the QA from the session. You can also watch the webinar here if you haven't already.

 

Is AWS Lambda & Docker suitable for real microservice applications or is Docker the only way?

 

AWS Lambda can be useful for some applications; however it’s only really useful for microservices when backed by an API Gateway to transform HTTP requests to Lambda calls and responses to HTTP responses. This “serverless” space is still evolving. I suggest you try it out with some wrapper tools before taking a plunge on a larger applications. You can do microservices anyway you like. Docker is not a requirement. Container shine in polygot environments, however if your team is using a single stack then you may use your current process/tools to deploy more services.

 

Will Docker overtake OpenStack?

 

This isn’t a good comparison as they target use cases. Larger frameworks like OpenStack may build upon Docker (or other container runtimes).

 

How can you monitor Docker containers?

 

Most major metric collection tools (like collectd or hosted services like DataDog) provide integrations to pull data about each container. Then you can take the data to configure your alerts in whatever system you prefer. If you like you can roll your own using the “docker stats” command, or the various /proc files Docker exposes. Orchestration systems like Swarm, Mesos, or Kubernetes also support health checks to continually test the container is functioning as expected.

 

is Docker good to use with low latency app?

 

This is not my area of expertise. I suggest you benchmark the overhead incurred by running your application in a container vs outside. Then you can make an informed decision.

 

Please discuss Docker & API Backends

 

Whoa! Vague topic but I’ll do my best. Applying Docker to API servers is a wonderful use case because it allows the servers to be written in the best stack for the job.

 

Can you also discuss Docker and IOT messaging?

 

Truthfully I’m not sure how these topics relate to each other. You could run Docker on an IOT device or use Docker to run the API servers the devices connect to.

 

Swarm uses RAFT consensus algo for the master nodes and is leader based .. how does kubernetes do this?

 

Kubernetes uses etcd to manage state. Etcd uses raft for leader election.

 

Would you recommend running a hybrid docker environment? For instance running dev on my local machine but DB and APP hosted on docker?

 

This would work, however you’ll get more benefit if you use Docker for development and production. Using the same images throughout all phases will utltimately increase image quality and reusability.

 

What would you use for service discovery with kubernetes?

 

Kubernetes automatically sets environment variables for declared services. You can also configure DNS based service discovery. More information here: http://kubernetes.io...vering-services

 

Are the Kubernetes container created in one host or distributed (among other nodes)?

 

All containers in a pod run on the same node. More info here: http://kubernetes.io.../#what-is-a-pod

 

After Docker for aws & azure go public... wouldn't that make kubernetes much less desirable?

 

The question is more along the lines of “if I have hosted Docker Swarm” does that make Kubernetes less desirable? It doesn’t in my opinion because Kubernetes is more flexible than Docker Swarm and is not bound to Docker.

 

Are we constrained to use AWS offered docker service if we use AWS services?

 

Nope! Create your EC2 instances and run whatever you want on them.

 

Do you see value running container app with low latency requirement?

 

Not really. If you only care about latency than using (any) container may introduce more problems than your current approach.

 

Is it feasible to run an I/O intensive application that processes large files and in-memory structures in Kubernetes cluster or other options? Does Kubernetes introduce significant overhead for I/O / Memory intensive apps.

 

Yes depending on how you configure data volumes in the containers. Say for example you are doing a lot of ephemeral IO. You could potentially mount a RAM disk as a shared volume. Ultimately it depends on the latency for IO (e.g. Docker host local or a network volume like an Elastic Block Store on AWS).

 

This is related to docker local dev- for users with Win 10 hosts, how do you recommend setting up docker for local development for those who need a quick environment for Linux dev?

 

If you want a fully functional environment then you’re best off running a full VM on something like VirtualBox or VMWare. If you only want to build software and test it on linux then a docker setup for docker for windows may be enough. It’s possible to coordinate your entire workflow with Docker containers.

 

Is the pod.yml the kubernetes version of docker-compose.yml?

 

Kind of. The pod configuration focuses on containers. There is much more in docker compose file like network and port exposure. The docker-compose.yml is more a combination of a Kubernetes pod & service.

 

What are your thoughts on using cloud ide's like cloud 9 or codenvy with kubernetes & mesos?

 

No thoughts right now. This is an interesting thing that I’d never thought of before. It definitely seems like an interesting approach for a development environment. You would probably run into some problems with persistent data but sounds like a fun experiment!

 

Have you compare performance from kube and swarm?

 

No, I haven’t done any formal tests. My brieft experience with swarm has made me skeptical about it’s performance creating containers on overlay networks. There are plenty of tests results down on the internet if you want more information.

 

How these different options handle the problem of securely passing secrets to containers at run time?

 

Kubernetes has built in support for secrets. See their guide here: http://kubernetes.io/docs/user-guide/secrets/. If the tool does not have built in support then you can always run something like Vault on the cluster and use that.

 

Is kubernetes another version of Docker?

 

No. Kubernetes is a tool to run containers at scale. Kubernetes users Docker (and other container runtimes).

 

Have you tried running Docker with jenkins, git, bitbucket for CI/CD?

 

Yes but not exactly with combination of tools. My pipelines are all built on Docker so it doesn’t matter what does the coordination (Jenkins or some other hosted service). Overall the setup works very well and I recommend you try it out.

 

Are there any recommended security compliance monitoring?

 

This really isn’t my area of expertise. However I did just come across https://github.com/docker/docker-bench-security which seems like a great placed to start.


  • Diego Tiziani likes this




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users