Alternatives to Unicorn logo

Alternatives to Unicorn

Puma, Unicorns, NGINX, Apache HTTP Server, and Amazon EC2 are the most popular alternatives and competitors to Unicorn.
494
295

What is Unicorn and what are its top alternatives?

Unicorn is a popular web server software known for its simplicity and speed. Its key features include easy configuration, support for common server configurations, and efficient handling of static files. However, Unicorn may lack advanced features like load balancing and clustering, which can be a limitation for larger applications.

  1. Puma: Puma is a multi-threaded web server that boasts high performance and concurrency. It is easy to configure and offers advanced features like process management and hot restarts. However, Puma may require more resources compared to Unicorn.
  2. Passenger: Passenger is a versatile web server that supports both Ruby and Node.js applications. It offers easy deployment and management tools, as well as load balancing capabilities. However, Passenger may have a steeper learning curve compared to Unicorn.
  3. Thin: Thin is a lightweight web server that focuses on simplicity and speed. It is easy to set up and can be used with a variety of Ruby frameworks. However, Thin may not have as many features as Unicorn.
  4. TorqueBox: TorqueBox is a Ruby application server that offers advanced features like messaging and scheduling capabilities. It provides robust support for Ruby applications and integrates well with popular frameworks. However, TorqueBox may be more complex to set up compared to Unicorn.
  5. Rainbows!: Rainbows! is a Ruby web server that aims to maximize performance and support for different concurrency models. It offers advanced features like automatic process management and load balancing. However, Rainbows! may have a higher memory footprint compared to Unicorn.
  6. Webrick: Webrick is a Ruby-based web server that comes bundled with Ruby installations. It is simple to use and is well-suited for development and testing purposes. However, Webrick may not be as performant as Unicorn for production environments.
  7. Trinidad: Trinidad is a JRuby application server that offers seamless integration with Ruby on Rails applications. It provides advanced features like clustering and hot deployment. However, Trinidad may require more memory compared to Unicorn.
  8. Mongrel: Mongrel is a fast and robust Ruby web server that focuses on performance and stability. It offers features like support for multiple virtual hosts and SSL integration. However, Mongrel may not be as actively maintained as Unicorn.
  9. Goliath: Goliath is a non-blocking Ruby web server framework that is built on top of EventMachine. It is well-suited for high-performance web applications and provides support for streaming responses. However, Goliath may have a steeper learning curve compared to Unicorn.
  10. Jetty: Jetty is a Java-based web server that offers high performance and scalability. It is well-suited for serving dynamic content and supports a wide range of Java technologies. However, Jetty may have a higher resource overhead compared to Unicorn.

Top Alternatives to Unicorn

  • Puma
    Puma

    Unlike other Ruby Webservers, Puma was built for speed and parallelism. Puma is a small library that provides a very fast and concurrent HTTP 1.1 server for Ruby web applications. ...

  • Unicorns
    Unicorns

    Live stream your iPhone or iPad screen. Produced by Lookback.

  • NGINX
    NGINX

    nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. According to Netcraft nginx served or proxied 30.46% of the top million busiest sites in Jan 2018. ...

  • Apache HTTP Server
    Apache HTTP Server

    The Apache HTTP Server is a powerful and flexible HTTP/1.1 compliant web server. Originally designed as a replacement for the NCSA HTTP Server, it has grown to be the most popular web server on the Internet. ...

  • Amazon EC2
    Amazon EC2

    It is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers. ...

  • Firebase
    Firebase

    Firebase is a cloud service designed to power real-time, collaborative applications. Simply add the Firebase library to your application to gain access to a shared data structure; any changes you make to that data are automatically synchronized with the Firebase cloud and with other clients within milliseconds. ...

  • Amazon Web Services (AWS)
    Amazon Web Services (AWS)

    It is a comprehensive and broadly adopted cloud platform, offering over 200 fully featured services from data centers globally. ...

  • Heroku
    Heroku

    Heroku is a cloud application platform – a new way of building and deploying web apps. Heroku lets app developers spend 100% of their time on their application code, not managing servers, deployment, ongoing operations, or scaling. ...

Unicorn alternatives & related posts

Puma logo

Puma

