Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Building effective Java applications for the Cloud: The DHARMA principles - Daniel Bryant
1. Building
Java
applica.ons
for
the
Cloud:
The
DHARMA
principles
Daniel
Bryant
Principal
Consultant,
Open
Credo
daniel.bryant@opencredo.com
@danielbryantuk
2. What
to
expect
• Problems
when
developing
for
the
Cloud
– “LiG
and
shiG”
– Smashing
the
monolith
– Greenfield
(“Cloud
na.ve”)
• Some
sugges.ons
on
where
to
focus
efforts
– Not
specific
plaPorm/framework
reviews
• Tools
and
techniques
• Lots
of
informa.on…
(slides
will
be
available)
14/10/2014
@danielbryantuk
3. Who
Am
I?
• LJC
• Principal
Associate
• Adopt
Consultant
at
OpenCredo
ü Agile
transforma.ons
ü DevOps
ü Microservices
and
Cloud
OpenJDK
and
JSR
14/10/2014
@danielbryantuk
4. The
Current
Industry
Wish
List…
• Service-‐Oriented
Architecture
• Cloud-‐based
deployments
• DevOps
Culture
14/10/2014
@danielbryantuk
5. The
Current
Industry
Wish
List…
• Service-‐Oriented
Architecture
– Twi`er’s
Story
(bit.ly/1j1WbmI)
• Cloud-‐based
deployments
– Today!
• DevOps
Culture
– Devoxx
UK
talk
(bit.ly/1BylnZb)
– Previous
LJC
Event
(bit.ly/1elVPJz)
14/10/2014
@danielbryantuk
12. Not
tes<ng
in
the
Cloud…
(hint:
here
be
dragons!)
14/10/2014
@danielbryantuk
13. We’ve
created
the
“Cloud
DHARMA
Principles”
to
act
as
a
checklist
when
building
Cloud
apps
14/10/2014
@danielbryantuk
14. 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)
14/10/2014
@danielbryantuk
15. Documented
(just
enough)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
An.fragile
14/10/2014
@danielbryantuk
16. Documented
(just
enough)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
An.fragile
14/10/2014
@danielbryantuk
41. What
you
actually
get…
Fact:
9
out
of
10
cheetahs
prefer
the
taste
of
an
Ops
team
over
<nned
food
14/10/2014
@danielbryantuk
42. Thou
Shalt
Know
thy
Cloud…
• AWS
“Magne.c”
EBS
100
IOPS
– New
SSD
EBS
3K
IOPS
(burst,
PIOPS
available)
– My
Mac
SSD
does
49K
IOPS
• 1000Mbps
network
max
transfer
~125MB/s
– My
Mac
does
400+
MB/s
Sequen.al
Write
to
SSD
Reference
for
Mac
sta.s.cs:
bit.ly/1GJZH8
14/10/2014
@danielbryantuk
43. Thou
Shalt
Know
they
Cloud…
“Everything
fails
all
the
<me
[in
the
cloud]”
Werner
Vogels,
CTO,
Amazon.com
• Everything
is
ephemeral
• Vola.lity
• Noisy
(virtual)
neighbours
– bit.ly/1w1HQy7
14/10/2014
@danielbryantuk
44. Thinking/Ac.ng
Opera.onally
• Cul.vate
“Mechanical
Sympathy”
• Virtualisa.on
– Tech
Target
(bit.ly/1kDVqyG)
• Networking
– ‘Unix
and
Linux
System
Administra.on
Handbook’
– aws.amazon.com/documenta.on
14/10/2014
@danielbryantuk
45. Thinking/Ac.ng
Opera.onally
• Learn
Linux
fundamentals
• Diagnos.c
skills
– top,
netstat,
vmstat,
tcpdump
– Java
u.ls:
jps,
jstat,
jmap,
jhat
– “DevOps
Troubleshoo.ng”
by
K.
Rankin
14/10/2014
@danielbryantuk
46. Documented
(just
enough)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
An.fragile
14/10/2014
@danielbryantuk
54. Documented
(just
enough)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
An.fragile
14/10/2014
@danielbryantuk
55. An.fragile
• The
opposite
of
fragile?
– Robust…
– An.fragile…
• NePlix
are
best-‐in-‐class
– bit.ly/1gs5n3q
• System
must
be
robust
first!
14/10/2014
@danielbryantuk
62. So,
Cloud
Apps
are
‘done’
when…
Documented
(just
enough)
Highly
cohesive/loosely
coupled
(all
the
way
down)
Automated
from
commit
to
Cloud
Resource
aware
Monitored
thoroughly
An.fragile
14/10/2014
@danielbryantuk
63. Thanks
For
Listening
• Massive
thanks
to
all
the
OpenCredo
team!
• Ques.ons
/
comments?
– daniel.bryant@opencredo.com
– @danielbryantuk
14/10/2014
@danielbryantuk