Preventing a Disaster

A while ago, I wrote a note about disaster recovery i.e. how to quickly restore the services after a failure in the primary server. However, as the old adage goes Prevention is better than cure, here are some tips on how you can prevent system failures. This applies to all our customers including those who may have deployed an email disaster recovery system.

The two key characteristics of the email system that make it vulnerable to failure are:

We recommend the following to prevent failures at the different layers of the system.

Data Center

  • Install equipment in recommended temperature and dust control environments, with limited and authorized access for more reliability.
  • Ensure uninterrupted power supply of the required rating for the equipments.

Hardware System

Software System

Application Software Layer

Process Layer – Follow preventive maintenance procedures

Above all, have a bias towards Maintaining rather than Repairing.

When to use POP, IMAP or Web client

End users can access their mailboxes via web clients or desktop email clients such as Outlook / Outlook Express / Thunderbird etc. When configuring a desktop email client to check the incoming mail, the connection to the server can be an IMAP or a POP connection.

Organizations need to decide on a mail access policy depending on a number of factors such as the messaging server architecture, available bandwidth on the connections from the user’s desktop to the server, mail archiving policies, etc. The following paragraphs will help administrators decide on a suitable policy for individual users. System administrators can define a global policy or define different policies for individual users / groups of users.

POP access from a desktop email client

When to use POP access

Advantages

Limitations

IMAP access from a desktop email client

When to use IMAP access

Advantages

Limitations

Web mail access using a browser

When to use web mail access

Advantages

Limitations


Resources : Connect Xf with Access Devices

Collaborative Marketing: The Third P: From Push to Pull to Presence

….. Surely if you have more inbound traffic and leads, the chances of conversion to sale increase, but what is the yield? Are you able to convert a larger percentage of them to sale?

Presence is a state, when even a non-seeker knows about your brand and offering.

How is this possible?

By the reach of the value you deliver, By word of mouth (obviously due to the remarkable value you offer), By having enough news worthy content, By being an active contributor to forums frequented by prospective customers. etc, By working with inbound leads to help them make a choice (any choice).

It is about building an association of your brand in the mind of a potential customer….Read complete article here

Confused about what is Cloud computing?

Confused about cloud computing?

Layman's guide to cloud computing

Learning from running our SaaS online collaboration service, Mithi SkyConnect, from a single server to a multi-server, multi-location set-up, we’ve come long way in handling high volume email services, but the increasing sophistication of the service, rapid growth in traffic and speed at which we need to provision for new users has made it necessary to consider a cloud based platform such as Amazon Web Services and have been working on the new architecture and design for the setup. Via this post, I would like to share some clarity that emerged during this journey and discussions, about what really is a cloud platform and where does it fit in the stack. If the meaning of cloud computing/platform in your mind is as nebulous as a rain cloud is, please do read on.

Hosting an application for consumption by users:

We are all reading this since we have the need to host (or are already hosting ) applications in a SaaS (software as a service model) model for consumption by end users. Thus end users will connect and consume the service (typically using a browser or a specialised application on their device) via the Internet or a private network – Client Server topology.

Consider the following basic requirements for any Application hosting environment:

  • Provisioning Server/Compute instances as required
  • Provisioning Storage and Backup objects as required
  • Networking the objects together for inter-connectedness
  • Provisioning for Bandwidth as required
  • Deploying the application on the platform
  • Planning for High availability on site and off site
  • Planning for temporary bursts/spurts in usage
  • Planning for scale up or scale out as required
  • Setting up maintenance and monitoring procedures and automation.

The Stack of a SaaS application in a traditional hosting environment:

Traditional computing stack

Non cloud based computing stack for a SaaS environment

You would need a good team to deploy, manage and maintain the bare metal infrastructure using tools like Virtualisation, SDS, automation of processes, etc so that you can get a reliable hosting platform and can get the most performance out of it. These would constitute provisioning, scaling, troubleshooting, etc at the infrastructure layer.

Enter “Cloud”: The Stack of a SaaS application in a cloud environment

Cloud computing Stack

Cloud Computing Stack

The cloud platform has taken over the provisioning, management, scaling out of compute objects and has left your team to operate at a higher level, at the level of the solution architecture.  A good Cloud platform typically provides a unified console to manage objects like server instances, storage drives, load balancers, templates to setup the architecture, out of the box services, tools to manage and monitor the infrastructure, and lots more.

In essence a good cloud platform is a software, that sits over the bare metal objects like Servers, Networks, Disks, etc to provide “out-of-the box” services, and “reliable and elastic” objects, which can be used to host the application. Typically a cloud platform will provide you a single interface to manage the server and setup instances, storage elements, services, across multiple sites and will automatically handle the scaling and availability requirements of the application, without needing human intervention in most cases.

So another way to look at it is:

User  <–> Uses Applications <–> Running off a Software Platform <–> Hosted on a cloud platform <–> Running on a bare metal infrastructure.

Introducing the cloud platform in between the software platform and the bare metal infra is critical to allow us to scale the performance with ease and reliability and also leverage services from that layer for providing additional end user functionality like bulk mail, cloud based backups, end point backups or anything else.

Thus your strategy would be to introduce this layer between your application and the bare metal.

And the good news is that you don’t have to develop this yourself. In fact you have to guard against doing this. Its similar to writing code when you can buy a component or incorporate an open source component. Just like we don’t build hardware or switches.

Now what?

Using this approach frees up resources to now work on the software application to deliver value to the end users…today you may be locked up monitoring hardware, setting up machines when needed, worrying about storage and its scalibility and reliability…a lot of thinking is locked up one step below where it should ideally be.