839
263
20
A Modern, Concurrent Web Server for Ruby
839
263
+ 1
20
PROS OF PUMA
  • 4
    Free
  • 3
    Convenient
  • 3
    Easy
  • 2
    Multithreaded
  • 2
    Consumes less memory than Unicorn
  • 2
    Default Rails server
  • 2
    First-class support for WebSockets
  • 1
    Lightweight
  • 1
    Fast
CONS OF PUMA
  • 0
    Uses `select` (limited client count)

related Puma posts

Jerome Dalbert
Principal Backend Software Engineer at StackShare · | 6 upvotes · 167.9K views
Shared insights
on
UnicornUnicornPumaPumaRailsRails
at

We switched from Unicorn (process model) to Puma (threaded model) to decrease the memory footprint of our Rails production web server. Memory indeed dropped from 6GB to only 1GB!

We just had to decrease our worker count and increase our thread count instead. Performance (response time and throughput) remained the same, if not slightly better. We had no thread-safety errors, which was good.

Free bonus points are:

  • Requests are blazing fast on our dev and staging environments!
  • Puma has first-class support for WebSockets, so we know for sure that Rails ActionCable or GraphQL subscriptions will work great.
  • Being on Puma makes us even more "default Rails"-compliant since it is the default Rails web server these days.
See more
Mark Ndungu
Software Developer at Nouveta · | 4 upvotes · 30.9K views
Shared insights
on
UnicornUnicornPumaPumaRubyRubyRailsRails

I have an integration service that pulls data from third party systems saves it and returns it to the user of the service. We can pull large data sets with the service and response JSON can go up to 5MB with gzip compression. I currently use Rails 6 and Ruby 2.7.2 and Puma web server. Slow clients tend to prevent other users from accessing the system. Am considering a switch to Unicorn.

See more
Unicorns logo

Unicorns

