Make IT

In 2016, we have seen a significant trend already in IT Strategy for CIOs who are under mounting pressure to modernize their IT organization, improve productivity, cyber security, and bring costs into line. Firstly, they are highly interested in technologies that will make their systems more nimble, powerful and cost-effective. Secondly, they want to know how quickly they can implement the change.

By now, nearly every IT department has been exposed to server virtualization and the different benefits it gives the modern data centre, but how many of you have heard of Docker application containers?

IT Strategy for Calgary and Vancouver - docker application containers - Supercharge your DevOps Using Docker - IT System Design and Managed IT

DevOps Using Docker in a Nutshell

Docker Containers are lightweight, portable, packaged applications which contain their own libraries and application dependencies and are deployed in a complete file system as an image file. Compared to traditional virtual machines, Containers run with less resource overhead and significantly reduce disk usage which both saves money in the data centre and allows for faster network transfer to distributed environments. Container images along with a central image repository allows for faster, more flexible dev ops and allows for fast and effective feedback loops between Development and Operations teams. 

IT Strategy for Calgary and Vancouver - Container Diagram - Supercharge your DevOps Using Docker - IT System Design and Managed IT

For those worried about jumping onto a technology “bandwagon” Docker containers are becoming much more common and are proven for full production. Docker containers have been around in the Linux world since around 2013 and will be released soon for Microsoft environments with Windows Server 2016 (releasing soon). Docker Containers are also fully supported by major cloud compute providers such as Microsoft Azure and Amazon Web Services. This gives IT Developer and Operations groups greater flexibility than ever to deploy either on premise, in the cloud or both with a unified devOps methodology.  

So why not supercharge your DevOps using Docker? Here are some of the compelling benefits:

  1. Isolation from underlying operating system and shared libraries - This allows for easy portability between disparate systems and for potentially conflicting versions of software to execute on a single server.
  2. Lower system resource overhead - Compared to traditional VMs which run a whole operating system along with the applications, Docker Containers share the kernel and base OS from the host machine, reducing RAM and disk usage requirements significantly.
  3. Shorter testing and QA cycle - Since the containers are packaged with all its configs and dependencies together, there's no need to test for inconsistencies between dev and prod environments. Containers are fully compartmentalized and run exactly the same no matter where they're running.
  4. Eases Operations Management - The central image repository with versioning supports complex distributed applications and allows for very short release cycles - Especially important for Agile development teams that "release early, release often"

Here’s a quick overview using Docker’s own manifesto:

Build

Developers build and test applications using normal development tools and processes. They then package the application or service into container images. Images include all configs, libraries and dependencies. Images can be incrementally updated for faster repo uploads (especially important for distributed systems or cloud environments) using layers and tags for version control.

Ship

Development team deploys images to central repository to be managed by the operations team with version control. The operations team can deploy or upgrade containers into production from central repository images – even simultaneously across dozens of machines for large computing clusters.

Using the repository image version control, rolling back to a previous version in case an issue arises in a new release is very quick and with much less risk than in traditional release methods.

Run

Once the Docker containers are running in production, the operations team can easily maintain and monitor running containered applications then provide application metrics and insight feedback to development team.

For more on Docker, check docker.com (their blog has a lot of helpful QA resources). Make IT provides scalable IT Systemsmanaged IT support and software solutions for SMB and Enterprise level businesses in Western Canada including Vancouver and Calgary. Please feel free to comment /ask questions below, or get in touch if you want to learning more about how we can improve your devOps using Docker in your organization. We are keen to hear from you!

Image credit: Awesome lego art by Sean Kenney