Upload
alois-mayr
View
63
Download
6
Embed Size (px)
Citation preview
confidential
MakingapplicationmonitoringacloudplatformfeatureJanuary25,2017– AloisMayr– @mayralois
confidential
about:me
§ Linz,Austria
§ SoftwareEngineeringbackground
§ SoftwareQualityModels
§ Shiftto“Ops”topics,Cloud&Containers
confidential
about:dynatrace
§ APMmarketleaderwhohelpscompaniesinDigitaltransformation
§ FoundedinAustriabackin2005
§ ~1600employeesworldwide
§ >8000customersacrossallindustries
§ Seenmanyperformanceandstabilityproblemsandpatternsoutthere
confidential
about:you
§ Whoofyourun/manage/useanykindofcontainersinproduction?
§ CloudFoundry?
§ Kubernetes?
Thecloud-nativeevolution
9outof10ofsurveyedrespondentsaregoingto
migratetocloudtechnologies
withinthenextfiveyearsGetyourcopyhttps://info.dynatrace.com/apm_all_wp_cloud_native_evolution_en_registration.html
..butwhatdoesitmeantobecloudnative?
Onsi Fakhoui:VPCloudResearch&Development
..butwhatdoesitmeantobecloudnative?
Micro-servicesoriented- looselycoupled,explicitdependencies
Containerpackaged- isolatedunitofapplicationdeployment
Dynamicallymanaged- centralorchestrationprocess
Source:CloudNativeComputingFoundation
confidential
Micro-servicesoriented§ Pickthetechnologyyouwanttouse
§ Developanddeployindependently
§ Scaleservicesindependently
confidential
Whatdoesthismean?
Nolongerthrowitoverthewall
bash-3.2$ cf target -s prod
API endpoint: https://api.cf.$DOMAIN User: amayrOrg: dynatraceSpace: prodbash-3.2$ cf push
confidential
Tonsofservicesandinstances…
confidential
Fromstacktracestoservicetracing
Tightlycoupled.ReallyDistribute?
confidential
Howtogetmonitoringtoyourservices
confidential
Goal
Gettheagentintogardencontainers
confidential
How
Integratewithbuildpacks andhavethemdothejob
Buildpacks
JavabuildpackIBMLibertybuildpackNodejs buildpack
confidential
HowtomonitorCFappswithDynatrace(Option1)
§ Javabuildpack integratedwithbuildpack
§ IBMWebsphere Libertybuildpack integratedwithbuildpack
§Node.js vianpm module
§ .NET(onWindowscells) co-deploywithapp
confidential
CreateaDynatraceservice
$ cf cups dynatrace-example -p '{"environmentid":"someenvirontmentid", "apitoken":"someapitoken"}'Creating user provided service dynatrace-example in org dynatrace / space dev as admin...OK
$ cf sGetting services in org dynatrace / space dev as admin...OK
name service plan bound apps last operationeasytravel-mongodb easytravel-mongodb free create succeededdynatrace-example user-provided
Alternative:Youcloudalsouseaservice-brokerthatisavailableonGitHubhttps://github.com/dynatrace-innovationlab/dynatrace-service-broker
Note:Makesurethenameoftheservicecontains’dynatrace’
confidential
PivotalCloudFoundryTile
§ Tileusesservice-brokertomanagevariousDynatraceenvironments
§ Centralpointofconfiguration– useiteverywhere
confidential
Configureyourapps
$ cat manifest-withDynatrace.yml---applications:- name: easytravel-backendmemory: 786Minstances: 1host: easytravel-backend-dynatracepath: app/easyTravel/deploy/backend/backend.warbuildpack: https://github.com/cloudfoundry/java-buildpack.gitservices:- easytravel-mongodb- dynatrace-example
- name: easytravel-frontendmemory: 768Minstances: 1host: easytravel-frontend-dynatracepath: app/easyTravel/deploy/frontend/frontend.warbuildpack: https://github.com/cloudfoundry/java-buildpack.gitservices:- dynatrace-example
env:ET_BACKEND_URL: 'http://easytravel-backend-dynatrace.apps.pcf.example.com'
confidential
Pushyourapps
$ cf push -f manifest-withDynatrace.ymlUsing manifest file manifest-withDynatrace.yml
Creating app easytravel-backend in org dynatrace / space dev as admin...OK
Using route easytravel-backend-dynatrace.apps.pcf.example.comBinding easytravel-backend-dynatrace.apps.pcf.example.com to easytravel-backend...OK
-----> Downloading Open JDK Like Memory Calculator 2.0.2_RELEASE from https://download.run.pivotal.io/memory-calculator/trusty/x86_64/memory-calculator-2.0.2_RELEASE.tar.gz (0.1s)
Memory Settings: -Xss268K -Xmx523161K -XX:MaxMetaspaceSize=80486K -Xms523161K -XX:MetaspaceSize=80486K-----> Downloading Dynatrace One Agent latest from https://example.live.dynatrace.com/api/v1/deployment/installer/agent/unix/paas/latest?include=java&bitness=64&Api-Token=exampletoken (3.1s)
Expanding Dynatrace OneAgent to .java-buildpack/dynatrace_one_agent (0.1s)-----> Downloading Tomcat Instance 8.0.37 from https://java-buildpack.cloudfoundry.org/tomcat/ tomcat-8.0.37.tar.gz (0.4s)
confidential
confidential
Full-StackCloudFoundryMonitoring
Cloudmonitoringtakentothenextlevel
confidential
Goal
DeployagenttoALLcomponentsandcontainers
confidential
Howinjectionintogardencontainerswork
§ SecretsauceJ
§ But….No kernel module needed
confidential
Howtogetfull-stackmonitoringforCloudFoundry§ DeployOneAgenttoeachandeverybosh-managedVM
§ boshssh
§ wget |sh
ORbymeansofaboshrelease/addon
§ boshuploadreleasedynatrace-oneagent.tgz
§ boshupdateruntime-config dynatrace-oneagent.yml
§ boshdeploy
confidential
boshaddon
$ bosh upload release dynatrace-oneagent.tgz
$ bosh update runtime-config runtime-config-dynatrace.ymlActing as user 'director' on 'p-bosh'Successfully updated runtime config
ubuntu@opsmanager192:~$ bosh runtime-configActing as user 'director' on 'p-bosh'releases:- name: dynatrace-oneagent
version: 1.0
addons:- name: dynatrace-oneagent
jobs:- name: dynatrace-oneagent
release: dynatrace-oneagent
properties:dynatrace:
downloadurl: https://<environmentid>.live.dynatrace.com/installer/agent/unix/latest/<token>processhooking: 1proxy:applogaccess: 1
confidential
Clusternetworkhealth
confidential
CFclustercomponenthealth
confidential
cloud_controller processeatsupalltheCPUtime
confidential
Getthelogfilesoftheprocess
confidential
MySQLserverhasgoneaway
confidential
Code-levelvisibility&servicetracingClustercomponentsmetricsandhealth
Networkquality&LogvisibilityAI-basedanalyticsacrossapps&cluster
AvailableSaaSandon-premise
Recap- Full-Stack
confidential
Betheonewhomonitors
Thanks