Scaling with Containers at AppSphere 2016

Containers have grown tremendously in popularity in recent years. Originally conceived as a way to replace legacy systems completely, container technology has instead become a way to extend monolithic systems with newer, faster technology. As an example of this growth, the 2016 RightScale State of the Cloud Report™ shows Docker adoption rates in 2015 moved from thirteen percent to twenty-seven percent. Another thirty-five percent of respondents say they have plans to use Docker in the near future.

What Are Containers?

Containers allow you to move software from one environment to another without worrying about different applications, SSL libraries, network topology, storage systems, or security policies — for example, moving from a machine in your data center to a virtual environment in the cloud. They are able to do this because everything you need to run the software travels as one unit. The application, binaries, libraries, and configuration files all live together inside a single container.

You can move a container to a wide variety of software environments with no problem because the program is self-contained. In contrast, virtualization also includes the operating system. Containers share the same operating system kernel, so they are lighter and more energy-efficient than a virtual machine. Hypervisors are an abstraction of the entire machine, while containers are an abstraction of only the OS kernel.

There are a variety of container technologies to support different use cases. The most popular container technology right now is Docker. It grew rapidly a few years ago with major adoption in enterprise computing, including three of the biggest financial institutions in the world — unusual for the slow-to-adopt world of banking. Docker allows software applications to run on a large number of machines at the same time, an important quality for huge sites like Facebook that must deliver data to millions of consumers simultaneously.

Container Technologies

Recent surveys performed by DevOps.com and ClusterHQ show Docker is the overwhelming favorite in container technology at this point. One of the most talked-about competitors to Docker that has emerged recently is Rocket, an open-source project from CoreIS, which ironically was one of one of Docker’s early proponents. Backed heavily by Google, Rocket’s founders developed the technology because they thought Docker had grown and moved too far away from its original purpose. While Docker has been embraced as almost an industry standard, competitors are making inroads. Rocket’s founders say one of its strengths is that it is not controlled by a single organization.

One of the pioneers in container technology back in 2001 is a product from Parallels called Virtuozzo. It gets a lot of attention from OEMs, works well on cloud servers, and features near-instant provisioning. Other fast-growing container technologies include LXC and LVE.

Container Best Practices

One of the challenges of containers is monitoring their performance. AppDynamics is able to monitor containers using our innovative Microservices iQ. It provides automatic discovery of exit and entry service endpoints, tracks important performance indicators, and isolates the cause of performance issues.

At AppSphere 2016, you can learn more about containers and performance monitoring at 10 AM on Thursday, November 17, where AppDynamics’ CTO, Steve Sturtevant, will be presenting his talk, “Best Practices for Managing IaaS, PaaS, and Container-Based Deployments.” Register today to ensure your spot to learn from Steve’s session, and even more in just a few weeks at AppSphere 2016–we’re looking forward to seeing you there!

The Importance of Monitoring Containers [Infographic]

With the rise of Docker, Kubernetes, and other container technologies, the growth of microservices has skyrocketed among dev teams looking to innovate on a faster release cycle. This has enabled teams to finally realize their DevOps goals to ship and iterate quickly in a continuous delivery model. Why containers are growing in popularity is no surprise — they’re extremely easy to spin up or down, but come with an unforeseen issue.

However, without the right foresight, DevOps and IT teams may lose a lot of visibility into these containers resulting in operational blind spots and even more haystacks to find the presumptive performance issue needle.

If your team is looking towards containers and microservices as an operational change in how you decide to ship your product, you can’t afford bugs or software issues affecting your performance, end-user experience, or ultimately your bottom line.

Ed Moyle, Director of Emerging Business & Technology at ISACA said it best in his blog, “Consider what happens to these issues when containers enter into the mix. Not only are all the VM issues still there, but they’re now potentially compounded. Inventories that were already difficult to keep current because of VM sprawl might now have to accommodate containers, too. For example, any given VM could contain potentially dozens of individual containers. Issues arising from unexpected migration of VM images might be made significantly worse when the containers running on them can be relocated with a few keystrokes.”

Earlier this year, AppDynamics unveiled Microservices iQ to address these visibility issues daunting DevOps teams today.

Infographic – Container Monitoring 101 from AppDynamics

With Microservices iQ, DevOps teams can:

  • Automatic discovery of entry and exit points of your microservice as service endpoints for focused microservices monitoring

  • Track the key performance indicators of your microservice without worrying about the entire distributed business transaction that uses it

  • Drill down and isolate the root cause of any performance issues affecting the microservice

