appdynamics
摘要
有许多方法可以使用AppDynamics代理来检测Docker容器。 以下是一些在大型Docker环境中很好的最佳实践。 在此博客中,我将展示一些使用docker-compose和一些流行的AppDynamics应用程序代理类型来检测Docker容器的最佳实践。 这样做的目的是避免在代理升级时避免重建应用程序容器,或避免将AppDynamics配置硬编码到容器映像中。
作为在AppDynamics生产环境中工作的DevOps工程师,我使用这些技术来简化我们的检测容器部署。 我将介绍二进制代理(如Java代理)的安装,以及通过诸如Node.js或Python之类的存储库安装的代理。
在探讨最佳实践之前,让我们回顾一下最常见的部署模式-这根本不是最佳实践。
常见(但不是最佳实践)模式:在容器映像构建期间安装代理
我们将介绍的第一种方法是通过Dockerfile安装代理,作为应用程序容器构建的一部分。 这样做的好处是,可以遵循传统的做法,即轻松地在源文件中进行复制,并在Dockerfile中提供构建的透明性,从而使采用更加简单直观。 但是,AppDynamics不建议使用此方法,因为每次代理程序需要升级时,它都需要重建应用程序映像的新副本。 这是低效率且不必要的,因为代理不是应用程序代码的中心部分。 此外,当您使构建和部署自动化时,以这种方式对安装的代理进行硬编码可能会更加困难。
Java示例
在此用于安装Java代理的Dockerfile示例中,我们将二进制文件存储在AWS S3中,并仅在应用程序映像的构建期间在代理上进行复制。
Dockerfile片段:从S3复制
这是我们在本地复制代理的类似步骤。
Node.js示例
在此示例中,我们使用npm在构建期间安装特定的Node.js代理版本。