34
confidential Making application monitoring a cloud platform feature January 25, 2017 – Alois Mayr – @mayralois

Monitoring a cloud native platform feature

Embed Size (px)

Citation preview

Page 1: Monitoring a cloud native platform feature

confidential

MakingapplicationmonitoringacloudplatformfeatureJanuary25,2017– AloisMayr– @mayralois

Page 2: Monitoring a cloud native platform feature

confidential

about:me

§ Linz,Austria

§ SoftwareEngineeringbackground

§ SoftwareQualityModels

§ Shiftto“Ops”topics,Cloud&Containers

Page 3: Monitoring a cloud native platform feature

confidential

about:dynatrace

§ APMmarketleaderwhohelpscompaniesinDigitaltransformation

§ FoundedinAustriabackin2005

§ ~1600employeesworldwide

§ >8000customersacrossallindustries

§ Seenmanyperformanceandstabilityproblemsandpatternsoutthere

Page 4: Monitoring a cloud native platform feature

confidential

about:you

§ Whoofyourun/manage/useanykindofcontainersinproduction?

§ CloudFoundry?

§ Kubernetes?

Page 5: Monitoring a cloud native platform feature

Thecloud-nativeevolution

9outof10ofsurveyedrespondentsaregoingto

migratetocloudtechnologies

withinthenextfiveyearsGetyourcopyhttps://info.dynatrace.com/apm_all_wp_cloud_native_evolution_en_registration.html

Page 6: Monitoring a cloud native platform feature

..butwhatdoesitmeantobecloudnative?

Onsi Fakhoui:VPCloudResearch&Development

Page 7: Monitoring a cloud native platform feature

..butwhatdoesitmeantobecloudnative?

Micro-servicesoriented- looselycoupled,explicitdependencies

Containerpackaged- isolatedunitofapplicationdeployment

Dynamicallymanaged- centralorchestrationprocess

Source:CloudNativeComputingFoundation

Page 8: Monitoring a cloud native platform feature

confidential

Micro-servicesoriented§ Pickthetechnologyyouwanttouse

§ Developanddeployindependently

§ Scaleservicesindependently

Page 9: Monitoring a cloud native platform feature

confidential

Whatdoesthismean?

Nolongerthrowitoverthewall

bash-3.2$ cf target -s prod

API endpoint: https://api.cf.$DOMAIN User: amayrOrg: dynatraceSpace: prodbash-3.2$ cf push

Page 10: Monitoring a cloud native platform feature

confidential

Tonsofservicesandinstances…

Page 11: Monitoring a cloud native platform feature

confidential

Fromstacktracestoservicetracing

Page 12: Monitoring a cloud native platform feature
Page 13: Monitoring a cloud native platform feature

Tightlycoupled.ReallyDistribute?

Page 14: Monitoring a cloud native platform feature

confidential

Howtogetmonitoringtoyourservices

Page 15: Monitoring a cloud native platform feature

confidential

Goal

Gettheagentintogardencontainers

Page 16: Monitoring a cloud native platform feature

confidential

How

Integratewithbuildpacks andhavethemdothejob

Buildpacks

JavabuildpackIBMLibertybuildpackNodejs buildpack

Page 17: Monitoring a cloud native platform feature

confidential

HowtomonitorCFappswithDynatrace(Option1)

§ Javabuildpack integratedwithbuildpack

§ IBMWebsphere Libertybuildpack integratedwithbuildpack

§Node.js vianpm module

§ .NET(onWindowscells) co-deploywithapp

Page 18: Monitoring a cloud native platform feature

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’

Page 19: Monitoring a cloud native platform feature

confidential

PivotalCloudFoundryTile

§ Tileusesservice-brokertomanagevariousDynatraceenvironments

§ Centralpointofconfiguration– useiteverywhere

Page 20: Monitoring a cloud native platform feature

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'

Page 21: Monitoring a cloud native platform feature

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)

Page 22: Monitoring a cloud native platform feature

confidential

Page 23: Monitoring a cloud native platform feature

confidential

Full-StackCloudFoundryMonitoring

Cloudmonitoringtakentothenextlevel

Page 24: Monitoring a cloud native platform feature

confidential

Goal

DeployagenttoALLcomponentsandcontainers

Page 25: Monitoring a cloud native platform feature

confidential

Howinjectionintogardencontainerswork

§ SecretsauceJ

§ But….No kernel module needed

Page 26: Monitoring a cloud native platform feature

confidential

Howtogetfull-stackmonitoringforCloudFoundry§ DeployOneAgenttoeachandeverybosh-managedVM

§ boshssh

§ wget |sh

ORbymeansofaboshrelease/addon

§ boshuploadreleasedynatrace-oneagent.tgz

§ boshupdateruntime-config dynatrace-oneagent.yml

§ boshdeploy

Page 27: Monitoring a cloud native platform feature

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

Page 28: Monitoring a cloud native platform feature

confidential

Clusternetworkhealth

Page 29: Monitoring a cloud native platform feature

confidential

CFclustercomponenthealth

Page 30: Monitoring a cloud native platform feature

confidential

cloud_controller processeatsupalltheCPUtime

Page 31: Monitoring a cloud native platform feature

confidential

Getthelogfilesoftheprocess

Page 32: Monitoring a cloud native platform feature

confidential

MySQLserverhasgoneaway

Page 33: Monitoring a cloud native platform feature

confidential

Code-levelvisibility&servicetracingClustercomponentsmetricsandhealth

Networkquality&LogvisibilityAI-basedanalyticsacrossapps&cluster

AvailableSaaSandon-premise

Recap- Full-Stack

Page 34: Monitoring a cloud native platform feature

confidential

Betheonewhomonitors

Thanks