Archive

Category Archives for "Systems"

Video Series: Modernizing Java Apps for Developers Part 4

Java Apps

Moving a monolithic application to a modern cloud architecture can be difficult and often result in a greenfield development effort. However, it is possible to move towards a cloud architecture using Docker Enterprise Edition (EE)  with no code changes and gain portability, security and efficiency in the process.

Java Apps

Part 4 takes advantage of the messaging service I added in part 3. In this installment, I’ll add self service analytics powered by the open source Elasticsearch / Kibana stack. The reporting database and analytics UI run in containers and the worker is updated to also store data in Elasticsearch. The Docker platform supports adding new components to a running deployment without shutting down the application containers that are currently running. You’ll learn how Docker lets you add new capabilities to the application with zero downtime in production.


Docker MTA Video Series: Modernizing Java Apps for Developers
Click To Tweet


To learn more about Docker for Java Developers:

The post Video Series: Modernizing Java Apps for Developers Part 4 appeared first on Docker Blog.

Webinar Recap: The Docker Platform on Windows – from 101 to Modernizing .NET Apps

 Windows

Our live Docker webinars are always hugely popular. Last month we hosted a session on Docker and Windows containers, covering everything from the basics to how you can use the  Docker platform (Docker Enterprise Edition and Docker Desktop)  to modernize existing .NET apps and move them to the cloud.

The recording is available now – it clocks in at 60 minutes and has lots of demos showing you how to build and run Windows applications in containers with Docker for Windows:

The sample code, Dockerfiles and Docker Compose files for all the demos are here on GitHub.

In fact there were so many demos, I ran out of time for the Q&A part – so here are the unanswered questions we had from viewers:

Q. Are there any best practices or tutorial to architect sql databases in containers? What about data persistence, database references etc? How can we use SSDT with containers?

SQL Server running in a container is just like any remote SQL Server – you can connect with SSDT or Visual Studio or VS Code or any SQL client. There’s a good SQL Server in Docker tutorial on GitHub which walks through the build and deployment process with containers, and Continue reading

Improved Docker Container Integration with Java 10

Docker and Java

Many applications that run in a Java Virtual Machine (JVM), including data services such as Apache Spark and Kafka and traditional enterprise applications, are run in containers. Until recently, running the JVM in a container presented problems with memory and cpu sizing and usage that led to performance loss. This was because Java didn’t recognize that it was running in a container. With the release of Java 10, the JVM now recognizes constraints set by container control groups (cgroups). Both memory and cpu constraints can be used manage Java applications directly in containers, these include:

  • adhering to memory limits set in the container
  • setting available cpus in the container
  • setting cpu constraints in the container

Java 10 improvements are realized in both Docker for Mac or Windows and Docker Enterprise Edition environments.

Container Memory Limits

Until Java 9 the JVM did not recognize memory or cpu limits set by the container using flags. In Java 10, memory limits are automatically recognized and enforced.

Java defines a server class machine as having 2 CPUs and 2GB of memory and the default heap size is ¼ of the physical memory. For example, a Docker Enterprise Edition installation has 2GB of memory and Continue reading

GETTING STARTED: ANSIBLE TOWER’S API

Getting-Started-Ansible-Tower-API

Welcome to another entry in the Getting Started series. The API (Application Programming Interface) or, as I like to refer to it, the Magical Land of Automation Information, can be used in quite a few ways. In this Getting Started post, we will be discussing Red Hat Ansible Tower’s API and how you can use it to extract information to utilize in your playbooks and other tools.

The idea for this blog post came about when David Federlein was developing a new Ansible Tower demo and presentation. I will be making references to that codebase, which you can follow along with throughout this post. Please note that this demo utilizes Vagrant and VirtualBox so you’ll need to have those applications installed if you would like to stand up the demo yourself.

Ansible Tower’s API

Ansible Tower’s API is fully browsable. You can navigate to your instance’s REST API by typing this into your browser: http://<Tower server name>/api/v2. Once there, you can click any of the listed links and view the current objects loaded for that particular attribute in Ansible Tower. Everything you can do in Ansible Tower's UI can be done from the API; you can also use it Continue reading

