Saturday, October 18, 2014

Docker – A Technology that VMware also embraces



Often time there is the notion that with Docker, the Linux Container technology is going to replace server virtualization.  The reasoning for this thought is that with Linux Container virtualize application on the operating system level in which the hypervisor is no longer needed. 

Another camp of thought is that container does not have the robustness and enterprise ready feature such as resource allocation management, high availability or even manageability that can be offered by VMware.

In VMworld 2014, VMware CEO Pat Gelsinger on his keynote session announced the collaboration of VMware, Google and Docker in the Software Defined Data Center (SDDC) sighting that running Docker on a virtual machine is the best of both world giving user a lot more flexibility and benefits.

What is Docker
Docker, Inc is the company behind the open source Docker platform.


Docker is an orchestration or packaging tool that allows applications and their dependencies to run on container technology. 

According to this article Docker consist of:
  • Docker Engine – a portable, lightweight run time and packaging tool.
  • Docker Hub – a cloud service for sharing application and automating workflow.
It is all about:  APPLICATION.

Before we dig deeper into Docker we have to look into the container technology.

Container
Container is not a new technology.  We can trace the origin to FreeBSD Jails back to year 2000 where programs are run in a sandbox.  Solaris (now part of Oracle) has this implemented as zones.

We can look at container as operating system level virtualization in which application in a container is isolated from each other but are running on the same operating system which is on a single host. 

Google has its own version of container – Imctfy and is being used heavily to support Google Search Engine, Gmail and other Google applications.

Native Linux has container build upon cgroup and namespaces but it is not so easy to deploy application with LXC and thus this technology is not popular in the enterprise space.  Docker is making this much easier both for developer and sys Admin to deploy application with the container technology. 

Once an application is “Dockerized”, it can be run on any platform as long as the OS is the same as the container is created.  Now we can deploy container on-premises (private cloud) or move it to the public cloud such as Amazon Web Services or Google Cloud Computing.

Recently Microsoft has announced support for Docker in their public cloud – Azure.

Popular Configuration Management Tools such as Puppet and Chef can work with Docker and this made the deployment process even easier and Docker a perfect fit for DevOps.

Docket support can also be found in OpenStack Nova.

Docker Components and Technologies
Docker operates on a client and server model.  The Docker client and server/daemon can be on the same host or different host. The Docker client communicates with the Docker server/daemon using REST API.

This diagram captures the core components of Docker:




Docker Client
  • Accept commands from the user and communicate with the server/daemon
Docker Server/Daemon
  • Building the Docker container from the images that are stored in the Docker Registry
Docker container
  • Base unit where the application runs on
  • Similar to a Virtual Machine
Docker image
  • Building block of container
Docker Registry
  • Location where the Docker images are stored
  • Public registry – access by everyone
  • Private registry – access by specific team or organization

Red Hat has a good description of Docker fundamental components:

·     Container – an application sandbox. Each container is based on an image that holds necessary configuration data. When you launch a container from an image, a writable layer is added on top of this image. Every time you commit a container (using the docker commit command), a new image layer is added to store your changes.
·      Image – a static snapshot of the containers' configuration. Image is a read-only layer that is never modified, all changes are made in top-most writable layer, and can be saved only by creating a new image. Each image depends on one or more parent images.
·      Registry – a repository of images. Registries are public or private repositories that contain images available for download. Some registries allow users to upload images to make them available to others.
·      Dockerfile – a configuration file with build instructions for Docker images. Dockerfiles provide a way to automate, reuse, and share build procedures.

Along with the components let’s take a look at the technologies that make Docker works:

Namespaces
Linux namespaces provides isolations for each container.  Applications or process inside a container do not have access outside of the namespaces that the container is in.  There are different namespaces and examples are pid, net, ipc, mnt or uts.

Control groups/cgroups
While namespaces provides access isolation, the control groups limits the hardware resources that the container can access.  One example of control groups is to limit the memory available for the container for say 256 MBs.

UnionFS
This is how containers are made to be light weighted.  Linux kernel first mounts the root system read-only and then change to read-write.  With the union mount, instead of changing from read-only to read-write, a read-write file system is layered on top of the read-only based Filesystem. Union mean to layer read-write with read-only layers.



Containers
Linux container (LXC) is an essential technology that Dockers uses. 

VMware Project Fargo
So how does VMware embrace Docker?  If you want more information about how VMware uses Docker this blog post is a good start.

