SlideShare a Scribd company logo
Arnon
 Rotem-Gal-Oz




Building reliable systems
from unreliable components
Arnon Rotem-Gal-Oz
What’s in a 9
0.99 reliability




We have a nice little legacy
   business component
And we move it to SOA

0.99     0.99    0.99




 0.99    0.99    0.99




 0.99    0.99   0.99
Failsafe hardware




       Status Technologies
       FT Server
Or try to detect failure , handle it and
minimize its effect on the business service




© Rosendahl
BEFORE WE BEGIN
SOA
              Adheres to     Policy     governed by


               Binds to     End Point       Exposes

                             Serves

 Service
              Understands   Contracts   implements        Service
Consumer

                            describes
                                                                    Key

                                                                          Component

           Sends/Receives   Messages     Sends/Receives                   Relation
Distributed   Pipes and   Layered    Client
  Agents        Filters   System     Server




                                       Stateless
                                        Comm.




                                    SOA is derived from
                  SOA                  other styles
SOA vs. REST
Distributed   Pipes and   Layered   Client        Replicated      Uniform    Virtual
  Agents        Filters   System    Server        Repository     Interface   Machine




                                      Stateless                              Code On
                                                       Cacheable
                                       Comm.                                 Demand




                  SOA                                          REST
System                                   Mobile Integration
                    3G Video                                    Dedicated
Monitoring                                     MMS                                      3rd parties
                      Calls                                       Client

  Usage
 Datmart                     Applications                                       Ad Management

                                                                           Targeted        Campaign
  Billing      Acquisition      Interactions         branding
                                                                          Advertizing       Mgmt.



Reporting                                      Resources

Data mining                                                                         Reference
& Statistics         Interactions                       Links
                                                                                      Data

                                           Link Managment
  Reports
                                                             Publishing
                      Data                Web                                     Interaction
                                                               tools
                   Interfaces          Front-end                                   Designer
                                                            integration