So NOW we don’t have worry about

  1. Adding more servers as load grows…its automatic scale out and scale in
  2. Adding more storage as we need more (on demand)…its automatic.
  3. Having a cap on our bandwidth…it bursts on demand
  4. Reliability of the machines and storage…there is built in redundancy
  5. Paying for capacity we don’t use…pay per use
  6. Planning for capacity in future…its elastic.

and several more…

One key word in any cloud platform is “elastic”. Scale up or down, manually or automatically, vertically or horizontally.

All we need to do is to design the architecture, which will leverage the elasticity of the cloud platform….the components and their placements and their connections….isn’t that our competence as application developers?

Focus on what you are good at!!

 

Great Blogging…..Great low cost Marketing: 5 ways to Connect the dots

A lot has been written (blogged and flogged) about what is blogging, the benefits of blogging, leveraging blogging for building your brand (self and/or business), share ideas etc. With this article, I am not venturing into that space, instead I would like to share my experience of blogging where the rubber hits the road. I have distilled 5 key takeaways from my experience and my discussions with other bloggers on Linked in (viz. Rob, Vicki and Roland)

What is obvious?

Blogging is a quick way to publish content on your personal or corporate blog site and topic, which typically reaches your followers/viewers in a flash, and they can then come have conversations around the topic, thus enhancing/building on the original idea. Blogging has opened up creating and sharing content to almost anybody who can write. Its THE place to share your ideas, opinions, findings, etc.

So what’s the difference between a normal web site page and a blog?

Normal web site pages are typically static, simply stating facts, have a more enduring value as they stand and don’t really warrant an open conversation around them. E.g. product features, business case studies, price sheets, calculators, etc. These reflect the corporate offering and is akin to the shop window.

On the other hand, Blogs are dynamic, they flow with the thoughts of the author. A blog on any subject is a live active document, which is “continually” and “consistently” updated and maintained. Means that a successful blog is one, which is not a one thought wonder (like a one song wonder). Instead it exhibits thought leadership i.e. not just quality but also consistency of output and meaningful conversations (like this one), which then becomes a source of continuous learning for the reader/audience. Its like a build up towards a goal.

So what kind of articles constitute a blog?

I’ve been thinking that no matter what the subject, and presentation style or technology used, I feel the content of a blog can fall into the following framework of categories:

  • INFORMATIVE: The blog simply shares some knowledge, news, report, statistics etc. Reports on what has already happened.
  • ANALYTICAL: Author presents some insight, some reflection, some opinion on some aspect of the subject. This type of writing is typically to get feedback and build on some idea.
  • PRESCRIPTIVE: Author presents a ready made distilled list of actionables, which stems from the authors experience and observation. This will typically have the structure like “10 ways to increase sales”, “10 things to avoid when presenting to an investor”, etc.
  • INQUIRY: Author presents a question or a method and is requesting for feedback from the community to build on that idea. Note that this is different from Analytical writing since here the author has no opinion but just a question. Analogy is “thinking aloud”, “I need help with this problem, let me ask my community”, etc.

I feel that a good productive discussion around a subject will have a healthy mix of posts, which are of the above types and promote a dialog among the community and is not just a monologue or discourse by the author.

What should I watch out for, while blogging?

Note that your writings are direct reflection of who you are and what you stand for. If you stand for multiple things, its a good idea to have multiple topics in your blogs section. e.g. animal  welfare, business systems automation, etc. I would  advice against mixing up your posts across topics, since that leads to a weakening of the build up of value in that topic. Besides the obvious dos and donts, it may be a good idea to establish a “house style guide”, which is important for branding. Surely you want a sharp associatable brand and not some loose collection of disconnected threads that appears like a hair ball (blogging for the sake of blogging). Hence the posts require a style and content “coherence” and “quality” if “You have to KEEP ATTENTION, ENGAGE in discussion, LEAD in discussion, and INFLUENCE (as Roland aptly stated).”

Who can blog?

Anyways, now that we have a “prescription” for how great blogging can be used for effective and low cost “marketing”, how does one actually execute on this prescription? Given that all the good intentions are there :-)

I feel that great blogging requires a context. People in deep touch with the context should be a helm of this activity. Also this is possible only by putting adequate time and energy to analyse, write and produce quality documents for consumption by the readers. Writing is not a trivial activity. Its akin to writing great software code.

Honestly I have been struggling with this. I tend to get so caught in operations that I become a “victim” of my “own busy ness” and I keep postponing the writing activity. While we have established that great blogging and great conversations, is the lowest cost way to attract visitors, build communities and translate a portion of them to buyers for your services, then why don’t I do it consistently (at the risk of the business loss)? I observe that sometimes the gap between my blog posts can be from 1 week to 4 weeks. I can continue to make excuses or on deeper reflection I discover that its probably that I haven’t connected to the importance of this activity OR that when there isn’t much activity around my  blog, I lose interest and get working on something more tangeable.

What is your reason for not tapping the keyboard today?

What is my response to the slow pace of blogging?

I am learning to see that this activity is at a higher level and needs my personal time and attention (its about context). I am learning that while operations can be outsourced, creative writing cannot. I am learning to overcome this by understanding that all good practices need patience and time to get established. I also realise the need to relax and just be at it consistently improving my output. I am also learning to give this due importance and “dedicating” an uninterrupted portion of my day to work on writing, sharing and connecting with other like minded people.

Any thoughts on this thought?