2
8
0
Live stream your iPhone screen
2
8
+ 1
0
PROS OF UNICORNS
    Be the first to leave a pro
    CONS OF UNICORNS
      Be the first to leave a con

      related Unicorns posts

      NGINX logo

      NGINX

      113.3K
      60.9K
      5.5K
      A high performance free open source web server powering busiest sites on the Internet.
      113.3K
      60.9K
      + 1
      5.5K
      PROS OF NGINX
      • 1.4K
        High-performance http server
      • 894
        Performance
      • 730
        Easy to configure
      • 607
        Open source
      • 530
        Load balancer
      • 289
        Free
      • 288
        Scalability
      • 226
        Web server
      • 175
        Simplicity
      • 136
        Easy setup
      • 30
        Content caching
      • 21
        Web Accelerator
      • 15
        Capability
      • 14
        Fast
      • 12
        High-latency
      • 12
        Predictability
      • 8
        Reverse Proxy
      • 7
        The best of them
      • 7
        Supports http/2
      • 5
        Great Community
      • 5
        Lots of Modules
      • 5
        Enterprise version
      • 4
        High perfomance proxy server
      • 3
        Embedded Lua scripting
      • 3
        Streaming media delivery
      • 3
        Streaming media
      • 3
        Reversy Proxy
      • 2
        Blash
      • 2
        GRPC-Web
      • 2
        Lightweight
      • 2
        Fast and easy to set up
      • 2
        Slim
      • 2
        saltstack
      • 1
        Virtual hosting
      • 1
        Narrow focus. Easy to configure. Fast
      • 1
        Along with Redis Cache its the Most superior
      • 1
        Ingress controller
      CONS OF NGINX
      • 10
        Advanced features require subscription

      related NGINX posts

      Simon Reymann
      Senior Fullstack Developer at QUANTUSflow Software GmbH · | 30 upvotes · 11M views

      Our whole DevOps stack consists of the following tools:

      • GitHub (incl. GitHub Pages/Markdown for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
      • Respectively Git as revision control system
      • SourceTree as Git GUI
      • Visual Studio Code as IDE
      • CircleCI for continuous integration (automatize development process)
      • Prettier / TSLint / ESLint as code linter
      • SonarQube as quality gate
      • Docker as container management (incl. Docker Compose for multi-container application management)
      • VirtualBox for operating system simulation tests
      • Kubernetes as cluster management for docker containers
      • Heroku for deploying in test environments
      • nginx as web server (preferably used as facade server in production environment)
      • SSLMate (using OpenSSL) for certificate management
      • Amazon EC2 (incl. Amazon S3) for deploying in stage (production-like) and production environments
      • PostgreSQL as preferred database system
      • Redis as preferred in-memory database/store (great for caching)

      The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:

      • Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
      • Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
      • Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
      • Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
      • Scalability: All-in-one framework for distributed systems.
      • Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
      See more
      John-Daniel Trask
      Co-founder & CEO at Raygun · | 19 upvotes · 283.5K views

      We chose AWS because, at the time, it was really the only cloud provider to choose from.

      We tend to use their basic building blocks (EC2, ELB, Amazon S3, Amazon RDS) rather than vendor specific components like databases and queuing. We deliberately decided to do this to ensure we could provide multi-cloud support or potentially move to another cloud provider if the offering was better for our customers.

      We’ve utilized c3.large nodes for both the Node.js deployment and then for the .NET Core deployment. Both sit as backends behind an nginx instance and are managed using scaling groups in Amazon EC2 sitting behind a standard AWS Elastic Load Balancing (ELB).

      While we’re satisfied with AWS, we do review our decision each year and have looked at Azure and Google Cloud offerings.

      #CloudHosting #WebServers #CloudStorage #LoadBalancerReverseProxy

      See more
      Apache HTTP Server logo

      Apache HTTP Server

      64.4K
      22.5K
      1.4K
      Open-source HTTP server for modern operating systems including UNIX and Windows
      64.4K
      22.5K
      + 1
      1.4K
      PROS OF APACHE HTTP SERVER
      • 479
        Web server
      • 305
        Most widely-used web server
      • 217
        Virtual hosting
      • 148
        Fast
      • 138
        Ssl support
      • 44
        Since 1996
      • 28
        Asynchronous
      • 5
        Robust
      • 4
        Proven over many years
      • 2
        Mature
      • 2
        Perfomance
      • 1
        Perfect Support
      • 0
        Many available modules
      • 0
        Many available modules
      CONS OF APACHE HTTP SERVER
      • 4
        Hard to set up

      related Apache HTTP Server posts

      Nick Rockwell
      SVP, Engineering at Fastly · | 46 upvotes · 4.1M views

      When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

      So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

      React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

      Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

      See more
      Tim Abbott
      Shared insights
      on
      NGINXNGINXApache HTTP ServerApache HTTP Server
      at

      We've been happy with nginx as part of our stack. As an open source web application that folks install on-premise, the configuration system for the webserver is pretty important to us. I have a few complaints (e.g. the configuration syntax for conditionals is a pain), but overall we've found it pretty easy to build a configurable set of options (see link) for how to run Zulip on nginx, both directly and with a remote reverse proxy in front of it, with a minimum of code duplication.

      Certainly I've been a lot happier with it than I was working with Apache HTTP Server in past projects.

      See more
      Amazon EC2 logo

      Amazon EC2

      48.2K
      35.6K
      2.5K
      Scalable, pay-as-you-go compute capacity in the cloud
      48.2K
      35.6K
      + 1
      2.5K
      PROS OF AMAZON EC2
      • 647
        Quick and reliable cloud servers
      • 515
        Scalability
      • 393
        Easy management
      • 277
        Low cost
      • 271
        Auto-scaling
      • 89
        Market leader
      • 80
        Backed by amazon
      • 79
        Reliable
      • 67
        Free tier
      • 58
        Easy management, scalability
      • 13
        Flexible
      • 10
        Easy to Start
      • 9
        Widely used
      • 9
        Web-scale
      • 9
        Elastic
      • 7
        Node.js API
      • 5
        Industry Standard
      • 4
        Lots of configuration options
      • 2
        GPU instances
      • 1
        Simpler to understand and learn
      • 1
        Extremely simple to use
      • 1
        Amazing for individuals
      • 1
        All the Open Source CLI tools you could want.
      CONS OF AMAZON EC2
      • 13
        Ui could use a lot of work
      • 6
        High learning curve when compared to PaaS
      • 3
        Extremely poor CPU performance

      related Amazon EC2 posts

      Ashish Singh
      Tech Lead, Big Data Platform at Pinterest · | 38 upvotes · 3.3M views

      To provide employees with the critical need of interactive querying, we’ve worked with Presto, an open-source distributed SQL query engine, over the years. Operating Presto at Pinterest’s scale has involved resolving quite a few challenges like, supporting deeply nested and huge thrift schemas, slow/ bad worker detection and remediation, auto-scaling cluster, graceful cluster shutdown and impersonation support for ldap authenticator.

      Our infrastructure is built on top of Amazon EC2 and we leverage Amazon S3 for storing our data. This separates compute and storage layers, and allows multiple compute clusters to share the S3 data.

      We have hundreds of petabytes of data and tens of thousands of Apache Hive tables. Our Presto clusters are comprised of a fleet of 450 r4.8xl EC2 instances. Presto clusters together have over 100 TBs of memory and 14K vcpu cores. Within Pinterest, we have close to more than 1,000 monthly active users (out of total 1,600+ Pinterest employees) using Presto, who run about 400K queries on these clusters per month.

      Each query submitted to Presto cluster is logged to a Kafka topic via Singer. Singer is a logging agent built at Pinterest and we talked about it in a previous post. Each query is logged when it is submitted and when it finishes. When a Presto cluster crashes, we will have query submitted events without corresponding query finished events. These events enable us to capture the effect of cluster crashes over time.

      Each Presto cluster at Pinterest has workers on a mix of dedicated AWS EC2 instances and Kubernetes pods. Kubernetes platform provides us with the capability to add and remove workers from a Presto cluster very quickly. The best-case latency on bringing up a new worker on Kubernetes is less than a minute. However, when the Kubernetes cluster itself is out of resources and needs to scale up, it can take up to ten minutes. Some other advantages of deploying on Kubernetes platform is that our Presto deployment becomes agnostic of cloud vendor, instance types, OS, etc.

      #BigData #AWS #DataScience #DataEngineering

      See more
      Simon Reymann
      Senior Fullstack Developer at QUANTUSflow Software GmbH · | 30 upvotes · 11M views

      Our whole DevOps stack consists of the following tools:

      • GitHub (incl. GitHub Pages/Markdown for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
      • Respectively Git as revision control system
      • SourceTree as Git GUI
      • Visual Studio Code as IDE
      • CircleCI for continuous integration (automatize development process)
      • Prettier / TSLint / ESLint as code linter
      • SonarQube as quality gate
      • Docker as container management (incl. Docker Compose for multi-container application management)
      • VirtualBox for operating system simulation tests
      • Kubernetes as cluster management for docker containers
      • Heroku for deploying in test environments
      • nginx as web server (preferably used as facade server in production environment)
      • SSLMate (using OpenSSL) for certificate management
      • Amazon EC2 (incl. Amazon S3) for deploying in stage (production-like) and production environments
      • PostgreSQL as preferred database system
      • Redis as preferred in-memory database/store (great for caching)

      The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:

      • Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
      • Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
      • Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
      • Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
      • Scalability: All-in-one framework for distributed systems.
      • Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
      See more
      Firebase logo

      Firebase

      40.9K
      35.1K
      2K
      The Realtime App Platform
      40.9K
      35.1K
      + 1
      2K
      PROS OF FIREBASE
      • 371
        Realtime backend made easy
      • 270
        Fast and responsive
      • 242
        Easy setup
      • 215
        Real-time
      • 191
        JSON
      • 134
        Free
      • 128
        Backed by google
      • 83
        Angular adaptor
      • 68
        Reliable
      • 36
        Great customer support
      • 32
        Great documentation
      • 25
        Real-time synchronization
      • 21
        Mobile friendly
      • 19
        Rapid prototyping
      • 14
        Great security
      • 12
        Automatic scaling
      • 11
        Freakingly awesome
      • 8
        Super fast development
      • 8
        Angularfire is an amazing addition!
      • 8
        Chat
      • 6
        Firebase hosting
      • 6
        Built in user auth/oauth
      • 6
        Awesome next-gen backend
      • 6
        Ios adaptor
      • 4
        Speed of light
      • 4
        Very easy to use
      • 3
        Great
      • 3
        It's made development super fast
      • 3
        Brilliant for startups
      • 2
        Free hosting
      • 2
        Cloud functions
      • 2
        JS Offline and Sync suport
      • 2
        Low battery consumption
      • 2
        .net
      • 2
        The concurrent updates create a great experience
      • 2
        Push notification
      • 2
        I can quickly create static web apps with no backend
      • 2
        Great all-round functionality
      • 2
        Free authentication solution
      • 1
        Easy Reactjs integration
      • 1
        Google's support
      • 1
        Free SSL
      • 1
        CDN & cache out of the box
      • 1
        Easy to use
      • 1
        Large
      • 1
        Faster workflow
      • 1
        Serverless
      • 1
        Good Free Limits
      • 1
        Simple and easy
      CONS OF FIREBASE
      • 31
        Can become expensive
      • 16
        No open source, you depend on external company
      • 15
        Scalability is not infinite
      • 9
        Not Flexible Enough
      • 7
        Cant filter queries
      • 3
        Very unstable server
      • 3
        No Relational Data
      • 2
        Too many errors
      • 2
        No offline sync

      related Firebase posts

      Stephen Gheysens
      Lead Solutions Engineer at Inscribe · | 14 upvotes · 1.8M views

      Hi Otensia! I'd definitely recommend using the skills you've already got and building with JavaScript is a smart way to go these days. Most platform services have JavaScript/Node SDKs or NPM packages, many serverless platforms support Node in case you need to write any backend logic, and JavaScript is incredibly popular - meaning it will be easy to hire for, should you ever need to.

      My advice would be "don't reinvent the wheel". If you already have a skill set that will work well to solve the problem at hand, and you don't need it for any other projects, don't spend the time jumping into a new language. If you're looking for an excuse to learn something new, it would be better to invest that time in learning a new platform/tool that compliments your knowledge of JavaScript. For this project, I might recommend using Netlify, Vercel, or Google Firebase to quickly and easily deploy your web app. If you need to add user authentication, there are great examples out there for Firebase Authentication, Auth0, or even Magic (a newcomer on the Auth scene, but very user friendly). All of these services work very well with a JavaScript-based application.

      See more
      Eugene Cheah

      For inboxkitten.com, an opensource disposable email service;

      We migrated our serverless workload from Cloud Functions for Firebase to CloudFlare workers, taking advantage of the lower cost and faster-performing edge computing of Cloudflare network. Made possible due to our extremely low CPU and RAM overhead of our serverless functions.

      If I were to summarize the limitation of Cloudflare (as oppose to firebase/gcp functions), it would be ...

      1. <5ms CPU time limit
      2. Incompatible with express.js
      3. one script limitation per domain

      Limitations our workload is able to conform with (YMMV)

      For hosting of static files, we migrated from Firebase to CommonsHost

      More details on the trade-off in between both serverless providers is in the article

      See more
      Amazon Web Services (AWS) logo

      Amazon Web Services (AWS)

      29.8K
      3.6K
      0
      A comprehensive and broadly adopted cloud platform
      29.8K
      3.6K
      + 1
      0
      PROS OF AMAZON WEB SERVICES (AWS)
        Be the first to leave a pro
        CONS OF AMAZON WEB SERVICES (AWS)
          Be the first to leave a con

          related Amazon Web Services (AWS) posts

          waheed khan
          Associate Java Developer at txtsol · | 9 upvotes · 53.4K views

          I want to make application like Zomato, #Foodpanda.

          Which stack is best for this? As I have expertise in Java and Angular. What is the best stack you will recommend?

          Web Micro-service / Mono? Angular / React? Amazon Web Services (AWS) / Google Cloud Platform? DB : SQL or No SQL

          Mob Cross-platform: React Native / Flutter

          Note: We are a team of 5. what languages do you recommend if I go with microservices?

          Thanks

          See more
          Santiago Velasco
          Java Software Developer at ViewNext · | 8 upvotes · 19.5K views

          Hello everyone, I would like to start using a cloud service to host my projects, which are web applications. If anyone has enough experience with Microsoft Azure, Amazon Web Services (AWS) or Google Cloud Platform, I would like to know which of these is most recommended to use, depending on the features they have or how used they are. Thank you so much.

          See more
          Heroku logo

          Heroku

          25.5K
          20.3K
          3.2K
          Build, deliver, monitor and scale web apps and APIs with a trail blazing developer experience.
          25.5K
          20.3K
          + 1
          3.2K
          PROS OF HEROKU
          • 703
            Easy deployment
          • 459
            Free for side projects
          • 374
            Huge time-saver
          • 348
            Simple scaling
          • 261
            Low devops skills required
          • 190
            Easy setup
          • 174
            Add-ons for almost everything
          • 153
            Beginner friendly
          • 150
            Better for startups
          • 133
            Low learning curve
          • 48
            Postgres hosting
          • 41
            Easy to add collaborators
          • 30
            Faster development
          • 24
            Awesome documentation
          • 19
            Simple rollback
          • 19
            Focus on product, not deployment
          • 15
            Natural companion for rails development
          • 15
            Easy integration
          • 12
            Great customer support
          • 8
            GitHub integration
          • 6
            Painless & well documented
          • 6
            No-ops
          • 4
            I love that they make it free to launch a side project
          • 4
            Free
          • 3
            Great UI
          • 3
            Just works
          • 2
            PostgreSQL forking and following
          • 2
            MySQL extension
          • 1
            Security
          • 1
            Able to host stuff good like Discord Bot
          • 0
            Sec
          CONS OF HEROKU
          • 27
            Super expensive
          • 9
            Not a whole lot of flexibility
          • 7
            No usable MySQL option
          • 7
            Storage
          • 5
            Low performance on free tier
          • 2
            24/7 support is $1,000 per month

          related Heroku posts

          Russel Werner
          Lead Engineer at StackShare · | 32 upvotes · 2.8M views

          StackShare Feed is built entirely with React, Glamorous, and Apollo. One of our objectives with the public launch of the Feed was to enable a Server-side rendered (SSR) experience for our organic search traffic. When you visit the StackShare Feed, and you aren't logged in, you are delivered the Trending feed experience. We use an in-house Node.js rendering microservice to generate this HTML. This microservice needs to run and serve requests independent of our Rails web app. Up until recently, we had a mono-repo with our Rails and React code living happily together and all served from the same web process. In order to deploy our SSR app into a Heroku environment, we needed to split out our front-end application into a separate repo in GitHub. The driving factor in this decision was mostly due to limitations imposed by Heroku specifically with how processes can't communicate with each other. A new SSR app was created in Heroku and linked directly to the frontend repo so it stays in-sync with changes.

          Related to this, we need a way to "deploy" our frontend changes to various server environments without building & releasing the entire Ruby application. We built a hybrid Amazon S3 Amazon CloudFront solution to host our Webpack bundles. A new CircleCI script builds the bundles and uploads them to S3. The final step in our rollout is to update some keys in Redis so our Rails app knows which bundles to serve. The result of these efforts were significant. Our frontend team now moves independently of our backend team, our build & release process takes only a few minutes, we are now using an edge CDN to serve JS assets, and we have pre-rendered React pages!

          #StackDecisionsLaunch #SSR #Microservices #FrontEndRepoSplit

          See more
          Simon Reymann
          Senior Fullstack Developer at QUANTUSflow Software GmbH · | 30 upvotes · 11M views

          Our whole DevOps stack consists of the following tools:

          • GitHub (incl. GitHub Pages/Markdown for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
          • Respectively Git as revision control system
          • SourceTree as Git GUI
          • Visual Studio Code as IDE
          • CircleCI for continuous integration (automatize development process)
          • Prettier / TSLint / ESLint as code linter
          • SonarQube as quality gate
          • Docker as container management (incl. Docker Compose for multi-container application management)
          • VirtualBox for operating system simulation tests
          • Kubernetes as cluster management for docker containers
          • Heroku for deploying in test environments
          • nginx as web server (preferably used as facade server in production environment)
          • SSLMate (using OpenSSL) for certificate management
          • Amazon EC2 (incl. Amazon S3) for deploying in stage (production-like) and production environments
          • PostgreSQL as preferred database system
          • Redis as preferred in-memory database/store (great for caching)

          The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:

          • Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
          • Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
          • Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
          • Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
          • Scalability: All-in-one framework for distributed systems.
          • Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
          See more