2. Takashi SOMEDA
Echelon Ignite 2013 Thailand
https://twitter.com/tksmd
Tech Evangelist of Nulab,Inc.
About me
https://facebook.com/takashi.someda
Write tech articles about AWS, SCM
https://github.com/tksmd
3.
4. Echelon Ignite 2013 Thailand
Backlog is a project management tool that 1,800 clients use.
In addition to issue management feature, Backlog provides
• File sharing by WebDAV
• Git and Subversion repository hosting.
Visit http://backlogtool.com/
5. 950,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
6. A new collaborative chat app just opened as preview beta.
• Revolutionize your team discussion
• Integration with nulab’s services
• Provide easy-to-use API for developers
Be the first to get notified when the app is launched. http://typetalk.in
7. User Growth of Cacoo
Echelon Ignite 2013 Thailand
0
100,000
200,000
300,000
400,000
500,000
600,000
700,000
800,000
900,000
1,000,000
Oct,2010 Oct,2011 Oct,2012 Sep,2013
62,000
200,000
600,000
950,000
All
Japan
Overseas
17. Agenda
Echelon Ignite 2013 Thailand
Configuration Management in essence
Version Control System (VCS)
Continuous Integration (CI)
Server Orchestration & Configuration
Live Demo
19. Configuration management refers to the process
by which all artifacts relevant to your project,
and the relationships between them, are
sorted, retrieved, uniquely identified, and modified.
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
Jez Humble, David Farley
22. VCS in a nutshell
Echelon Ignite 2013 Thailand
23. VCS Architecture
Echelon Ignite 2013 Thailand
Centralized
Repository maintained on server
CVS, Subversion
Distributed
Each client has its repository
Git, Mercurial, (Bazaar)
24. What to keep in VCS
Echelon Ignite 2013 Thailand
Source
Build Script
Ant, Maven, Gradle, Rake, Makefile
Database Script
Schema, Migration
Server related files
DO NOT put binary artifacts
25. Run “beta” in a real world
Echelon Ignite 2013 Thailand
To know whether you’re going toward right
place as fast as possible
Rule
Run on “real” data, not dummy
Speed >>> Quality
Limited user ( at least yourself )
26. flag or branch
Echelon Ignite 2013 Thailand
if(flagA){
}
if(flagA){
}
if(flagB){
}
flag
branch
production
feature A
feature B
27. Pros and cons of “flag”
Echelon Ignite 2013 Thailand
Pros.
Same code running on all servers
Simple and quick release
Cons.
Scattered “if” statements on your code
28. Pros and cons of “branch”
Echelon Ignite 2013 Thailand
Pros.
Keep source code clean
Cons.
Integration (merge) cost
conflict risk
Need additional server to run “branch”
code
29. Beta strategy
Echelon Ignite 2013 Thailand
Decide basic policy in your team
If your code changes many things
Use “branch” and refine the code in
the beta
Switch “flag” after the quality
becomes satisfying and expose it to
the production
Just turn the flag on at release
32. What’s CI
Echelon Ignite 2013 Thailand
One of agile practice originally
To detect integration problem earlier, do
integrate repeatedly and frequently
Core of “Delivery Pipeline”
Lots of things can run on CI server
33. Benefits of CI
Echelon Ignite 2013 Thailand
Quick feedback
Early detection of build issues
Ensuring traceability
Start small, scale gradually
34. What to build
Echelon Ignite 2013 Thailand
Compile
Run tests
Assemble
Inspection
Generate Docs
Etc…
35. Package Repository
Echelon Ignite 2013 Thailand
Maintain your own repository
Maven repo, cpan, pypi, gem
Shared folder
Amazon S3
Used by both
Development
Testing
Server configuration
36. Failure feedback from CI
Echelon Ignite 2013 Thailand
Notification via
E-mail
Group
those who broke code
IRC / Chat
ITS / BTS
Take action as soon as possible
37. CI build time
Echelon Ignite 2013 Thailand
Should be done within 30mins
If build time exceeds it
Split into smaller pieces
Build parallel
Get a higher spec machine
38. Testing in CI
Echelon Ignite 2013 Thailand
Unit Test
Integration Test
Server Configuration Test
Smoke Test
41. Why “Cloud” for startups
Echelon Ignite 2013 Thailand
Extremely flexible
Scalable
Global infrastructure
NOT the cheapest solution
42. Paradigm shift of “Cloud”
Echelon Ignite 2013 Thailand
All resources are
completely virtualized
programmable
allocated and available soon
BUT everything will be possibly broken
in a meanwhile
44. Design principle for failure
Echelon Ignite 2013 Thailand
Keep each server small and simple
Building a brand-new server faster than
fixing broken one
Distribute servers to different physical
locations
Need to manage much more servers
than on-premises
45. Problem of ad-hoc management
http://www.flickr.com/photos/getbutterfly/6317955134/
What servers are patched
and
What are not ?!
46. Provisioning Layer
Echelon Ignite 2013 Thailand
http://devops-toolchain.googlecode.com/svn/trunk/src/site/resources/presentations/Velocity2010/
Application Service Orchestration
System Configuration
Cloud or VM
Image Launch
OS installBootstrapping
Configuration
Command
and
Control
47. Orchestration Tasks
Echelon Ignite 2013 Thailand
Deploy
System administration
stop / start middleware
Build temporary environment
batch / testing
DO NOT include configuration
48. Migration from “bare” scripts
Echelon Ignite 2013 Thailand
Try simple tool
No server installation required
Needs SSH connection only
Select tool which is written in your familiar
language
50. Difference between them
Echelon Ignite 2013 Thailand
Server Orchestration manages
“execution”
Changing server state to single
direction
Focus on temporally control
Server Configuration manages “state”
Converging server into a “state”
can be tested repeatedly
52. Configuration Test
Echelon Ignite 2013 Thailand
httpd package installed
httpd service enabled
httpd service started
80 port listened
:
Is httpd package
installed?
Is httpd service enabled ?
Is httpd running ?
Is 80 port listened?
:
Configuration Test
53. VCS in server management
Echelon Ignite 2013 Thailand
Use VCS same as application source
Keep into VCS
Configuration files
Administration scripts
Orchestration scripts
Configuration scripts