Spinnaker as a Continuous Delivery Solution for JavaScript Apps

Rate this content
Bookmark

Spinnaker is an open-source continuous delivery platform that provides application management and deployment to help engineering teams confidently release software changes at a high velocity. It was initially developed at Netflix and is now used by many large-scale engineering teams. In this talk, we will explore how we can leverage it to deploy JavaScript applications to multiple cloud providers in a repeatable and scalable fashion while taking advantage of its robust feature set.

This talk has been presented at DevOps.js Conf 2024, check out the latest edition of this Tech Conference.

FAQ

Spinnaker is a multi-platform continuous delivery platform that supports multiple cloud providers such as AWS, Google Cloud, and Azure. It enables users to configure cloud resources, orchestrate deployments, and manage resources like auto-scaling and rollbacks.

Spinnaker was initially developed internally at Netflix and has since been open-sourced. It is now maintained by a community.

Several companies use Spinnaker in production, including Grubhub, Airbnb, Google, Netflix, Chime, Box, and Target.

Key Spinnaker concepts include providers (cloud service providers like AWS, Azure, Google Cloud), applications (collections of clusters), server groups (collections of instances), clusters (groupings of server groups), and load balancers (balance traffic between instances within server groups).

Spinnaker allows for centralized management of infrastructure settings across different cloud providers from a single panel. This includes configuring accounts, regions, VPC subnets, load balancers, security groups, and instance types.

In Spinnaker, a pipeline is a sequence that defines how your code is deployed. It includes stages like pulling an image, deploying a canary, and manual approvals, allowing automation of deployment processes and strategies.

Canary analysis in Spinnaker is a deployment process where changes are gradually rolled out and compared against a baseline to assess performance changes. It involves metric analysis to determine if changes are safe to deploy to production.

For JavaScript applications, Spinnaker offers streamlined deployment across multiple cloud environments, robust management of infrastructure, and sophisticated deployment strategies like canary releases, enhancing delivery velocity and reliability.

Jamal Sinclair O'Garro
Jamal Sinclair O'Garro
10 min
15 Feb, 2024

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Jamal Sinclair-O'Garro introduces himself as a senior software engineer at Netflix with experience in algorithmic and electronic trading. Spinnaker is a multi-platform continuous delivery platform used by companies like Grubhub, Airbnb, Google, Netflix, Chime, Box, and Target. It provides infrastructure management and deployment through pipelines, allowing gradual rollouts and canary analysis to ensure safe changes. Spinnaker improves velocity and is recommended for streamlining JavaScript applications across different providers.

1. Introduction

Short description:

Hello, my name is Jamal Sinclair-O'Garro, a senior software engineer at Netflix. I have experience in algorithmic and electronic trading. I'm based in New York and a fan of hip hop and sports, especially the Knicks.

Hello. My name is Jamal Sinclair-O'Garro and welcome to my talk on Spinnaker as a continuous delivery solution for JavaScript applications. So, who am I? As mentioned, my name is Jamal. I'm a senior software engineer at Netflix within our platform engineering organization. Prior to working at Netflix, I've been here about two years, I worked my entire career in finance where I focused mostly on algorithmic trading and electronic trading. I've built over 15 desktop algorithmic electronic trading applications that have gone firm-wide at my previous firms. I'm born and raised in New York where I'm currently based. I'm a hip hop head, sneaker head, I'm a Yankees, Giants, and Knicks fan, and the Knicks are killing it right now, so let's go Knicks.

2. Spinnaker Overview

Short description:

Today we'll learn about Spinnaker, a multi-platform continuous delivery platform that supports multiple cloud providers. We'll discuss its functionality, deployment orchestration, resource management, and its usage by companies like Grubhub, Airbnb, Google, Netflix, Chime, Box, and Target. We'll also cover high-level concepts such as providers, applications, clusters, server groups, load balancers, and firewalls in the Spinnaker architecture.