The Future is Containerized

Last week I announced my departure from VMware, and my intention to step away from VMware’s products and platforms to focus on a new technology area moving forward. Today marks the “official” start of a journey that’s been building for a couple years, a journey that will take me into a future that’s containerized. That journey starts in Seattle, Washington.

Why Seattle, Washington? Because that’s where Heptio is based, and because today I am joining Heptio as a senior member of the field engineering team to help drive the adoption of Kubernetes across the industry. Only a couple of folks guessed that I was headed to Heptio. If you were one of those folks, you guessed correctly!

Two questions are probably rolling around in your head right now:

  1. Why Kubernetes?
  2. Why Heptio?

Good questions!

It’s clear to me that containers will have a significant impact on how we as IT professionals will develop, deploy, upgrade, and manage applications. It’s also clear to me that when it comes to orchestrating containers, Kubernetes is the clear leader. So, if I accept that containers are going to be a significant part of IT moving forward, then it logically follows that Kubernetes is Continue reading

Technology Short Take 97

Welcome to Technology Short Take 97! This Tech Short Take marks the end of an era (sort of); it’s the last Tech Short Take published while I’m a VMware employee (today is my last day; see here for more details). But enough about me—let’s talk some tech! This Short Take may be a bit longer than some, so buckle up.

Networking

Au revoir

Today I’m announcing my departure from Docker, the company I helped create ten years ago and have been building ever since. A founder’s departure is usually seen as a dramatic event. Sadly, I must report that reality is far less exciting in this case. I’ve had many roles at Docker over the years, and today I have a new, final one – as an active board member, a major shareholder and, I expect, a high maintenance Docker user. But I will no longer be part of day-to-day operations. Instead, after obsessing for so many years over my own ideas, I am rediscovering the joys of putting myself at the service of others – my friends, my family, and the brilliant entrepreneurs I’ve been lucky enough to advise and invest in over the years. Over the coming months I plan to use my experience to help them in any way I can.

This transition is simply another chapter in a long story of change, growth, hard work… and a lot of luck.

Ten years ago, I quit my job, returned to live with my mother in Paris and, together with my friends Kamel Founadi and Sebastien Pahl, started a company called Continue reading

Video Series: Modernizing Java Apps for Developers Part 3

Docker for Java

Moving a monolithic application to a modern cloud architecture can be difficult and often result in a greenfield development effort. However, it is possible to move towards a cloud architecture using Docker Enterprise Edition with no code changes and gain choice , security and operational agility in the process.

Docker for Java

Part 3 of the series begins the modernization process. I’ll take one aspect of the current application and break it out into a microservice. As written, the application writes to the database directly, but direct writes to the database can easily overwhelm the application by a large number of requests.

One solution is to implement a messaging queue. As in the part 2, I’ll follow several guidelines:

  1. Leave existing code in place.
  2. Design the new code as a separate and reusable application
  3. Deploy the microservice locally using Docker Enterise Edition
  4. Test the code

In this part of the modernization process, I add a message queue comprised of a REST interface that writes to a Redis database. The user data is held in Redis until it’s requested by a worker service that does the write to the database. The message queue uses Spring Boot to implement both the REST interface and the Redis database functions. Continue reading

Infoblox Integration in Ansible 2.5

The Ansible 2.5 open source project release includes the following Infoblox Network Identity Operating System (NIOS) enablement:

  • Five modules
  • A lookup plugin (for querying Infoblox NIOS objects)
  • A dynamic inventory script

For network professionals, this means that existing networking Ansible Playbooks can utilize existing Infoblox infrastructure for IP Address Management (IPAM), using Infoblox for tracking inventory and more. For more information on Infoblox terminology, documentation and examples, refer to the Infoblox website