In VMworld 2014, VMware announced Project Fargo (currently in beta as of this posting).

Project Fargo according to the blog post from the blog post mentioned is “a technology to provide a fast, scalable differential clone of a running VM” and it is particular useful in a VDI environment.  In fact, it is to make Docker containers to run faster on a VM than they are running on a native Linux machine.   

This is how VMware is saying: VMware + Docker = Best of both worlds.

More information about Project Fargo can be found here, here and here.

29 comments:

  1. Nice blog for alternatives to VMware. I want more information on all alternatives to VMware. Please provide complete information in next blog

    ReplyDelete
  2. You have a good point here! I totally agree with what you have said!! Thanks for sharing your views. hope more people will read this article!! 토토

    ReplyDelete
  3. Really liked your work and has been following it for a long time now. 토토

    ReplyDelete
  4. This site is known as a walk-by way of for the entire data you wished about this and didn’t know who to ask. Glimpse right here, and you’ll positively discover it.야동

    ReplyDelete
  5. I’d have to talk to you here. Which isn’t something Which I do! I love to reading a post that should get people to think. Also, thank you for allowing me to comment!대딸방

    ReplyDelete
  6. Very good article! We are linking to this particularly great content on our site. Keep up the great writing. Pretty valuable material, overall I consider this is worth a bookmark, thanks 건마탑

    ReplyDelete
  7. This article is very detailed And i am happy reading this! 온라인카지노

    ReplyDelete
  8. Just desire to say your article is as surprising. The clearness in your post is simply great and i can assume you are an expert on this subject. 카지노사이트프로

    ReplyDelete
  9. This comment has been removed by the author.

    ReplyDelete
  10. Hello! I just want to give you a big thumbs up for your excellent info you have got here on this post. 토토

    ReplyDelete
  11. These are in fact impressive ideas in on the topic of blogging.
    You have touched some nice things here. 토토

    ReplyDelete
  12. This is my first visit to your web journal! We are a group of volunteers and new activities in the same specialty. Website gave us helpful data to work. 야한동영상

    Click this link
    야설

    ReplyDelete
  13. I like your post. It is good to see you verbalize from the heart and clarity on this important subject can be easily observe 일본야동

    Click this link
    한국야동

    ReplyDelete
  14. I really happy found this website eventually. Really informative and inoperative, Thanks for the post and effort! Please keep sharing more such blog. 한국야동닷컴

    Click this link
    국산야동

    ReplyDelete
  15. Really nice and interesting post. I was looking for this kind of information and enjoyed reading this one. 국산야동

    Click this link
    야설

    ReplyDelete
  16. Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with extra information? It is extremely helpful for me. 중국야동넷

    Click this link
    야설

    ReplyDelete
  17. Thank you for your explanation, very good content. d65f84d271f5b9cf097d645c28a95ee8
    altın dedektörü

    ReplyDelete
  18. Introducing ChatGPT: The Revolutionary Language Model Application

    ChatGPT is a cutting-edge language model application that utilizes the power of GPT (Generative Pre-training Transformer) technology to generate human-like text. Developed by OpenAI, this application has been trained on a massive dataset, making it capable of understanding and responding to a wide range of natural language inputs.

    One of the key features of ChatGPT is its ability to generate highly coherent and fluent text that is indistinguishable from text written by a human. This makes it ideal for a variety of use cases such as chatbots, automated content generation, and language translation.

    In addition to its impressive language generation capabilities, ChatGPT also offers a number of other features that make it a valuable tool for businesses and individuals alike. For example, it can be used to quickly generate product descriptions, summaries of articles, or even entire articles. It can also be used to answer questions, providing a level of customer service that is fast, accurate and efficient.

    Another important feature of ChatGPT is its ability to be fine-tuned for specific tasks or industries. This allows users to train the model on their own data, making it more accurate and effective for their specific needs.

    Overall, ChatGPT is a powerful and versatile application that is poised to revolutionize the way we interact with language technology. Whether you are a business looking to improve customer service, a researcher seeking to develop new AI models, or an individual looking to generate creative content, ChatGPT has the capabilities to help you achieve your goals.

    Tags:
    chatgpt,chat gpt
    7PJD3F

    ReplyDelete
  19. Experience unparalleled reliability and security for your data at our premier Data Center in Paris.

    ReplyDelete