기존에 저희 회사에서 사용하던 모니터링은 Zabbix 였습니다.
컨테이너 모니터링 부분으로 옮겨가면서 변화가 필요하였고, 이에 대해서 프로메테우스를 활용한 모니터링 방법을 자연스럽게 고민하게 되었습니다.
이에 이영주님께서 테크세션을 진행하였고, 이에 발표자료를 올립니다.
5개의 부분으로 구성되어 있으며, 세팅 방법에 대한 내용까지 포함합니다.
01. Prometheus?
02. Usage
03. Alertmanager
04. Cluster
05. Performance
Amazon EC2 provides a broad selection of instance types to accommodate a diverse mix of workloads. In this session, we provide an overview of the Amazon EC2 instance platform, key platform features, and the concept of instance generations. We dive into the current generation design choices of the different instance families, including General Purpose, Compute Optimized, Storage Optimized, Memory Optimized, and GPU instance. We also detail best practices and share performance tips for getting the most out of your Amazon EC2 instances.
Some of my favourite bits of AVFoundation. Topics include capture, composition, a custom player and scrubber interface, synchronized CAAnimations, and real-time VFX.
OSv is a new, high-performance OS for virtual machines in the cloud. Designed to run one application per guest with minimal overhead, OSv eliminates important bottlenecks for NoSQL applications through improvements in memory management, network I/O, and scheduling. And many important bottlenecks for NoSQL applications are tunable on a conventional OS, but do not require tuning in the OSv environment.
OSv is fully stateless and can be configured at runtime with cloud-init or through a REST API, with zero configuration files. OSv offers unified tracing from the application layer through the JVM and the OS kernel. Attendees will learn how to boot Cassandra in one second, and create a simple cluster in a minute.
기존에 저희 회사에서 사용하던 모니터링은 Zabbix 였습니다.
컨테이너 모니터링 부분으로 옮겨가면서 변화가 필요하였고, 이에 대해서 프로메테우스를 활용한 모니터링 방법을 자연스럽게 고민하게 되었습니다.
이에 이영주님께서 테크세션을 진행하였고, 이에 발표자료를 올립니다.
5개의 부분으로 구성되어 있으며, 세팅 방법에 대한 내용까지 포함합니다.
01. Prometheus?
02. Usage
03. Alertmanager
04. Cluster
05. Performance
Amazon EC2 provides a broad selection of instance types to accommodate a diverse mix of workloads. In this session, we provide an overview of the Amazon EC2 instance platform, key platform features, and the concept of instance generations. We dive into the current generation design choices of the different instance families, including General Purpose, Compute Optimized, Storage Optimized, Memory Optimized, and GPU instance. We also detail best practices and share performance tips for getting the most out of your Amazon EC2 instances.
Some of my favourite bits of AVFoundation. Topics include capture, composition, a custom player and scrubber interface, synchronized CAAnimations, and real-time VFX.
OSv is a new, high-performance OS for virtual machines in the cloud. Designed to run one application per guest with minimal overhead, OSv eliminates important bottlenecks for NoSQL applications through improvements in memory management, network I/O, and scheduling. And many important bottlenecks for NoSQL applications are tunable on a conventional OS, but do not require tuning in the OSv environment.
OSv is fully stateless and can be configured at runtime with cloud-init or through a REST API, with zero configuration files. OSv offers unified tracing from the application layer through the JVM and the OS kernel. Attendees will learn how to boot Cassandra in one second, and create a simple cluster in a minute.
(SDD419) Amazon EC2 Networking Deep Dive and Best Practices | AWS re:Invent 2014Amazon Web Services
Amazon EC2 instances give customers a variety of high-bandwidth networking choices. In this session, we discuss how to choose among Amazon EC2 networking technologies and examine how to get the best performance out of Amazon EC2 enhanced networking and cluster networking. We also share best practices and useful tips for success.
kubernetes install and practice
* Environment (bare metal installation, not using cloud service)
- VM 1 : Mater node, 30GB, 2 vCPU, 4GB Mem
- VM 2 : Worker node, 30GB, 2 vCPU, 4GB Mem
* Practice
- deploying pod, make a deployment and service
- expose service using ingress(nginx-ingress)
As part of the Google Summer of Code, we tried to add support for SeaBIOS in order to allow guest OSes to be booted directly from PV disk devices rather than from the emulated disk device. SeaBIOS is the BIOS implementation that upstream qemu uses. When the virtual machine is created, SeaBIOS upon initialization uses a generic Xenstore client to communicate with the back end and initialize the front-end block device that will connect to the back end. After the connection is established I/O requests are made via the BIOS int 0x13 interface, guest OSes use the int 0x13 without needing to be aware that PV drivers were used.
Using cobbler in a not so small environment 1.77chhorn
- cobbler basics
- why cobbler was chosen at a company
- how enterprise-requirements were met
- surrounding infrastructure (monitoring etc.)
- on community interaction
Bulletproof Networks provides managed hosting services to some of the largest companies in Australia. Bulletproof implements strong isolation of customer environments, and this can present unique challenges when re-using Puppet code across our customer base. Additionally, the environments range in size from small to very large, and our tools + processes need to be able to handle both uses cases equally well.
In this talk Lindsay + Mick will cover how Bulletproof's approach to these problems has evolved over the last 4 years, and some of the tools Bulletproof has developed and built upon to provide an awesome service to our customers.
Opera Software is mainly known for its web browser, but Opera also created and develops a growing set of web applications like its own community dedicated to the browser, my.opera.com, started in 2001.
Since then, the community grew bigger and bigger, and had the "usual" scalability problems. The application has been rewritten 3 times and the current developers team is at a turning point now.
How to make the application and systems scalable with the growing amount of traffic and users?
Slides for my Master Video session at Renaissance 2014. This session provided a high-level overview of some of AV Foundation's video playback and editing capabilities.
The demo app for this talk can be found at:
https://github.com/tapharmonic/AVFoundationEditor
Running large Kubernetes clusters is difficult. Datadog has been running large-scale Kubernetes clusters (thousands of nodes) for more than a year and has learned several lessons the hard way.
Laurent Bernaille examines the challenges Datadog faced during this journey. He dives into problems that arise when you run large clusters—and, crucially, how to address them—by providing detailed examples based on Datadog’s experience across different cloud providers. You’ll explore complex runtime and networking issues: at scale you discover complex issues in low-level components that are very rare but happen regularly when you have a large number of nodes.
Additionally, Laurent provides examples of how to improve the architecture of clusters to increase scalability and performance, both on the control plane and the data plane (communication between pods and ingress traffic). If scale can be hard on the control plane, it’s even harder on tools from the ecosystem, which have rarely been tested on very large clusters. He explains several examples of the tools Datadog uses and how it had to improve them to handle its scale. And you’ll leave with practical advice on how to build a good relationship with the community and start contributing back.
CON411-R - Advanced network resource management on Amazon EKSClaes Mogren
Different Kubernetes users have different requirements for their cluster network setup. They might want high pod density, or no overlay networking, or separate security groups, or separate network interface for each pod. Having a centralized network resource provider instead of a per-node IPAM daemon enables network assets available as a schedulable Kubernetes resource. This makes it possible to simplify the management of networking resources and offer further customizable networking solutions. In this session, we discuss how the Amazon Elastic Kubernetes Service (Amazon EKS) team has approached meeting these customer needs, and share the solution to manage network resources centrally.
Amazon EC2 provides a broad selection of instance types to accommodate a diverse mix of workloads. In this session, we provide an overview of the Amazon EC2 instance platform, key platform features, and the concept of instance generations. We dive into the current generation design choices of the different instance families, including the General Purpose, Compute Optimized, Storage Optimized, Memory Optimized, and GPU instance families. We also detail best practices and share performance tips for getting the most out of your Amazon EC2 instances.
(SDD419) Amazon EC2 Networking Deep Dive and Best Practices | AWS re:Invent 2014Amazon Web Services
Amazon EC2 instances give customers a variety of high-bandwidth networking choices. In this session, we discuss how to choose among Amazon EC2 networking technologies and examine how to get the best performance out of Amazon EC2 enhanced networking and cluster networking. We also share best practices and useful tips for success.
kubernetes install and practice
* Environment (bare metal installation, not using cloud service)
- VM 1 : Mater node, 30GB, 2 vCPU, 4GB Mem
- VM 2 : Worker node, 30GB, 2 vCPU, 4GB Mem
* Practice
- deploying pod, make a deployment and service
- expose service using ingress(nginx-ingress)
As part of the Google Summer of Code, we tried to add support for SeaBIOS in order to allow guest OSes to be booted directly from PV disk devices rather than from the emulated disk device. SeaBIOS is the BIOS implementation that upstream qemu uses. When the virtual machine is created, SeaBIOS upon initialization uses a generic Xenstore client to communicate with the back end and initialize the front-end block device that will connect to the back end. After the connection is established I/O requests are made via the BIOS int 0x13 interface, guest OSes use the int 0x13 without needing to be aware that PV drivers were used.
Using cobbler in a not so small environment 1.77chhorn
- cobbler basics
- why cobbler was chosen at a company
- how enterprise-requirements were met
- surrounding infrastructure (monitoring etc.)
- on community interaction
Bulletproof Networks provides managed hosting services to some of the largest companies in Australia. Bulletproof implements strong isolation of customer environments, and this can present unique challenges when re-using Puppet code across our customer base. Additionally, the environments range in size from small to very large, and our tools + processes need to be able to handle both uses cases equally well.
In this talk Lindsay + Mick will cover how Bulletproof's approach to these problems has evolved over the last 4 years, and some of the tools Bulletproof has developed and built upon to provide an awesome service to our customers.
Opera Software is mainly known for its web browser, but Opera also created and develops a growing set of web applications like its own community dedicated to the browser, my.opera.com, started in 2001.
Since then, the community grew bigger and bigger, and had the "usual" scalability problems. The application has been rewritten 3 times and the current developers team is at a turning point now.
How to make the application and systems scalable with the growing amount of traffic and users?
Slides for my Master Video session at Renaissance 2014. This session provided a high-level overview of some of AV Foundation's video playback and editing capabilities.
The demo app for this talk can be found at:
https://github.com/tapharmonic/AVFoundationEditor
Running large Kubernetes clusters is difficult. Datadog has been running large-scale Kubernetes clusters (thousands of nodes) for more than a year and has learned several lessons the hard way.
Laurent Bernaille examines the challenges Datadog faced during this journey. He dives into problems that arise when you run large clusters—and, crucially, how to address them—by providing detailed examples based on Datadog’s experience across different cloud providers. You’ll explore complex runtime and networking issues: at scale you discover complex issues in low-level components that are very rare but happen regularly when you have a large number of nodes.
Additionally, Laurent provides examples of how to improve the architecture of clusters to increase scalability and performance, both on the control plane and the data plane (communication between pods and ingress traffic). If scale can be hard on the control plane, it’s even harder on tools from the ecosystem, which have rarely been tested on very large clusters. He explains several examples of the tools Datadog uses and how it had to improve them to handle its scale. And you’ll leave with practical advice on how to build a good relationship with the community and start contributing back.
CON411-R - Advanced network resource management on Amazon EKSClaes Mogren
Different Kubernetes users have different requirements for their cluster network setup. They might want high pod density, or no overlay networking, or separate security groups, or separate network interface for each pod. Having a centralized network resource provider instead of a per-node IPAM daemon enables network assets available as a schedulable Kubernetes resource. This makes it possible to simplify the management of networking resources and offer further customizable networking solutions. In this session, we discuss how the Amazon Elastic Kubernetes Service (Amazon EKS) team has approached meeting these customer needs, and share the solution to manage network resources centrally.
Amazon EC2 provides a broad selection of instance types to accommodate a diverse mix of workloads. In this session, we provide an overview of the Amazon EC2 instance platform, key platform features, and the concept of instance generations. We dive into the current generation design choices of the different instance families, including the General Purpose, Compute Optimized, Storage Optimized, Memory Optimized, and GPU instance families. We also detail best practices and share performance tips for getting the most out of your Amazon EC2 instances.
Monoliths, macroservices, microservices, cloud-native and serverless... Where do we even start? If you are a Java developer, you will likely have to work with one, some, or even all of these deployment approaches. Does this mean learning multiple frameworks, tools and methods? It certainly looks that way, based on the many deployment-specific solutions being proposed to the Java development community.
In this presentation, we will look into these solutions, weighing their strengths and weaknesses. We will also contrast this with one-size-fits-all solutions being offered by modern open-source cloud-native Java runtimes like Open Liberty. Does it have the right technology to compete in microservice and serverless environments - can one runtime really do it all?
Slides of my talk at QCon Hangzhou 2011, on the things that my team has been doing on the JVM, esp. on customization. Video available at http://www.infoq.com/cn/presentations/ms-jvm-taobao
The Next Frontier in Open Source Java Compilers: Just-In-Time Compilation as a Service
For Java developers, the Just-In-Time (JIT) compiler is key to improved performance. However, in a container world, the performance gains are often negated due to CPU and memory consumption constraints. To help solve this issue, the Eclipse OpenJ9 JVM provides JITServer technology, which separates the JIT compiler from the application.
JITServer allows the user to employ much smaller containers enabling a higher density of applications, resulting in cost savings for end-users and/or cloud providers. Because the CPU and memory surges due to JIT compilation are eliminated, the user has a much easier task of provisioning resources for his/her application. Additional advantages include: faster ramp-up time, better control over resources devoted to compilation, increased reliability (JIT compiler bugs no longer crash the application) and amortization of compilation costs across many application instances.
We will dig into JITServer technology, showing the challenges of implementation, detailing its strengths and weaknesses and illustrating its performance characteristics. For the cloud audience we will show how it can be deployed in containers, demonstrate its advantages compared to a traditional JIT compilation technique and offer practical recommendations about when to use this technology.
Fosdem 2016, Brussels, Belgium
A developer perspective of the components in the C code that impact the performances of the signaling servers, applied for Kamailio (https://www.kamailio.org), reflecting how they can be tuned from configuration file to increase the capacity of a SIP server.
This is an updated version of my JITServer talk that I will present at Open Source Summit North America in May 2023
The Next Frontier in Open Source Java Compilers: Just-In-Time Compilation as a Service
For Java developers, the Just-In-Time (JIT) compiler is key to improved performance. However, in a container world, the performance gains are often negated due to CPU and memory consumption constraints. To help solve this issue, the Eclipse OpenJ9 JVM provides JITServer technology, which separates the JIT compiler from the application.
JITServer allows the user to employ much smaller containers enabling a higher density of applications, resulting in cost savings for end-users and/or cloud providers. Because the CPU and memory surges due to JIT compilation are eliminated, the user has a much easier task of provisioning resources for his/her application. Additional advantages include: faster ramp-up time, better control over resources devoted to compilation, increased reliability (JIT compiler bugs no longer crash the application) and amortization of compilation costs across many application instances.
We will dig into JITServer technology, showing the challenges of implementation, detailing its strengths and weaknesses and illustrating its performance characteristics. For the cloud audience we will show how it can be deployed in containers, demonstrate its advantages compared to a traditional JIT compilation technique and offer practical recommendations about when to use this technology.
Anton Moldovan "Building an efficient replication system for thousands of ter...Fwdays
For one of our projects, we needed to improve the current content delivery system for terminals. In this talk, I will share our experience in building an efficient data replication system for thousands of terminals. We will touch on architecture decisions and tradeoffs, technologies that we used, and a bit of load testing.
Spoiler: We didn't use Kafka.
Kubernetes currently has two load balancing mode: userspace and IPTables. They both have limitation on scalability and performance. We introduced IPVS as third kube-proxy mode which scales kubernetes load balancer to support 50,000 services. Beyond that, control plane needs to be optimized in order to deploy 50,000 services. We will introduce alternative solutions and our prototypes with detailed performance data.
VMworld 2013: Extreme Performance Series: vCenter of the UniverseVMworld
VMworld 2013
Justin King, VMware
Ravi Soundararajan, VMware
Learn more about VMworld and register at http://www.vmworld.com/index.jspa?src=socmed-vmworld-slideshare
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...Arthur Berezin
Kubernetes vs Dockers Swarm supporting ONAP-OOM on multi-cloud multi-stack environment
Description: ONAP was set originally to support multiple container platform and cloud through TOSCA. In R1 ONAP and OOM is dependent completely on Kubernetes. As there are other container platforms such as Docker Swarm that are gaining more wider adoption as a simple alternative to Kubernetes. In addition operator may need the flexibility to choose their own container platform and be open for future platform. We need to weight the alternatives and avoid using package managers as Helm that makes K8s mandatory.
The use of TOSCA in conjunction with Kubernetes provides that "happy medium" where on one hand we can leverage Kubernetes to a full extent while at the same time be open to other alternative. In this workshop, we will compare Kubernetes with Docker Swarm and walk through an example of how ONAP can be set to support both platforms using TOSCA.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Tunning mobicent-jean deruelle
1.
2. Tuning and development with
SIP Servlet on Mobicents
Naoki Nishihara
OKI Electric Industry Co.,Ltd
Jean Deruelle
Mobicents Sip Servlets Lead
3. Agenda
• Introduction
• SIP Application behavior
• How to tune the JavaVM for SIP Servlet
• How to develop SIP Servlet Application
with Frameworks
4. Introduction
– Mobicents fellow
• Member of mobicents core team from March
2011
– Leading mobicents SSF project
• For developing SIP Servlet Application with
Spring Framework
– OKI has been involved SIP Servlet
development since 2003
5. About OKI
• Founded
– January 1881
• Major Operation
– Manufacturing and sales of products,
technologies, software and solutions for
telecommunications systems and
information systems
6. Current works
• Support Japanese carrier
(They are evaluating the OSS platform)
• Customize MSS for proprietary
ex) NOT include internal IP Address in SIP header fields
• Developing customized SIP Load
balancer
12. Mobicents SIP Servlet
own behavior
• JAIN-SIP, SIP Servlet, JBoss(J2EE)…
About 200 Threads run on MSS
(for transport, timer, cluster…)
13. Other problems related to SIP
• Retransmissions will occur, if response was
sent late over 500ms with UDP transport
– In normal case, UDP transport will be used.
• If JVM was stopped long time by GC
– Call failure will be occurred and error handling
may not work properly.
– SIP has many timers, they could not work
properly.
• It’s relatively easy to retry with HTTP, but you
would have to start over from scratch to
initiate session with SIP
14. Conclusion
• MSS will discard many objects in one session.
• When retransmissions of UDP messages occurred,
– Many threads runs at the same time
– Many objects are discarded
– CPU usage go up
– GC will be missed
– Full GC will run
Fall in a vicious cycle
16. Plan
• Reduce retransmissions of UDP
– Response time less than 200ms
– Measure the performance on tuned JVM
• 400call/sec(1440,000BHCA)
• Effective use of multiple CPU
– Most of server-machine have multiple CPU
• Reduce pause times by “Stop-The-World”
17. Test Sequence
UAC Mobicnets UAS
INVITE
INVITE
180/INVITE
180/INVITE
200/INVITE 10sec
200/INVITE
ACK
ACK
30sec Established Session
BYE
BYE
200/BYE
200/BYE
About 16,000 sessions will remain on JVM
18. Recommended Sun Java VM
Options
• -server
– -XX:+UseTLAB is enabled.
• -XX:+UseConcMarkSweepGC
– CMS GC reduce the “Stop the World”.
• -XX:+CMSIncrementalMode
– Enable the incremental mode. You should tune the
below options
• -XX:CMSIncrementalDutyCycle=<N>
• -XX:CMSIncrementalDutyCycleMin=<N>
19. Other performance options(1)
• -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=128
– Object that related to SipSessions will NOT be collected in NewGC.
This option will make the full NewSize available to every NewGC
cycle.
• -XX:+UseParNewGC
– Enable a parallel young generation GC. (for multiple cpu machine)
• -XX:CMSInitiatingOccupancyFraction=75
– Set the level at which the collection is started
• -XX:+CMSParallelRemarkEnabled
– Reduce remark pause with multi threads
20. Other performance options (2)
• -XX:+UseStringCache
– Enables caching of commonly allocated strings
• -XX:+OptimizeStringConcat
– Optimize String concatenation operations where possible
• -XX:+UseCompressedStrings
– Use a byte[] for Strings which can be represented as pure
ascii
• -XX:+UseCompressedOops
– Enables the use of compressed pointers for optimized 64-bit
performance
21. Data and results
1. Default GC
2. CMS GC without tuning the duty cycle
3. CMS GC with tuning the duty cycle
4. Add parallel NewGC and performance options
Analyze:
GC, CPU usage, failed call, succeeded call,
Retransmissions, Average response time,…
29. Add parallel NewGC and
performance options
CPU usage decreased
Retransmissions increased
Increased
Memory usage decreased time-consuming
response
30. Results
• Recommended VM options are useful.
– Reduce pause times
– No failed calls
– Reduce retransmissions
• Tuning options of the duty cycle are very
useful
• Other performance options are slightly useful
32. SIP Servlet Frameworks
Mobicents has 2 SIP Servlet Frameworks
• SSF (Spring Signaling Framework)
– Based on Spring Framework
• CTF(CDI-Telco-Framework)
– CDI Based framework
These frameworks have same concept…
Simplify SipServlets development
We want to merge these framework’s functions and
support many developers!
35. Why using Spring Framework?
• Standard DI Container
– Familiar to many Java Developers
• Customizable Context
– SSF provide customized Context for SIP Servlet
• Many functionality modules are working on
Spring Framework.
– You can create the converged application with
Spring Framework modules.
36. Create SIP Servlet with POJO
@Component Component Scan
public class ProxyHandler {
@Autowired Autowired
ProxyBean proxyBean;
@Autowired
CheckRequireBean checkRequire;
@SipServletRequestMapping(methods = { "INVITE", "UPDATE", Original annotation
"MESSAGE", "PUBLISH" })
public void handleRequest(SipServletRequest req) throws Exception {
// start
checkRequire.handleRequest(req); Call bean’s method
if (req.isCommitted()) {
return;
}
proxyBean.startProxy(req);
// end
}
….
37. Easy to add functions
• Of course, you can use AOP function
• Try to add the Call-Blocking function to
the proxy service.
38. Add Call-Blocking function (1)
• Create new POJO for Call-Blocking
@Component
public class CallBlockingBean {
public void handleRequest(SipServletRequest req) throws IOException {
if(isBlocked(req)) {
SipServletResponse res = req.createResponse(SipServletResponse.SC_SERVICE_UNAVAILABLE);
res.send();
return;
}
}
….
39. Add Call-Blocking function(2)
• Create Aspect class for Advice
@Aspect
public class ProxyAround {
@Autowired
CallBlockingBean callBlocking;
@Around(“execution(ProxyHandler.handleRequest(..)) && args(req)”)
public void handleRequest(ProceedingJointPoint pjp, SipServletRequest req) throws IOException {
callBlocking.handleRequest(req);
pjp.proceed(new Object[]{req});
}
….
40. Add Call-Blocking function (3)
• Add configurations for AOP
<aop:aspectj-autoproxy proxy-target-class="true"/>
<context:component-scan base-package="org.mobicents.ssf.examples.sip.beans">
<context:include-filter type="aspectj" expression="org..ProxyAround*" />
</context:component-scan>
<context:component-scan base-package="org.mobicents.ssf.examples.sip.sipserver“/>
Just Do It!
42. CDI JSR-299
CDI is the Java standard for dependency injection and
contextual lifecycle management, led by Gavin King for
Red Hat, Inc. and is a Java Community Process(JCP)
specification that integrates cleanly with the Java EE
platform. Any Java EE 6-compliant application server
provides support for JSR-299 (even the web profile).
• Loose coupling with strong typing
• Well-defined lifecycle for stateful objects bound to
lifecycle contexts
• Support for Java EE modularity and the Java EE
component architecture
43. CDI-Telco-Framework
Mobicents brings the power and productivity benefits of CDI into
the Mobicents Sip Servlets platform providing dependency injection
and contextual lifecycle management for converged HTTP/SIP
applications.
44. CDI-Telco-Framework
Mission Statement
• simplify SipServlets development by
introducing a clean programming model
• ease of development by making available
SIP utilities out of the box
• providing dependency injection and
contextual lifecycle management to the
SipServlets.
45. CDI-Telco-Framework
public class SipRegistarClient {
....
@Inject
SipFactory sipFactory;
protected void doRegister(@Observes @Register
SipServletRequest req) throws ServletException, IOException {
.... register user here ...
}
46. Contact
• Naoki Nishihara
– nisihara562@gmail.com
• Jean Deruelle
– jean.deruelle@gmail.com
• Georges
– gvagenas@gmail.com
• Vladimir Ralev
– vladimir.ralev@gmail.com