Let’s elaborate on each of these Ansible 2.5 additions. All of the following examples (and many more) are provided in the network automation community project, under the infoblox_ansible Github repo. The integrations for Ansible require that the control node (where Ansible is being executed from) have the infoblox-client installed. It can be found here and installed with pip issuing the pip install infoblox-client command.

Ansible Infoblox Modules

There are five new modules included with Ansible 2.5. They can be currently found in the development branch of the documentation:

Here is an example playbook on configuring a IPv4 network using the Continue reading

Time to Evolve

I first started getting into VMware around 2003, possibly earlier (I can’t recall exactly when it was). I remember thinking that VMware’s impact on the industry was going to be significant, and I wanted to be part of this industry change. I was right—virtualization like what VMware offers has fundamentally changed the industry. However, just as technology evolves, technology careers must evolve as well. Specifically, my technology career must change and grow. It’s time to evolve.

This need to evolve has been building for a couple years. You’ve probably observed that the amount of VMware-centric content produced here on the site has slowly been replaced by topics like Linux, Docker, Vagrant, Terraform, AWS, Azure, and others. These topics represent where I think my next period of growth and change resides, and after a couple years of slow growth in these areas it’s now time to “put the pedal to the metal” and accelerate things.

As of this coming Friday, March 30, 2018, I will be leaving VMware after a little over 5 years with the company. My time with VMware (as an employee) has been an amazing adventure. I’m thankful to Brad Hedlund for his Continue reading

Ansible 2.5: Traveling space and time

Ansible-2-5-Blog-HeaderWelcome to another Ansible release! Version 2.5–“Kashmir”–has a lot of great stuff to play around with, and we're excited to get it in your hands so you can try it out.

Some of the items in this release have been covered in depth in previous Feature Spotlights: AWS EC2 Dynamic inventory plugin, the new Loop keyword, and the all-new ec2_instance module. But those are just appetizers for all of the new things that are included in this release.

Fact Namespacing

In 2.5, we are introducing fact namespacing, which makes Ansible facts available under the ansible_facts namespace (i.e. ansible_facts.os_distribution) without the ansible_ prefix.

Facts will continue to be added into the main namespace directly, but there is now a configuration boolean to enable this. Today, it’s ”On” by default, in a future release, we’ll switch that to “Off”.

Module Blacklisting

We have added a configuration file that enables administrators to filter modules that should be excluded from being used in playbook runs. Operationally, this ensures administrators have more control over which Ansible Modules are approved for use.

New magic vars

Magic vars are variables that Ansible provides to playbook runs without having to be requested. Continue reading

5 years later, Docker has come a long way

The evolution of Docker: From introducing a container runtime to building an enterprise-ready container platform

Back in March 2013, Docker was introduced publicly for the first time during Docker founder, Solomon Hykes’ lightning talk at PyCon. Since that moment in 2013, Docker has evolved in conjunction with the needs of users and customers to drive innovation around security, orchestration, networking and more. From building out advanced security features across the software supply chain and offering the choice of both Swarm and Kubernetes, to developing Docker for Mac/Windows and the Docker Enterprise Edition (EE) container platform, Docker has come a long way. Now at the age of five, Docker has millions of users and over 450 commercial customers – including hundreds of the world’s largest companies – that rely on Docker EE to power their digital and multi-cloud initiatives.

Docker Birthday

The history of Docker has shaped where we are today and as we celebrate our 5th birthday this week, we take a look back at the journey that lead us here.

Following the enthusiastic reception at PyCon 2013, Docker’s image format and container runtime quickly emerged as the de facto standard and building block for the community, customers and the broader industry. The Continue reading

Interop ITX, Dell Technologies World, and Spousetivities

Spousetivities will be present at two additional events this year—in fact, these events are only about 6 weeks away! Both Dell Technologies World and Interop ITX are in Las Vegas the last week of April (both starting April 30), and Spousetivities is running events for both conferences.

<aside>In case you’re wondering why I blog about Spousetivities, it’s not only because my wife runs it (seriously). It’s primarily because I’m committed to supporting families, marriages, and relationships in the IT industry. IT companies ask a lot of their employees—often asking employees to give up evenings and/or weekends, or setting unfair expectations on employee responsiveness via email/Slack/IM during off-hours—so a program that enables spouses and/or significant others to join IT employees during a conference helps provide a little bit of balance, in my view.</aside>

