Cloud Platforms adding Strength to Digital Solutions!

 

Cloud Platforms are getting stronger and humongous day by day. The two prominent cloud platforms that I got chance to work with and arguably the Market leaders - Microsoft with its Azure Cloud and Amazon with its Amazon Web Services (AWS), has a long list of services now offered through Cloud Platform. You can build Infrastructure, develop Web Apps & Mobile Apps, manage identity and access, do analytics, Internet of things, Database, IDEs and what not.april-hackathon-web-550x367

As a Digital Architect, I recently got chance to evaluate various offerings by cloud platform vendors and to recommend best ones as a part of Digital transformation being done for a customer. Following is what I went with and it looked to be a reasonable recommendations -

Infrastructure requirements – We opted for Azure VMs & Active Directory for managing servers. Every Digital WCM needs good amount of server resources, at the least 8 servers – Author and Publish instance for each DTAP (Dev, Test, Acceptance & Prod) environments. And if WCM is like Tridion, number may be more than double to support Dedicated Publisher, XPM and SmartTarget environments. Add to it another commonly used product for enterprise search like Solr, additional one server for each DTAP servers. Then add some DR servers and clustered servers for production. Did you realize, I have already reached to count of 40 servers Smile. Managing these many servers can be efficient only on Cloud.

Cache dynamic content – Its important that all the data being fed to Digital system is cached, it increases performance vastly. I have seen people caching static files and pages but forgetting the dynamic data, which becomes problem later on. Continuous improvements are going in Caching mechanisms, hence There are multiple option for Cloud Cache even from single vendor Azure, it has AppFabric, Managed Cache and Redis. We opted for Managed Cache, however Redis is the way forward.

Cache static files -  We opted for Azure CDN with origin server as Azure Storage to provide this solution. No Digital solutions now can live without CDN. Static files form huge chunk of the whole solution  for any Digital System. No customer are now ready to bear the latency of static files at any of their location due to non-availability of CDN.

Media files smooth rendering across browsers and devices – This is another important requirement any Digital transformation demands for. There are huge numbers of video types and browsers, some types may run on one browser but may not on other browsers or devices. To cater to this problem, Azure Platform offers something beautiful called Azure Media Services. Configure it with a origin server like Azure storage and it will do the rest of encoding, streaming, indexing etc

Email solution – Traditional emails servers are hard to manage and sometimes even not easily compatible with Cloud Platforms, hence we opted for cloud based email solution called SendGrid. it had seamless integration with Azure servers.

Azure Active Directory – Offers Single sign on facility, works with multiple platforms and devices, supports multi factor authentication.

The list of Cloud offerings for Digital platform is too long, but I have listed only those which I had used in the recent Digital Transformation. Thank you!

Angular JS – my quick thoughts !


    What is AngularJS
    AngularJS is a MVC framework that defines numerous concepts to properly organize your web application. Your application is defined with modules that can depend from one to the others. It enhances HTML by attaching directives to your pages with new attributes or tags and expressions in order to define very powerful templates directly in your HTML. It also encapsulates the behavior of your application in controllers which are instantiated thanks to dependency injection. Thanks to the use of dependency injection, AngularJS helps you structure and test your Javascript code very easily. Finally, utility code can easily be factorized into services that can be injected in your controllers. 
    Philosophy
    1. Angular is what HTML could have been if it had been designed for applications.
    2. HTML is a great declarative language for static documents. It does not contain much in the way of creating application.
    3. Building web-applications is an exercise in what do I have to do, so that I trick the browser in to do what I want.
    4. That's why we have frameworks - set of utility functions and libraries for DOM manipulation.
    5. Angular takes another approach.
    6. Angular teaches the browser new syntax.
    Comparison with static HTML
    clip_image001
    Dynamic HTML
    clip_image002
    Key features:
    1. Model View Controller architecture
    2. A well known and proven architecture
    3. Declarative two way data binding
    4. Automatically synchronizes values between Model and View
    5. Dynamic templates
    6. Makes it very easy to update the user interface
    7. Dependency injections
    8. Code dependencies are automatically injected where needed
    9. Extends HTML with directives
    10. Lots of powerful standard directives or create your own
    11. Build with testing in mind
    12. Makes it much easier to unit test different parts

    Architecture
    clip_image003
    clip_image004
    General References & useful resources
    1. http://todomvc.com/
    2. http://angularjs.org/
    3. http://pivotal.github.io/jasmine/
    4. http://yeoman.io/
    5. http://karma-runner.github.io/0.8/index.html
    6. http://rmurphey.com/blog/2012/04/12/a-baseline-for-frontend-developers/
    7. https://github.com/cer/polyglot-restaurant
    8. http://stephanebegaudeau.tumblr.com/post/48776908163/everything-you-need-to-understand-to-start-with