Skip to main content

Key to adopt open source product

Friends, I am working on business solution implementation on open source product called Kaltura. Kaltura is a media management solution and has loads of features that compel any business to take a peek into it. More-over this is the only complete end-to-end open source software available to handle digital assets. But it comes with its own head ache.
Considering its open source, its understandable. I feel, handling these would ensure you the success in your open source product implementation.

1. In my opinion, before adopting any open source software, build the capability to deal with the inconsistency bundled in the open source software.
2. I would avoid involving external consultants for 2 reasons.
     a. I am not sure, they would bring necessary expertise on to table
     b. I fear that there would be little ownership, they will not see big picture of my business (neither I am interested to share it all)
3. Alternative to that is to build the team that is capable of debugging - This is very important, In my opinion its the key.
4. Use intelligent guess - like how do you implement given the scenario, this would take to find the problem
5. Also, I would advise to keep any customization minimum, keep the dependency on open source product to minimum, not that I dont like them, but it gives me the flexibility to adopt to new solution, when it arrives
6. If there is large chunk of functionality needed, then I would propose build it as an external module and integrate with open source product, rather than extending it.
7. Last but not least, not all requirements are the candidates for customization or development. This is where business analysis comes into picture. We need to model the business requirement in different or novel way understanding the constraints of the product in focus. This is another key to success.

The most annoying issue in open source implementation is not fixing, but in finding it. The community forums do their bit, but in case of Kaltura, hardly there is involvement from experts. Will keep updating ...
Take care.



Comments

  1. Nice blog RP. Please keep updating it.

    As you know, we faced one major issue with kdp skin yesterday and because of it the player was not loading. We suspected the issue with cloud front url, but it actually got resolved when we reverted the skin file to the original one.

    Not sure exactly the reason but suspecting it could be file corruption issue, but it took lot of time and team effort to find and fix it.

    You helped us at the right time when we lost hope on the player.

    Thanks
    Shylesh

    ReplyDelete

Post a Comment

Thanks for your comments.

Popular posts from this blog

GCP: Instance group

Managed instance group contains identical instnaces, created from an instance template. Supports auto scaling, auto healing, rolling updates, load balancing. VM instances are stateless and disks are deleted on VM recreation. It is possible for load balancer to send traffic to instance group through a named port. Configure autoscaling on and autoscaling policy. Auto scaling policy directs when to auto-scale, based on CPU utlization, HTTP load balancing utilization, Stack driver metric, or combination of the above. It is possible to specify maximum number of instances that can be in instance group. Enable auto healing through healhcheck configuration. Instance group while running, you can add/remove labels. You can do modifications just as you can do with an instance running. With instance group you can have rolling update, rolling restart/replace actions. When performing rolling update, perform canary deployment, and make sure that no rollback is needed. If rollback is needed, t...

GCP: GAE - Memcache best practices

Memcache is a distributed in-memory data cache in front of or in place of robust persistent storage for some tasks. GAE includes a memory cache service for this purpose. Best practices for using memcache: 1. Handling memcache API failures gracefully; Do not expose errors to the end users 2. Use batching capability of the API when possible 3. Distribute load across your memcache keyspace Use sharding and aggregating for improving performance efficiency. Use TTL (expiration policy) to make sure the memcache does not fill-up indefinitely Use getIdentifiable() and putIfUntouched() for managing the values that may get affected by concurrent updates Use batching (getMulti ("comments", "commented_by") ) to fetch related values together instead of one by one Use graceful error handling