Here’s a look at what’s planned during these two IT conferences:

  • On Monday, April 30, there’s a full-day tour of Death Valley planned. This event is leaving the Mirage at 8:00 am and includes photo opportunities at Dante’s View and Zabriskie Point, a scenic drive through the Artist’s Pallet, and a stop at Bad Water Basin—the lowest point in the Western Hemisphere!

  • On Tuesday, May 1, Spousetivities Continue reading

Video Series: Modernizing Java Apps for Developers Part 2

Java apps

Moving a monolithic application to a modern cloud architecture can be difficult and often results in a greenfield development effort. However, it is possible to move towards a cloud architecture using Docker Enterprise Edition with no code changes and gain portability, security and efficiency in the process.

 Java apps

In the first post in this series, we discussed how you don’t need to do a full re-architecture of your application to microservices when using Docker Enterprise Edition.

In the second installment of the series, I go into the details of containerization of the application. This process builds containers using the application code as-is. I’ll follow three simple rules:

  1. Keep the existing architecture
  2. Keep the save version of the OS, components and application
  3. Keep deployment simple, i.e. static not elastic

I’ll also demonstrate how to use multi-stage build file to compile the code and deploy it to application server container such as Tomcat. It also shows how to deploy the application and database using a Docker Compose file.


Video Series: Modernizing @Java Apps for #Developers with #docker EE
Click To Tweet


To learn more about Docker solutions for Developers:

Technology Short Take 96

Welcome to Technology Short Take 96! Ahead, lying in wait, is a unique collection of links, articles, and thoughts about various data center technologies. Browse if you dare…OK, so I’m being a bit melodramatic. It’s still some good stuff here!

Networking

  • Via Matt Oswalt and Michael Bushong, I came across this article on Juniper’s use of P4. Interesting stuff…P4 definitely has the potential to dramatically reshape networking in new ways, in my humble opinion.
  • Maxime Lagresle of XING outlines how they went about troubleshooting an unexplained connection timeout on Kubernetes/Docker.
  • Ajay Chenampara outlines how POAP (Power On Auto Provisioning), a feature of Cisco NX-OS, works to streamline provisioning new network switches.
  • Don Schenck has a high-level overview of Istio and service meshes.
  • Daniel Álvarez has a good article describing some OVN profiling and optimizing he recently performed. I believe the patches he mentioned in the post have already been accepted into the OVN codebase.

Servers/Hardware

Nothing this time around; sorry! If you have some articles you feel are worthy of inclusion in the next Tech Short Take, send them my way!

Security

A Secure Supply Chain for Kubernetes, Part 2

Two weeks ago we shared how the upcoming release of Docker Enterprise Edition (Docker EE) is able to secure the software supply chain for Kubernetes; just as it does for Docker Swarm through a combination of scanning for vulnerabilities and implementing image promotion policies. In this blog, we’ll take a closer look at another part of this solution – Docker Content Trust and image signing.

When combined with granular Role Based Access Controls [RBAC] and the secure clustering features of Docker EE, organizations get a secure container platform solution that is ready for the enterprise.

Restricting Unverified Kubernetes Content

As discussed in Part 1 of this blog post, organizations typically have a “supply chain” for how applications progress from a developer’s laptop to production, whether that is on-premises or in the cloud. For larger organizations, the team that handles QA and testing is not always the same team that develops the applications. There may also be a separate team that handles staging and pre-production before an application is pushed to production. Since an application can pass through several teams before it gets deployed, it’s important for organizations to be able to validate the source of the application.

Docker Content Trust Continue reading

Video Series: Modernizing Java Apps for Developers Part 1

Modernizing Java Apps

Moving a monolithic application to a modern cloud architecture can be difficult and often result in a greenfield development effort. However, it is possible to move towards a cloud architecture using Docker Enterprise Edition with no code changes and gain portability, security and efficiency in the process.

