15. エンジニア全員に持ってほしい能力:対話と協調の大切さ
Webオペレーションとは
If non-communicative & non-collaborative…
http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr
It’s not my machines,
it’s your code!
It’s not my code,
it’s your machines!
46. VM
——————
app, db
可用性に対する課題
ステップ:high availability
• 1サーバで動いているものが多い
• リソースの食い合い
• どのパッケージがどのシステムに
必要なのか分かりにくい複雑な依
存関係
47. VM
——————
a role
可用性に対する課題 : 役割ごとにVMを用意する
ステップ:high availability
• 再利用できるネットワークアクセ
ス可能な単位 (サービス)* に分割
• 構成の変更に伴うコードや設定の
修正・変更
VM
——————
a role
VM
——————
a role
VM
——————
a role
VM
——————
a role
* 「ウェブオペレーション 5章 コードとしてのインフラ」より
48. 可用性に対する課題 : 役割に対して適切なスペックを与える
ステップ:high availability
• ストレージ、メモリ、CPU、…
• それぞれの役割に対して適切な
flavor (OpenStackの仮想ハード
ウェアの名称) を選択する VM
——————
a role
VM
——————
a role
VM
——————
a role
VM
——————
a role
VM
——————
a role
49. Normal stage
まずはここから
50. app/dbの分離
ステップ:high availability
app
db
nginx + unicorn
(socket)
mysql
51. dbのレプリケーション (backup, redundancy)
ステップ:high availability
app
db
(master)
db
(repl)
nginx + unicorn
(socket)
mysql
52. Grand stage
より本格的なインフラ構成をめざして
53. unicorn
リバースプロキシの導入
ステップ:high availability
app
db
(master)
db
(repl)
reverse proxynginx
upstream (TCP)
54. appサーバの冗長化 (scale out)
app
ステップ:high availability
db
(master)
db
(repl)
reverse proxy
app
nginx
unicorn
upstream (TCP)
55. セッションストレージの分離
app
ステップ:high availability
db
(master)
db
(repl)
reverse proxy
app session storage
redis,
memcached
56. Extra stage
余裕があればやってみよう
57. 監視・メトリクスの導入 (monitoring)
app
ステップ:high availability
db
(master)
db
(repl)
reverse proxy
app session storage
Nagios
sensu
consul-alert
mackerel.io
Munin
New Relic
77. DevOps
• It's not abstraction.
• It's not even "infrastructure as
code".
• It's not any single tool.
• It's not about provisioning.
• It's not about deployment.
• It's not about a job
description or position.
• It's also not about the cloud, except
for the part where deployment and
provisioning of infrastructure gets
easier to understand for groups of
people who historically wouldn't have
touched that part of the business.
• It *is* about the collaborative and
communicative culture and the
tools and process that arise from
that culture. Nothing more.
http://www.rationalsurvivability.com/blog/2010/05/incomplete-thought-the-devops-disconnect/#comment-3375
78. Provisioning Toolchain
Provisioning Toolchain by Lee Thompson (Velocity 2010),
サーバプロビジョニングのこれまでとこれから (デブサミ2014) より作成
Application Service Orchestration
System Configuration
OS install
Cloud or VM
Image Launch
Capistrano Fabric
Serf Consul
Puppet Chef
Itamae
Kickstart Cobbler
EC2 OpenStack
Orchestration
Configuration
Bootstrapping
Ansible
79. Test Driven Infrastructure
Virtualization and Cloud Computing have made it easy to procure
and provision hardware and virtual servers. But with this flexibility
comes scale and complexity, and managing our virtual estates has
become increasingly difficult. Using techniques more familiar in the
software development world such as TDD, BDD and CI offers an
approach to managing this complexity and gives us the confidence
to make changes to our infrastructure in a safe, repeatable and
automatable manner. Provisioning testing tools, like rspec-puppet,
Test Kitchen and serverspec, are available for most platforms.
http://www.thoughtworks.com/radar/techniques/provisioning-testing
80. Nightmare microservices
Migrating to Microservices by @adrianco GOTO Berlin 2014
“Death Star” Architecture Diagrams
Netflix Gilt Groupe (12 of 450) Twitter
As visualized by Appdynamics, Boundary.com and Twitter internal tools
Be the first to comment