6. Moving
to
the
Cloud
• IAT
chose
Amazon
Web
Services
(AWS)
IaaS
• Great
choice,
but…
– Made
a
few
mistakes
– Learnt
lots
of
lessons
19/02/2014
@taidevcouk
7.
We’ve
created
a
“Cloud
Developer’s
DHARMA”
to
act
as
a
checklist
when
building
Cloud
apps
19/02/2014
@taidevcouk
8. dharma
/ˈdɑːmə,ˈdəːmə/
noun
1. Signifies
behaviors
that
are
considered
to
be
in
accord
with
order
that
makes
life
and
universe
possible
(Hinduism)
2. "cosmic
law
and
order”,
but
is
also
applied
to
the
teachings
of
the
Buddha
(Buddhism)
19/02/2014
@taidevcouk
9. Documented
(at
the
edge)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
AnPfragile
19/02/2014
@taidevcouk
10. Documented
(at
the
edge)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
AnPfragile
19/02/2014
@taidevcouk
16. Documented
(at
the
edge)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
AnPfragile
19/02/2014
@taidevcouk
17. High
Cohesion
/
Loose
Coupling…
…all
the
way
down
• Public
API
– PayPal
(bit.ly/1hnZNly)
• Architecture
– Services
– Components
19/02/2014
@taidevcouk
19. Documented
(at
the
edge)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
AnPfragile
19/02/2014
@taidevcouk
20. Automated
from
Commit
to
Cloud
• ConPnuous
IntegraPon/Delivery
• Jenkins
Build
Pipeline
Plugin
(bit.ly/1hq9XSN)
19/02/2014
@taidevcouk
21. Our
Build
Pipeline
• Component
Build
– Compile
– Unit
Tests
(surefire)
– IntegraPon
Tests
(failsafe)
• Deployment
onto
QA
Cloud
– Python
Scripts
+
Chef
to
provision
– Verify
success
using
Python
19/02/2014
@taidevcouk
22. Our
Build
Pipeline
• Acceptance
Tests
– Cucumber
and
Selenium
– Work
in
progress…
• Performance
Tests
– Jmeter
– Jenkins
Jmeter
performance
plugin
• Staging
/
Live
Deployment
– Human-‐based
condiPonal
operaPon
19/02/2014
@taidevcouk
23. Documented
(at
the
edge)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
AnPfragile
19/02/2014
@taidevcouk
26. What
you
get…
Fact:
9
out
of
10
cheetahs
prefer
the
taste
of
an
Ops
team
over
Enned
food
19/02/2014
@taidevcouk
27. Thou
Shalt
Know
thy
Cloud…
• AWS
EBS
100
IOPS
(by
default)
– My
Mac
SSD
does
49K
IOPS
• 1000Mbps
network
max
transfer
~125Mb/s
– My
Mac
does
400+
Mb/s
SequenPal
Write
to
SSD
Reference
for
Mac
staPsPcs:
bit.ly/1tJZH8
19/02/2014
@taidevcouk
28. Thou
Shalt
Know
thy
Cloud…
• “Noisy
[virtual]
Neighbours”
– My
Mac
only
deals
with
noisy
colleagues
• “Things
fail
all
the
Pme
[in
the
Cloud]”
– My
Mac
is
quite
reliable…
19/02/2014
@taidevcouk
29. Documented
(at
the
edge)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
AnPfragile
19/02/2014
@taidevcouk
30. Monitor
All
The
Things!
• Infrastructure
monitoring
– Nagios
– Zabbix
– Splunk
– AppDynamics
19/02/2014
@taidevcouk
34. Documented
(at
the
edge)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
AnPfragile
19/02/2014
@taidevcouk
36. Black
Swan
Theory
“…is
a
metaphor
that
describes
an
event
that
comes
as
a
surprise,
has
a
major
effect,
and
is
oten
inappropriately
raPonalized
ater
the
fact
with
the
benefit
of
hindsight”
Nassim
Nicholas
Taleb,
The
Black
Swan
19/02/2014
@taidevcouk
37. AnPfragile
• The
opposite
of
fragile?
– Robust…
– AnPfragile…
• Nenlix
are
best-‐in-‐class
– bit.ly/1gs5n3q
• System
must
be
robust
first!
19/02/2014
@taidevcouk
41. So,
Cloud
Apps
are
‘done’
when…
Documented
(at
the
edge)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
AnPfragile
19/02/2014
@taidevcouk
42. Thanks
For
Listening
• Massive
thanks
to
all
the
IAT
team!
• This
is
a
beta
version
talk
– Feedback
is
most
appreciated!
• QuesPons
/
comments?
– d.bryant@iatltd.com
– @taidevcouk
19/02/2014
@taidevcouk