Containerizing a monolithic application is a great starting point for modernizing application architecture.In many cases this can be done with no code changes at all.  From there, breaking down the application into smaller components makes it easier to deploy updates, introduce new components and manage scale.

This new video series covers modernization for Java applications. It walks through the process of evolving a N-tier Java application to a distributed application running across multiple containers. Docker provides the platform that plugs in and manages all the components into a coherent architecture.

This  series does not cover a full re-architecture to microservices. Shifting to a full microservices approach isn’t right for all applications, and the daunting task of a full rewrite of a monolithic application can be a massive endeavor that takes years to pay-off. Especially if what you have works. This series uses a feature driven approach. I select key features to update, in order to fix Continue reading

GETTING STARTED: UPGRADING ANSIBLE TOWER

Thanks for checking out the Getting Started series! This quick tutorial lists the basic steps needed to perform an upgrade of Red Hat Ansible Tower in a standalone configuration. Specifically, we'll be upgrading Ansible Tower 3.1.0 to the latest (as of this writing) version 3.2.2 in a few simple steps. There are some things you’ll need to keep in mind while upgrading (e.g., editing the inventory file appropriately), and a description will be offered with each example.

Upgrading is Easy

The steps to upgrading are similar to installing Ansible Tower. The original inventory file from the install should already have the hostnames and variables you'll be using, so it's suggested that you work from your current install's inventory file to populate the upgrade file.

Your older inventory file may have some different lines than the newer upgrade version, due to updated configuration options or added features. In this example, the difference between the 3.1.0 and the 3.2.2 inventory files is the added ability to enable isolated key generation for clustered installs. See below for a side-by-side comparison: 

Ansible Tower 3.1.0 Ansible Tower 3.2.2

[tower]
Continue reading

Getting Started with Ansible Tower

If you’re considering evaluating Red Hat Ansible Tower, you might also be curious about what sort of support is included with a trial key. This post will explain what sort of help is available while you conduct a PoC, along with information to assist you with errors and more.

Ansible Experts Are Here to Help

After you download a trial of Ansible Tower and request a license key, there is more than just documentation and reading materials to help guide you through errors. Once you and your team are connected with Ansible and want to start working on an evaluation or proof of concept installation, there are a boatload of resources to help you on your automation journey:

Sales Representatives: Provide support from day one, helping you understand what Ansible Engine and Ansible Tower can do for you and your environment.

Getting Started Team: The product field engineering team (known colloquially as the "Getting Started" team) helps with the installation, configuration and integration of Ansible Engine and Ansible Tower.

Solution Architects: For cases that delve into deeper understanding of all things Ansible Automation, writing playbooks, or consultation/screenshared demos to ensure success of the project, a Solutions Architect can save Continue reading

Enhanced Layer 7 Routing for Swarm in Docker Enterprise Edition Beta

 The beta release of Docker Enterprise Edition has seen incredible activity. The highlight of the upcoming Docker Enterprise Edition (Docker EE) release is the integration of Kubernetes and bringing all of the advanced security, RBAC and management capabilities of Docker EE to Kubernetes. At the same time, we have been working to improve Swarm, delivering the only container platform that allows you to run both orchestrators in the same cluster. In this blog post, we’ll highlight some the key new capabilities around application-layer (Layer 7) routing and load balancing for Swarm-deployed applications. These enhancements come from the new Interlock 2.0 architecture which provides a highly scalable and highly available routing solution for Swarm. The new architecture brings some additional features to the platform, including path-based routing and SSL termination.

Path-Based Routing

Layer 7 load balancing allows traffic going to host domains like acme.com to be distributed across specific containers in your environment. With path-based routing, traffic headed to sub-domains within acme.com (eg. acme.com/app1 or acme.com/app2) can be separately routed to different sets of containers. This can be especially useful for optimizing application performance by driving different requests to different groups of containers.

Docker Load Balancing

Read Continue reading

1 55 56 57 58 59 126