So, today's roadmap. What are we going to focus on today? Today we're going to learn about Spinnaker, what it is, we'll understand at a high level some of the overview of its functionality, and then we'll try to figure out why you might want to use it for your JavaScript applications.

So, with that being said, what is Spinnaker? Spinnaker is a multi-platform continuous delivery platform that supports multiple cloud providers or environments. So, think AWS, Google Cloud, and Azure. Spinnaker gives us the ability to configure cloud resources. So, think of your instance type security groups if you're from AWS land. We can orchestrate our deployment or define the orchestration for deployments through something called pipelines that we'll talk about shortly. And we can also manage or deploy resources. So, think of like auto-scaling and logic that allows us to perform things like rollbacks in case things don't go well. Spinnaker was developed at Netflix internally and has since been open source and is now community maintained.

So, we know about Spinnaker, but the question you might have is, who's using it? Who's using Spinnaker in production? So, right now there's a few companies. There's Grubhub, there's Airbnb, Google, Netflix, of course, because Spinnaker came from Netflix. There's Chime, Box, and Target. So, as we can see, this is a small subset, but there's a very large amount of companies that are using Spinnaker in production for their delivery solution.

So, now let's talk about some high-level Spinnaker concepts. So, first, let's talk about a provider. So, a provider is a cloud service provider. So, like AWS or Azure, Google Cloud that provides computing resources, you can build your infrastructure on top of and deploy and serve your applications. Now, in Spinnaker world, an application is a collection of something called clusters that we'll talk about shortly. So, think of it as a way to keep track of our application, the application configuration, and also its infrastructure settings. On top of that, there's also a server group, a server group is a collection of instances. So, think of your instances of your Node application, or it could even be like Kubernetes instances as well. A cluster is a grouping of server groups in Spinnaker. And then we also have load balancers that basically balance traffic between instances inside of a particular server group. We have a firewall, which allows us to set our networking security traffic rules. So, let's look at a high level of the Spinnaker architecture. So, here we have an example of two applications. As mentioned, an application is a way for you to group your apps resources and infrastructure. And you can see here, we have a collection of clusters. And each cluster is basically a set of security groups, right? Sorry, server groups.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

How to Build Your Own Open Source Project
React Advanced Conference 2022React Advanced Conference 2022
16 min
How to Build Your Own Open Source Project
Hello my friend, in this talk, I wanna share with you how to build your own open source project. Building an open source software project can be challenging. I receive a lot of things randomly in a day, like thank you messages for making my life easier, which motivates me. To choose an open source project to work on, pick one you use every day. Your software is being used when people report issues and send pull requests.
Lessons from Maintaining TypeScript Libraries
TypeScript Congress 2022TypeScript Congress 2022
30 min
Lessons from Maintaining TypeScript Libraries
Top Content
Mark Erickson, a Senior Frontend Engineer at Replay, discusses JavaScript libraries and their support for TypeScript, including migration, versioning, and debugging. He also explores the challenges of supporting multiple TypeScript versions and designing APIs for use with TypeScript. Additionally, he shares advanced Redux type tricks and insights into maintaining a TypeScript library. The poll results reveal the widespread usage of TypeScript among developers, with many gradually migrating their codebases. Lastly, he provides tips for upgrading TypeScript and verifying functionality.
Nuxt 3 Modules and Open-Source
Vue.js London 2023Vue.js London 2023
31 min
Nuxt 3 Modules and Open-Source
Nuxt.js modules are a central part of Nuxt and have had 14 million downloads. Creating Nuxt modules is easy with Nuxt 3. Modules can provide assets, CSS injection, plugins, and auto imports. Learning Nuxt modules gives a deeper understanding of Nuxt and extends its functionalities. The Nuxt community is friendly to newcomers and encourages module creation.
Break the Race: Easy Race Condition Detection for React
React Day Berlin 2023React Day Berlin 2023
31 min
Break the Race: Easy Race Condition Detection for React
Watch video: Break the Race: Easy Race Condition Detection for React
Race conditions can be complex to debug and reproduce, causing frustration for users. The speaker discusses examples of race conditions and ways to fix and avoid them. They demonstrate an example of an auto-completion field in React and how to handle race conditions in API calls. The speaker introduces the FastCheck framework for property-based testing to address race conditions and improve tests. Randomizing inputs and outputs can help uncover bugs specific to certain scenarios. The speaker also discusses mitigating race conditions in React and handling test overhead and reproducibility.
Making an Open Source Library Financially Sustainable
React Day Berlin 2022React Day Berlin 2022
8 min
Making an Open Source Library Financially Sustainable
The Talk discusses how an open source library, ReactFlow, was made financially sustainable. Various methods were tried, including Github sponsoring and cross financing, but a price tag was eventually added to the library. Building trust and clear expectations through ongoing support and communication with subscribers was key to gaining financial support. The issue of people not knowing how much to contribute was addressed by providing a clear pricing structure. Additional features like one-on-one support and Pro examples were added to combat the paradox of choice and encourage financial support.
The State of XState
React Finland 2021React Finland 2021
18 min
The State of XState
Over the past few years, state machines, statecharts, and the actor model have proven to be viable concepts for building complex application logic in a clear, visual way with XState. In this talk, we'll take a peek into the future of XState, including new features in the next version, and new tools and services that will make it even easier to create and collaborate on state machines.

