For those who are new to Kubernetes (commonly known as k8s) and want to begin playing around with their first pods, services, and deployments, there are many tutorials available for setting up a k8s installation using Minikube on their personal computers. While this is a great way to initially get experience working with k8s, eventually one will need to introduce their application stack to a production environment. Launching in a cloud environment like Google Cloud Platform (GCP) or Amazon Web Services (AWS) is facilitated using kops.
Keep readingEvery scalable architecture needs to manage service discovery and application scaling. We accomplish this by utilizing the DR-CoN pattern (Docker-Registrator-Consul-Nginx) to load-balance web applications. Rerouting network traffic to healthy nodes and preventing applications from receiving too many requests are common needs for every infrastructure, and we can use this pattern to automate that process.
Keep readingThere has been a lot of protest related to pipelines recently, but there is one that we can all agree brings value and profit to our work: the MongoDB Aggregation Pipeline. When MongoDB v2.2 was released, this performant method of data aggregation was introduced that utilizes stages to filter data and perform operations like grouping, sorting and transforming the output of each operator. This framework is an alternative to Mongo’s MapReduce functionality, and the output can be piped to a new collection or used to update specific documents.
Keep readingI previously outlined the methods I used to speed up our AWS infrastructure spin-up time. The method covered in this post further reduced that time by about 50% by pre-baking all of the services we needed to run an application.
Our microservice applications are hosted in Docker containers and can be pulled from the Docker registry and our own private registry. Rather than install and configure services on an Ubuntu server using bash scripts, the individual Docker images for each application can be copied onto every instance that we need. This allows us to add instances much faster if we need to quickly scale to handle a heavy load, and is a practice that most organizations should adopt if it can be implemented.
Keep readingAfter our announcement of general availability, our team started focusing on improving our onboarding flow. A key bottleneck was the time it took for us to spin up infrastructure for each new user. This could take up to ten minutes, delaying their initial exposure to our product. We knew we were facing a common problem: reducing the amount of time that it takes to add resources and servers to your infrastructure.
Keep reading