Lightweight Virtualization with Linux Containers and Docker | YaC 2013dotCloud
This document provides an overview of lightweight virtualization using Linux containers and Docker. It begins by explaining the problems of deploying applications across different environments and targets, and how containers can help solve this issue similarly to how shipping containers standardized cargo transportation. It then discusses what Linux containers are, how they provide isolation using namespaces and cgroups. It introduces Docker and how it builds on containers to further simplify deployment by allowing images to be easily built, shared, and run anywhere through standard formats and tools.
The document discusses ngServer, a server-side framework powered by Node.js that was created by DeNA for building social games. It describes ngServer's architecture which uses Express for routing and handles authentication, rendering, jobs, and interfacing with social APIs, memcache, data stores, and queues. It also covers ngServer's functions like commands, templates, profiling, deployment across multiple servers, and challenges of building for an international audience.
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...Yandex
Lightweight virtualization", also called "OS-level virtualization", is not new. On Linux it evolved from VServer to OpenVZ, and, more recently, to Linux Containers (LXC). It is not Linux-specific; on FreeBSD it's called "Jails", while on Solaris it’s "Zones". Some of those have been available for a decade and are widely used to provide VPS (Virtual Private Servers), cheaper alternatives to virtual machines or physical servers. But containers have other purposes and are increasingly popular as the core components of public and private Platform-as-a-Service (PAAS), among others.
Just like a virtual machine, a Linux Container can run (almost) anywhere. But containers have many advantages over VMs: they are lightweight and easier to manage. After operating a large-scale PAAS for a few years, dotCloud realized that with those advantages, containers could become the perfect format for software delivery, since that is how dotCloud delivers from their build system to their hosts. To make it happen everywhere, dotCloud open-sourced Docker, the next generation of the containers engine powering its PAAS. Docker has been extremely successful so far, being adopted by many projects in various fields: PAAS, of course, but also continuous integration, testing, and more.
NodeJS is an open-source and cross-platform JavaScript runtime environment that allows JavaScript to be used for server-side scripting. The document discusses what NodeJS is, why it was created, how to use it, who uses it, and its use in China (CNodeJS). Key points are that NodeJS is used for building scalable network applications using non-blocking I/O and the JavaScript language, and that it has seen significant adoption in China from companies like Taobao and Sina for building web servers and real-time applications.
ngGoBuilder and collaborative development between San Francisco and Tokyonotolab
This document discusses ngGoBuilder, a game engine and set of tools for developing games using ngCore. It describes ngGoBuilder 1.x features like scrolling layers and particle effects. It then discusses plans for ngGoBuilder 2.0 which will focus on a better user experience and include ngCore, debugging tools, and sample games. Future roadmaps include improved animation support and integration with the ngServer platform. The document also covers collaboration between the San Francisco and Tokyo teams working on the project.
The document discusses different ways of storing virtual machine images and volumes using Ceph storage. It describes growing from using proprietary storage hardware to using Ceph with its open source, scalable, and fault-tolerant design. It outlines how virtual machine images can be stored in Ceph using the Cinder volume driver and RADOS Block Device (RBD) for efficient cloning and live migration. Client access to volumes is provided through a Linux kernel module while container/VM access is through device drivers.
The document provides an overview of Node.js, a JavaScript runtime environment that allows JavaScript to be used for server-side scripting. Some key points:
- Node.js uses Google's V8 JavaScript engine and allows JavaScript code to be run on the server side, providing a single language for both client-side and server-side development.
- This avoids duplicating code across different programming languages and platforms and reduces maintenance.
- Node.js is well-suited for real-time applications with many concurrent connections due to its asynchronous and event-driven model.
- However, using JavaScript for all development has drawbacks like lack of specialization and debugging challenges. The future of Node.js depends on
This document discusses Docker concepts and implementation in Chinese. It covers Linux kernel namespaces, seccomp, cgroups, LXC, and Docker. Namespaces isolate processes and resources between containers. Cgroups control resource limits and prioritization. LXC provides containerization tools while Docker builds on these concepts and provides an easy-to-use interface for containers. The document also provides examples of using namespaces, cgroups, LXC, and building Docker images.
Lightweight Virtualization with Linux Containers and Docker | YaC 2013dotCloud
This document provides an overview of lightweight virtualization using Linux containers and Docker. It begins by explaining the problems of deploying applications across different environments and targets, and how containers can help solve this issue similarly to how shipping containers standardized cargo transportation. It then discusses what Linux containers are, how they provide isolation using namespaces and cgroups. It introduces Docker and how it builds on containers to further simplify deployment by allowing images to be easily built, shared, and run anywhere through standard formats and tools.
The document discusses ngServer, a server-side framework powered by Node.js that was created by DeNA for building social games. It describes ngServer's architecture which uses Express for routing and handles authentication, rendering, jobs, and interfacing with social APIs, memcache, data stores, and queues. It also covers ngServer's functions like commands, templates, profiling, deployment across multiple servers, and challenges of building for an international audience.
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...Yandex
Lightweight virtualization", also called "OS-level virtualization", is not new. On Linux it evolved from VServer to OpenVZ, and, more recently, to Linux Containers (LXC). It is not Linux-specific; on FreeBSD it's called "Jails", while on Solaris it’s "Zones". Some of those have been available for a decade and are widely used to provide VPS (Virtual Private Servers), cheaper alternatives to virtual machines or physical servers. But containers have other purposes and are increasingly popular as the core components of public and private Platform-as-a-Service (PAAS), among others.
Just like a virtual machine, a Linux Container can run (almost) anywhere. But containers have many advantages over VMs: they are lightweight and easier to manage. After operating a large-scale PAAS for a few years, dotCloud realized that with those advantages, containers could become the perfect format for software delivery, since that is how dotCloud delivers from their build system to their hosts. To make it happen everywhere, dotCloud open-sourced Docker, the next generation of the containers engine powering its PAAS. Docker has been extremely successful so far, being adopted by many projects in various fields: PAAS, of course, but also continuous integration, testing, and more.
NodeJS is an open-source and cross-platform JavaScript runtime environment that allows JavaScript to be used for server-side scripting. The document discusses what NodeJS is, why it was created, how to use it, who uses it, and its use in China (CNodeJS). Key points are that NodeJS is used for building scalable network applications using non-blocking I/O and the JavaScript language, and that it has seen significant adoption in China from companies like Taobao and Sina for building web servers and real-time applications.
ngGoBuilder and collaborative development between San Francisco and Tokyonotolab
This document discusses ngGoBuilder, a game engine and set of tools for developing games using ngCore. It describes ngGoBuilder 1.x features like scrolling layers and particle effects. It then discusses plans for ngGoBuilder 2.0 which will focus on a better user experience and include ngCore, debugging tools, and sample games. Future roadmaps include improved animation support and integration with the ngServer platform. The document also covers collaboration between the San Francisco and Tokyo teams working on the project.
The document discusses different ways of storing virtual machine images and volumes using Ceph storage. It describes growing from using proprietary storage hardware to using Ceph with its open source, scalable, and fault-tolerant design. It outlines how virtual machine images can be stored in Ceph using the Cinder volume driver and RADOS Block Device (RBD) for efficient cloning and live migration. Client access to volumes is provided through a Linux kernel module while container/VM access is through device drivers.
The document provides an overview of Node.js, a JavaScript runtime environment that allows JavaScript to be used for server-side scripting. Some key points:
- Node.js uses Google's V8 JavaScript engine and allows JavaScript code to be run on the server side, providing a single language for both client-side and server-side development.
- This avoids duplicating code across different programming languages and platforms and reduces maintenance.
- Node.js is well-suited for real-time applications with many concurrent connections due to its asynchronous and event-driven model.
- However, using JavaScript for all development has drawbacks like lack of specialization and debugging challenges. The future of Node.js depends on
This document discusses Docker concepts and implementation in Chinese. It covers Linux kernel namespaces, seccomp, cgroups, LXC, and Docker. Namespaces isolate processes and resources between containers. Cgroups control resource limits and prioritization. LXC provides containerization tools while Docker builds on these concepts and provides an easy-to-use interface for containers. The document also provides examples of using namespaces, cgroups, LXC, and building Docker images.
Overview of Windows Azure's current support for MongoDB deployments on IaaS virtual machines or PaaS worker roles. Presented at MongoDB Seattle, 9/14/2012.
Introduction to Docker at Glidewell Laboratories in Orange CountyJérôme Petazzoni
In this presentation we will introduce Docker, and how you can use it to build, ship, and run any application, anywhere. The presentation included short demos, links to further material, and of course Q&As. If you are already a seasoned Docker user, this presentation will probably be redundant; but if you started to use Docker and are still struggling with some of his facets, you'll learn some!
Introduction to Docker (and a bit more) at LSPE meetup SunnyvaleJérôme Petazzoni
What's Docker, why does it matter, how does it use Linux Containers, why should you use it, and how? You'll find answers to those questions (and a bit more) in this presentation, given February 20th 2014 at the Large Scale Production Engineering Meet-Up at Yahoo, in Sunnyvale.
Norman Maurer discusses how to build low-cost master/slave clusters on Linux using Linux-HA (Heartbeat and DRBD) to provide high availability for mission critical services. Linux-HA allows configuring clusters that can failover services between nodes to ensure availability. DRBD replicates data between nodes, while Heartbeat monitors nodes and fails over services if needed. Configuring DRBD, Heartbeat, and associated scripts allows building clusters for services like Apache HTTPD, databases, mail servers, and more.
The document introduces Node as a backend JavaScript runtime environment that provides a non-blocking and single-threaded way to build scalable network applications. It discusses how Node uses an event-driven model where I/O operations happen asynchronously in the background without blocking code execution. Key related technologies like NPM, Connect and Express are also mentioned. Important figures in the Node community like Isaac Schlueter and TJ Holowaychuk are recognized. Resources for learning more about Node are provided at the end.
This document provides an agenda and overview for a MySQL Cluster workshop. The agenda covers basics of MySQL, high availability options, an overview of MySQL Cluster, installation, configuration, programs, management and replication in MySQL Cluster. The document then goes into more detail on the basics of MySQL architecture and components, different high availability architectures in MySQL including master-slave, master-master and MySQL Cluster. It provides terminology and components used in MySQL Cluster including management nodes, data nodes, SQL nodes and APIs. It discusses different installation methods for MySQL Cluster including the auto-installer, traditional method and MySQL Cluster Manager.
The next generation JavaScript doesn't need to dependent on browser, that's just like other programming language. Node.js is it, no need browser, based on fastest V8 JavaScript Engine and provides many APIs for system integration. It can be used to server-side and system, even more purpose.
Node.js is an open-source JavaScript runtime environment for developing server-side web applications. It allows JavaScript to be used on the server-side for networking and server-side scripting. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, suitable for data-intensive real-time applications that run across distributed devices. Some key features include using JavaScript for server-side development, being event-driven and non-blocking to handle multiple concurrent connections without blocking the event loop, and using Google's V8 JavaScript engine for speed and performance.
Ceph is an open-source distributed storage system that provides object, block, and file storage. The document discusses Ceph's main components including MONITOR, METADATA SERVER, OSD, and RADOS GATEWAY. It also covers how data is stored using OSDs, pools, and placement groups, and how to architect Ceph for OpenStack. The document provides examples of writing data to Ceph volumes and tracing the data placement across OSDs.
NodeJS is an open source, cross platform run time environment for server side and networking application. NodeJS is popular in development because front & back end side both uses JavaScript Code.
Virtualization creates an abstraction layer between physical hardware and the software that uses it. OpenVZ is an OS-level virtualization technology that partitions a physical Linux server's resources to run multiple isolated Linux systems. It provides high density and performance by running guest operating systems within the same kernel as the host. OpenVZ uses kernel features and tools to isolate guest environments, manage shared resources, and easily provision and migrate virtual private servers.
In Web hosting services, hosting systems use access controls like suEXEC on apache Web servers to separate privilege by each virtual host. However, existing access control architectures on Web servers have a problem in their low performance and are not appropriate for dynamic contents like Web API since these architectures require termination of the process after each HTTP session. The system developers are not easy to install existing access controls since these are provided by each interpreter and program execution methods conventionally. In this paper, we propose the access control architecture “mod_process_security”. In this architecture a server process creates a new thread on the server process when accepting a request. Then, the web server separates privilege by the thread and processes the contents on the thread. The server process installed “mod_process_security” executes programs faster. System developers can easily install it on web servers since we replace it with the complicated existing access controls. “mod_process_security” can be installed for Apache HTTP Server on Linux as Apache Module which is widely used.
LXC, Docker, security: is it safe to run applications in Linux Containers?Jérôme Petazzoni
The document discusses the security of running applications in Linux containers. It begins by acknowledging that containers were not originally designed with security in mind. However, it then outlines several techniques that can be used to improve security, such as running containers without root privileges, dropping capabilities, enabling security modules like SELinux, and limiting access to devices and system calls. For the most security-sensitive tasks, it recommends running containers inside virtual machines to isolate them further. In the end, it argues that with the right precautions, containers can be used securely for many applications.
This document introduces Docker and provides an overview of its key concepts and capabilities. It explains that Docker allows deploying applications into lightweight Linux containers that are isolated but share resources and run at native speeds. It describes how Docker uses namespaces and cgroups for isolation and copy-on-write storage for efficiency. The document also outlines common Docker workflows for building, testing, and deploying containerized applications both locally and in production environments at scale.
The document discusses using MongoDB on the Windows Azure platform. It provides an overview of Windows Azure and its application building blocks. It then discusses how MongoDB can be deployed on Windows Azure in different ways to provide high availability using replica sets or high scalability using sharding. Specific drivers and deployment options for MongoDB on both Windows Azure virtual machines and cloud services are also covered. The presentation includes demos of MongoDB deployed as both a PaaS cloud service and on IaaS virtual machines on Windows Azure. Resources for further information are provided at the end.
This document provides an overview of Docker for developers. It discusses why Docker is useful for building applications, including portability across machines, isolating dependencies, and creating development environments that match production. Benefits of Docker like lightweight containers, a unified build process with Dockerfiles, standardized images from Docker Hub, and fast container startup times are outlined. Some cons like only working on Linux and added complexity are noted. Using Docker with Vagrant for a portable development environment is presented. Key Docker CLI commands and Docker Compose for defining multi-container apps are covered. Tips for debugging running containers are provided.
Slides of my "Open Innovation in Software Means Open Source Software" talk, OSS Watch, Oxford Dec.12th, 2009 (http://www.oss-watch.ac.uk/events/2009-12-07_business/programme.xml). Also at http://transfersummit.com/programme/60 and accompanying article on the H online, http://x42.ch/03.10.01
Docker in production, for real!
The Yuzu startup, helped by Vixns, chose to have a docker infrastructure with Mesos/Marathon/Consul. From the development environment to our prod monitoring, we share our mistakes, successes, workflows and tools.
MongoDB Europe 2016 - Powering Microservices with Docker, Kubernetes, and KafkaMongoDB
Organisations are building their applications around microservice architectures because of the flexibility, speed of delivery, and maintainability they deliver. This session introduces you to technologies such as Docker, Kubernetes & Kafka which are driving the microservices revolution. Learn about containers and orchestration – and most importantly how to exploit them for stateful services such as MongoDB.
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...Andrew Morgan
Organisations are building their applications around microservice architectures because of the flexibility, speed of delivery, and maintainability they deliver.
Want to try out MongoDB on your laptop? Execute a single command and you have a lightweight, self-contained sandbox; another command removes all trace when you're done. Need an identical copy of your application stack in multiple environments? Build your own container image and then your entire development, test, operations, and support teams can launch an identical clone environment.
Containers are revolutionizing the entire software lifecycle: from the earliest technical experiments and proofs of concept through development, test, deployment, and support. Orchestration tools manage how multiple containers are created, upgraded and made highly available. Orchestration also controls how containers are connected to build sophisticated applications from multiple, microservice containers.
This presentation introduces you to technologies such as Docker, Kubernetes & Kafka which are driving the microservices revolution. Learn about containers and orchestration – and most importantly how to exploit them for stateful services such as MongoDB.
Overview of Windows Azure's current support for MongoDB deployments on IaaS virtual machines or PaaS worker roles. Presented at MongoDB Seattle, 9/14/2012.
Introduction to Docker at Glidewell Laboratories in Orange CountyJérôme Petazzoni
In this presentation we will introduce Docker, and how you can use it to build, ship, and run any application, anywhere. The presentation included short demos, links to further material, and of course Q&As. If you are already a seasoned Docker user, this presentation will probably be redundant; but if you started to use Docker and are still struggling with some of his facets, you'll learn some!
Introduction to Docker (and a bit more) at LSPE meetup SunnyvaleJérôme Petazzoni
What's Docker, why does it matter, how does it use Linux Containers, why should you use it, and how? You'll find answers to those questions (and a bit more) in this presentation, given February 20th 2014 at the Large Scale Production Engineering Meet-Up at Yahoo, in Sunnyvale.
Norman Maurer discusses how to build low-cost master/slave clusters on Linux using Linux-HA (Heartbeat and DRBD) to provide high availability for mission critical services. Linux-HA allows configuring clusters that can failover services between nodes to ensure availability. DRBD replicates data between nodes, while Heartbeat monitors nodes and fails over services if needed. Configuring DRBD, Heartbeat, and associated scripts allows building clusters for services like Apache HTTPD, databases, mail servers, and more.
The document introduces Node as a backend JavaScript runtime environment that provides a non-blocking and single-threaded way to build scalable network applications. It discusses how Node uses an event-driven model where I/O operations happen asynchronously in the background without blocking code execution. Key related technologies like NPM, Connect and Express are also mentioned. Important figures in the Node community like Isaac Schlueter and TJ Holowaychuk are recognized. Resources for learning more about Node are provided at the end.
This document provides an agenda and overview for a MySQL Cluster workshop. The agenda covers basics of MySQL, high availability options, an overview of MySQL Cluster, installation, configuration, programs, management and replication in MySQL Cluster. The document then goes into more detail on the basics of MySQL architecture and components, different high availability architectures in MySQL including master-slave, master-master and MySQL Cluster. It provides terminology and components used in MySQL Cluster including management nodes, data nodes, SQL nodes and APIs. It discusses different installation methods for MySQL Cluster including the auto-installer, traditional method and MySQL Cluster Manager.
The next generation JavaScript doesn't need to dependent on browser, that's just like other programming language. Node.js is it, no need browser, based on fastest V8 JavaScript Engine and provides many APIs for system integration. It can be used to server-side and system, even more purpose.
Node.js is an open-source JavaScript runtime environment for developing server-side web applications. It allows JavaScript to be used on the server-side for networking and server-side scripting. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, suitable for data-intensive real-time applications that run across distributed devices. Some key features include using JavaScript for server-side development, being event-driven and non-blocking to handle multiple concurrent connections without blocking the event loop, and using Google's V8 JavaScript engine for speed and performance.
Ceph is an open-source distributed storage system that provides object, block, and file storage. The document discusses Ceph's main components including MONITOR, METADATA SERVER, OSD, and RADOS GATEWAY. It also covers how data is stored using OSDs, pools, and placement groups, and how to architect Ceph for OpenStack. The document provides examples of writing data to Ceph volumes and tracing the data placement across OSDs.
NodeJS is an open source, cross platform run time environment for server side and networking application. NodeJS is popular in development because front & back end side both uses JavaScript Code.
Virtualization creates an abstraction layer between physical hardware and the software that uses it. OpenVZ is an OS-level virtualization technology that partitions a physical Linux server's resources to run multiple isolated Linux systems. It provides high density and performance by running guest operating systems within the same kernel as the host. OpenVZ uses kernel features and tools to isolate guest environments, manage shared resources, and easily provision and migrate virtual private servers.
In Web hosting services, hosting systems use access controls like suEXEC on apache Web servers to separate privilege by each virtual host. However, existing access control architectures on Web servers have a problem in their low performance and are not appropriate for dynamic contents like Web API since these architectures require termination of the process after each HTTP session. The system developers are not easy to install existing access controls since these are provided by each interpreter and program execution methods conventionally. In this paper, we propose the access control architecture “mod_process_security”. In this architecture a server process creates a new thread on the server process when accepting a request. Then, the web server separates privilege by the thread and processes the contents on the thread. The server process installed “mod_process_security” executes programs faster. System developers can easily install it on web servers since we replace it with the complicated existing access controls. “mod_process_security” can be installed for Apache HTTP Server on Linux as Apache Module which is widely used.
LXC, Docker, security: is it safe to run applications in Linux Containers?Jérôme Petazzoni
The document discusses the security of running applications in Linux containers. It begins by acknowledging that containers were not originally designed with security in mind. However, it then outlines several techniques that can be used to improve security, such as running containers without root privileges, dropping capabilities, enabling security modules like SELinux, and limiting access to devices and system calls. For the most security-sensitive tasks, it recommends running containers inside virtual machines to isolate them further. In the end, it argues that with the right precautions, containers can be used securely for many applications.
This document introduces Docker and provides an overview of its key concepts and capabilities. It explains that Docker allows deploying applications into lightweight Linux containers that are isolated but share resources and run at native speeds. It describes how Docker uses namespaces and cgroups for isolation and copy-on-write storage for efficiency. The document also outlines common Docker workflows for building, testing, and deploying containerized applications both locally and in production environments at scale.
The document discusses using MongoDB on the Windows Azure platform. It provides an overview of Windows Azure and its application building blocks. It then discusses how MongoDB can be deployed on Windows Azure in different ways to provide high availability using replica sets or high scalability using sharding. Specific drivers and deployment options for MongoDB on both Windows Azure virtual machines and cloud services are also covered. The presentation includes demos of MongoDB deployed as both a PaaS cloud service and on IaaS virtual machines on Windows Azure. Resources for further information are provided at the end.
This document provides an overview of Docker for developers. It discusses why Docker is useful for building applications, including portability across machines, isolating dependencies, and creating development environments that match production. Benefits of Docker like lightweight containers, a unified build process with Dockerfiles, standardized images from Docker Hub, and fast container startup times are outlined. Some cons like only working on Linux and added complexity are noted. Using Docker with Vagrant for a portable development environment is presented. Key Docker CLI commands and Docker Compose for defining multi-container apps are covered. Tips for debugging running containers are provided.
Slides of my "Open Innovation in Software Means Open Source Software" talk, OSS Watch, Oxford Dec.12th, 2009 (http://www.oss-watch.ac.uk/events/2009-12-07_business/programme.xml). Also at http://transfersummit.com/programme/60 and accompanying article on the H online, http://x42.ch/03.10.01
Docker in production, for real!
The Yuzu startup, helped by Vixns, chose to have a docker infrastructure with Mesos/Marathon/Consul. From the development environment to our prod monitoring, we share our mistakes, successes, workflows and tools.
MongoDB Europe 2016 - Powering Microservices with Docker, Kubernetes, and KafkaMongoDB
Organisations are building their applications around microservice architectures because of the flexibility, speed of delivery, and maintainability they deliver. This session introduces you to technologies such as Docker, Kubernetes & Kafka which are driving the microservices revolution. Learn about containers and orchestration – and most importantly how to exploit them for stateful services such as MongoDB.
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...Andrew Morgan
Organisations are building their applications around microservice architectures because of the flexibility, speed of delivery, and maintainability they deliver.
Want to try out MongoDB on your laptop? Execute a single command and you have a lightweight, self-contained sandbox; another command removes all trace when you're done. Need an identical copy of your application stack in multiple environments? Build your own container image and then your entire development, test, operations, and support teams can launch an identical clone environment.
Containers are revolutionizing the entire software lifecycle: from the earliest technical experiments and proofs of concept through development, test, deployment, and support. Orchestration tools manage how multiple containers are created, upgraded and made highly available. Orchestration also controls how containers are connected to build sophisticated applications from multiple, microservice containers.
This presentation introduces you to technologies such as Docker, Kubernetes & Kafka which are driving the microservices revolution. Learn about containers and orchestration – and most importantly how to exploit them for stateful services such as MongoDB.
Powering Microservices with Docker, Kubernetes, Kafka, and MongoDBMongoDB
Speaker: Andrew Morgan, Principal Product Marketing Manager, MongoDB
Level: 100 (Beginner)
Track: Microservices
Organizations are building their applications around microservice architectures because of the flexibility, speed of delivery, and maintainability they deliver. Want to try out MongoDB on your laptop? Execute a single command and you have a lightweight, self-contained sandbox; another command removes all trace when you're done. Replicate your complete application for your development, test, operations, and support teams. This session introduces you to technologies such as Docker, Kubernetes, and Kafka, which are driving the microservices revolution. Learn about containers and orchestration – and most importantly, how to exploit them for stateful services such as MongoDB.
What You Will Learn:
- Why organizations are choosing to use microservice architectures, what benefits they deliver, and when they should - or shouldn't - be used.
- Technologies that are used to build microservices – including containers, orchestration and messaging systems.
- Why MongoDB is a good fit for microservices and what special steps need to be taken to make them work well together.
This is a journey of a developer who goes from docker-compose to kompose to opencompose. Which tool can help her best to move to Kubernetes? Find out in the slides. Also there is a demo in the slides which shows how these tools can help.
This talk was presented at DevConf India on May 12th 2017. DevConf India was a parallel track with rootconf 2017. Visit devconf.in to know more.
The document discusses best practices for using Docker for deploying Node.js applications. It covers creating a Dockerfile and docker-compose.yml file, including setting environment variables, using a non-root user, limiting memory usage, caching layers for faster builds, and volumes for local development versus remote deployment. Automating deployments with tools like Jenkins is also mentioned. The goal is to have repeatable, optimized deployments with a single command and best practices around testing and versioning.
This document provides an overview of Docker, including what Docker is, why it is used, when it should be used, and key Docker concepts like images, networking, and orchestration tools. Docker allows applications to be packaged with all their dependencies and run in isolated containers, improving portability, scalability, and security. Common use cases include stateless applications, automated workflows, and making stateful applications stateless through services like Redis. The document also covers Dockerfiles, Compose, Swarm, Kubernetes and networking drivers.
MongoDB: Advantages of an Open Source NoSQL DatabaseFITC
Save 10% off ANY FITC event with discount code 'slideshare'
See our upcoming events at www.fitc.ca
OVERVIEW
The presentation will present an overview of the MongoDB NoSQL database, its history and current status as the leading NoSQL database. It will focus on how NoSQL, and in particular MongoDB, benefits developers building big data or web scale applications. Discuss the community around MongoDB and compare it to commercial alternatives. An introduction to installing, configuring and maintaining standalone instances and replica sets will be provided.
Presented live at FITC's Spotlight:MEAN Stack on March 28th, 2014.
More info at FITC.ca
MongoDB Europe 2016 - Big Data meets Big ComputeMongoDB
- The document discusses how Spark can be used to connect MongoDB for analytics and processing large datasets. Spark is a fast, general engine for large-scale data processing.
- It provides an overview of Spark including its programming model using resilient distributed datasets (RDDs), built-in fault tolerance, and libraries for SQL, streaming, machine learning and graphs.
- The new MongoDB connector for Spark allows seamless integration between MongoDB and Spark. It supports DataFrames and Datasets with automatic schema inference and conversion. Proper configuration and partitioning strategies are important to optimize performance and data locality.
- A demo is presented using Spark and the connector to solve a "traveling salesman problem" of planning efficient travel routes between Europe
Webinar: Enabling Microservices with Containers, Orchestration, and MongoDBMongoDB
Want to try out MongoDB on your laptop? Execute a single command and you have a lightweight, self-contained sandbox; another command removes all trace when you're done. Need an identical copy of your application stack in multiple environments? Build your own container image and then your entire development, test, operations, and support teams can launch an identical clone environment.
Containers are revolutionizing the entire software lifecycle: from the earliest technical experiments and proofs of concept through development, test, deployment, and support. Orchestration tools manage how multiple containers are created, upgraded and made highly available. Orchestration also controls how containers are connected to build sophisticated applications from multiple, microservice containers.
This webinar introduces the concepts behind containers and orchestration, then explains the available technologies and how to use them with MongoDB. Finally, you will see a demonstration of exactly how to create a MongoDB replica set on Docker and Kubernetes within the Google Cloud.
Speaker: Jay Gordon
MongoDB has grown into one of the world's more popular databases and continues to expand it's reach to developers. In this talk we will discuss MongoDB foundations that attendees can use to begin their journey in creating new apps. By the end of the talk, members attending should feel prepared for the rest of their time at MongoDB World with essential information on how MongoDB works. There is no need to have previous experience with MongoDB to attend this talk, however basic understanding of database systems is recommended.
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...MongoDB
MongoDB Kubernetes operator is ready for prime-time. Learn about how MongoDB can be used with most popular orchestration platform, Kubernetes, and bring self-service, persistent storage to your containerized applications.
Internal presentation of Docker, Lightweight Virtualization, and linux Containers; at Spotify NYC offices, featuring engineers from Yandex, LinkedIn, Criteo, and NASA!
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...MongoDB
Speaker: Marco Bonezzi, Senior Technical Services Engineer, MongoDB
Level: 300 (Advanced)
Track: Microservices
Microservices architectures are becoming more popular and we see a trend towards smaller units of deployment based on containers. While most microservices need databases, implementing MongoDB on containers adds additional complexity: databases are stateful applications where data is critical. MongoDB is a complex distributed system with its own high availability implementation where using containers can expose additional risks.
In this session we will explore how to successfully define our database infrastructure with MongoDB running on Docker containers, how to orchestrate MongoDB containers with Kubernetes in multiple environments, considerations and strategies for managing stateful MongoDB containers, and how to manage high availability and resiliency in a distributed system while running on a container technology such as Kubernetes.
What You Will Learn:
- What to consider and how to maintain stateful databases in containers.
- How to configure deployment files, build a MongoDB deployment, and orchestrate it with Kubernetes, including how to test it on a laptop and then deploy it to Cloud.
- How to handle high availability in this environment, including data and application availability as well the additional error conditions the cloud and microservices introduce.
The document provides an introduction to MongoDB presented by Jay Gordon. It discusses that MongoDB is a cross-platform document database that uses JSON-like documents with dynamic schemas. It then covers MongoDB's compatibility, document model using rich data similar to JSON, query language including indexes and aggregation pipelines, components like replica sets and sharding, and considerations for deployment and administration using tools like MongoDB Atlas.
This document discusses Docker, including what it is, why it is used, and how it works. Docker provides lightweight software containers that package code and its dependencies so the application runs quickly and consistently on any computing infrastructure. It allows applications to be easily deployed and migrated across computing environments. The document outlines how Docker addresses issues like managing multiple software stacks and hardware environments by creating portable containers that can be run anywhere without reconfiguration. Examples of using Docker for microservices, DevOps, and data centers are also provided.
This document provides an overview of Docker and containers. It begins with a brief introduction to 12 Factor Applications methodology and then defines what Docker is, explaining that containers utilize Linux namespaces and cgroups to isolate processes. It describes the Docker software and ecosystem, including images, registries, Docker CLI, Docker Compose, building images with Dockerfile, and orchestrating with tools like Kubernetes. It concludes with a live demo and links to additional resources.
Accelerate your software development with DockerAndrey Hristov
Docker is in all the news and this talk presents you the technology and shows you how to leverage it to build your applications according to the 12 factor application model.
Docker is a platform that allows users to build, ship, and run applications by using containers. It solves issues like dependency conflicts, portability, and consistency across development and production. Docker uses containers- isolated environments that package code and dependencies together- to deliver software quickly and reliably. Key Docker concepts include images (read-only templates for creating containers), volumes (for persistent data), registries (for sharing images), and compose files (for defining multi-container apps). Docker also provides networking and clustering functionality to connect containers across multiple hosts.
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...IJECEIAES
Climate change's impact on the planet forced the United Nations and governments to promote green energies and electric transportation. The deployments of photovoltaic (PV) and electric vehicle (EV) systems gained stronger momentum due to their numerous advantages over fossil fuel types. The advantages go beyond sustainability to reach financial support and stability. The work in this paper introduces the hybrid system between PV and EV to support industrial and commercial plants. This paper covers the theoretical framework of the proposed hybrid system including the required equation to complete the cost analysis when PV and EV are present. In addition, the proposed design diagram which sets the priorities and requirements of the system is presented. The proposed approach allows setup to advance their power stability, especially during power outages. The presented information supports researchers and plant owners to complete the necessary analysis while promoting the deployment of clean energy. The result of a case study that represents a dairy milk farmer supports the theoretical works and highlights its advanced benefits to existing plants. The short return on investment of the proposed approach supports the paper's novelty approach for the sustainable electrical system. In addition, the proposed system allows for an isolated power setup without the need for a transmission line which enhances the safety of the electrical network
Design and optimization of ion propulsion dronebjmsejournal
Electric propulsion technology is widely used in many kinds of vehicles in recent years, and aircrafts are no exception. Technically, UAVs are electrically propelled but tend to produce a significant amount of noise and vibrations. Ion propulsion technology for drones is a potential solution to this problem. Ion propulsion technology is proven to be feasible in the earth’s atmosphere. The study presented in this article shows the design of EHD thrusters and power supply for ion propulsion drones along with performance optimization of high-voltage power supply for endurance in earth’s atmosphere.
Comparative analysis between traditional aquaponics and reconstructed aquapon...bijceesjournal
The aquaponic system of planting is a method that does not require soil usage. It is a method that only needs water, fish, lava rocks (a substitute for soil), and plants. Aquaponic systems are sustainable and environmentally friendly. Its use not only helps to plant in small spaces but also helps reduce artificial chemical use and minimizes excess water use, as aquaponics consumes 90% less water than soil-based gardening. The study applied a descriptive and experimental design to assess and compare conventional and reconstructed aquaponic methods for reproducing tomatoes. The researchers created an observation checklist to determine the significant factors of the study. The study aims to determine the significant difference between traditional aquaponics and reconstructed aquaponics systems propagating tomatoes in terms of height, weight, girth, and number of fruits. The reconstructed aquaponics system’s higher growth yield results in a much more nourished crop than the traditional aquaponics system. It is superior in its number of fruits, height, weight, and girth measurement. Moreover, the reconstructed aquaponics system is proven to eliminate all the hindrances present in the traditional aquaponics system, which are overcrowding of fish, algae growth, pest problems, contaminated water, and dead fish.
An improved modulation technique suitable for a three level flying capacitor ...IJECEIAES
This research paper introduces an innovative modulation technique for controlling a 3-level flying capacitor multilevel inverter (FCMLI), aiming to streamline the modulation process in contrast to conventional methods. The proposed
simplified modulation technique paves the way for more straightforward and
efficient control of multilevel inverters, enabling their widespread adoption and
integration into modern power electronic systems. Through the amalgamation of
sinusoidal pulse width modulation (SPWM) with a high-frequency square wave
pulse, this controlling technique attains energy equilibrium across the coupling
capacitor. The modulation scheme incorporates a simplified switching pattern
and a decreased count of voltage references, thereby simplifying the control
algorithm.
Software Engineering and Project Management - Introduction, Modeling Concepts...Prakhyath Rai
Introduction, Modeling Concepts and Class Modeling: What is Object orientation? What is OO development? OO Themes; Evidence for usefulness of OO development; OO modeling history. Modeling
as Design technique: Modeling, abstraction, The Three models. Class Modeling: Object and Class Concept, Link and associations concepts, Generalization and Inheritance, A sample class model, Navigation of class models, and UML diagrams
Building the Analysis Models: Requirement Analysis, Analysis Model Approaches, Data modeling Concepts, Object Oriented Analysis, Scenario-Based Modeling, Flow-Oriented Modeling, class Based Modeling, Creating a Behavioral Model.
Null Bangalore | Pentesters Approach to AWS IAMDivyanshu
#Abstract:
- Learn more about the real-world methods for auditing AWS IAM (Identity and Access Management) as a pentester. So let us proceed with a brief discussion of IAM as well as some typical misconfigurations and their potential exploits in order to reinforce the understanding of IAM security best practices.
- Gain actionable insights into AWS IAM policies and roles, using hands on approach.
#Prerequisites:
- Basic understanding of AWS services and architecture
- Familiarity with cloud security concepts
- Experience using the AWS Management Console or AWS CLI.
- For hands on lab create account on [killercoda.com](https://killercoda.com/cloudsecurity-scenario/)
# Scenario Covered:
- Basics of IAM in AWS
- Implementing IAM Policies with Least Privilege to Manage S3 Bucket
- Objective: Create an S3 bucket with least privilege IAM policy and validate access.
- Steps:
- Create S3 bucket.
- Attach least privilege policy to IAM user.
- Validate access.
- Exploiting IAM PassRole Misconfiguration
-Allows a user to pass a specific IAM role to an AWS service (ec2), typically used for service access delegation. Then exploit PassRole Misconfiguration granting unauthorized access to sensitive resources.
- Objective: Demonstrate how a PassRole misconfiguration can grant unauthorized access.
- Steps:
- Allow user to pass IAM role to EC2.
- Exploit misconfiguration for unauthorized access.
- Access sensitive resources.
- Exploiting IAM AssumeRole Misconfiguration with Overly Permissive Role
- An overly permissive IAM role configuration can lead to privilege escalation by creating a role with administrative privileges and allow a user to assume this role.
- Objective: Show how overly permissive IAM roles can lead to privilege escalation.
- Steps:
- Create role with administrative privileges.
- Allow user to assume the role.
- Perform administrative actions.
- Differentiation between PassRole vs AssumeRole
Try at [killercoda.com](https://killercoda.com/cloudsecurity-scenario/)
Applications of artificial Intelligence in Mechanical Engineering.pdfAtif Razi
Historically, mechanical engineering has relied heavily on human expertise and empirical methods to solve complex problems. With the introduction of computer-aided design (CAD) and finite element analysis (FEA), the field took its first steps towards digitization. These tools allowed engineers to simulate and analyze mechanical systems with greater accuracy and efficiency. However, the sheer volume of data generated by modern engineering systems and the increasing complexity of these systems have necessitated more advanced analytical tools, paving the way for AI.
AI offers the capability to process vast amounts of data, identify patterns, and make predictions with a level of speed and accuracy unattainable by traditional methods. This has profound implications for mechanical engineering, enabling more efficient design processes, predictive maintenance strategies, and optimized manufacturing operations. AI-driven tools can learn from historical data, adapt to new information, and continuously improve their performance, making them invaluable in tackling the multifaceted challenges of modern mechanical engineering.
Applications of artificial Intelligence in Mechanical Engineering.pdf
Scaling MongoDB with Docker and cgroups
1. Scaling MongoDB with Docker
and cgroups
Marco Bonezzi
TechnicalServicesEngineer,MongoDB
marco@mongodb.com
@marcobonezzi
2. #MDBW16
About the speaker
I am Marco Bonezzi, TSE at MongoDB
TSE = helping customers with a variety of issues
Based in Dublin, Ireland
Experience in distributed systems, high availability:
3. #MDBW16
How many of you have ever...
1. … manually deployed a MongoDB replica sets or sharded clusters?
2. ... had issues with resource allocation?
3. ... used Docker?
4. … used MongoDB running on Docker?
4. #MDBW16
We know how it feels…
Different
architectures in
Development and
Production
Co-located
MongoDB
processes
Production !=
docker run
mongodb
6. #MDBW16
How to solve this?
Deployment
Using predefined cluster patterns
Replicating environments
Resource Control
Setting limits to key resources
MongoDB & Docker
Create once, deploy everywhere
Deploy patterns, not processes
Orchestration
Resource
Management
Automate for
scaling
7. #MDBW16
About this talk
Patterns for successful deployments
Difference between success and failure
Orchestrating MongoDB with Docker
MongoDB cluster on AWS with containers
Patterns with Swarm and Compose
Managing container resources with cgroups
Benefits of cgroups in a MongoDB cluster
P
S
S
8. #MDBW16
Redundancy and fault tolerance
Deploy an odd number of voting members
Members ó Majority required ó Fault tolerance
High availability and resource colocation
Single member of a replica set / server
Shards as Replica Set
Ideally: primary / secondary / secondary
Deployment patterns: Replica Set and Sharded Clusters
Server 3Server 2Server 1
mongos
Primary
Primary
RS1
SecondarySecondary
Secondary
RS2
Secondary
RS3
Secondary
RS1
Primary
RS2
Secondary
RS3
Secondary
RS1
Secondary
RS2
Primary
RS3
mongos mongos
cfgsvr1 cfgsvr2 cfgsvr3
9. #MDBW16
Docker
• Noun: a person employed in a port to load and unload ships (from “what
is docker” on Google)
Containers:
Isolated process in userspace
Application + dependencies
Shared kernel and libraries
Can run on any infrastructure (or
cloud)
www.docker.com
10. #MDBW16
44%
of orgs adopting
microservices
Why use Docker?
41%
want application
portability
13x
improvement in
release frequency
62%
MTTR on software
issues
60%
Using Docker to
migrate to cloud
Reason to run containers:
SPEED
Microservices
architectures
Efficiency Cloud
(The Docker Survey, 2016)
12. #MDBW16
Orchestrating MongoDB with Docker
How can we use Docker for MongoDB deployments?
How can we deploy these patterns using Docker containers?
Why should we use Docker?
Our recipe:
13. #MDBW16
Docker ecosystem
Provisioning and managing your Dockerized hosts
Native clustering: turns a pool of Docker hosts into a single, virtual
Docker host.
Define a multi-container application with all of its dependencies in
a single file
S
14. #MDBW16
Why Docker Swarm?
5x faster than
Kubernetes to spin up
a new container
7x faster than
Kubernetes to list all
running containers
Evaluating Container Platforms at
Scale
1000 EC2 instances in a cluster
What is their performance at scale?
Can they operate at scale?
What does it take to support them at scale?
https://medium.com/on-docker/evaluating-container-platforms-at-scale-5e7b44d93f2c#.k2fxds8c2
hGps://www.docker.com/survey-2016
16. #MDBW16
Swarm filters to build our patterns
Constraint filters
Mark each mongod container with a label:
“role=mongod”
“replset=rs1”
17. #MDBW16
Affinity filters
Prevent multiple RS members on the same host:
"affinity:replset!=rs1”
swarm-node-1 swarm-node-3swarm-node-2
Affinity filters for container distribution
18. #MDBW16
Road to container success
Deploying containers to the right node is not enough…
Next step: Resource control on each swarm cluster node using cgroups
Maritime New Zealand
19. #MDBW16
Resource control with cgroups and Docker
Simple parameters to add to docker run or compose:
--cpu-shares
--cpuset-cpus
--memory
--blkio-weight
--net
20. #MDBW16
MongoDB Memory usage in 3.2
with WiredTiger
MongoDB Memory:
mongod process: connections, aggregations, mapReduce, etc
WiredTiger cache: (0.6 x total memory) – 1 GB
Total = mem(mongod) + mem(WiredTiger cache)
WiredTiger cache
mongod
mongod memory
21. #MDBW16
cgroup!
memory_limit!
Process memory with containers and cgroups
WiredTiger cache
mongod
mongod memory
total memory (seen from mongod process)!
Inside the container
• Can see total memory and not
memory limit
WiredTiger cache:
• memory_limit *0.6
25. #MDBW16
Understanding resource usage:
• docker top rs1a!
• docker stats rs1a!
Container stats available via Docker remote API:
GET /containers/(id)/stats
Also available from docker-py:
http://docker-py.readthedocs.org/en/latest/api/#stats
Resource usage with Docker
26. #MDBW16
Resource usage with Docker
Multiple statistics for each container:
Memory limit and usage, CPU (per core level), Network, Disk
Useful to combine with MongoDB metrics (like db.serverStatus())
28. #MDBW16
Creating a Swarm cluster on AWS to deploy MongoDB
DEMO!
Configure docker-machine
with ec2 driver (AWS)
Deploy discovery service
for Swarm Master
Deploy AWS instances for:
• Swarm master
• Swarm worker nodes
Connect to the Swarm
master
Define compose file for
deployment
Define Swarm filters and
constraints and cgroup
limits
Deploy the environment
with a single command
using the compose file
Configure our MongoDB
sharded cluster using
Cloud Manager API
31. #MDBW16
Advantages of using MongoDB with Docker
Speed: testing and deploying cluster patterns easily
Build once, deploy everywhere
Control: Resource control and utilization
Key to success with containers
Agility: Microservices architectures
Making change less expensive
Flexibility: Multi vendor cloud opportunities
AWS, Azure, Google, IBM, CloudFoundry
P
S
S
32. #MDBW16
How successful customers use MongoDB with Docker
• Case Studies @ hGps://www.mongodb.com/blog
• Whitepaper:
“Enabling Microservices – Containers & Orchestration Explained”
https://www.mongodb.com/collateral/microservices-containers-and-orchestration-explained
33. #MDBW16
Now it’s YOUR turn
Share with us your use case of MongoDB & Docker:
http://bit.do/DockerMongoDB
@marcobonezzi
You can actually try this at home:
https://github.com/sisteming/mongo-swarm