Hiroshi Shibata

Large-Scaled Deploy Over 100 Servers in 3 Minutes

Large-Scaled Deploy Over 100 Servers in 3 Minutes

by Hiroshi Shibata

In the video titled "Large-Scaled Deploy Over 100 Servers in 3 Minutes," Hiroshi Shibata discusses the deployment strategies for a large infrastructure, specifically using the Ruby on Rails framework for their application minne, which operates over 200 servers in two data centers. The presentation is structured around converting mutable infrastructure to immutable infrastructure while highlighting methods for rapid deployment of Rails applications across multiple servers. Shibata outlines several key components and strategies used by his team:

  • Immutable Infrastructure: The transition from mutable to immutable infrastructure is fundamental to reducing downtime and improving reliability. This approach avoids manual configuration, ensuring consistency across server deployments.
  • Rapid Deployment Practices: Shibata introduces the 'pull deploy strategy' utilized by their team, which allows for quick and reliable updates to application code. By leveraging tools like Capistrano, Consul, and Stretcher, they can deploy Rails applications efficiently, minimizing deployment time to just three minutes.
  • Blue-Green Deployment: This strategy is employed to reduce downtime by maintaining two identical environments (blue and green) and switching traffic between them during updates, leading to safer deployments. This practice increases the robustness of the production environment.
  • Automation and Scaling: The video emphasizes the importance of automation in managing large-scale servers. Through the use of Docker and orchestration tools, they automate the creation of server images and the deployment processes, addressing issues related to scale and speed.
  • Testing and Validation: Rigorous testing procedures are implemented to ensure that all server configurations and deployments are error-free. Shibata stresses the role of continuous integration and testing in supporting their deployment pipelines.

Shibata concludes by reiterating that through careful planning and automation, they have achieved the ability to deploy the same code to their servers within a span of three minutes, fundamentally transforming the efficiency and reliability of their deployment process. This talk serves as a valuable resource for developers and engineers looking to scale their operations effectively using modern deployment strategies.

00:00:12.710 Great talk over here is about our Rails capacity to deploy over 100 servers in a short amount of time. My name is Hiroshi Shibata, but please call me Josh. My intense nickname is HSVt, which I use on Twitter and GitHub. I am the Chief Engineer.
00:00:26.550 I manage various systems, including Ruby on Rails, and our hand-made shopping service called minne, which can be found at https://minne.com. We have over 200 servers across two data centers, and I will introduce how we deploy the latest application code in just three minutes.
00:00:38.309 I will cover several topics: how to create immutable infrastructure from mutable infrastructure, how to rapidly deploy a Rails application to a large-scale service, and how to implement blue-green deployment with Rails.
00:01:01.949 Our goal is to deploy code to our servers in under three minutes. If there are any issues or feature requests, please submit them to our issue tracker. We hold regular meetings every month to discuss users' concerns face-to-face.
00:01:28.920 In an effort to improve the workflow, we have turned to various tools, such as Capistrano, Consul, and Stretcher. We are currently developing with Ruby 2.4, so I encourage you to report issues or queries to us.
00:01:49.409 I maintain websites, including ours, that handle traffic from various applications in Ruby CI and Rails. If you happen to be in Tokyo, feel free to reach out to our community on Twitter.
00:02:07.119 We are part of a company called Da Motobubble, a tech company based in Tokyo. We are also preparing for the RubyKaigi 2016, which is coming to Kyoto in September.
00:02:20.950 We are promoting our software through TV shows and advertisements. Previously, we had several architectural challenges, including maintaining up to six servers and orchestrating deployment processes.
00:02:55.490 Our goal is to increase throughput through automation. By scaling our infrastructure, we can deploy hundreds of servers automatically.
00:03:18.790 To scale our services effectively, we need to create a process that minimizes manual interventions. We utilize various configuration management systems to automate setups from scratch. With a mission to create a robust automation framework, we have experimented with immutable architectures, namely using container technology.
00:04:56.470 To improve deployment efficiency, we have implemented the use of Capistrano for deployment tasks, enabling more streamlined operations for our Rails applications. Deploying has become easier through precompiled assets and automated configurations. Integrating applications has become more straightforward, preventing common pitfalls associated with manual deployments.
00:12:15.640 Automation is at the core of our deployment strategy. The system is designed to allow for rapid scaling through automated image generation and configuration of environments. Furthermore, our ability to configure infrastructure-as-code has enabled us to efficiently set up and tear down resources as needed.
00:20:05.770 We have also begun utilizing orchestration tools such as Docker and Kubernetes to handle deployments. It has drastically reduced the time taken to both develop and deploy our web applications.
00:29:06.789 Moving forward, our strategy includes continuous deployment processes, where we aim to maintain zero downtime while upgrading our infrastructure. This involves a complete overhaul of our deployment architecture to improve efficiency and scalability.
00:40:10.920 In summary, we have developed a system that allows us to deploy Ruby applications across multiple servers quickly and efficiently while also ensuring that our infrastructure is maintainable and scalable. Thank you for your attention!