Switching from monolithic approach to modular
cloud computing
Within the context of providing
high availability application
Maciej Kuźniar, Oktawave
W h y are w e u su ally n o t
p ro gram m in g in assem b ler?
highly complicated
require strong knowledge
about physical architecture
inconvenient
susceptible for mistakes
Instead, we are commonly using mid & high level
languages, expecting to get proper advantages.
access to rich
and functional libraries
syntax hints
logical verifcation
loop condition checks
We sometimes even
switch to
scripting
languages.
fexibility
agile change
management
platform
independency
We are looking
for simplifcation.
choosing ready to use ideas/algorithms
choosing ready to use libs/modules
universal interfaces
And where
do all of these
lead us
to?
Your app become
“all-in-one”.
Your app become monolithic.
Your app become
slow.
And the worst part:
your app is
unpredictable.
Why?
unexpected algorithms behaviour
while in stress
unknown libs/modules interacton/risks
usually undefned ability to scale
undefned total cost
of new product/features inserton
inevitable maintenance breaks
Why?
unexpected algorithms behaviour
while in stress
unknown libs/modules interacton/risks
usually undefned ability to scale
undefned total cost
of new product/features inserton
inevitable maintenance breaks
So what
can we do
about it?
You may let your app
to cooperate with others.
The others are usually better in their jobs.
Wait a minute. So you
want me to exchange
my beloved algorithms
and libraries
with ready to use
services?
Yes!
Swap your
lib with the service
Yes!
Swap your
lib with the service
determined performancedetermined performance
determined availabilitydetermined availability
elastic
and fitted costs
elastic
and fitted costs
clear interfaceclear interface
All right, smart guy.
But where are the examples?
There are tons
of ready to use
services.
In the cloud!
object
storage
databases
messaging
in-memory
cache
real-time
processing
Big data
DNS
Object storage
tons of static data stored in the cloud
remotely & on-demand
short data processing chain
(browser <->storage)
lower processing latency
embedded ACL
separating data from application processing
physical security by replication
simple REST API
charged by used space
Databases
predictable performance
vertical and horizontal
scalability
including smart
load balancing option
SQL compatible
easy to deploy
charged
by computing power
& used space
Messaging
persistent and secure
message storing
easy to publish
or consume messages
simplifed communication
between participants
ability to separate
application modules while keeping communication between
charged by message count
Real-time
in memory caching
usually compatible
with memcached or redis
improve application performance
by storing critical in low-latency memory
may be use as cache for database queries result, session handling, intensive
calculation results
include replication option
ability to build multi-node
cache cluster with simple API/interface
charged by size of memory granted
Real-time
processing
can collect and process
hundred of terabytes hourly
data can be collected
from hundreds of thousands of sources
allows to to easily write applications that process information in real-time from sources such as
web site click-streams, marketing and fnancial information
can be use for marketing and fnancial information, manufacturing instrumentation and social
media, and operational logs, metering data, mobile devices
ability to continuously analyse data
at any volume and throughput, in real-time
charged by memory consumption and CPU usage
Big data
usually for batch processing
of large amount of data
throgh standardised interface
with cloud - instant availability
(without expensive
on-site infrastructure goods)
unlimited scalability
charged hourly by granted space and computational power
SMART Anycast DNS
spread DNS trafc across multiple physical locations
answer provided by location with the fastest path
by constantly monitoring (watch.oktawave) ability to failover one or more servers running your application
Embedded round-robin and response time load balancing across geo regions or servers inside one datacenter
Mixed weight & response time load balancing
Smart load balancing based on .js script included in your site which:
collect speed counters directly on customer browser and transfer them DNS engine (browser response time)
GeoIP analytics
BGP latency calucations
charged by queries count
See h ow m an y fu n ctio n s o f yo u r a p p lica tio n ca n b
o n th e o u tsid e. Ju st re lax an d fo cu s o n w h at is tru ly i
Thank you!
Visit our site:
w w w.oktaw ave.com
(25 zł for tests
for everybody!)

