Back in January we made Kubernetes available in our Edge release channels for Docker Desktop on macOS and on Windows. Today we’re excited to announce that Kubernetes orchestration has graduated to the Stable release channels for Docker Desktop!
Docker Desktop is the fastest and simplest way to get a Kubernetes cluster running on your desktop machine, while still giving you the freedom to choose Docker Swarm if you prefer. Docker Developer Advocate Elton Stoneman recently created a short video demonstrating Docker Desktop on both Windows and Mac. In the video, Elton demonstrates:
Click image below to watch video:
Docker Desktop is simple to install on macOS and Windows 10 Pro or Enterprise, and is available at the links below. If you’re already using Docker Desktop and you’re in the Stable channel (which is default) then you should see an auto-update notification soon.
Docker Desktop is the most popular way to configure a Docker dev Continue reading
A huge number of companies are still running apps on Windows Server 2003 and 2008 in the data center. They want to move to a modern, secure, supported platform which gives them the flexibility to run in the data center today – and in any cloud tomorrow. Docker gives them that flexibility, and you can move your apps to Docker without changing any code.
That was the focus of our recent webinar, where we showed several apps currently running on Windows Server 2003, and packaged them to run as Docker Windows containers. We showed all the steps to migrate the apps with no code changes, and then we ran them in Docker Enterprise on a Windows Server 2016 VM running in Azure.
You can watch the full video of the webinar here – it comes in at just over 60 minutes:
In the webinar, you see the portability that Docker Enterprise gives you. The applications we move are a mixture of older web technologies – static HTML, classic ASP and ASP.NET WebForms. The apps from the demo and the Dockerfiles are on GitHub here. They could be 15-year old apps and you Continue reading
I recently tweeted that I was about to undertake a new pet project where I was, in my words, “probably going to fall flat on my face”. Later, I asked on Twitter if I should share some of the learning that will occur (is ocurring) as a result of this new project, and a number of folks indicated that I should. So, with that in mind, I’m announcing this project I’ve undertaken is a software development project aimed at helping me bolster my software development skills, and that I’ll be blogging about it along the way so that others can benefit from my mistakes…er, learning.
Readers may recall that my 2018 project list included a project to learn to write code in Golang. At the time, I indicated I’d use Kubernetes and related projects, along with my goal of making more open source contributions, as a vehicle for helping to accomplish that goal. In retrospect, that was quite ambitious, and I’ve since come to the realization that there are a number of “baby steps” that I need to take before I am ready to use a large software project like Kubernetes as a means to help improve my coding skills. Continue reading
In April of 2017 we announced the Modernize Traditional Applications (MTA) program at Docker. The goal of MTA is to take the vast back catalogs of existing applications that are running in enterprise organizations today, and bring them to a modern container platform, without requiring extensive rewrites or refactoring. I’m excited to share part of our learning from the MTA program and announce the release of Docker Application Guides.
Oracle WebLogic MedRec Sample Application on Docker Enterprise Edition
Docker Application Guides demonstrate how to deploy popular enterprise applications – Oracle WebLogic and IBM MQ with WebSphere Liberty – on Docker Enterprise and Docker Desktop. Application Guides include example architectures and guidance for selecting Certified Docker container images from Docker Store and deploying a prototype application, orchestrated by Docker Swarm or Kubernetes.
It is important to note that Docker Application Guides are one piece of our prescriptive Docker customer journey to production. In addition to the knowledge transfer and process transformation that come with our full approach, Application Guides provide a reference for deploying common enterprise applications on the Docker Enterprise platform.
The first Docker Application Guides are designed to help you plan and deploy an Oracle WebLogic application Continue reading
I’ve recently started playing around with Ballerina, and upon the suggestion of some folks on Twitter wanted to clone down some of the “official” Ballerina GitHub repositories to provide code examples and guides that would assist in my learning. Upon attempting to do so, however, I found myself needing to clone down 39 different repositories (all under a single organization), and so I asked on Twitter if there was an easy way to do this. Here’s what I found.
Fairly quickly after I posted my tweet asking about a solution, a follower responded indicating that I should be able to get the list of repositories via the GitHub API. He was, of course, correct:
curl -s https://api.github.com/orgs/ballerina-guides/repos
This returns a list of the repositories in JSON format. Now, if you’ve been paying attention to my site, you know there’s a really handy way of parsing JSON data at the CLI (namely, the jq
utility). However, to use jq
, you need to know the overall structure of the data. What if you don’t know the structure?
No worries, this post outlines another tool—jid
—that allows us to interactively explore the data. So, I ran:
curl Continue reading
Over the years many things have contributed to the success of Ansible, including the flexibility of the tool itself, and a vibrant community that has contributed nearly 1,700 modules to the Ansible project, and imported nearly 17,000 roles to Ansible Galaxy. Not sure where to start or need an example of how to automate a thing? There’s probably a module for that and a few roles on Galaxy to get you started. This is all thanks to the community!
Since its inception, the Galaxy website hasn’t really changed much. There’s been a few minor releases with bug fixes here and there, but nothing big and exciting. For much of its existence, Galaxy has been maintained by the community team to keep it humming along as an open hub for the publishing of shared Ansible roles. In this way, Galaxy helps to facilitate the community’s enthusiasm for sharing Ansible roles.
Now, we’re changing up the status quo, with some big, cool updates planned for Galaxy. The goal is to make it an even better place for the community and partners to find and share Ansible content. Today, the expanded and dedicated Galaxy team is pleased to announce the release of an Continue reading
We’re excited to share the release of Docker 18.06 Community Edition (CE) and also share some changes that will be implemented in the next release. Based on feedback we’ve been hearing from the community, we are implementing some changes to deliver higher quality Community Edition (CE) releases, while also providing faster access to new features as they get added:
As a result of these changes, Docker 18.06 CE will be the last release with a 4-month maintenance lifecycle. The planned Docker 18.09 CE release will be supported for 7 months with Docker 19.03 CE being the next release in line. Further, the monthly Edge releases of Docker CE (Engine) are now replaced with nightly builds. Note that Docker Desktop (Docker for Mac, Docker for Windows) edge channels will still provide monthly updates.
We will be delivering a more thoroughly tested Docker CE release twice a year instead of quarterly. We will also be separating the packaging for different operating systems from the Continue reading
In case there was any question whether Spousetivities would be present at VMworld 2018, let this settle it for you: Spousetivities will be there! In fact, registration for Spousetivities at VMworld 2018 is already open. If previous years are any indication, there’s a really good possibility these activities will sell out. Better get your tickets sooner rather than later!
This year’s activities are funded in part by the generous and community-minded support of Veeam, ActualTech Media, Datrium, and VMUG.
Here’s a brief peek at what’s planned for VMworld in Las Vegas this August:
Monday, August 27
Tuesday, August 28
We condensed the Python Kubernetes/OpenShift client from 400,000 lines of code to 500, while adding features and closing nearly all known bugs. The new Kubernetes modules shipping in Ansible 2.6 support all resources the Kubernetes server supports, and fix nearly all the bugs that were in the 2.5 k8s_raw and openshift_raw modules. If you want to control your Kubernetes infrastructure with Ansible, now is a very good time to give it a try.
For anyone who has not followed the process of adding Kubernetes support to Ansible, this is actually our third attempt. With this iteration, we have finally worked out a lot of the kinks that made the modules difficult to use. Here’s a brief synopsis of the history of the project:
Generated client, generated modules
Our first iteration was backed by a generated OpenShift Python client, based on the existing Kubernetes Python client. This Python client ingested the OpenAPI spec for the OpenShift/Kubernetes API and generated one or more modules per resource type. Due to the size of the API, this resulted in ~400,000 lines of generated code.
The Ansible Kubernetes modules were in turn generated from the generated client, so for Continue reading
In the first blog post about the experimental Docker Application Packages, Gareth showed how our new open-source docker-app can be used to augment Compose files by adding metadata and separate settings.
Now that you know how to create an Application Package, how do you share it? Using a Docker registry solution like Docker Hub or Docker Enterprise of course! Let’s look at an example that works with the latest release of docker-app
. Here’s a simple single-file format Application Package with the filename hello.dockerapp
:
# This section contains your application metadata. version: 0.1.0 name: hello description: "A simple HTTP echo server" maintainers: - name: Chris Crone email: [email protected] targets: swarm: true kubernetes: true --- # This section contains the Compose file that describes your application services. version: '3.6' services: hello: image: hashicorp/http-echo:${version} command: ["-text", "${text}"] ports: - ${port}:5678 --- # This section contains the default values for your application settings. port: 5678 text: hello development version: latest
We can save this Application Package as a Docker image using the save
command:
$ docker-app save Saved application as image: hello.dockerapp:0. Continue reading
I don’t know if “additive” is the right word, but it was the best word I could come up with to describe the sort of configuration I recently needed to address in Ansible. In retrospect, the solution seems pretty straightforward, but I’ll include it here just in case it proves useful to someone else. If nothing else, it will at least show some interesting things that can be done with Ansible and Jinja2 templates.
First, allow me to explain the problem I was trying to solve. As you may know, Kubernetes 1.11 was recently released, and along with it a new version of kubeadm
, the tool for bootstrapping Kubernetes clusters. As part of the new release, the Kubernetes community released a new setup guide for using kubeadm
to create a highly available cluster. This setup guide uses new functionality in kubeadm
to allow you to create “stacked masters” (control plane nodes running both the Kubernetes components as well as the etcd key-value store). Because of the way etcd clusters work, and because of the way you create HA control plane members, the process requires that you start with a single etcd node, then add the second node, and Continue reading
Welcome to Technology Short Take 102! I normally try to get these things published biweekly (every other Friday), but this one has taken quite a bit longer to get published. It’s no one’s fault but my own! In any event, I hope that you’re able to find something useful among the links below.
network-engine
command parser to parse the output of commands on network devices. It looks like there will be a follow-up to this article as well, so you may want to check back on Ajay’s site.
Hello! My name is Rémy Léone and I am a Cloud Developer Evangelist at Scaleway. I’ve written this post to let you know that support for Scaleway services are now available natively in the Ansible Project with the release of Ansible version 2.6.
Scaleway’s goal is to help developers get cloud resources as easily as possible. Developing support for our services using well-known tools such as Ansible is one of our top priorities for user engagement. In this article, I’ll discuss the different Scaleway modules and demonstrate how to natively manage your Scaleway resources in your Ansible Playbooks.
---
Connection to Scaleway Compute nodes use Secure Shell. SSH keys are stored at the account level, which means that you can re-use the same SSH key in multiple nodes. The first step to configure Scaleway compute resources is to have at least one SSH key configured.
scaleway_sshkeys
is an Ansible module that manages SSH keys on your Scaleway account. You can add an SSH key to your account by including the following task in a playbook:
- name: "Add SSH key"
scaleway_sshkey:
ssh_pub_key: "ssh-rsa AAAA..."
state: "present"
The ssh_pub_key
parameter contains Continue reading
Docker container platforms are being used to support mission-critical efforts all over the world. The Planetary Defense Coordination Office out of NASA is using Docker’s platform to support a critical mission that could potentially affect everyone on the planet! The office is responsible for tracking near-earth asteroids, characterizing them and determining how to deflect them if one were to find its way to earth.
DART, led by the Johns Hopkins Applied Physics Laboratory by way of NASA, is the Double Asteroid Redirection Test. The team has chosen a potentially hazardous asteroid to hit in order to measure the impact and determine how effective this type of mission would be.
Developing the software for this mission is no easy feat, because space is hard! The team has one shot to make this mission work, there’s no rebooting in space. Space physics constraints lead to very low bandwidth, and low density memory due to the turbulent effects of radiation. So what did the software team want to solve for using Docker? Hardware scarcity. The development systems used in this project are very expensive ($300K), so not every developer is going to get their own system. This led to a time constraint, Continue reading
Jabil, one of world’s most technologically advanced manufacturing solutions provider with over 100 sites in 29 countries is embarking on a digital journey to modernize their technology infrastructure so the company is better able to deliver the right solutions at the right time to their global customer base.
As Jabil embarked on their digital journey with a cloud-first approach in mind, they investigated how to best migrate their applications to the cloud. Jabil partnered with Docker and Microsoft to leverage Docker Enterprise Edition with Windows Server 2016 and Microsoft Azure for this initiative through Docker’s Modernize Traditional Application (MTA) Program – starting with a .NET 4.5 monitoring application to containerize.
Since completing the initial POC, Jabil has continued containerizing more applications and has started scaling their Docker Enterprise usage globally. Sujay Pillai, a Senior DevOps Engineer at Jabil, participated at DockerCon SF 2018 in June and shared with the attendees insights on how Jabil is scaling Docker Enterprise Edition.
One growing use case for Jabil is monitoring of the manufacturing floors. Jabil uses lightweight edge devices to run the monitoring Continue reading
To close DockerCon Cool Hacks keynote, Idit Levine from Solo.io presented Gloo, a high-performance, plugin-extendable, platform-agnostic function Gateway built on top of Envoy.
Idit showed a demo that involved modernizing a traditional application; the classic Spring Pet Clinic sample app, by containerizing it and deploying it to Docker Enterprise Edition. She added functionality to the app by adding a microservice written in Go through a Gloo route. Then added more functionality by adding a Gloo route to an AWS Lambda function, creating a true hybrid cloud application combining legacy, microservices and serverless components.
She then provided a demo of Squash, that works with Gloo to live debug two microservices forming an application running in Kubernetes on Docker Enterprise Edition, one in Java from IntelliJ, one in Go from Visual Studio Code.
She finished her presentation by announcing and open sourcing Qloo, a GraphQL Server built on top of Gloo and the Envoy Proxy. This allows you to add GraphQL support without any coding to your existing application, and combining functions together in a workflow described as a graph.
See all these excellent demos in the video below, and view the presentation on SlideShare.
#Docker Spotlights: @gloo a Continue reading
Welcome to another post in the Getting Started series! Today we’re going to get into the topic of Workflow Job Templates. If you don’t know what regular Job Templates are in Red Hat Ansible Tower, please read the previously published article that describes them. It’ll provide you with some technical details that’ll be a useful jumping-off point for the topic of workflows.
Once you’re familiar with the basics, read on! We’ll be covering what exactly Workflow Job Templates are, what makes them useful, how to generate/edit one, and a few extra pointers as well as best practices to make the most out of this great tool.
The word “workflow” says it all. This particular feature in Ansible Tower (available as of version 3.1) enables users to create sequences consisting of any combination of job templates, project syncs, and inventory syncs that are linked together in order to execute them as a single unit. Because of this, workflows can help you organize playbooks and job templates into separate groups.
By utilizing this feature, you can set up ordered structures for different teams to use. For example, two different environments (i. Continue reading
Guess what!? Another release has come upon us! Your time has come to upgrade to Ansible 2.6-”Heartbreaker.” Utilize some great updates to automate to your heart’s desire, and avoid being heartbroken. See what I did there?
Let’s dive right into some of the changes.
One little bit of house cleaning before getting into the rest of the fun. The deprecated task option always_run
has been removed, please use check_mode: no
instead.
For any more information on behavioural changes from Ansible 2.5 to Ansible 2.6, please check out the Porting Guide.
In the development cycle of 2.6, we started to tackle a memory utilization problem that some of our users experienced in Dynamic Includes. In some cases, we have seen “roughly a drop of 50% memory consumption,” and in one scenario we had seen execution times of 21 seconds down to 8 seconds after the change was applied. Cool little bit, a bunch of these fixes were also back-ported to Ansible 2.5 as well as Ansible 2.4! In a future blog post, we plan to go into more detail of what was done to improve upon Dynamic Includes. Also, Continue reading
The closing keynote at DockerCon is traditionally the Cool Hacks keynote. This year, we featured three great hacks showing off innovative uses of Docker. In this post, I’d like to highlight one in particular, the Kubeflow demo with David Aronchick, and Michelle Casbon.
Machine Learning (ML) is becoming increasing popular, and important to enterprises. Kubeflow is an ML toolkit for Kubernetes, developed by Google. It’s a dedicated, portable and scalable approach to machine learning, using tools you’re already using to deploy other applications. It’s great because data scientists can use it to test out model creation on their laptops. And data engineers can take the models and use the power of Docker Enterprisein the cloud to further train and use the models in production.
In their demo, David and Michelle showed building an app using Kubeflow first with Docker Desktop and then on Docker Enterprise in the cloud. And they even took advantage of Google Cloud Tensorflow Processing Units native to the platform.
Check out their presentation and demo, and also check out Kubeflow to learn more.
Cool Hacks Spotlight: @kubeflow, a ML toolkit for #Kubernetes
Click To Tweet
Stay connected with Docker by taking advantage of the Continue reading
Two weeks ago was our eighth DockerCon in just four years. Our community of contributors, developers, IT users, enterprises and ecosystem partners has grown exponentially into the millions, anchored on our founder Solomon Hykes’ simple premise of democratizing the use of the software container. Today as was from the beginning, Docker creates simple tooling and a universal packaging approach that bundles up all application dependencies inside the container. Docker Engine enables applications to run anywhere consistently on any infrastructure, solving “dependency hell” for developers and operations teams, and eliminating the “it works on my laptop!” problem.
In the past 2 years, Docker Engine’s codebase has been refactored into several reusable components, the most important being containerd, the core container runtime, and BuildKit, the part of Docker Engine used to build images. In the contribute and collaborate track at DockerCon, Michael Crosby and Tonis Tiigli gave an update on these two projects (video, slides)
containerd, the core container runtime in Docker Engine has been leveraged by millions of users and is run in production by tens of thousands of organizations. Eighteen months ago, Docker spun out containerd from Docker Engine; donated Continue reading