SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
APACHE SLING & FRIENDS TECH MEETUP
2-4 SEPTEMBER 2019
Cloud-Native Sling
Robert Munteanu, Adobe
1
Welcome
2
About me
3
Outline
Cloud-native applications?
Managing cloud-native applications
Cloud-native Sling walkthrough
Future plans
Resources
4
Cloud-native applications?
5
Cloud-native applications
6
Defining cloud-native
 Using cloud-native services
Application-centric design
Automation
Cloud Native Architectures -
Kamal Arora, Erik Farr, Tom Laszewski, Piyum Zonooz
7
Managing cloud-native applications
8
Containers, container, containers
FROM openjdk:8-jre-alpine
MAINTAINER dev@sling.apache.org
RUN mkdir -p /opt/sling
COPY target/sling-cloud-ready-*.jar /opt/sling/sling.jar
WORKDIR /opt/sling
EXPOSE 8080
VOLUME /opt/sling/sling
ENV JAVA_OPTS -Xmx512m
ENV SLING_OPTS ''
CMD exec java $JAVA_OPTS -jar sling.jar $SLING_OPTS
9
Kubernetes
10
Kubernetes
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
name: wildfly-pod
spec:
containers:
- name: nginx
image: nginx:1.17.1
ports:
- containerPort: 80
11
Kubernetes interface
$ kubectl get pods
NAME READY STATUS A
grafana-78c6877b7f-ghmwp 1/1 Running 1
prometheus-alertmanager-5cfb66f7f7-mtrx2 2/2 Running 1
prometheus-kube-state-metrics-57d85676c5-bvh5j 1/1 Running 1
prometheus-node-exporter-5pdnf 1/1 Running 1
prometheus-node-exporter-6qf72 1/1 Running 1
prometheus-node-exporter-h7bjx 1/1 Running 1
prometheus-node-exporter-wrxfl 1/1 Running 1
prometheus-pushgateway-86cf78b9f4-4m4fc 1/1 Running 1
prometheus-server-747fc94b5d-fx5qf 2/2 Running 1
12
What does Kubernetes manage?
Applications (Pods, Services, Deployments)
DNS services
Volume management (NFS, Ceph, Azure/GCE
disks, AWS EBS, etc)
Software-defined networking
Resource quotas (CPU, Memory, etc)
Rollouts, rollbacks and scaling
Secrets
13
Cloud-native Sling walkthrough
14
Logging
[configurations]
org.apache.sling.commons.log.LogManager
org.apache.sling.commons.log.pattern="%d{dd.MM.yyyy HH:mm:ss.S
org.apache.sling.commons.log.file=""
org.apache.sling.commons.log.level="info"
org.apache.sling.commons.log.packagingDataEnabled=B"true"
15
Logging
$ kubectl logs -f sling
07.08.2019 10:50:45.212 *INFO* [FelixStartLevel] org.apache.sling.co
07.08.2019 10:50:45.216 *INFO* [FelixStartLevel] org.apache.geronimo
07.08.2019 10:50:45.216 *INFO* [FelixStartLevel] org.apache.geronimo
07.08.2019 10:50:45.219 *INFO* [FelixStartLevel] org.apache.geronimo
07.08.2019 10:50:45.221 *INFO* [FelixStartLevel] org.apache.felix.ev
07.08.2019 10:50:45.225 *INFO* [FelixStartLevel] org.apache.felix.ev
16
Logging
17
Startup readiness
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 15
periodSeconds: 5
18
Startup readiness
$ kubectl get pods -l=app=sling
NAME READY STATUS AGE
sling-59c6d6c656-857vq 0/1 Running 23s
sling-59c6d6c656-9wlzm 0/1 Running 23s
sling-59c6d6c656-cbbwc 1/1 Running 13m
19
Monitoring
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8080"
20
Monitoring
21
Persistence
$ kubectl get svc mongo
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
mongo ClusterIP 10.102.248.138 <none> 27017/TCP
22
Persistence
env:
- name: SLING_OPTS
value: -Dsling.run.modes=oak_mongo"
23
Persistence
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sling-datastore
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
24
Scalability
- replicas: 1
+ replicas: 3
25
Performance
org.apache.sling.dynamicinclude.Configuration-starter
include-filter.config.enabled=B"true"
include-filter.config.resource-types=["sling/starter/hostname"]
include-filter.config.path="/content/starter"
include-filter.config.include-type="SSI"
include-filter.config.add_comment=B
26
Performance
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-sling
annotations:
# use the shared ingress-nginx
kubernetes.io/ingress.class: "nginx"
# set sticky sessions via cookie
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/configuration-snippet: |
ssi on;
27
Performance
<!-- SDI include (path: /content/starter/sidebar-extensions/hostna
<h2>System information</h2>
<p id="system-information">Currently running on host <span class="
28
Future plans
29
Feature model
Next big thing™!
Smaller docker images
More flexible feature selection
30
Docker image extensibility
Base image + extensions
Bring your own JVM
31
Composite NodeStore
Clear separation of code from data
Prevent config installation races at
startup
Scripting Bundle Tracker
32
Drop sticky sessions
Encapsulated tokens like AEM
Need to account for Oak DocumentNodeStore
background sync delay
33
All good things...
34
Resources
prometheus-exporter
starter-extender
https://hub.docker.com/r/apache/sling
https://kubernetes.io/
https://github.com/apache/sling-whiteboard
https:/github.com/rombert/sling-cloud-native
35

Contenu connexe

Tendances

Getting Started with Capistrano in Ten Easy Steps
Getting Started with Capistrano in Ten Easy StepsGetting Started with Capistrano in Ten Easy Steps
Getting Started with Capistrano in Ten Easy Steps
elliando dias
 

Tendances (20)

Python setup
Python setupPython setup
Python setup
 
API analytics with Redis and Google Bigquery. NoSQL matters edition
API analytics with Redis and Google Bigquery. NoSQL matters editionAPI analytics with Redis and Google Bigquery. NoSQL matters edition
API analytics with Redis and Google Bigquery. NoSQL matters edition
 
Practical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppPractical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails App
 
Openstack installation using rdo multi node
Openstack installation using rdo multi nodeOpenstack installation using rdo multi node
Openstack installation using rdo multi node
 
Ansibleではじめるサーバー・ネットワークの自動化 (Ansible2.7情報つき)2018/10/12
Ansibleではじめるサーバー・ネットワークの自動化 (Ansible2.7情報つき)2018/10/12Ansibleではじめるサーバー・ネットワークの自動化 (Ansible2.7情報つき)2018/10/12
Ansibleではじめるサーバー・ネットワークの自動化 (Ansible2.7情報つき)2018/10/12
 
Heroku pycon
Heroku pyconHeroku pycon
Heroku pycon
 
Spider Setup with AWS/sandbox
Spider Setup with AWS/sandboxSpider Setup with AWS/sandbox
Spider Setup with AWS/sandbox
 
Jcconf 2016 zookeeper
Jcconf 2016 zookeeperJcconf 2016 zookeeper
Jcconf 2016 zookeeper
 
Crowbar and OpenStack: Steve Kowalik, SUSE
Crowbar and OpenStack: Steve Kowalik, SUSECrowbar and OpenStack: Steve Kowalik, SUSE
Crowbar and OpenStack: Steve Kowalik, SUSE
 
Rancher最速セットアップ理論 プロジェクトr to the next stage
Rancher最速セットアップ理論 プロジェクトr to the next stageRancher最速セットアップ理論 プロジェクトr to the next stage
Rancher最速セットアップ理論 プロジェクトr to the next stage
 
Getting Started with Capistrano in Ten Easy Steps
Getting Started with Capistrano in Ten Easy StepsGetting Started with Capistrano in Ten Easy Steps
Getting Started with Capistrano in Ten Easy Steps
 
Deploying Rails Apps with Chef and Capistrano
 Deploying Rails Apps with Chef and Capistrano Deploying Rails Apps with Chef and Capistrano
Deploying Rails Apps with Chef and Capistrano
 
Triangle OpenStack meetup 09 2013
Triangle OpenStack meetup 09 2013Triangle OpenStack meetup 09 2013
Triangle OpenStack meetup 09 2013
 
NSClient Workshop: 04 Protocols
NSClient Workshop: 04 ProtocolsNSClient Workshop: 04 Protocols
NSClient Workshop: 04 Protocols
 
AnsibleではじめるNW設定の自動化について - Cisco(VIRL)編 -
AnsibleではじめるNW設定の自動化について - Cisco(VIRL)編 -AnsibleではじめるNW設定の自動化について - Cisco(VIRL)編 -
AnsibleではじめるNW設定の自動化について - Cisco(VIRL)編 -
 
Deploying Percona XtraDB Cluster in Openshift
Deploying Percona XtraDB Cluster in OpenshiftDeploying Percona XtraDB Cluster in Openshift
Deploying Percona XtraDB Cluster in Openshift
 
How we are using BigQuery and Apps Scripts at teowaki
How we are using BigQuery and Apps Scripts at teowakiHow we are using BigQuery and Apps Scripts at teowaki
How we are using BigQuery and Apps Scripts at teowaki
 
OSSEC @ ISSA Jan 21st 2010
OSSEC @ ISSA Jan 21st 2010OSSEC @ ISSA Jan 21st 2010
OSSEC @ ISSA Jan 21st 2010
 
How to see the log files through ( gui and cli) in cluster ontap netapp stora...
How to see the log files through ( gui and cli) in cluster ontap netapp stora...How to see the log files through ( gui and cli) in cluster ontap netapp stora...
How to see the log files through ( gui and cli) in cluster ontap netapp stora...
 
ぼくとCassandraの6にちせんそう
ぼくとCassandraの6にちせんそうぼくとCassandraの6にちせんそう
ぼくとCassandraの6にちせんそう
 

Similaire à Cloud-Native Sling

NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
nickblah
 
REST Web Sebvice
REST Web SebviceREST Web Sebvice
REST Web Sebvice
khmerforge
 

Similaire à Cloud-Native Sling (20)

CloudOps CloudStack Days, Austin April 2015
CloudOps CloudStack Days, Austin April 2015CloudOps CloudStack Days, Austin April 2015
CloudOps CloudStack Days, Austin April 2015
 
CloudInit Introduction
CloudInit IntroductionCloudInit Introduction
CloudInit Introduction
 
Sling Applications - A DevOps perspective
Sling Applications - A DevOps perspectiveSling Applications - A DevOps perspective
Sling Applications - A DevOps perspective
 
Recap of de code 2019
Recap of de code 2019Recap of de code 2019
Recap of de code 2019
 
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
 
Kubernetes security
Kubernetes securityKubernetes security
Kubernetes security
 
Kubernetes Basic Operation
Kubernetes Basic OperationKubernetes Basic Operation
Kubernetes Basic Operation
 
Flink sql for continuous sql etl apps & Apache NiFi devops
Flink sql for continuous sql etl apps & Apache NiFi devopsFlink sql for continuous sql etl apps & Apache NiFi devops
Flink sql for continuous sql etl apps & Apache NiFi devops
 
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみるK8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
 
K8s Basic
K8s BasicK8s Basic
K8s Basic
 
Ceph and cloud stack apr 2014
Ceph and cloud stack   apr 2014Ceph and cloud stack   apr 2014
Ceph and cloud stack apr 2014
 
The Big Cloud native FaaS Lebowski
The Big Cloud native FaaS LebowskiThe Big Cloud native FaaS Lebowski
The Big Cloud native FaaS Lebowski
 
Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructure
 
Kubered -Recipes for C2 Operations on Kubernetes
Kubered -Recipes for C2 Operations on KubernetesKubered -Recipes for C2 Operations on Kubernetes
Kubered -Recipes for C2 Operations on Kubernetes
 
Openshift operator insight
Openshift operator insightOpenshift operator insight
Openshift operator insight
 
OpenStack Havana over IPv6
OpenStack Havana over IPv6OpenStack Havana over IPv6
OpenStack Havana over IPv6
 
Docker for data science
Docker for data scienceDocker for data science
Docker for data science
 
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmetHow Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
 
REST Web Sebvice
REST Web SebviceREST Web Sebvice
REST Web Sebvice
 
Making Spinnaker Go @ Stitch Fix
Making Spinnaker Go @ Stitch FixMaking Spinnaker Go @ Stitch Fix
Making Spinnaker Go @ Stitch Fix
 

Plus de Robert Munteanu

Plus de Robert Munteanu (20)

Secure by Default Web Applications
Secure by Default Web ApplicationsSecure by Default Web Applications
Secure by Default Web Applications
 
Will it blend? Java agents and OSGi
Will it blend? Java agents and OSGiWill it blend? Java agents and OSGi
Will it blend? Java agents and OSGi
 
Escape the defaults - Configure Sling like AEM as a Cloud Service
Escape the defaults - Configure Sling like AEM as a Cloud ServiceEscape the defaults - Configure Sling like AEM as a Cloud Service
Escape the defaults - Configure Sling like AEM as a Cloud Service
 
Crash course in Kubernetes monitoring
Crash course in Kubernetes monitoringCrash course in Kubernetes monitoring
Crash course in Kubernetes monitoring
 
Java agents for fun and (not so much) profit
Java agents for fun and (not so much) profitJava agents for fun and (not so much) profit
Java agents for fun and (not so much) profit
 
Will it blend? Java agents and OSGi
Will it blend? Java agents and OSGiWill it blend? Java agents and OSGi
Will it blend? Java agents and OSGi
 
Cloud-native legacy applications
Cloud-native legacy applicationsCloud-native legacy applications
Cloud-native legacy applications
 
From Monolith to Modules - breaking apart a one size fits all product into mo...
From Monolith to Modules - breaking apart a one size fits all product into mo...From Monolith to Modules - breaking apart a one size fits all product into mo...
From Monolith to Modules - breaking apart a one size fits all product into mo...
 
What's new in the Sling developer tooling?
What's new in the Sling developer tooling?What's new in the Sling developer tooling?
What's new in the Sling developer tooling?
 
Scaling up development of a modular code base
Scaling up development of a modular code baseScaling up development of a modular code base
Scaling up development of a modular code base
 
Scaling up development of a modular code base
Scaling up development of a modular code baseScaling up development of a modular code base
Scaling up development of a modular code base
 
Scaling up development of a modular code base
Scaling up development of a modular code baseScaling up development of a modular code base
Scaling up development of a modular code base
 
Zero downtime deployments for Sling application using Docker
Zero downtime deployments for Sling application using DockerZero downtime deployments for Sling application using Docker
Zero downtime deployments for Sling application using Docker
 
Scaling up development of a modular code base
Scaling up development of a modular code baseScaling up development of a modular code base
Scaling up development of a modular code base
 
Do you really want to go fully micro?
Do you really want to go fully micro?Do you really want to go fully micro?
Do you really want to go fully micro?
 
Effective web application development with Apache Sling
Effective web application development with Apache SlingEffective web application development with Apache Sling
Effective web application development with Apache Sling
 
Of microservices and microservices
Of microservices and microservicesOf microservices and microservices
Of microservices and microservices
 
Slide IDE Tooling (adaptTo 2016)
Slide IDE Tooling (adaptTo 2016)Slide IDE Tooling (adaptTo 2016)
Slide IDE Tooling (adaptTo 2016)
 
Secure by Default Web Applications with Apache Sling
Secure by Default Web Applications with Apache SlingSecure by Default Web Applications with Apache Sling
Secure by Default Web Applications with Apache Sling
 
Apache Sling as a Microservices Gateway
Apache Sling as a Microservices GatewayApache Sling as a Microservices Gateway
Apache Sling as a Microservices Gateway
 

Dernier

Dernier (20)

StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
 
What is a Recruitment Management Software?
What is a Recruitment Management Software?What is a Recruitment Management Software?
What is a Recruitment Management Software?
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements Engineering
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 

Cloud-Native Sling