Tuesday, April 28

Using Chef Tool for DevOps Automation

 

A Devops engineer spends more time in deploying new services and application, installing and updating network packages and making machine server ready for deployment. This takes tedious human efforts and requires huge human resources.By using configuration management tools like Chef or Puppet you can deploy, repair and update the entire application infrastructure using automation.

What is Chef?

Chef is a Configuration management tool that manages the infrastructure by writing code rather than using a manual process so that it can be automated, tested and deployed easily. Chef has Client-server architecture and it supports multiple platforms like Windows, Ubuntu and Solaris etc. It can also be integrated with cloud platform like AWS, Google Cloud, and Open Stack etc. 

Understanding Configuration Management


Let us take an example of a system engineer in an organization who wants to deploy or update software or an operating system on more than hundreds of systems in your organization in one day. This can be done manually but it may cause multiple errors, some software’s may crash while updating and we won’t be able to revert back to the previous version. To solve such kind of issues we use Configuration management tools.

Configuration Management keeps track of all the software and hardware related information of an organization and it also repairs, deploys and updates the entire application with its automated procedures. Configuration management does the work of multiple System Administrators and developers who manage hundreds of server and application. Some popular tools used for Configuration management are Chef, Puppet, Ansible, CF Engine, and SaltStack.

Why I prefer Chef Automation Tools?

Let us take a scenario, suppose we want our system administrator to install, update and deploy software on hundreds of system overnight. When the system engineer does this task manually it may cause Human errors and some software’s may not function properly. At this stage, we use Chef which is a powerful automated tool which transfers infrastructure into code.


Chef automates the application configuration, deployment and management throughout the network even if we are operating it on cloud or hybrid. We can use chef to speed up the application deployment. Chef is a tool for accelerating software delivery, the speed of software development refers to how quickly the software is able to change in response to new requirements or conditions

Benefits of Chef


Accelerating software delivery

 By automating infrastructure provisioning we automate all the software requirements like testing, creating new environments for software deployments etc. becomes faster.

Increased service Resiliency

By making the infrastructure automated we can monitors for bugs & errors before they occur it can also recover from errors more quickly.

Lower Risk Management

Automation tool like Chef or Puppet lowers risk and improves compliance at all stages of deployment. It reduces the conflicts during the development and production environment.

Easy Cloud Adoption  

Chef can be easily adapted to a cloud environment and the servers and infrastructure can be easily configured, installed and managed automatically by Chef.

Managing Data Centers & Cloud Env 

Chef can run on different platforms, under chef you can manage all your cloud and on-premise platforms including servers.

Streamlined IT operation & Workflow 

Chef provides a pipeline for continuous deployment starting from build to test and all the way through delivery, monitoring, and troubleshooting.

In summary Chef tools help IT teams adopt modern day best practices including:

  • Test Driven Development: Configuration change testing becomes parallel to application change testing.
  • DevOps Support: IT operations can confidently scale with data consolidations and 3rd party integrations.
  • Self-Service: Agile delivery teams can provision and deploy infrastructure on-demand.

 

 

Sunday, April 19

Why do agile & cloud work well together?

Agile & Cloud from an Organizational Perspective

Working solely on cloud projects for last 8+ years , I have seen that cloud and Agile go hand in hand. How is that?Well, cloud is something new and transformative for a lot of enterprise customers and, because it’s so new, these organizations lack the requirements or exact understanding of how they want to utilise the cloud. Naturally they struggle to articulate what they want and need, which as a problem lends itself nicely to the user story and demo methodologies in Agile.