Interested in learning more? Check out our free ebook, The Importance of Monitoring Containers.

AppDynamics Monitoring Excels for Microservices; New Pricing Model Introduced

It’s no news that microservices are one of the top trends, if not the top trend, in application architectures today. Take large monolithic applications which are brittle and difficult to change and break them into smaller manageable pieces to provide flexibility in deployment models, facilitating agile release and development to meet today’s rapidly shifting digital businesses. Unfortunately, with this change, application and infrastructure management is more complex due to size and technology changes, most often adding significantly more virtual machines and/or containers to handle the growing footprint of application instances.

Fortunately, this is just the kind of environment the AppDynamics Application Intelligence Platform is built for, delivering deep visibility across even the most complex, distributed, heterogeneous environments. We trace and monitor every business transaction from end-to-end — no matter how far apart those ends are, or how circuitous the path between — including any and all API calls across any and all microservices tiers. Wherever there is an issue, the AppDynamics platform pinpoints it and steers the way to rapid resolution. This data can also be used to analyze usage patterns, scaling requirements, and even visibility into infrastructure usage.

This is just the beginning of the microservices trend. With the rise of the Internet of Things, all manner of devices and services will be driven by microservices. The applications themselves will be extended into the “Things” causing even further exponential growth over the next five years. Gartner predicts over 25 billion devices connected by 2020, with the majority being in the utilities, manufacturing, and government sectors.

AppDynamics microservices pricing is based on the size of the Java Virtual Machine (JVM) instance; any JVM running with a maximum heap size of less than one gigabyte is considered a microservice.

We’re excited to help usher in this important technology, and to make it feasible and easy for enterprises to deploy AppDynamics Java microservices monitoring and analytics. For a more detailed perspective, see our post, Visualizing and tracking your microservices.

Complete visibility into Docker containers with AppDynamics

Today we announced the AppDynamics Docker monitoring solution that provides an application-centric view inside and across Docker containers. Performance of distributed applications and business transactions can be tagged, traced, and monitored even as they transit multiple containers.

Before I talk more about the AppDynamics Docker monitoring solution, let me quickly review the premise of Docker and point you to a recent blog “Visualizing and tracking your microservices“ by my colleague, Jonah Kowall, that highlights Docker’s synergy with another hot technology trend— microservices.

What is Docker?

Docker is an open platform for developers and sysadmins of distributed applications that enables them to build, ship, and run any app anywhere. Docker allows applications to run on any platform irrespective of what tools were used to build it making it easy to distribute, test, and run software. I found this 5 Minute Docker video, which is very helpful when you want to get a quick and digestible overview. If you want to learn more, you can go to Docker’s web page and start with this Docker introduction video.

Docker makes it very easy to make changes and package the software quickly for others to test without requiring a lot of resources. At AppDynamics, we embraced Docker completely in our development, testing, and demo environments. For example, as you can see in the attached screenshot from our demo environment, we are using Docker to provision various demo use cases with different application environments like jBoss, Tomcat, MongoDB, Angularjs, and so on.

Screen Shot 2015-05-11 at 11.15.07 AM.png

In addition, you can test drive AppDynamics by downloading, deploying, and testing with the packaged applications from the AppDynamics Docker repos.

Complete visibility into Docker environment with AppDynamics

AppDynamics provides visibility into applications and business transactions made out of multiple smaller decoupled (micro) services deployed in a Docker environment using the Docker monitoring solution. The AppDynamics Docker Monitoring Extension monitors and reports on various metrics, such as: total number of containers, running containers, images, CPU usage, memory usage, network traffic, etc. The AppDynamics Docker monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP giving you the choice for data collection protocol.

The Docker metrics can now be correlated with the metrics from the applications running in the container. For example, in the screenshot below, you can see the overall performance (calls per minute in red) of a web server deployed in Docker container is correlated with Docker performance metrics (Network transmit/receive and CPU usage). As the number of calls per minute to the web server increases, you can see that the network traffic and CPU usage increases as well.

docker_metric_browser_with_cpu.png

Customers can leverage all the core functionalities of AppDynamics (e.g. dynamic baselining, health rules, policies, actions, etc.) for all the Docker metrics while correlating them with the metrics already running in the Docker environment.

The Docker monitoring extension also creates an out of the box custom dashboard with key Docker metrics as shown in the screenshot below. This out of the box dashboard will jump start the monitoring of Docker environment.

docker_custom_dashboard.png

Download the AppDynamics Docker monitoring extension, set-up and configure it following the instructions on the extension page and get end-to-end visibility into your Docker environment and the applications running within them.