A high level overview of MeteorJS, Amazon Web Services, and how to scale MeteorJS on Amazon's cloud to handle tends of thousands of concurrent websocket connections.
This session covers new improvements that will be introduced in WildFly 9:
• Wildfly-core will be extracted from the codebase and the ability to assemble a server on top of it will be introduced. WildFly 9 will be provided in two versions: Wildfly Web and Wildfly Full but users will be able to create their custom packaging of WildFly.
• Users will be able to shutdown the application server in a graceful manner - after the shutdown command is executed server will reject new requests and allow existing requests to finish before it shuts down.
• Support for HTTP/2, a new version of HTTP protocol based on SPDY, will be introduced.
• Users will be able to use WildFly as a load balancer. Consequently, it will be possible to manage the balancer with the same tools that are used to manage the rest of the domain. What is more, users will be able to use more efficient protocols, such as HTTP/2, for communication between the balancer and backend servers.
• An OpenShift cartridge, which will enable users to use WildFly 9 in cloud environment, will be provided.
• WildFly 9 will use OpenJDK ORB library instead of JacORB.
This session covers new improvements that will be introduced in WildFly 9:
• Wildfly-core will be extracted from the codebase and the ability to assemble a server on top of it will be introduced. WildFly 9 will be provided in two versions: Wildfly Web and Wildfly Full but users will be able to create their custom packaging of WildFly.
• Users will be able to shutdown the application server in a graceful manner - after the shutdown command is executed server will reject new requests and allow existing requests to finish before it shuts down.
• Support for HTTP/2, a new version of HTTP protocol based on SPDY, will be introduced.
• Users will be able to use WildFly as a load balancer. Consequently, it will be possible to manage the balancer with the same tools that are used to manage the rest of the domain. What is more, users will be able to use more efficient protocols, such as HTTP/2, for communication between the balancer and backend servers.
• An OpenShift cartridge, which will enable users to use WildFly 9 in cloud environment, will be provided.
• WildFly 9 will use OpenJDK ORB library instead of JacORB.
Taking a look at different cloud providers and how easy it is to deploy a basic Grails application to them. Created for the http://sfgrails.com meetup Feb 2011.
Coordinating Micro-Services with Spring Cloud ContractOmri Spector
Spring Cloud Contract is an integration testing framework that promotes TDD for micro-services and allows "Consumer Driven Contracts". Delivered at Jammin' Java 2017, this presentation is accompanied with source code on GitHub
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)Mirantis
Mirantis, the Global Engineering Services leader for OpenStack™ presents 2-day Bootcamp for OpenStack
www.mirantis.com/training
This two-day intensive course provides hands-on technical training for OpenStack aimed at system administrators and IT professionals looking to get started on an OpenStack Cloud deployment. Each of the two days will consist of lecture, demos and group exercises. Topics include:
• OpenStack Overview & Architecture: Project goals and use cases, basic operating and deployment principles
• Cloud Usage Patterns: OpenStack codebase overview; creating networks, tenants, roles, troubleshooting; Nexenta Volume Driver
• In Production: Deploying OpenStack for real-world use, and practice of OpenStack operation on multiple nodes
• Swift Object Storage: use cases, architecture, capabilities, configuration, security and deployment
• Advanced Topics: Software Defined Networking, deployment and issues workshop, VMWare/OpenStack comparison
PRE-REQUISITES: Comfortable with Linux CLI, understanding of virtualization & hypervisors, Some experience with Linux networking
All course materials will be provided by Mirantis, including access to shared compute resources for labs. A light breakfast and lunch will be available to all course participants.
Mirantis instructors are active code committers to the OpenStack project, with proven experience building OpenStack clouds in the real world. In parallel to delivering expert training, they also consult for some of the notable global companies using OpenStack – including Cisco, NASA, Dell and Internap.
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014Amazon Web Services
If you have tried Docker but are unsure about how to run it at scale, you will benefit from this session. Like virtualization before, containerization (à; la Docker) is increasing the elastic nature of cloud infrastructure by an order of magnitude. But maybe you still have questions: How many containers can you run on a given Amazon EC2 instance type? Which metric should you look at to measure contention? How do you manage fleets of containers at scale?
Datadog is a monitoring service for IT, operations, and development teams who write and run applications at scale. In this session, the cofounder of Datadog presents the challenges and benefits of running containers at scale and how to use quantitative performance patterns to monitor your infrastructure at this magnitude and complexity. Sponsored by Datadog.
In this workshop, we’ll interactively demonstrate lightweight threat modeling techniques to elicit and qualify risks against a typical CDN-fronted web application. We’ll then perform attacks against an example web application and demonstrate how the Fastly edge cloud can mitigate security risks.
DCSF19 Container Security: Theory & Practice at NetflixDocker, Inc.
Michael Wardrop, Netflix
Usage of containers has undergone rapid growth at Netflix and it is still accelerating. Our container story started organically with developers downloading Docker and using it to improve their developer experience. The first production workloads were simple batch jobs, pioneering micro-services followed, then status as a first class platform running critical workloads.
As the types of workloads changed and their importance increased, the security of our container ecosystem needed to evolve and adapt. This session will cover some security theory, architecture, along with practical considerations, and lessons we learnt along the way.
Taking a look at different cloud providers and how easy it is to deploy a basic Grails application to them. Created for the http://sfgrails.com meetup Feb 2011.
Coordinating Micro-Services with Spring Cloud ContractOmri Spector
Spring Cloud Contract is an integration testing framework that promotes TDD for micro-services and allows "Consumer Driven Contracts". Delivered at Jammin' Java 2017, this presentation is accompanied with source code on GitHub
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)Mirantis
Mirantis, the Global Engineering Services leader for OpenStack™ presents 2-day Bootcamp for OpenStack
www.mirantis.com/training
This two-day intensive course provides hands-on technical training for OpenStack aimed at system administrators and IT professionals looking to get started on an OpenStack Cloud deployment. Each of the two days will consist of lecture, demos and group exercises. Topics include:
• OpenStack Overview & Architecture: Project goals and use cases, basic operating and deployment principles
• Cloud Usage Patterns: OpenStack codebase overview; creating networks, tenants, roles, troubleshooting; Nexenta Volume Driver
• In Production: Deploying OpenStack for real-world use, and practice of OpenStack operation on multiple nodes
• Swift Object Storage: use cases, architecture, capabilities, configuration, security and deployment
• Advanced Topics: Software Defined Networking, deployment and issues workshop, VMWare/OpenStack comparison
PRE-REQUISITES: Comfortable with Linux CLI, understanding of virtualization & hypervisors, Some experience with Linux networking
All course materials will be provided by Mirantis, including access to shared compute resources for labs. A light breakfast and lunch will be available to all course participants.
Mirantis instructors are active code committers to the OpenStack project, with proven experience building OpenStack clouds in the real world. In parallel to delivering expert training, they also consult for some of the notable global companies using OpenStack – including Cisco, NASA, Dell and Internap.
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014Amazon Web Services
If you have tried Docker but are unsure about how to run it at scale, you will benefit from this session. Like virtualization before, containerization (à; la Docker) is increasing the elastic nature of cloud infrastructure by an order of magnitude. But maybe you still have questions: How many containers can you run on a given Amazon EC2 instance type? Which metric should you look at to measure contention? How do you manage fleets of containers at scale?
Datadog is a monitoring service for IT, operations, and development teams who write and run applications at scale. In this session, the cofounder of Datadog presents the challenges and benefits of running containers at scale and how to use quantitative performance patterns to monitor your infrastructure at this magnitude and complexity. Sponsored by Datadog.
In this workshop, we’ll interactively demonstrate lightweight threat modeling techniques to elicit and qualify risks against a typical CDN-fronted web application. We’ll then perform attacks against an example web application and demonstrate how the Fastly edge cloud can mitigate security risks.
DCSF19 Container Security: Theory & Practice at NetflixDocker, Inc.
Michael Wardrop, Netflix
Usage of containers has undergone rapid growth at Netflix and it is still accelerating. Our container story started organically with developers downloading Docker and using it to improve their developer experience. The first production workloads were simple batch jobs, pioneering micro-services followed, then status as a first class platform running critical workloads.
As the types of workloads changed and their importance increased, the security of our container ecosystem needed to evolve and adapt. This session will cover some security theory, architecture, along with practical considerations, and lessons we learnt along the way.
This a general purpose deck that works for both beginners and experienced groups who are new to Meteor. It's also useful for a first Meteor meetup or to onboard new members to a Meteor meetup. In concert with a demo, it demonstrates many of Meteor's key features. See http://speakerkit.meteor.com/ for links to code, video, and other aids for preparing a Meteor talk. Revision 1.0
Build Your Own SaaS using Docker. A proof of concept with a simple Memcached SaaS.
See the Memcached as a service application in action at http://www.memcachedasaservice.com
Find the source code on GitHub: https://github.com/jbarbier/SaaS_Memcached
Nuts and bolts of running a popular site in the aws cloudDavid Veksler
I will share how we develop and host a popular publishing platform in the cloud with a limited budget and technology team.
We'll cover architecture, including a variety of services at Amazon Web Services such as elastic load balancing, S3, Elastic Beanstalk, and RDS in the context of a real site.
We'll cover how we control costs with Spot and burstable instances and scale up with distributed caching.
Finally we'll discuss continuous deployment strategies for Windows and Linux-based cloud applications in the context of a distributed team using an agile process.
This talk will cover lessons learned at Community Engine regarding MongoDB, including: why we moved away from an Hybrid solution using SQL and MongoDB; an outline of the technologies and what we learned using MongoDB on Amazon Web Services; the MongoDB C# driver; MongoDB with SOLR for Full Text Search; how we do migration, deployment and more.
This talk wants to sum up the experience of designing, deploying and maintaining an Erlang application targeting the cloud and precisely AWS as hosting infrastructure.
As the application now serves a significantly large user base with a sustained throughput of thousands of games actions per second we're able to analyse retrospectively our engineering and architectural choices and see how Erlang fits in the cloud environment also comparing it to previous experiences of clouds deployments of other platforms.
We'll discuss properties of Erlang as a language and OTP as a framework and how we used them to design a system that is a good cloud citizen. We'll also discuss topics that are still open for a solution.
In the session we reviewed what is micro-service and how to host and deploy them on AWS using Docker. Also we learned why we did not user AWS Lambda (serverless)
In an increasingly competitive marketplace, speed and business agility are paramount. And integration between customer-facing systems and back-end applications is more crucial than ever.
At this event, you'll learn how open source software built by communities, like Apache Camel, Docker, Kubernetes, OpenShift Origin, and Fabric8, can help organizations integrate services and establish effective continuous integration and delivery (CI/CD) pipelines.
Cloud providers like Amazon or Goggle have great user experience to create and manage PaaS and IaaS services. But is it possible to reproduce same experience and flexibility locally, in on premise datacenter? This talk describes success story of creation private cloud based on DC/OS cluster. It is used to host and share different services like hadoop or kafka for development teams, dynamically manage services and resource pools with GKE integration.
Data Lake and the rise of the microservicesBigstep
By simply looking at structured and unstructured data, Data Lakes enable companies to understand correlations between existing and new external data - such as social media - in ways traditional Business Intelligence tools cannot.
For this you need to find out the most efficient way to store and access structured or unstructured petabyte-sized data across your entire infrastructure.
In this meetup we’ll give answers on the next questions:
1. Why would someone use a Data Lake?
2. Is it hard to build a Data Lake?
3. What are the main features that a Data Lake should bring in?
4. What’s the role of the microservices in the big data world?
Similar to Scaling a MeteorJS SaaS app on AWS (20)
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
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/
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
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.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
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.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
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.
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.
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."
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
A Sighting of filterA in Typelevel Rite of Passage
Scaling a MeteorJS SaaS app on AWS
1. Scaling a MeteorJS SaaS app on
AWS
Brett McLain
Application Systems Architect
PotashCorp
2. Agenda
• Overview of my application.
• Overview of MeteorJS (architecture,
deployment tools, clustering).
• Overview of Amazon (EC2, ELB, EBS, Route 53,
Auto Scaling).
• My journey of trying to scale MeteorJS on
Amazon Web Services.
3. What should you get out of this talk?
• A better understanding of MeteorJS.
• A better understanding of Amazon Web
Services.
• How to deploy, cluster, and scale a MeteorJS
web app.
4. Application Overview
• SaaS application that uses Twilio to send SMS
and phone calls to devices that connect to the
cell phone network.
• MeteorJS (runs on Node.js)
• MongoDB
• Flot Charts
• Twitter Bootstrap
• Blah blah blah.
5. What is MeteorJS?
• "Meteor is a full-stack JavaScript platform for
developing modern web and mobile applications.“
• Out of the box tight integration with MongoDB + full
data reactivity.
• Install MeteorJS and have an app written in minutes
with well established and easily understood patterns.
• Hot code push.
• Full data reactivity.
• Easily build for Android and iPhone (hot code push).
6. Meteor Architecture
• Production deployments are NodeJS applications.
• Meteor has it’s own package manager called
isobuild. Extremely similar to NPM.
• Meteor can also use NPM packages now on the
client or server (as of version 1.3).
• Supports ECMAScript 6 (ES 2015).
• Meteor Up (mup) - Meteor deployment plugin.
• Meteor Cluster - Meteor clustering plugin.
8. Meteor Deployments
• I use Meteor Up (mup) for deployments.
• Single command to build and deploy code to an
unlimited number of servers in a rolling fashion.
• Installs all necessary software automatically
(NodeJS, npm, MeteorJS, docker, nginx, mongo).
• Setups up an nginx reverse proxy in front of a
docker instance for meteor and a docker instance
for mongo.
• 10 seconds of downtime per instance!
9.
10. Meteor Cluster
• Provides clustering capability within Meteor JS
apps.
• Meteor Cluster is a regular meteor package.
• Turns each meteor server into a load balancer
or a DDP instance (backend server).New
nodes register with MongoDB backend and
are auto-discovered. Traffic begins routing to
them immediately.
14. Meteor Clustering
• Load balancer servers are pointed to by DNS
records.
• Once the client connects to a load balancer
server, it *might* receive the address of a DDP
server to share out the load.
• Supports clustering of microservices too!
15. So…now what?
• Meteor has some great deployment and
clustering tools, but how do we deploy it in a
scalable way?We need to pick a host that fits
well with our deployment tools and utilize the
clustering capabilities of Meteor.
17. Where to start?
• Originally hosted everything (prod, dev,
mongo, reverse proxy) on a single Virtual
Private Server (VPS).
• I have past experience with Amazon, it’s well
documented, tons of tools.
• Google *appears* pricier, less tools.
• Digital Ocean…?
18. So what does Amazon offer?
• EC2 (Elastic Compute Cloud)
• Elastic Bean Stalk
• Elastic Load Balancers
• Route 53 (DNS)
• OpsWorks
• CloudFormation
• Elastic Block Store
• The list goes on!
19.
20. Elastic Compute Cloud (EC2)
• On demand infrastructure.
• Amazon Machine Image (AMI) of many popular
operating systems, platforms, community images,
etc.
• Reserved Instances - t2.micro = $0.006/hour - 3
year contract. Relatively cheap.
• Spot instances (bid for unused servers @ 80% of
cost).
• Can apply auto-scaling groups.
• Fairly basic...let's see what else Amazon has!
21. EC2 Availability Zones + Regions
• 11 Regions (i.e. US
East)
• 33 Availability
Zones
• us-east-1a
• us-east-1b, etc are
availability zones
while US East (N.
Virginia), US West
(Oregon), Asia
Pacific (Tokyo)
23. Elastic Beanstalk
• Elastic Beanstalk is a Platform as a Service
(PaaS) that handles the complexities of your
underlying infrastructure.
• Manages load balancing (via ELBs), instance
scaling, instance health monitoring, and
deployments.
• Supports Docker, Go, Java, .NET, Node, PHP,
Python, Ruby.
24. Let's see how this goes...
• Elastic Beanstalk seemed like a great solution.
Handles scaling and load balancing (with ELB).
• Ran into problems very quickly...
• MeteorJS settings are a JSON file exported as an
environment variable. Beanstalk strips
environment variables of a number of special
characters!
• Quickly realized that it is not possible to do
websockets, sticky sessions, and HTTPS with
Elastic Load Balancers.
25. How about OpsWorks?
• OpsWorks is a configuration management
service that helps you configure and operate
applications of all shapes and sizes using Chef.
• You can define the application’s architecture
and the specification of each component
including package installation, software
configuration and resources such as storage.
26.
27.
28.
29.
30. Nope!
• Stood up a MongoDB cluster and two separate
Meteor clusters.
• Autoscaling and application stack health-checks
are nice!
• Didn't bother using Chef as I have my own
deployment tools.
• Ran into problems very quickly...
• "running_setup" never ended. Servers would
hang. No support from Amazon!
31. Ok, uh, what else is left?
CloudFormation?
• CloudFormation allows you to define
infrastructure and services as a configuration
template.
• Provision servers, storage, networks, NATs,
relationships, run scripts, etc. all from a JSON
config.
• Rapid deployment of an entire stack,
extremely powerful and complicated.
32.
33.
34. CloudFormation
• I used the MongoDB CloudFormation
template provided by Amazon (only on github,
not via the CloudFormation interface).
• Over time I abandoned it as the scripts they
used for deployment contained a race
condition that would cause deployment to fail
about 50% of the time.
• For my purposes, this was overkill.
35. So, EC2 then?
• Setup 3 layers: (1) Load Balancers, (1) DDP
Servers, (3) Mongo Replica Sets (no shards).
• Created 5 DNS records for the load balancers to
do round robin DNS.
• Used Route 53 latency weighted routing to
failover load balancers that are offline to load
balancers that are online.
• 2 auto scaling groups, one for load balancers, one
for DDP servers.
• Lets Encrypt for SSL/TLS.
36. Route 53
• Route 53 is a highly available and scalable
DNS.Routing policies are:
– Simple Routing
– Weighted Routing
– Latency Routing
– Failover Routing
37. Down the rabbit hole…
• Auto scaling occurs when average CPU > 70%
for 2 minutes.
• When auto scaling occurs in either auto
scaling group, it creates a new instance using
the same image.
• That image runs a script on boot...
38. do_all_the_things.sh
• Step 1: git pull to get latest code.
• Step 2: Determine if an elastic IP address is
already assigned (if not, then this is a fresh
instance).
• Step 3a: If fresh instance, and DDP server, use
auto-assigned public IP.
• Step 3b: If fresh instance, and load balancer,
check to see which DNS elastic IP's are unused
and assign one.Deploy to self (build code and
deploy to localhost).
• Step 4: Done!
39.
40.
41.
42. Testing Methodology
• Used MeteorDown for load testing. It connects to
an endpoint, opens up a DDP connect and
completes some action (in this case a 200kb
document transfer) before closing the
connection.
• Scale up connections incrementally and monitor
when and how fast instances are created.
• Determine total capability of 5 load balancers and
10 DDP servers (each instance is t2.micro, 1
vCPU, 512mb ram).
43. Testing Results
• First auto scaling event: provisioning of
instance, boot, git pull, build, and deploy is 2
minutes 30 seconds.
• Second+ auto scaling event: 1 minute 10
seconds.
• Concurrent subscriptions achieved: 38,000
• Maximum subscriptions per instance is
reduced by approximately 1% per added
instance.
44. What I learned…
• Meteor has very powerful tools out of the box,
however these tools do not lend themselves well
to solutions such as Elastic Beanstalk or Google
App Engine.
• DNS is a finicky mistress.
• Scaling load balancers is hard; scaling a web app
using sticky websockets is even harder!
• Diving in head first has some serious drawbacks -
it's difficult to navigate this space without
someone to guide you.
45. What did I end up with?
• One line command to do rolling deployments to all my
servers.
• 10 second downtime when deploying.
• Highly available (across AZ's), scalable architecture
(auto-scaling + MongoDB sharding/replicas).
• 38,000 concurrent connections constantly re-
establishing websockets and sending data.
• Great support for microservices.
• Reactive data and UI, hot code push, mobile
deployment.
46. What was the point of this?
• Hopefully you understand that it IS possible to
scale MeteorJS applications, and that it isn't
that hard (I just made it hard for myself).
• High level understanding of a few of Amazon's
infrastructure and deployment services.