Kristian Ačkar from Core Incubator visits us to showcase strength of Node.js for real time applications. If you're interested in this topic come and join this lecture in real time at Axilis.
Container Security via Monitoring and Orchestration - Container Security SummitDavid Timothy Strauss
Security is a basic requirement of modern applications, and developers are increasingly using containers in their development work. In this presentation, we explore the basic components of secure design (preparation, detection, and containment), how containers facilitate that work today (verification), and how container orchestration ought to support models of the future, especially ones that are hard to roll manually (PKI).
MongoDB IoT City Tour EINDHOVEN: Managing the Database ComplexityMongoDB
The value of the fast growing class of NoSQL databases is the ability to handle high velocity and volumes of data while enabling greater agility with dynamic schemas. MongoDB gives you those benefits while also providing a rich querying capability and a document model for developer productivity. Arthur Viegers will outline the reasons for MongoDB's popularity in IoT applications and how you can leverage the core concepts of NoSQL to build robust and highly scalable IoT applications.
Historically, sharing a Linux server entailed all kinds of untenable compromises. In addition to the security concerns, there was simply no good way to keep one application from hogging resources and messing with the others. The classic “noisy neighbor” problem made shared systems the bargain-basement slums of the Internet, suitable only for small or throwaway projects.
Serious use-cases traditionally demanded dedicated systems. Over the past decade virtualization (in conjunction with Moore’s law) has democratized the availability of what amount to dedicated systems, and the result is hundreds of thousands of websites and applications deployed into VPS or cloud instances. It’s a step in the right direction, but still has glaring flaws.
Most of these websites are just piles of code sitting on a server somewhere. How did that code got there? How can it can be scaled? Secured? Maintained? It’s anybody’s guess. There simply isn’t enough SysAdmin talent in the world to meet the demands of managing all these apps with anything close to best practices without a better model.
Containers are a whole new ballgame. Unlike VMs, you skip the overhead of running an entire OS for every application environment. There’s also no need to provision a whole new machine to have a place to deploy, meaning you can spin up or scale your application with orders of magnitude more speed and accuracy.
Container Security via Monitoring and Orchestration - Container Security SummitDavid Timothy Strauss
Security is a basic requirement of modern applications, and developers are increasingly using containers in their development work. In this presentation, we explore the basic components of secure design (preparation, detection, and containment), how containers facilitate that work today (verification), and how container orchestration ought to support models of the future, especially ones that are hard to roll manually (PKI).
MongoDB IoT City Tour EINDHOVEN: Managing the Database ComplexityMongoDB
The value of the fast growing class of NoSQL databases is the ability to handle high velocity and volumes of data while enabling greater agility with dynamic schemas. MongoDB gives you those benefits while also providing a rich querying capability and a document model for developer productivity. Arthur Viegers will outline the reasons for MongoDB's popularity in IoT applications and how you can leverage the core concepts of NoSQL to build robust and highly scalable IoT applications.
Historically, sharing a Linux server entailed all kinds of untenable compromises. In addition to the security concerns, there was simply no good way to keep one application from hogging resources and messing with the others. The classic “noisy neighbor” problem made shared systems the bargain-basement slums of the Internet, suitable only for small or throwaway projects.
Serious use-cases traditionally demanded dedicated systems. Over the past decade virtualization (in conjunction with Moore’s law) has democratized the availability of what amount to dedicated systems, and the result is hundreds of thousands of websites and applications deployed into VPS or cloud instances. It’s a step in the right direction, but still has glaring flaws.
Most of these websites are just piles of code sitting on a server somewhere. How did that code got there? How can it can be scaled? Secured? Maintained? It’s anybody’s guess. There simply isn’t enough SysAdmin talent in the world to meet the demands of managing all these apps with anything close to best practices without a better model.
Containers are a whole new ballgame. Unlike VMs, you skip the overhead of running an entire OS for every application environment. There’s also no need to provision a whole new machine to have a place to deploy, meaning you can spin up or scale your application with orders of magnitude more speed and accuracy.
Object Storage in a Cloud-Native Container EnvirnomentMinio
Frank Wessels for VM Ware meet up. This talk looked at the modern application stack whereby a cloud native application is split into both stateless and stateful containers.
Server as the core of the information systems in today's business operations playing a pivotal role, data storage on server is becoming the lifeline to maintain the normal operation of the millions of businesses and organizations. Correct choice of independent control of the server or cluster systems and storage devices can improve system performance and operational capabilities. The user request rate and response time of business server data storage system are dependent on the selection of the storage devices. These devices can greatly affect system performance. To effectively protect data and give linear performance for iSCSI initiator, it is required to modify the iSCSI target driver to provide Gluster file system backend storage as distributed block device. This paper aims at discussing ways of modifying iSCSI Target (ISTGT) driver to support Gluster file system.
You’ve spent considerable time picking your orchestrator, choosing the right cloud provider and configuring all the intricate details of your new Docker environment, but what about monitoring? In this talk we will cover the tools available on the market: upsides, downsides and upcoming changes. We’ll open the floor to questions, comments and feedback for each tool, so you have a complete view on the monitoring landscape.
OSBConf 2015 | Scale out backups with bareos and gluster by niels de vosNETWAYS
During this talk, Niels will explain the basics of Gluster and show how Bareos integrates with it. Gluster provides a Software Defined Storage environment that can scale-out when the backup storage needs to grow. With a live demonstration Niels shows how simple it is to setup a small Gluster environment and configure Bareos to use the native Gluster protocol.
A basic introduction for Windows Users and how they can access their VM in Fiware Lab. It describes very briefly a couple of tools which may be handy to access your already created FIWARE Instance from Windows.
Nous présentons une solution Open Source de stockage et d’archivage distribué des données dont l’objectif est la pérennité des données. Il est basé sur le protocole BitTorrent et intègre un haut niveau de redondance, ainsi que d’un mécanisme de régénération automatique des données. Il peut être déployé à grande échelle en LAN et en WAN. Les agents sont compatibles avec des serveurs et postes clients Linux, Window ou Mac OS.
New Jersey Red Hat Users Group Presentation: Provisioning anywhereRodrique Heron
This presentation is from the October 10, 2017, Red Hat Users Group meeting. Please check us out on meetup.com.
https://www.meetup.com/NorthernNJRHUG
Tools like Docker and Ansible enable new capabilities and speed, and this session will help you and your organization to put it all in context and be more successful and collaborative than ever before.
This session will provide both practical advice to improve your organization's provisioning process, as well as discuss best practices to achieve the much sought-after "push button infrastructure" across multi-cloud environments.
Provisioning means more than simply deploying VMs (or cloud instances) and participants will leave this session with a fresh understanding of the various aspects that go into providing a reliable, flexible and portable platform to their businesses' workloads.
Our Speaker: Andre Pitanga, Red Hat Solutions Architect
Andre is at heart just a chill and optimistic guy. He's delivered agile infrastructure projects with some of the world's biggest banks, financial analytics and media companies, but he swears he didn't break anything. When not reviewing or writing Ansible playbooks, he can be found working shoulder-to-shoulder with his awesome clients to build better platforms the open source way.
Object Storage in a Cloud-Native Container EnvirnomentMinio
Frank Wessels for VM Ware meet up. This talk looked at the modern application stack whereby a cloud native application is split into both stateless and stateful containers.
Server as the core of the information systems in today's business operations playing a pivotal role, data storage on server is becoming the lifeline to maintain the normal operation of the millions of businesses and organizations. Correct choice of independent control of the server or cluster systems and storage devices can improve system performance and operational capabilities. The user request rate and response time of business server data storage system are dependent on the selection of the storage devices. These devices can greatly affect system performance. To effectively protect data and give linear performance for iSCSI initiator, it is required to modify the iSCSI target driver to provide Gluster file system backend storage as distributed block device. This paper aims at discussing ways of modifying iSCSI Target (ISTGT) driver to support Gluster file system.
You’ve spent considerable time picking your orchestrator, choosing the right cloud provider and configuring all the intricate details of your new Docker environment, but what about monitoring? In this talk we will cover the tools available on the market: upsides, downsides and upcoming changes. We’ll open the floor to questions, comments and feedback for each tool, so you have a complete view on the monitoring landscape.
OSBConf 2015 | Scale out backups with bareos and gluster by niels de vosNETWAYS
During this talk, Niels will explain the basics of Gluster and show how Bareos integrates with it. Gluster provides a Software Defined Storage environment that can scale-out when the backup storage needs to grow. With a live demonstration Niels shows how simple it is to setup a small Gluster environment and configure Bareos to use the native Gluster protocol.
A basic introduction for Windows Users and how they can access their VM in Fiware Lab. It describes very briefly a couple of tools which may be handy to access your already created FIWARE Instance from Windows.
Nous présentons une solution Open Source de stockage et d’archivage distribué des données dont l’objectif est la pérennité des données. Il est basé sur le protocole BitTorrent et intègre un haut niveau de redondance, ainsi que d’un mécanisme de régénération automatique des données. Il peut être déployé à grande échelle en LAN et en WAN. Les agents sont compatibles avec des serveurs et postes clients Linux, Window ou Mac OS.
New Jersey Red Hat Users Group Presentation: Provisioning anywhereRodrique Heron
This presentation is from the October 10, 2017, Red Hat Users Group meeting. Please check us out on meetup.com.
https://www.meetup.com/NorthernNJRHUG
Tools like Docker and Ansible enable new capabilities and speed, and this session will help you and your organization to put it all in context and be more successful and collaborative than ever before.
This session will provide both practical advice to improve your organization's provisioning process, as well as discuss best practices to achieve the much sought-after "push button infrastructure" across multi-cloud environments.
Provisioning means more than simply deploying VMs (or cloud instances) and participants will leave this session with a fresh understanding of the various aspects that go into providing a reliable, flexible and portable platform to their businesses' workloads.
Our Speaker: Andre Pitanga, Red Hat Solutions Architect
Andre is at heart just a chill and optimistic guy. He's delivered agile infrastructure projects with some of the world's biggest banks, financial analytics and media companies, but he swears he didn't break anything. When not reviewing or writing Ansible playbooks, he can be found working shoulder-to-shoulder with his awesome clients to build better platforms the open source way.
An introduction to Netty. A powerful framework to develop networking applications.
This is suppose to be followed as hands on training, as the exercises on the slides imply, but can be also used an introduction guidance.
“Node's goal is to provide an easy way to build scalable Network programs”
Asynchronous i/o framework
Core in c++ on top of v8
Rest of it in javascript
Swiss army knife for network Related stuffs
Can handle thousands of Concurrent connections with Minimal overhead (cpu/memory) on a single process
It’s NOT a web framework, and it’s also NOT a language
• Created by Ryan Dahl in 2009
• Development && maintenance sponsored by Joyent
• License MIT
• Last release : 0.10.31
• Based on Google V8 Engine
• +99 000 packages
Presented at NSA User Group. Steps through recent activities and technologies in use across NSA and the IC. Specifically mentions data ingress/egress with JBoss Messaging and MRG-M, storage of data with XFS and GFS, and data presentation capabilities with JBoss Enterprise Middleware Portfolio. 15-20min on Security Automation with SCAP.
Brainstorming session for agents support in Nova code. Current state of agents, its support in Nova. New architecture of agents-Nova communication, agnostic to hypervisor, is suggested.
NetflixOSS Meetup S3 E1, covering latest components in Distributed Databases, Telemetry systems, Big Data tools and more. Speakers from Netflix, IBM Watson, Pivotal and Nike Digital
Configuring SSL on NGNINX and less tricky serversAxilis
Sergej Jakovljev explains how to setup different levels of security over SSL. What's the difference between different SSL certificates and how to set them up on NGINX, Heroku and Node.js.
Journey to Microservice architecture via Amazon LambdaAxilis
Microservices are one of the latest trends in architecture design.
Made popular by the introduction of Amazon Lambda, Google Cloud Functions and Azure Functions. They seem to offer a way to structure code as a set of independent services that interact together to work as one, making each part simpler and offering an easy way to scale up. But just as every other technology they bring their own set of challenges.
Join us on lessons we learned while converting simple application to work on Lambda.
React, Facebook's Javascript library for creating user interface, often gets skipped when compared to other Javascript MV* frameworks, like Angular, because it only covers the view part of MV*. This doesn't really make the decision easier when it comes to selecting React for your next project or not. If you are having the same doubts, join Ivan Varga on his next MSCummunity talk about React in Zagreb.
http://www.mscommunity.hr/event/angular2-typescript-aspnetcore-react/2439
We all love and hate JavaScript. But with the new ECMAScript standards the love seems to be growing and the hate fading away. Slides from session by Damir Širola about new useful JavaScript features from ES2015 standard.
Developers can find plenty of cool and usefull packages on NuGet. In this session Zvonimir Ilić will show the coolest and most usefull packages for LINQ and how to use them
Say goodbye to PSD files or seeking for those outnumbered Macs to export sketch files. There is a new kind of collaboration between designers and developers. If you missed our Zeplin presentation you can check out our presentation and learn a little more about this collaboration tool.
We all love LINQ in C#. Fosna will talk about advanced LINQ concepts like expression trees, how to build them, how to parse them, how to exploit them. We'll review what we learned in first meetup and show few demos. If you're interested in this kind of crazy stuff come and join our meetup.
Notes from last meetup are available at http://www.axilis.com/giving-back/#meetups.
O novoj implementaciji .NET platforme - .NET Core. Modularna, otvorenog koda, a osim na Windows mašinama živi i na Linuxu i Macu. Što sve trebamo znati o .NET Coreu, kakav je odnos s postojećim platformama te zašto nas uopće treba biti briga.
NPM, Bower and Gulp Kickstart in Visual StudioAxilis
Find out what are npm, bower and gulp and what are they doing in Visual Studio 2015. Lecture will show you how to properly start doing Javascript projects in VS and why we wont miss nuget packages.
Almost year and half after it’s first appearance, Apple’s new programming language Swift has reached version 2.1. Apple promises that Swift is powerful, intuitive and fast programming language for iOS, OS X and watchOS. We'll take look at the basic syntax and language constructs using Xcode 7 to see if apple fulfils it's promises. Presentation by Kritijan Frankovic.
Zvonimir Ilic claims that Python can live inside Visual Studio. He'll tell us about Python Tools for Visual Studio. This is extension for creating Python apps. In this lecture he'll show how to debug Python application, install libraries, create virtual environments and other useful features.
Zvonimir Ilic claims that Python can live inside Visual Studio. He'll tell us about Python Tools for Visual Studio. This is extension for creating Python apps. In this lecture he'll show how to debug Python application, install libraries, create virtual environments and other useful features.
With angular 2.0 being in developer preview, it’s a good time to take a sneak peek. To see what to expect and can you benefit from it join us at lecture by Ivan Varga at Axilis and find out.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
2. A little about me...
Kristian Ačkar - employed in Core Incubator
● “System Analysis & Traffic. With a sparkle in his eye and
passion for football”
“Core Incubator is an angel investor, providing pre-seed
and seed investment of a small scale. We are also a
startup hub offering coworking space and mentorship,
for startups eager to grow and develop.” - www.coreincubator.com
Contact me:
2
3. What to expect ahead...
● Introduction
● What can you do with Node.js
● When to use Node.js and when not
● Scalability
● Node.js ecosystem
● Socket.io
● Who uses Node.js
● Zdravko Mamić
3
4. Background
● Node.js is an open-source cross-platform JavaScript runtime built on
Chrome’s V8 JavaScript engine
● Originally written in 2009 by Ryan Dahl
● Latest stable release v5.5.0
4
5. Introduction: Basic
● Node.js is “server side JavaScript”
● High-performance network applications framework
● Optimized for high concurrent environments
● ~40% written in JavaScript and ~60% in C++
“As an asynchronous event driven framework, Node.js is designed to build
scalable network applications” - from nodejs.org
5
6. Introduction: Advanced
● Node.js uses an event-driven, non-blocking I/O model
● It makes use of event-loops via JavaScript’s callback functionality to
implement the non-blocking I/O
● Most of familiar JavaScript from browser is ported to Node.js, except the
DOM/BOM implementation
var x = document.getElementsByTagName(“p”)
var y = window.innerWidth
● Everything inside Node.js runs in a single-thread
6
7. Introduction: Some (confusing) theory (1)
Event-loops
● Core of event-driven programming (almost all the UI programs use event-
loops to track the user event)
● A major usage of JavaScript is to interact with the DOM (browser) - use of
event-based API was natural
7
File System
Database
Network
...
INTENSIVE
OPERATION
EVENT
QUEUE
Register Callback
Operation Complete
Trigger Callback
EVENT LOOP
(single thread)
8. Introduction: Some (confusing) theory (2)
Non-blocking I/O
fs.unlinkSync(“/tmp/hello”);
console.log(“I was blocked”); // execution is blocked
fs.unlink(“/tmp/hello”, (err) => {
if (err) throw err;
console.log(“/tmp/hello deleted”);
});
console.log(“I wasn’t blocked”); // execution is not blocked
8
9. What can you do with Node.js
● All kind of servers
○ HTTP server
○ TCP server Example: TCP client - server
○ DNS server
○ Static file server
● Real-time applications
○ Chat
○ Online games
○ Collaboration tools Example: Drawing collaborating tool
○ Anything which sends updates to the user in real-time
● Desktop GUI applications
● Any kind of applications
9
10. When to use Node.js and when not
Use Node.js
● For applications where you’d like to maintain persistent connection from the
browser back to the server (“long-polling”)
● When you can reuse a lot of code across the client/server gap (Meteor.js)
● For applications that have a lot of concurrent connections and each request
only needs very few CPU cycles (because the event loop is blocked during
execution of a function)
Don’t use Node.js
● When server request is dependant on heavy CPU consuming algorithm/job
10
11. Scalability
● Horizontal scalability is problem
● Adding more CPU cores won’t increase performance
● SOLUTION
○ Utilize multi-core CPUs e.g. by setting up cluster (nodejs.org/api/cluster.html)
○ Setup a load balancer and spin up more servers
Example: Node.js clustering
11
13. Node.js ecosystem (1)
● Node.js framework is structured in modules
○ Core modules (fs, cluster, http, net, dgram, crypto, ...)
○ Custom modules
const PI = Math.PI;
exports.area = function(r) {
return PI * r * r;
}
exports.circumference = function(r) {
return 2 * r * PI;
}
const circle = require(“./circle.js”);
console.log(“The area of a circle of radius 10 is ${circle.area(10)}”);
13
circle.js
demo.js
14. Node.js ecosystem (2)
Node Package Manager - NPM (www.npmjs.com)
● Node.js packages repository
● Package is custom made module published in the repository (available to community)
● Real power of Node.js (238 635 packages in repository)
○ Production development heavily depends on Node.js packages
● Countless number of downloads
○ 147 308 788 in the last day
○ 816 096 961 in the last week
○ 3 447 929 034 in the last month
● Install local or global
○ npm install -g sails@0.12.0 vs npm install sails@0.12.0
● Node.js project can define list of dependencies in a package.json file (example)
14
15. Socket.io
● Node.js (JavaScript) is event driven system
○ Usually we handle events immediately - real-time
■ e.g. file watching example - isn’t that example of “real time“ app?
● Most of the time when we talk about “real-time” and Node.js we mean on one
of the most popular Node.js module - socket.io (http://socket.io)
○ Uses websocket protocol to communicate with a server
○ Simple and lightweight
○ Uses “heartbeats” to control connection health
○ Server can separate socket connections into “rooms”
■ Example apps: chat systems with rooms, brazuca
Example: Drawing collaborating tool
15
16. Who uses Node.js (in production)
16
● Big shots
○ github.com/nodejs/node-v0.x-archive/wiki/Projects,-Applications,-and-Companies-Using-Node