Atmosphere 2014: Switching from monolithic approach to modular cloud computing, within the context of providing high availability application - Maciej Kuzniar

  • 1.
    Switching from monolithicapproach to modular cloud computing Within the context of providing high availability application Maciej Kuźniar, Oktawave
  • 2.
    W h yare w e u su ally n o t p ro gram m in g in assem b ler?
  • 3.
    highly complicated require strongknowledge about physical architecture inconvenient susceptible for mistakes
  • 4.
    Instead, we arecommonly using mid & high level languages, expecting to get proper advantages.
  • 5.
    access to rich andfunctional libraries syntax hints logical verifcation loop condition checks
  • 6.
    We sometimes even switchto scripting languages. fexibility agile change management platform independency
  • 7.
    We are looking forsimplifcation. choosing ready to use ideas/algorithms choosing ready to use libs/modules universal interfaces
  • 8.
    And where do allof these lead us to?
  • 9.
    Your app become “all-in-one”. Yourapp become monolithic. Your app become slow.
  • 10.
    And the worstpart: your app is unpredictable.
  • 11.
    Why? unexpected algorithms behaviour whilein stress unknown libs/modules interacton/risks usually undefned ability to scale undefned total cost of new product/features inserton inevitable maintenance breaks Why? unexpected algorithms behaviour while in stress unknown libs/modules interacton/risks usually undefned ability to scale undefned total cost of new product/features inserton inevitable maintenance breaks
  • 12.
    So what can wedo about it?
  • 13.
    You may letyour app to cooperate with others. The others are usually better in their jobs.
  • 14.
    Wait a minute.So you want me to exchange my beloved algorithms and libraries with ready to use services?
  • 15.
    Yes! Swap your lib withthe service Yes! Swap your lib with the service determined performancedetermined performance determined availabilitydetermined availability elastic and fitted costs elastic and fitted costs clear interfaceclear interface
  • 16.
    All right, smartguy. But where are the examples?
  • 17.
    There are tons ofready to use services. In the cloud! object storage databases messaging in-memory cache real-time processing Big data DNS
  • 18.
    Object storage tons ofstatic data stored in the cloud remotely & on-demand short data processing chain (browser <->storage) lower processing latency embedded ACL separating data from application processing physical security by replication simple REST API charged by used space
  • 19.
    Databases predictable performance vertical andhorizontal scalability including smart load balancing option SQL compatible easy to deploy charged by computing power & used space
  • 20.
    Messaging persistent and secure messagestoring easy to publish or consume messages simplifed communication between participants ability to separate application modules while keeping communication between charged by message count
  • 21.
    Real-time in memory caching usuallycompatible with memcached or redis improve application performance by storing critical in low-latency memory may be use as cache for database queries result, session handling, intensive calculation results include replication option ability to build multi-node cache cluster with simple API/interface charged by size of memory granted
  • 22.
    Real-time processing can collect andprocess hundred of terabytes hourly data can be collected from hundreds of thousands of sources allows to to easily write applications that process information in real-time from sources such as web site click-streams, marketing and fnancial information can be use for marketing and fnancial information, manufacturing instrumentation and social media, and operational logs, metering data, mobile devices ability to continuously analyse data at any volume and throughput, in real-time charged by memory consumption and CPU usage
  • 23.
    Big data usually forbatch processing of large amount of data throgh standardised interface with cloud - instant availability (without expensive on-site infrastructure goods) unlimited scalability charged hourly by granted space and computational power
  • 24.
    SMART Anycast DNS spreadDNS trafc across multiple physical locations answer provided by location with the fastest path by constantly monitoring (watch.oktawave) ability to failover one or more servers running your application Embedded round-robin and response time load balancing across geo regions or servers inside one datacenter Mixed weight & response time load balancing Smart load balancing based on .js script included in your site which: collect speed counters directly on customer browser and transfer them DNS engine (browser response time) GeoIP analytics BGP latency calucations charged by queries count
  • 25.
    See h owm an y fu n ctio n s o f yo u r a p p lica tio n ca n b o n th e o u tsid e. Ju st re lax an d fo cu s o n w h at is tru ly i
  • 26.
    Thank you! Visit oursite: w w w.oktaw ave.com (25 zł for tests for everybody!)