Agile methodologies make it very easy for companies to articulate on a "high level" what they think they want users to be able to achieve with the cloud. They do this using the three pillars of Agile, which are transparency, inspection, and adaptation(http://www.scrumguides.org/scrum-guide.html for more details).

 

You can demo functionality and certain behaviors to your organization early, and learn to adapt to their needs and help them gain an understanding of what they really want to achieve with cloud technologies. This is also critical for organization as it makes the development transparent  and the demo acts as an inspection element for the company to workout if the product is exactly what they wanted. At Cloudreach this has allowed me to present back to large organization and assist them into getting to grips with how they would like to use the cloud, instead of a more traditional way of planning something which means spending months developing something that the business then might realize it doesn’t want.
 

Benefits to Agile planning  as twofold:


    It allows the organization (consultancy or internal IT arm) to be more responsive to demand
    It reduces the demand for change control (even more important from a consulting perspective) or delivering to a fixed scope, which would be highly administrative

 

Agile & Cloud from a Change Management Perspective


Cloud adoption isn’t just about a change of technology, it’s also a massive organizational change.  "The key to success in this new climate isn’t about technology, it’s about management vision. The organization — and its leaders — need a forward-thinking, entrepreneurial culture that capitalizes on this computing power. The mantra above is key to how the Agile mindset can really assist companies in avoiding their pre-existing controlling nature. Instead it can allow the more forward thinking entrepreneurial culture to develop. It’s this culture of entrepreneurship which is required to deliver impactful change via Cloud Adoption. A lot of goals the "C Level" aim for when they decide to adopt the cloud are the same as those the Agile mindset helps to achieve:

    Enabling Innovation
        Organizations moving away from control mindset
        Learning to fail fast and gain organizational learning which is critical for the advancement of technology
    Increased Efficiencies
        Smaller teams with more autonomy and less management
    Quicker Speed of Delivery
        Change in processes
        Iterative development
    Value Realization
        Delivering value earlier in the development chain

I could go on and on, but all of the above benefits are true with both cloud and Agile and, ultimately, in this context they clearly have strong symbiosis.

Agile & Cloud working Together

I have explained why Agile and the cloud work well together from both an organizational perspective and a change perspective and, lastly, I want to take you through a technical perspective. Cloud lends itself well to an Agile approach because of one major concept in the industry – "Infrastructure as Code" – which allows cloud infrastructure deployment to be done in a similar way to software delivery, a way that was impossible for traditional infrastructure.

Understanding Infrastructure as code

Definition: Infrastructure as Code (IaC) is the process of managing and provisioning computing infrastructure via code, rather than physical hardware configuration or the use of interactive configuration tools. This is around the automation of deployments of infrastructure which has been made possible with the growth of Cloud Computing. (


As Infrastructure is now being managed more and more via code like software has in the past, moving and adopting Agile Frameworks makes sense for cloud infrastructure delivery. This is why in the industry we see Agile becoming more and more preferred. The main blockers to this at the moment are organisational rather than technical.

So, as highlighted above, cloud and software development have many similarities. They both:

    Use Programming Languages (python, ruby, json, etc.)
    Use Code Management
    Follow Continuous Integration and Deployment (CI/CD)
    Require Testing (Regression, UAT, Integration)

However there are some differences:

    In the Cloud you are responsible for the environments and the underlying infrastructure of the code. E.g. Having to use code to create and manage your staging environment that other code sits on. This is not the case with software which depends on infrastructure being there.
    Infrastructure tends to be very logical and less tangible than software (i.e. you can’t see it) for example Firewall config just ports and IP address or Access Controls with error messages.

These differences can create challenges in my experience when following an Agile methodology:

    Demos pose a challenge due to the less tangible nature of cloud services, which I have solved in the past by trying to keep them focused on the user and business benefit
    I have also had to split user stories into environments first then use code management to assist with the big picture, this effectively creates a matrix of user stories adding some complexity, but also helps with clarity if done correctly
    Although 95% of cloud has API access and can be done via code some elements are manual which cannot be automated or follow software development practices

So, in conclusion, if I was an enterprise working on any cloud project, I really would recommend an Agile delivery method. It is going to help team’s align with the need for quicker delivery and higher quality of the inputs into the cloud. Additionally it helps organizations get greater value from their project and truly iterate towards the goal they are achieving so that they can recognize some of that value sooner.
 

Thursday, April 9

Managing Covid Lockdown - Top-Down & Bottom-Up Strategy to revive industry & reboot economy

Dear #Indian Government,
Lockdown was essential measure to stop #coronavirus from spreading while we decided a strategy to combat it. But #Lockdown is not a solution & we can't #Lockdown the country for ever. If the farmers don't do farming & industry doesn't manufacture we will be out of essential commodities very soon and that will be even bigger problem than #corona.Govt should immediately publish the plan for  Incremental             UNLOCKDOWN as I call it so that States, Cities & Gram Panchayats can start preparing to implement the plan. As a executive I feel the lock-down announcement was unplanned, it forced each state to do a Unplanned Lockdown without creating a plan  (or defy Modi which no one wanted to do) & without any guidance from central government.
                         Our government is spending more money than ever to provide food & healthcare for needy people but #Revenue collection has become zero and soon government will be out of money. So unless we help STOP #CoronaVirus from spreading and unless industry starts working again and government gets its revenue #India will be in a big problem in few months.So I request all citizen of #India to please #StayHomeStaySafe , help our country to #Stop Corona from spreading , help #India to get our economy back in shape and that can only happen when industry/farmers/workers start working again.

In next few slides & text I am going to explain 4 key goals and then  explain my strategy to solve the problem
  1. We need #Lockdown so people do not transmit virus & we stop corona virus from spreading
  2. We have Limited Stock of grocery,medicine & consumables so we need farmers & industry to start working again   
  3. We need a strategy to remove #Lockdown In Stages & need to start Removing #Lockdown
  4. We cannot have One Plan for entire India -  We need 2 plans, one for the cities that are  infected by corona and 2nd for non-infected cities.
    1. For Infected Cities we need a plan to Cure people & get Cities back to normal.
    2. For Non-Infected Cities we need a plan to Protect City & Start industry & farming
    3. We need to revive economy before it collapses further
    4. We need to provide work & income particularly to the Poor who have no savings

Please note this is a high level plan to explain the  strategy and for implementation a more detailed plan has to be created to take care of all aspect of governance including points like
  • How to cure people infected people? 
  • How to prevent new infections ?
  • How to identify non symptomatic carrier's of corona?
  • How we will do more efficient testing with minimum kits ?
  • How to protect out healthcare worker and police from infection 
  • How to use Data to prevent new infection?
  • How to use Data to identify 'who is getting killed by Corona' and 'who are all immune to Corona'? 
  • How to use Data to find why infection is higher in some geography and less in others ?
and many more aspects which are kept out of this high level slides.

1)
2)

3)

4)

5)

6)

7)

8)

9)

10)

11)

12)

13)
Happy to answer any questions or correct any mistakes in my strategy. This is just one strategy, there could be other strategies but what is important is to have some strategy along with a risk mitigation plan and then discussion with stakeholders before we finalize a plan for India. My appeal to government of India is to work with a plan because so far they seem to b working on gut feeling and without any idea of what is planning. I hope better sense will prevail and there are thousands of voulenteers who are ready to leave their job and work for India if it can help save few lives. Jai Hind Jai Bharat.

Understanding Generative AI and Generative AI Platform leaders

We are hearing a lot about power of Generative AI. Generative AI is a vertical of AI that  holds the power to #Create content, artwork, code...