Load balancer                                                                                   Smart
                                                                                                    phones

   Web           Web              MMS                3G                  3G
  Server        Server           Gateway           Gateway             Gateway
 (IIS/Apache   (IIS/Apache                                                                          Camera
                                                                                                    Phones


 DMZ
                                                  Firewall

                                                                   Load balancer


       App               App               App                  App                                       App
                                                                                       App                              App
      Server            Server            Server               Server                                    Server
                                                                                      Server                           Server




                                                                                                                       Operational
                             Firewall
Backend
                  BI &                                  Sync.                                                Paper
     NMS                             Links
                Reporting         Registeration        Server                                                Editor

                                                                                        Web
                                                                           Firewall



                                                                                       Server
                                                                                      (IIS/Apache
    DB         Datamart                DB                                                                Advertizing
                                                                                                           clients
    Links            usage          References                Admin
                                                             Console
                                                                                        DMZ
CHALLENGE – SERVICE
AVAILABILITY
What’s the effect of a failure - Server



    E1 line = 30
 concurrent video
                    Call Flow
        calls
                     Service
Service Instance

                                 Service Business
                                       logic




End point

  reaction          Distribute

  request       Dispatcher
             Edge
                                        Service Instance
What’s the effect of a failure - Channel

                                 Call Flow
                     Call Flow Channel            Call Flow
                       Call Flow
                         Call Flow        Call FlowChannel
                     Channel
                        Channel Flow Channel
                            Call
                          Channel
                    Call Flow
                             Channel
                          Call Flow            Call Flow
    E1 line = 30    Channel       Call Flow
 concurrent video      Call Flow Channel Channel
                           Channel

        calls           Channel Call Flow
                       Call Flow Channel FlowCall
                        Channel Call FlowChannel
                          Call FlowChannel
                           Channel
Service Instance with NLB

Real IP : 1.1.1.4   Real IP : 1.1.1.3         Real IP : 1.1.1.2
 Windows Host        Cluster Host               Cluster Host
                           Service                   Service
        Edge                                        Instance
                          Instance

   Windows Kernel      Windows Kernel             Windows Kernel

                          TCP/IP                     TCP/IP
      TCP/IP

                        NLB Driver                 NLB Driver

    NIC Driver
                        NIC Driver                 NIC Driver



        NIC                 NIC                          NIC


                                  Virtual IP : 1.1.1.1
Virtual Endpoint
Request/Reply


                          EndPoint

                                              2.
                       1. Request
                                          Synchronous
                                           processing
                        3. Reply


Service Consumer                     Service
Things look Cool & Simple ™

3G                               Session
Call                            negations




        Render                                           Image
        resutls                                        extraction




                  Translation
                                            identification
                    to links
3G GW
                 IVP (RV)
 (RV)                                              SIP Listner

              3G VAS (Cestel)

                                                    RTP Image Extractor


    WS                3G Builder (Cestel)

                                                           Alg. Engine
WebRenderer
                                Resource Manager


                                                       Dispatcher

              WebConnector



   Turn out Complicated & Ugly ™
Parallel Pipelines
                                   Key
                                         SOA Component      Pattern Component      Queue

                                         Relation           Concern/attribute




                                                     pipeline                              pipeline
                Edge
Request                                                                           EndPoint
                       Request 1         EndPoint
          EndPoint
                       Request 2                         Perform                             Perform
Reaction                                                   Task                                Task




                                                           pipeline
                                                                                EndPoint
                                                                Perform
                                                                  Task                         Service
Inversion of Communications
Consumer view
  var sendMmsEvent = new SendMmsEvent()
     {
         FromNumber = simpleMessageDetails.DialedNumber,
         Subject = mmsContents.Subject,
         ToNumber = simpleMessageDetails.Sender,
         ImageExtension = mmsContents.ImageExtension,
         ImageAsByteArray = mmsContents.Image,
         TextAsByteArray = mmsContents.Text
     };
     eventBroker.RaiseEvent(sendMmsEvent);




                 http://www.flickr.com/photos/crimson_wolf/2851737125/sizes/l/
Service view
[ServiceContract]
public interface ImPostOffice : ImContract, IHandleSendCoupon,
IHandleSendSms,IHandleStatus,IHandleAdminStatus,IHandleWapLink,
IHandleSendMms
{

}

[ServiceContract]
public interface IHandleSendMms
{
    [OperationContract]
    int SendMms(SendMmsEvent eventOccured);
}

[DataContract]
    public class SendMmsEvent : ImEvent
    {
        /// <summary>
        /// end user's number. should be in international format: +[country-code]number. Example: +491737692260
        /// </summary>
        [DataMember]
        public string ToNumber { get; set; }
        /// <summary>
        /// service's number, usually a short-code. Example: 84343
        /// </summary>
        [DataMember]
        public string FromNumber { get; set; }
Edge translates external structures to
                internal ones
public int SendMms(SendMmsEvent eventOccured)
   {
       var eventContext = eventOccured.ToString();
       if (log.IsDebugEnabled)
           log.Debug("inside 'SendMms', event context = [" + eventContext + "]");
       var fromNumber = eventOccured.FromNumber;
       var sender = mmsSenderFactory.Get(fromNumber);
       if (null == sender)
       {
           if (log.IsWarnEnabled)
               log.Warn("cannot get mms sender derived from '" + (fromNumber ?? "null") + "'");
           return 0;
       }

       IMmsSubmitResponse response;
       try
       {
           var mmsMessageDetails = new MmsMessageDetails(eventOccured.ToNumber,
                                         eventOccured.TextAsByteArray,
                                         eventOccured.ImageAsByteArray,
                                         eventOccured.ImageExtension,
                                         eventOccured.Subject);
           response = sender.Submit(mmsMessageDetails);
       }
       catch (Exception ex)
       {
           log.Error("cannot send mms message, context = [" + eventContext + "]", ex);
           return 0;
       }
       if (log.IsInfoEnabled)
       {
           var responseMessage = (null == response) ? "null" : response.ToString();
           log.Info("sent mms with event context = [" + eventContext + "], response = [" +
responseMessage + "]");
       }
Sagas tie instances together for
         conversations
Call Recovery




         Image
        Extractor

SIP
                      Identification
Alternative : Orchestration
 Service                               Service

     reaction        request



                         Manage                  Protocol
                         Process

                         Schedule          Coordinator

route
request                                          monitor
           Workflow instance                     Offline
                                                 designer
                             Host
     Workflow Engine       Workflows       Auxiliary tools

Orchestration platform
Be Wary of Nano-Services
CHALLENGE - MANAGEMENT
Blogjecting Watchdog
                      Edge                 Service

           EndPoint


                                Monitor
                                          Watchdog
                 Watchdog
                               Monitor    Agent
Request          Edge
           EndPoint                          Heal

 Reports                                   Monitor
                      Report
                                                     Monitor
                                             Log      Monitor
Blogjects concept is about
   collaborating objects
WatchDog




Service A   Service B   WDWatcher
WatchDog
                 Call Recovery




                    Image
                   Extractor

           SIP
                                 Identification
Service Monitor


                     Collect
                      Metrics
                     collection      Status
        Fault
      Monitoring    Reporting &
       Security    Dashboarding                Edge/Service
      monitoring
                                      Status
        Policy
      governance         Notify

                                   Commands
                         Control    In
    Monitor        Act                         Edge/Service
Service Monitor
RESTful resource management

  root      1             2          3

                        Abcde/
         Sessions/
                         Efgh/
    /

         Resources/   Dispatchers/   Xyz/
http://devrig:52141/RM/Sessions/abc/
• ATOMPUB
  – Session details
     • URI (ID)
     • State (start/end/status etc.)
     • Resources
        – Knows status
        – URI for the Resource representation on the RM
        – URI for the Resource itself
Keep the BIT




http://www.flickr.com/photos/37643027@N00/2050024263/sizes/o/
WatchDog
              Call
            Recovery




              Image
             Extractor




                         X
      SIP
                         Identification

                                          WatchDog



             3G Call
                                          Liveliness
                                           Monitor
CHALLENGE – MULTI-TENNANCY
(LIES, I TELL YOU, ALL LIES)
Same event different subscribers

         Player
      (interaction                 Call Flow
       Renderer)

                      Play Movie
                         Event




      Bridge to 3rd
                                   Call Flow
          Party
Routing
[ServiceContract]
[Participate("3G")]
public interface ImPlayer : ImContract, IHandleCallStarted, IHandleC
IHandlePlayMovie,IHandleCallAborted
{
}



[ServiceContract]
[Participate("3GPartner")]
public interface ImXsightsGateWay : ImContract,
                                    IHandleCallAborted,
                                    IHandlePlayMovie,
                                    IHandleReadyForSearch,
                                    IHandleSearchStarted,
                                    IHandleJoinThirdParty

{
}
Raise a saga initiating event




Initiator A                                   Participant A
                                              Capacity : 2




                                              Participant B
Initiator B                                   Capacity : 1




                         Now what ?!
Reservation Pattern
Service Instance #1
              Control                              Control
               Edge                                 Edge Service Instance #2
Business       Event                                    Control Business
                                                    Event
 Logic         Broker                                    Edge
                                                    Broker       Logic
              Resource                                    Event      Business
                                                   Resource
              Allocator                                  Service Host Logic
                                                         Broker
                                                   Allocator
      Service Host
                                                       Resource Host
                                                           Service
                                                             Service Host
                                                       Allocator

                            Service Host                       Service Host

                          Control
Reservation                Edge
                           Event         Business
                           Broker         Logic
                          Resource
                                Service Host
                          Allocator
                                    Service Host
Good old
2PC to the
  rescue
Takeaways

• Things break
• Decouple
• Fail Fast
• Monitor & Detect
• Compensate

• Throw state unto others
Arnon Rotem-Gal-Oz




         @arnonrgo
      http://arnon.me
http://www.cloudvalue.com

More Related Content

What's hot

How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
Novell
 
PHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloudPHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloud
pietrobr
 
Venus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceVenus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScience
OW2
 
SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session
WSO2
 
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud InfrastructurePrivate Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
Microsoft TechNet - Belgium and Luxembourg
 
Jentrata b2b gateway
Jentrata b2b gatewayJentrata b2b gateway
Jentrata b2b gateway
Wayne Bingham
 
Soa con8642 pdf_8642_0001
Soa con8642 pdf_8642_0001Soa con8642 pdf_8642_0001
Soa con8642 pdf_8642_0001
jucaab
 
EDI WS API ECGridOS Web Services
EDI WS API ECGridOS Web ServicesEDI WS API ECGridOS Web Services
EDI WS API ECGridOS Web Services
bizquirk
 
Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...
Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...
Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...
CA API Management
 
Viestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / ExchangeViestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / Exchange
Salcom Group
 
Soa cloud con8968_pdf_8968_0001
Soa cloud con8968_pdf_8968_0001Soa cloud con8968_pdf_8968_0001
Soa cloud con8968_pdf_8968_0001
jucaab
 
Fast, Strong & Nimble Mobile Performance Testing
Fast, Strong & Nimble Mobile Performance TestingFast, Strong & Nimble Mobile Performance Testing
Fast, Strong & Nimble Mobile Performance Testing
SOASTA
 
ACORD Web Services
ACORD Web ServicesACORD Web Services
ACORD Web Services
chris_bertelsen
 
Configuring and deploying a private cloud with system center 2012
Configuring and deploying a private cloud with system center 2012Configuring and deploying a private cloud with system center 2012
Configuring and deploying a private cloud with system center 2012
Microsoft TechNet - Belgium and Luxembourg
 
Mobile App Assurance: Yesterday, Today, and Tomorrow.
Mobile App Assurance: Yesterday, Today, and Tomorrow.Mobile App Assurance: Yesterday, Today, and Tomorrow.
Mobile App Assurance: Yesterday, Today, and Tomorrow.
Bob Binder
 
Service Delivery Platform
Service Delivery PlatformService Delivery Platform
Service Delivery Platform
Pitra Satvika
 
Paul Butterworth Policy Based Approach
Paul  Butterworth    Policy  Based  ApproachPaul  Butterworth    Policy  Based  Approach
Paul Butterworth Policy Based Approach
SOA Symposium
 
New aspects of Cisco UC Interoperability
New aspects of Cisco UC InteroperabilityNew aspects of Cisco UC Interoperability
New aspects of Cisco UC Interoperability
Cisco Canada
 
Beyond SPML: Access Provisioning in a Services World
Beyond SPML: Access Provisioning in a Services WorldBeyond SPML: Access Provisioning in a Services World
Beyond SPML: Access Provisioning in a Services World
Nishant Kaushik
 
Managing Enterprise Services through Service Versioning & Governance - Impact...
Managing Enterprise Services through Service Versioning & Governance - Impact...Managing Enterprise Services through Service Versioning & Governance - Impact...
Managing Enterprise Services through Service Versioning & Governance - Impact...
Prolifics
 

What's hot (20)

How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
 
PHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloudPHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloud
 
Venus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceVenus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScience
 
SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session
 
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud InfrastructurePrivate Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
 
Jentrata b2b gateway
Jentrata b2b gatewayJentrata b2b gateway
Jentrata b2b gateway
 
Soa con8642 pdf_8642_0001
Soa con8642 pdf_8642_0001Soa con8642 pdf_8642_0001
Soa con8642 pdf_8642_0001
 
EDI WS API ECGridOS Web Services
EDI WS API ECGridOS Web ServicesEDI WS API ECGridOS Web Services
EDI WS API ECGridOS Web Services
 
Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...
Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...
Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...
 
Viestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / ExchangeViestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / Exchange
 
Soa cloud con8968_pdf_8968_0001
Soa cloud con8968_pdf_8968_0001Soa cloud con8968_pdf_8968_0001
Soa cloud con8968_pdf_8968_0001
 
Fast, Strong & Nimble Mobile Performance Testing
Fast, Strong & Nimble Mobile Performance TestingFast, Strong & Nimble Mobile Performance Testing
Fast, Strong & Nimble Mobile Performance Testing
 
ACORD Web Services
ACORD Web ServicesACORD Web Services
ACORD Web Services
 
Configuring and deploying a private cloud with system center 2012
Configuring and deploying a private cloud with system center 2012Configuring and deploying a private cloud with system center 2012
Configuring and deploying a private cloud with system center 2012
 
Mobile App Assurance: Yesterday, Today, and Tomorrow.
Mobile App Assurance: Yesterday, Today, and Tomorrow.Mobile App Assurance: Yesterday, Today, and Tomorrow.
Mobile App Assurance: Yesterday, Today, and Tomorrow.
 
Service Delivery Platform
Service Delivery PlatformService Delivery Platform
Service Delivery Platform
 
Paul Butterworth Policy Based Approach
Paul  Butterworth    Policy  Based  ApproachPaul  Butterworth    Policy  Based  Approach
Paul Butterworth Policy Based Approach
 
New aspects of Cisco UC Interoperability
New aspects of Cisco UC InteroperabilityNew aspects of Cisco UC Interoperability
New aspects of Cisco UC Interoperability
 
Beyond SPML: Access Provisioning in a Services World
Beyond SPML: Access Provisioning in a Services WorldBeyond SPML: Access Provisioning in a Services World
Beyond SPML: Access Provisioning in a Services World
 
Managing Enterprise Services through Service Versioning & Governance - Impact...
Managing Enterprise Services through Service Versioning & Governance - Impact...Managing Enterprise Services through Service Versioning & Governance - Impact...
Managing Enterprise Services through Service Versioning & Governance - Impact...
 

Viewers also liked

Wix.com Back-end Engineering Guild Manifesto
Wix.com Back-end Engineering Guild ManifestoWix.com Back-end Engineering Guild Manifesto
Wix.com Back-end Engineering Guild Manifesto
Aviran Mordo
 
Microservices - it's déjà vu all over again
Microservices  - it's déjà vu all over againMicroservices  - it's déjà vu all over again
Microservices - it's déjà vu all over again
Arnon Rotem-Gal-Oz
 
Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Scaling wix.com to 100 million users
Scaling wix.com to 100 million users
Aviran Mordo
 
Microservices and Redis #redisconf Keynote
Microservices and Redis #redisconf KeynoteMicroservices and Redis #redisconf Keynote
Microservices and Redis #redisconf Keynote
Chris Richardson
 
Scaling Wix engineering
Scaling Wix engineering Scaling Wix engineering
Scaling Wix engineering
Aviran Mordo
 
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Chris Richardson
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015
Aviran Mordo
 

Viewers also liked (7)

Wix.com Back-end Engineering Guild Manifesto
Wix.com Back-end Engineering Guild ManifestoWix.com Back-end Engineering Guild Manifesto
Wix.com Back-end Engineering Guild Manifesto
 
Microservices - it's déjà vu all over again
Microservices  - it's déjà vu all over againMicroservices  - it's déjà vu all over again
Microservices - it's déjà vu all over again
 
Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Scaling wix.com to 100 million users
Scaling wix.com to 100 million users
 
Microservices and Redis #redisconf Keynote
Microservices and Redis #redisconf KeynoteMicroservices and Redis #redisconf Keynote
Microservices and Redis #redisconf Keynote
 
Scaling Wix engineering
Scaling Wix engineering Scaling Wix engineering
Scaling Wix engineering
 
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015
 

Similar to Building reliable systems from unreliable components

Transaction-based Capacity Planning for greater IT Reliability™ webinar
Transaction-based Capacity Planning for greater IT Reliability™ webinar Transaction-based Capacity Planning for greater IT Reliability™ webinar
Transaction-based Capacity Planning for greater IT Reliability™ webinar
Metron
 
Patterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformPatterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services Platform
David Chou
 
Complex End-to-End Testing
Complex End-to-End TestingComplex End-to-End Testing
Complex End-to-End Testing
Erika Barron
 
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure PlatformMS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
Spiffy
 
6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services
GaryYoung
 
MPLS 2010: Network Enabled Cloud and Service Models
MPLS 2010: Network Enabled Cloud and Service ModelsMPLS 2010: Network Enabled Cloud and Service Models
MPLS 2010: Network Enabled Cloud and Service Models
Cisco Service Provider
 
Building and Managing Cloud Applications and Infrastructure
Building and Managing Cloud Applications and InfrastructureBuilding and Managing Cloud Applications and Infrastructure
Building and Managing Cloud Applications and Infrastructure
Darren Cunningham
 
Cloud computing overview
Cloud computing overviewCloud computing overview
Cloud computing overview
Abdul Rasheed Feroz Khan
 
Lap around windows azure
Lap around windows azureLap around windows azure
Lap around windows azure
Manish Corriea
 
Mobile Web Security Bootstrap on Ericsson Labs
Mobile Web Security Bootstrap on Ericsson LabsMobile Web Security Bootstrap on Ericsson Labs
Mobile Web Security Bootstrap on Ericsson Labs
Ericsson Labs
 
Guard Era Corp Brochure 2008
Guard Era Corp Brochure 2008Guard Era Corp Brochure 2008
Guard Era Corp Brochure 2008
GuardEra Access Solutions, Inc.
 
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Lucas Jellema
 
OreDev 2008: Software + Services
OreDev 2008: Software + ServicesOreDev 2008: Software + Services
OreDev 2008: Software + Services
ukdpe
 
Viestintäaamupäivä exchange 2013
Viestintäaamupäivä exchange 2013Viestintäaamupäivä exchange 2013
Viestintäaamupäivä exchange 2013
Salcom Group
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategy
drmarcustillett
 
Deja vu.idc.solutions
Deja vu.idc.solutionsDeja vu.idc.solutions
Deja vu.idc.solutions
dejavusolutions
 
Oracle SOA Suite Overview - Integration in a Service-Oriented World
Oracle SOA Suite Overview - Integration in a Service-Oriented WorldOracle SOA Suite Overview - Integration in a Service-Oriented World
Oracle SOA Suite Overview - Integration in a Service-Oriented World
OracleContractors
 
Enabling Content Workflows in the Cloud
Enabling Content Workflows in the CloudEnabling Content Workflows in the Cloud
Enabling Content Workflows in the Cloud
Amazon Web Services
 
Development Model for The Cloud
Development Model for The CloudDevelopment Model for The Cloud
Development Model for The Cloud
umityalcinalp
 
Corporate overview 2.0
Corporate overview 2.0Corporate overview 2.0
Corporate overview 2.0
Laxman Marpalle
 

Similar to Building reliable systems from unreliable components (20)

Transaction-based Capacity Planning for greater IT Reliability™ webinar
Transaction-based Capacity Planning for greater IT Reliability™ webinar Transaction-based Capacity Planning for greater IT Reliability™ webinar
Transaction-based Capacity Planning for greater IT Reliability™ webinar
 
Patterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformPatterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services Platform
 
Complex End-to-End Testing
Complex End-to-End TestingComplex End-to-End Testing
Complex End-to-End Testing
 
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure PlatformMS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
 
6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services
 
MPLS 2010: Network Enabled Cloud and Service Models
MPLS 2010: Network Enabled Cloud and Service ModelsMPLS 2010: Network Enabled Cloud and Service Models
MPLS 2010: Network Enabled Cloud and Service Models
 
Building and Managing Cloud Applications and Infrastructure
Building and Managing Cloud Applications and InfrastructureBuilding and Managing Cloud Applications and Infrastructure
Building and Managing Cloud Applications and Infrastructure
 
Cloud computing overview
Cloud computing overviewCloud computing overview
Cloud computing overview
 
Lap around windows azure
Lap around windows azureLap around windows azure
Lap around windows azure
 
Mobile Web Security Bootstrap on Ericsson Labs
Mobile Web Security Bootstrap on Ericsson LabsMobile Web Security Bootstrap on Ericsson Labs
Mobile Web Security Bootstrap on Ericsson Labs
 
Guard Era Corp Brochure 2008
Guard Era Corp Brochure 2008Guard Era Corp Brochure 2008
Guard Era Corp Brochure 2008
 
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
 
OreDev 2008: Software + Services
OreDev 2008: Software + ServicesOreDev 2008: Software + Services
OreDev 2008: Software + Services
 
Viestintäaamupäivä exchange 2013
Viestintäaamupäivä exchange 2013Viestintäaamupäivä exchange 2013
Viestintäaamupäivä exchange 2013
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategy
 
Deja vu.idc.solutions
Deja vu.idc.solutionsDeja vu.idc.solutions
Deja vu.idc.solutions
 
Oracle SOA Suite Overview - Integration in a Service-Oriented World
Oracle SOA Suite Overview - Integration in a Service-Oriented WorldOracle SOA Suite Overview - Integration in a Service-Oriented World
Oracle SOA Suite Overview - Integration in a Service-Oriented World
 
Enabling Content Workflows in the Cloud
Enabling Content Workflows in the CloudEnabling Content Workflows in the Cloud
Enabling Content Workflows in the Cloud
 
Development Model for The Cloud
Development Model for The CloudDevelopment Model for The Cloud
Development Model for The Cloud
 
Corporate overview 2.0
Corporate overview 2.0Corporate overview 2.0
Corporate overview 2.0
 

More from Arnon Rotem-Gal-Oz

Taking ML to production - a journey
Taking ML to production - a journeyTaking ML to production - a journey
Taking ML to production - a journey
Arnon Rotem-Gal-Oz
 
Apache spark
Apache sparkApache spark
Apache spark
Arnon Rotem-Gal-Oz
 
Fallacies of Distributed Computing
Fallacies of Distributed Computing Fallacies of Distributed Computing
Fallacies of Distributed Computing
Arnon Rotem-Gal-Oz
 
Docker & Kubernetes intro
Docker & Kubernetes introDocker & Kubernetes intro
Docker & Kubernetes intro
Arnon Rotem-Gal-Oz
 
Docker Intro
Docker IntroDocker Intro
Docker Intro
Arnon Rotem-Gal-Oz
 
Data security @ the personal level
Data security @ the personal levelData security @ the personal level
Data security @ the personal level
Arnon Rotem-Gal-Oz
 
Big data in the cloud - welcome to cost oriented design
Big data in the cloud - welcome to cost oriented designBig data in the cloud - welcome to cost oriented design
Big data in the cloud - welcome to cost oriented design
Arnon Rotem-Gal-Oz
 
Distilling insights @ AppsFlyer
Distilling insights @ AppsFlyerDistilling insights @ AppsFlyer
Distilling insights @ AppsFlyer
Arnon Rotem-Gal-Oz
 
Distilling Insights @ Appsflyer (Data Architecture)
Distilling Insights @ Appsflyer (Data Architecture)Distilling Insights @ Appsflyer (Data Architecture)
Distilling Insights @ Appsflyer (Data Architecture)
Arnon Rotem-Gal-Oz
 
Big data Overview
Big data OverviewBig data Overview
Big data Overview
Arnon Rotem-Gal-Oz
 
Hadoop YARN overview
Hadoop YARN overviewHadoop YARN overview
Hadoop YARN overview
Arnon Rotem-Gal-Oz
 
SAF
SAFSAF
REST presentation
REST presentationREST presentation
REST presentation
Arnon Rotem-Gal-Oz
 
SOA & Big Data
SOA & Big DataSOA & Big Data
SOA & Big Data
Arnon Rotem-Gal-Oz
 
Why the JVM?
Why the JVM?Why the JVM?
Why the JVM?
Arnon Rotem-Gal-Oz
 
Azure migration
Azure migrationAzure migration
Azure migration
Arnon Rotem-Gal-Oz
 
Things to think about while architecting azure solutions
Things to think about while architecting azure solutionsThings to think about while architecting azure solutions
Things to think about while architecting azure solutions
Arnon Rotem-Gal-Oz
 
Soa
Soa Soa
Rest
RestRest
SOA patterns
SOA patterns SOA patterns
SOA patterns
Arnon Rotem-Gal-Oz
 

More from Arnon Rotem-Gal-Oz (20)

Taking ML to production - a journey
Taking ML to production - a journeyTaking ML to production - a journey
Taking ML to production - a journey
 
Apache spark
Apache sparkApache spark
Apache spark
 
Fallacies of Distributed Computing
Fallacies of Distributed Computing Fallacies of Distributed Computing
Fallacies of Distributed Computing
 
Docker & Kubernetes intro
Docker & Kubernetes introDocker & Kubernetes intro
Docker & Kubernetes intro
 
Docker Intro
Docker IntroDocker Intro
Docker Intro
 
Data security @ the personal level
Data security @ the personal levelData security @ the personal level
Data security @ the personal level
 
Big data in the cloud - welcome to cost oriented design
Big data in the cloud - welcome to cost oriented designBig data in the cloud - welcome to cost oriented design
Big data in the cloud - welcome to cost oriented design
 
Distilling insights @ AppsFlyer
Distilling insights @ AppsFlyerDistilling insights @ AppsFlyer
Distilling insights @ AppsFlyer
 
Distilling Insights @ Appsflyer (Data Architecture)
Distilling Insights @ Appsflyer (Data Architecture)Distilling Insights @ Appsflyer (Data Architecture)
Distilling Insights @ Appsflyer (Data Architecture)
 
Big data Overview
Big data OverviewBig data Overview
Big data Overview
 
Hadoop YARN overview
Hadoop YARN overviewHadoop YARN overview
Hadoop YARN overview
 
SAF
SAFSAF
SAF
 
REST presentation
REST presentationREST presentation
REST presentation
 
SOA & Big Data
SOA & Big DataSOA & Big Data
SOA & Big Data
 
Why the JVM?
Why the JVM?Why the JVM?
Why the JVM?
 
Azure migration
Azure migrationAzure migration
Azure migration
 
Things to think about while architecting azure solutions
Things to think about while architecting azure solutionsThings to think about while architecting azure solutions
Things to think about while architecting azure solutions
 
Soa
Soa Soa
Soa
 
Rest
RestRest
Rest
 
SOA patterns
SOA patterns SOA patterns
SOA patterns
 

Recently uploaded

What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
Fwdays
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
manji sharman06
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
FilipTomaszewski5
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
leebarnesutopia
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
Sease
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 

Recently uploaded (20)

What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 

Building reliable systems from unreliable components

  • 1. Arnon Rotem-Gal-Oz Building reliable systems from unreliable components
  • 4. 0.99 reliability We have a nice little legacy business component
  • 5. And we move it to SOA 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99
  • 6. Failsafe hardware Status Technologies FT Server
  • 7. Or try to detect failure , handle it and minimize its effect on the business service © Rosendahl
  • 9. SOA Adheres to Policy governed by Binds to End Point Exposes Serves Service Understands Contracts implements Service Consumer describes Key Component Sends/Receives Messages Sends/Receives Relation
  • 10. Distributed Pipes and Layered Client Agents Filters System Server Stateless Comm. SOA is derived from SOA other styles
  • 11. SOA vs. REST Distributed Pipes and Layered Client Replicated Uniform Virtual Agents Filters System Server Repository Interface Machine Stateless Code On Cacheable Comm. Demand SOA REST
  • 12.
  • 13. System Mobile Integration 3G Video Dedicated Monitoring MMS 3rd parties Calls Client Usage Datmart Applications Ad Management Targeted Campaign Billing Acquisition Interactions branding Advertizing Mgmt. Reporting Resources Data mining Reference & Statistics Interactions Links Data Link Managment Reports Publishing Data Web Interaction tools Interfaces Front-end Designer integration
  • 14. Load balancer Smart phones Web Web MMS 3G 3G Server Server Gateway Gateway Gateway (IIS/Apache (IIS/Apache Camera Phones DMZ Firewall Load balancer App App App App App App App Server Server Server Server Server Server Server Operational Firewall Backend BI & Sync. Paper NMS Links Reporting Registeration Server Editor Web Firewall Server (IIS/Apache DB Datamart DB Advertizing clients Links usage References Admin Console DMZ
  • 16. What’s the effect of a failure - Server E1 line = 30 concurrent video Call Flow calls Service
  • 17. Service Instance Service Business logic End point reaction Distribute request Dispatcher Edge Service Instance
  • 18. What’s the effect of a failure - Channel Call Flow Call Flow Channel Call Flow Call Flow Call Flow Call FlowChannel Channel Channel Flow Channel Call Channel Call Flow Channel Call Flow Call Flow E1 line = 30 Channel Call Flow concurrent video Call Flow Channel Channel Channel calls Channel Call Flow Call Flow Channel FlowCall Channel Call FlowChannel Call FlowChannel Channel
  • 19. Service Instance with NLB Real IP : 1.1.1.4 Real IP : 1.1.1.3 Real IP : 1.1.1.2 Windows Host Cluster Host Cluster Host Service Service Edge Instance Instance Windows Kernel Windows Kernel Windows Kernel TCP/IP TCP/IP TCP/IP NLB Driver NLB Driver NIC Driver NIC Driver NIC Driver NIC NIC NIC Virtual IP : 1.1.1.1
  • 21. Request/Reply EndPoint 2. 1. Request Synchronous processing 3. Reply Service Consumer Service
  • 22. Things look Cool & Simple ™ 3G Session Call negations Render Image resutls extraction Translation identification to links
  • 23. 3G GW IVP (RV) (RV) SIP Listner 3G VAS (Cestel) RTP Image Extractor WS 3G Builder (Cestel) Alg. Engine WebRenderer Resource Manager Dispatcher WebConnector Turn out Complicated & Ugly ™
  • 24. Parallel Pipelines Key SOA Component Pattern Component Queue Relation Concern/attribute pipeline pipeline Edge Request EndPoint Request 1 EndPoint EndPoint Request 2 Perform Perform Reaction Task Task pipeline EndPoint Perform Task Service
  • 26. Consumer view var sendMmsEvent = new SendMmsEvent() { FromNumber = simpleMessageDetails.DialedNumber, Subject = mmsContents.Subject, ToNumber = simpleMessageDetails.Sender, ImageExtension = mmsContents.ImageExtension, ImageAsByteArray = mmsContents.Image, TextAsByteArray = mmsContents.Text }; eventBroker.RaiseEvent(sendMmsEvent); http://www.flickr.com/photos/crimson_wolf/2851737125/sizes/l/
  • 27. Service view [ServiceContract] public interface ImPostOffice : ImContract, IHandleSendCoupon, IHandleSendSms,IHandleStatus,IHandleAdminStatus,IHandleWapLink, IHandleSendMms { } [ServiceContract] public interface IHandleSendMms { [OperationContract] int SendMms(SendMmsEvent eventOccured); } [DataContract] public class SendMmsEvent : ImEvent { /// <summary> /// end user's number. should be in international format: +[country-code]number. Example: +491737692260 /// </summary> [DataMember] public string ToNumber { get; set; } /// <summary> /// service's number, usually a short-code. Example: 84343 /// </summary> [DataMember] public string FromNumber { get; set; }
  • 28. Edge translates external structures to internal ones public int SendMms(SendMmsEvent eventOccured) { var eventContext = eventOccured.ToString(); if (log.IsDebugEnabled) log.Debug("inside 'SendMms', event context = [" + eventContext + "]"); var fromNumber = eventOccured.FromNumber; var sender = mmsSenderFactory.Get(fromNumber); if (null == sender) { if (log.IsWarnEnabled) log.Warn("cannot get mms sender derived from '" + (fromNumber ?? "null") + "'"); return 0; } IMmsSubmitResponse response; try { var mmsMessageDetails = new MmsMessageDetails(eventOccured.ToNumber, eventOccured.TextAsByteArray, eventOccured.ImageAsByteArray, eventOccured.ImageExtension, eventOccured.Subject); response = sender.Submit(mmsMessageDetails); } catch (Exception ex) { log.Error("cannot send mms message, context = [" + eventContext + "]", ex); return 0; } if (log.IsInfoEnabled) { var responseMessage = (null == response) ? "null" : response.ToString(); log.Info("sent mms with event context = [" + eventContext + "], response = [" + responseMessage + "]"); }
  • 29. Sagas tie instances together for conversations
  • 30. Call Recovery Image Extractor SIP Identification
  • 31. Alternative : Orchestration Service Service reaction request Manage Protocol Process Schedule Coordinator route request monitor Workflow instance Offline designer Host Workflow Engine Workflows Auxiliary tools Orchestration platform
  • 32. Be Wary of Nano-Services
  • 34. Blogjecting Watchdog Edge Service EndPoint Monitor Watchdog Watchdog Monitor Agent Request Edge EndPoint Heal Reports Monitor Report Monitor Log Monitor
  • 35. Blogjects concept is about collaborating objects
  • 36. WatchDog Service A Service B WDWatcher
  • 37. WatchDog Call Recovery Image Extractor SIP Identification
  • 38.
  • 39. Service Monitor Collect Metrics collection Status Fault Monitoring Reporting & Security Dashboarding Edge/Service monitoring Status Policy governance Notify Commands Control In Monitor Act Edge/Service Service Monitor
  • 40. RESTful resource management root 1 2 3 Abcde/ Sessions/ Efgh/ / Resources/ Dispatchers/ Xyz/
  • 41. http://devrig:52141/RM/Sessions/abc/ • ATOMPUB – Session details • URI (ID) • State (start/end/status etc.) • Resources – Knows status – URI for the Resource representation on the RM – URI for the Resource itself
  • 43. WatchDog Call Recovery Image Extractor X SIP Identification WatchDog 3G Call Liveliness Monitor
  • 44. CHALLENGE – MULTI-TENNANCY (LIES, I TELL YOU, ALL LIES)
  • 45. Same event different subscribers Player (interaction Call Flow Renderer) Play Movie Event Bridge to 3rd Call Flow Party
  • 46. Routing [ServiceContract] [Participate("3G")] public interface ImPlayer : ImContract, IHandleCallStarted, IHandleC IHandlePlayMovie,IHandleCallAborted { } [ServiceContract] [Participate("3GPartner")] public interface ImXsightsGateWay : ImContract, IHandleCallAborted, IHandlePlayMovie, IHandleReadyForSearch, IHandleSearchStarted, IHandleJoinThirdParty { }
  • 47. Raise a saga initiating event Initiator A Participant A Capacity : 2 Participant B Initiator B Capacity : 1 Now what ?!
  • 49. Service Instance #1 Control Control Edge Edge Service Instance #2 Business Event Control Business Event Logic Broker Edge Broker Logic Resource Event Business Resource Allocator Service Host Logic Broker Allocator Service Host Resource Host Service Service Host Allocator Service Host Service Host Control Reservation Edge Event Business Broker Logic Resource Service Host Allocator Service Host
  • 50. Good old 2PC to the rescue
  • 51. Takeaways • Things break • Decouple • Fail Fast • Monitor & Detect • Compensate • Throw state unto others
  • 52. Arnon Rotem-Gal-Oz @arnonrgo http://arnon.me http://www.cloudvalue.com