atmosphere 2014: switching from monolithic approach to modular cloud computing, within the context...
DESCRIPTION
This presentation is to demonstrate, how the homogenous and centralized network architectures cease to operate efficiently and how limited are our abilities to respond to on-demand computing power in such cases. We will show you how to redesign monolithic storage architectures into modular systems, as well as how to migrate them to a scalable and flexible cloud environment. Maciej Kuzniar - Founder and CEO of the project Oktawave. Passionate about technology related to the processing and data storage, having 10 years of experience working for enterprise customers (banks, telecoms, fmcg). Author of the concepts that support the development of tech startups and architectural solutions to ensure high HA and SLA for IT systems.TRANSCRIPT
Switching from monolithic approach to modular cloud computingWithin the context of providing high availability application
Maciej Kuźniar, Oktawave
W h y a re w e u su a l ly n o t p ro g ra m m in g in a s s e m b le r ?
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
managementplatform
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 interface clear 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
S e e h ow m a n y fu n c t io n s o f y o u r a p p l ic a t io n c a n b e e xe cu te d o n th e o u ts id e . Ju s t re la x a n d fo c u s o n w h a t is t r u ly im p o r t a n t to y o u .
Thank you !
V isit our site :w w w .o ktaw ave.co m(25 zł for tests for everyb od y!)