Monday, February 13, 2017

Why to use tools like Urban Code , XL Deploy

I have been asked this question quite a few times. -Why should I use these tools ?

My answer was always in terms of release management - inbuilt tracking of the changes made to the environment and changes made to artifacts. These features are not inherently provided by the provisioning tools like Chef, Puppet and Ansible. They are very good at provisioning ( including rollbacks because of the idempotent feature) but are not good at tracking changes. 

Recently, I cam across this blog that summarizes when to use tools like UrbanCode and wanted to share. 


Thursday, March 3, 2016

Docker EcoSystem

I love Docker as it helps in standardization and replication of a  development environment and is a major component of devops practice to reduce the time taken to push a  commit into production.

Today, It is a well known fact that applications are migrated in and out of various cloud platform based on TCO ( total cost of ownership) and ease of use. Any software that can handle the various environments and provide a universal approach will  be well received. Docker is fast positioning as a leader in  cloud with the addition of Docker Cloud ( through acquisition of Tutum) which helps in deployment of containers across any cloud in the universal way ( very similar to AWS Elastic Bean stalk). Docker cloud also provides access to docker hub for a minimal charge that can be used to share containerized applications.  The various components or applications provided by Docker are as follows

DockerFile 
Used to build a layered application in a container. This is very popular and is integrated with Configuration management applications  such as Ansible, Chef , Puppet to build application layers
Docker Compose
Tool for defining and running multi container applications in a stack. Pesistent volumes can also be built with it. This is defined in a YAML file which is very similar to ansible.
Docker Swarm
provides native clustering for Docker.  Very useful if we need to enable discovery and communication of applications running on multiple containers on different hosts. Also supports replication of the containers as needed.
Docker Hub
Cloud hosted service provided by docker to register public and private content developed
Docker Cloud
Cross cloud management service. Provides a single toolset for deployment of containers across any cloud platform. It would be a great asset for Docker existing users as the cloud is built on top of native Docker commands. Docker cloud is tightly integrated with Docker hub to build and deploy containers across cloud platforms.

For more information on Docker cloud, click here

Will Dockers way of deploying containers in the cloud become popular? I think so. Docker is pretty much the standard for developing containers and have now the tools for cross cloud deployment. Lets take Google Kubernetes (K8) container service as an example. Currently, it is open source and unlike AWS ECS, it can be used on any cloud platform.  As an additional read for leisure,  click here to know the advantage of Kubernetes over AWS ECS.






Monday, December 28, 2015

OpenStack vs AWS

Today, I was having a discussion with a friend about OpenStack vs AWS ( public cloud) and our discussions  shifted  towards CAPex (capital expenses) vs  OPex (operational expenses).  He  mentioned that some companies like utility companies would like to have capex than opex so that they can charge the customers for the expenses. I am not sure about it and may be valid.

I strongly believe AWS seems to be the best platform if you are starting out new and would like to check the feasibility of an idea turning into a reality ( Infrastructure and Platform is taken care by the platform).  Also, security is as robust as possible in the public clouds through IPSec VPN Connections, Single sign on through federated services (ADFS), VPC and firewalls ( security groups and access control lists (ACL) at subnet levels.

So, when to use open stack?  Here are some of the reasons.

  • When we have high performance computing applications  which requires high bandwidth and less latency.
  • When we would like to customize our IAAS and PAAS platforms for better perfomance  of native applications
  •  For supporting devops model. provide development, staging and production environments for developers.
All the scenarios specified above for OpenStack can also be efficiently designed using the public cloud infrastructure. But may come at a higher expense. Bottom line is the  cost efficiency and resource efficiency. Also, as stated above, which expenses make more sense for a company. 

I truly believe public cloud is here to stay and we may see more of hybrid clouds  where companies implementing private clouds may end up using certain services of public clouds  like durable and reliable storage services ( S3, Glacier , storage gateway) as needed. 


Here is a link that compares OpenStack and AWS components/services and costs









Redis Caching and AWS

I was reading today about ElastiCache AWS service that currently supports MemCache and Redis implementations

MemCache  is the key Value based caching that is multi threaded and supports the thread or parallel performance based on the cores. Horizontal scaling can be easily done with MemCaching

Redis is a different kind of caching which has lot of in built features that can be programmed through APIs provided. Redis supports Asynchronous replication, has built in persistence and  supports both key value as well as data structures such as sets, lists and hashes. Redis  supports point in time snapshots at regular intervals and also write through persistence ( persist whenever there is a write or update). For more information about Redis persistance, click here

Since Redis data structures cannot be sharded across different instances, we cannot scale horizontally in a cluster  like memcache.  However, we can have multiple clusters with each cluster having a single instance. Architecture for Redis looks very similar to AWS RDS ( Relational Database Service)

The question, I have is , can Redis with inbuilt persistence, be used as Database? It can be if the data model can be fit into the memory . Downside to this approach is that the memory is expensive.  Also, what happens if there is a crash?  As stated above,  Redis can do regular and write through backups as per our RPO and RTO guidelines.

It is nice to see some one addressing the same issue here. 

AWS Solution Architect

I am currently preparing for AWS solution architect and planning to take associate and professional exam in January.

How am I preparing?

AWS website is amazing in terms of documentation.
Had glanced through amazon documentation for all the services provided by Amazon
Had taken a sample test paying 20$ to know where I stand at
https://www.webassessor.com/wa.do?page=publicHome&branding=AMAZON.  Not bad at all.
White papers published by AWS are a great source of information for cloud architectures and provides great insight. Also doing my hands on experience at qwiklabs


The good part about these exams is that they focus more on the scenarios and not on some quantitative data ( like how much memory per instance type). The critical part is the time management for these exams. Have to be really quick in going through these scenarios and picking up the choices.

Will update this post as I come across more information about these exams (tips, preparation material, questions etc)

Monday, December 21, 2015

What am I reading now?

Last time, when I had been to India, stumbled across a book written by vivekananda. The title of the book is " THE COMPLETE BOOK OF YOGA"



very interested facets about dealing with life. have finished the Karma yoga  part but would like to revisit again