Workshops on related topic

Node.js: Landing your first Open Source contribution & how the Node.js project works
Node Congress 2023Node Congress 2023
85 min
Node.js: Landing your first Open Source contribution & how the Node.js project works
Workshop
 Claudio Wunder
Claudio Wunder
This workshop aims to give you an introductory module on the general aspects of Open Source. Follow Claudio Wunder from the OpenJS Foundation to guide you on how the governance model of Node.js work, how high-level decisions are made, and how to land your very first contribution. At the end of the workshop, you'll have a general understanding of all the kinds of work that the Node.js project does (From Bug triage to deciding the Next-10 years of Node.js) and how you can be part of the bigger picture of the JavaScript ecosystem.

The following technologies and soft skills might be needed):
  - Basic understanding of Git & GitHub interface
  - Professional/Intermediate English knowledge for communication and for allowing you to contribute to the Node.js org (As all contributions require communication within GitHub Issues/PRs)
  - The workshop requires you to have a computer (Otherwise, it becomes difficult to collaborate, but tablets are also OK) with an IDE setup, and we recommend VS Code and we recommend the GitHub Pull Requests & Issues Extension for collaborating with Issues and Pull Requests straight from the IDE.

The following themes will be covered during the workshop:
- A recap of some of GitHub UI features, such as GitHub projects and GitHub Issues
- We will cover the basics of Open Source and go through Open Source Guide
- We will recap Markdown
- We will cover Open Source governance and how the Node.js project works and talk about the OpenJS Foundation
  - Including all the ways one might contribute to the Node.js project and how their contributions can be valued
- During this Workshop, we will cover Issues from the nodejs/nodejs.dev as most of them are entry-level and do not require C++ or deep technical knowledge of Node.js.
  - Having that said, we still recommend enthusiast attendees that want to challenge themselves to "Good First Issues" from the nodejs/node (core repository) if they wish.
  - We're going to allow each attendee to choose an issue or to sit together with other attendees and tackle issues together with Pair Programming through VS Code Live Share feature
    - We can also do Zoom breakrooms for people that want to collaborate together
  - Claudio will be there to give support to all attendees and, of course, answer any questions regarding Issues and technical challenges they might face
  - The technologies used within nodejs/nodejs.dev are React/JSX, Markdown, MDX and Gatsby. (No need any knowledge of Gatsby, as most of the issues are platform agnostic)
- By the end of the Workshop, we'll collect all (make a list) the contributors who successfully opened a Pull Request (even if it's a draft) and recognise their participation on Social media.