Nulab’s DevOps tool stack based on AWS
Wednesday, Feb 5 2014
iJAWS 2nd Meetup @HUB Tokyo
About me
Takashi SOMEDA

Tech Evangelist of Nulab,Inc.
Write tech articles about AWS, SCM

https://twitter.com/tksmd
https...
Backlog is a project management tool that 2,000 clients use.
In addition to issue management feature, Backlog provides
• F...
1,100,000 users around the world draw wireframes, network diagrams,
UML, business plans and so on.
Cacoo provides basic fu...
A new collaborative chat app has just been out of beta yesterday!!
• Revolutionize your team discussion
• Integration with...
Single sign-on service for our all services
Application launcher of our each services
Provisioning Layer
Command
and
Control

Configuration

Bootstrapping

Application Service Orchestration
System Configurati...
Provisioning Layer (our case)
Command
and
Control

Fabric
Ansible

Configuration

Bootstrapping

Packer
Amazon AMI
http://...
Fabric
 Written in Python
 Just run commands on local/remote

machine
@task
def start_tomcat():
sudo('rm -f /usr/java/to...
Ansible
 Written in Python
 Idempotency

 Requires python and sshd installed on
server
- name: install requirement syst...
Packer
 Written in Go
 Tool for pre-baked machine image
"builders": [{
"type": "amazon-ebs",
"region": "us-west-2",

"so...
Configuration Workflow

Notify
Run

Build AMI

Configure
Test
Tips – use common ssh.config
$ tree
.
├── ansible
│
└── ansible.cfg
├── fabfile
│
└── __init__.py
├── serverspec
│
└── spe...
Tips – use fabric as interface

@task
def hosts_update():
"""
update /etc/hosts on all running instances
"""
with lcd('ans...
We’re hiring!
Nulab's DevOps tool stack based on AWS
Upcoming SlideShare
Loading in …5
×

Nulab's DevOps tool stack based on AWS

1,227 views

Published on

iJAWS 2nd meetup LT slides

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,227
On SlideShare
0
From Embeds
0
Number of Embeds
134
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Nulab's DevOps tool stack based on AWS

  1. 1. Nulab’s DevOps tool stack based on AWS Wednesday, Feb 5 2014 iJAWS 2nd Meetup @HUB Tokyo
  2. 2. About me Takashi SOMEDA Tech Evangelist of Nulab,Inc. Write tech articles about AWS, SCM https://twitter.com/tksmd https://github.com/tksmd https://facebook.com/takashi.someda
  3. 3. Backlog is a project management tool that 2,000 clients use. In addition to issue management feature, Backlog provides • File sharing by WebDAV • Git and Subversion repository hosting. Visit http://backlogtool.com/
  4. 4. 1,100,000 users around the world draw wireframes, network diagrams, UML, business plans and so on. Cacoo provides basic functionality as a draw tool and powerful collaborative features like • Simultaneous Editing on same diagram by multiple users • Integration with Google Services like Google Apps, Google Drive and Google+ Hangouts
  5. 5. A new collaborative chat app has just been out of beta yesterday!! • Revolutionize your team discussion • Integration with nulab’s other services • Provide easy-to-use API for developers (http://developers.typetalk.in)
  6. 6. Single sign-on service for our all services Application launcher of our each services
  7. 7. Provisioning Layer Command and Control Configuration Bootstrapping Application Service Orchestration System Configuration Cloud or VM Image Launch OS install http://devops-toolchain.googlecode.com/svn/trunk/src/site/resources/presentations/Velocity2010/
  8. 8. Provisioning Layer (our case) Command and Control Fabric Ansible Configuration Bootstrapping Packer Amazon AMI http://devops-toolchain.googlecode.com/svn/trunk/src/site/resources/presentations/Velocity2010/
  9. 9. Fabric  Written in Python  Just run commands on local/remote machine @task def start_tomcat(): sudo('rm -f /usr/java/tomcat/temp/*.{index,data}') sudo('service tomcat start’) print green("Tomcat started!!!")
  10. 10. Ansible  Written in Python  Idempotency  Requires python and sshd installed on server - name: install requirement system packages action: yum name={{ item }} with_items: - make - gcc
  11. 11. Packer  Written in Go  Tool for pre-baked machine image "builders": [{ "type": "amazon-ebs", "region": "us-west-2", "source_ami": "ami-ccf297fc", "instance_type": "m1.small", "ssh_username": "ec2-user", "ami_name": "base {{isotime}}" }],
  12. 12. Configuration Workflow Notify Run Build AMI Configure Test
  13. 13. Tips – use common ssh.config $ tree . ├── ansible │ └── ansible.cfg ├── fabfile │ └── __init__.py ├── serverspec │ └── spec │ └── spec_helper.rb └── ssh.config [ssh_connection] ssh_args = -F ../ssh.config env.use_ssh_config = True env.ssh_config_path = 'ssh.config' RSpec.configure do |c| options = Net::SSH::Config.for(c.host, files=[‘../ssh.config']) ...
  14. 14. Tips – use fabric as interface @task def hosts_update(): """ update /etc/hosts on all running instances """ with lcd('ansible'): local("ansible-playbook -i all.yml --tags=hosts_setup") - name: copy hosts file copy: src=etc/hosts dest=/etc/hosts tags: hosts_setup
  15. 15. We’re hiring!

×