Tag: devops automation

  • Rackspace DevOps automation service broadly available

    Rackspace DevOps automation service broadly available

    Rackspace is the #1 player in managed cloud. While they recently announced they would be withdrawing from the pure IaaS market, they have now double-downed their bet on managed cloud with the general availability of the Rackspace DevOps automation service around managed cloud.

    Rackspace had previously announced their DevOps automation service a few months back, but that was a limited release. Now DevOps automation is one of the two choices Rackspace customers will have in setting up a managed cloud service.

    With this general release Rackspace is offering DevOps automation on both Linux based clouds utilizing Chef among other tools and on Windows using native Windows tools. In addition Rackspace offers enhanced environment stack support. According to the release:

    Rackspace now supports the following environment stacks, which can be deployed in hours on the Rackspace Hybrid Cloud: Chef, Rails, Node.js, PHP, Tomcat and Python. Customers can use recommended stack architectures and will receive updates, security patches and the latest versions of environment stacks, which are constantly maintained and tested by Rackspace DevOps engineers.

    These stacks are not containers per say a la’ Docker, but are self-contained packages that Rackspace can automate installation of and get customers up and running even faster.

    I spoke to Prashanth Chandrasekar, GM of Rackspace’s DevOps Business Segment about this announcement today. Prashanth and his team have been offering DevOps automation to customers since last year.  Today’s announcement represents DevOps going mainstream as one of the two preferred methods of deployment for Rackspace customers. I also spoke to Chris Jackson, the CTO of the DevOps team at Rackspace. Chris wrote a nice blog on the SysOp approach versus the DevOps approach.  It explains much of the thought process behind the Rackspace offering.

    There is also a good, if long Youtube from Rackspace on their DevOps automation service.

    Managed cloud DevOps automation was not the only thing Rackspace announced today. Just automating your cloud infrastructure by using a DevOps managed cloud service does not mean you are a DevOps organization.  Frankly that is just tools being used by a 3rd party. How do you instill a DevOps culture, mindset in your organization? How do you get your enterprise to actually become a DevOps organization?

    Rackspace is offering a full blown professional services offering called “DevOps Advisory Services”. They will come in and evaluate and analyze your needs and present organization. Based upon this they will make recommendations to help you. These include:

    • DevOps Workshops: Rackspace is working with customers to perform a range of services including application assessment, transformation planning and knowledge transfer, plus enablement around key areas like Configuration Management Tools, Provisioning and Deployments, Continuous Integration, Continuous Delivery (CI/CD) and Monitoring.
    • DevOps Strategy Planning: Rackspace DevOps specialists work with customers to understand their requirements and help create a custom project plan for their business needs and timeline.
    • DevOps Professional Services: Rackspace provides access to DevOps professional services from writing infrastructure code to designing structure and building migration plans for applications. This helps customers automate, deploy and test their infrastructure for their main applications, or a set of proof of concepts that the customer helps build.

    With today’s news Rackspace continues to demonstrate how important DevOps is to the go forward planning. Some may question how a managed services model would embrace DevOps, but Rackspace is showing the way. Branching out to DevOps pro services will allow them to compete head to head with IBM/SoftLayer offering cloud hosted and managed services wrapped with pro services.

    What I always find most compelling about Rackspace’s DevOps services though is that they eat their own dog food. Their DevOps services were born from their own internal use before they brought them to customers. It takes a DevOps organization to offer DevOps services.

  • Advanced Automation – Getting Your Systems to Work for You

    Advanced Automation – Getting Your Systems to Work for You

    In my previous post I discussed how to take your DevOps to the next level by taking it beyond infrastructure automation, to the automation of your deployments and code pushes, through patches and updates.

    And then I promised to make it interesting…so here is the next stage – actually using the extracted data to get your systems to work for you.

    Monitoring Like IT’S YOUR BUSINESS

    Let’s start by discussing what it means to monitor your application, and what kind of data you can extract from it.

    At the most basic level, you want to know whether your application is available for your users. It sounds very basic and simple, but setting it up properly is actually not an easy task. It is intended to give you an answer to the most important question to your business: can my users use the application? Think of it as a big red or green light on your dashboard. Although the answer may seem obvious and simple, but it is not at all. There are all kinds of parameters to take into account when answering this question, for example, what if the system is apparently up and running but the response time is very slow, or what if only parts of the system are actually running. At the end of day, you want to have that kind of an alert “traffic light” that tells you whether your system is functioning – yes/no, up/down.

    System, Application, and Business Metrics

    The green-red traffic light is an aggregation of multiple levels of monitoring. The most basic one is system related. It contains indicators like process availability, CPU and memory utilization, etc.

    The next level of monitoring is application related and is composed of application level KPIs (key performance indicators). KPIs can be anything from the average response time for a user for a certain request, to the number of concurrent database connections. In other words, anything that’s specific to the application and its architecture.

    And then above these, comes the highest level of metrics, which are business metrics. Ultimately these are what’s really important. If your business metrics are ok, then you can assume everything is running fine. Sample business metrics include the rate of failure to register to your website, how many users did a certain operation in the website or how many users executed a specific transaction. If we want to be really specific, then take Google hangout for example, a business metric of theirs would be how many people in a certain timeframe joined or started a hangout.

    Logs to the Rescue

    Logs are often used here as means to collect your metrics and alert about erroneous conditions. Logs usually contain a lot of useful information, but you need to be able to extract it and make sense of it. This means gathering all of the logs emitted from all of your servers, parsing them and looking for specific patterns that will help you generate the KPIs over time. For example, you look for a log message that says “User X signed in”, and by counting these messages you can produce a business level metric for how many users register over time. If you add some more data to the log message, such as the user’s location, or operating system, or anything else for that matter, you can slice and dice data and get deeper insights into how your application is behaving. When logs are emitted in a structured and consistent way (e.g. in a JSON format), it becomes very easy to analyze them and produce the relevant KPIs. There are many toolsthat can help with that.

    From Simple Automation to Orchestration

    That’s where orchestration comes into the picture. At the most basic level, orchestration is a higher form of automation, which helps you setup all the pieces that are related to your application, starting from the infrastructure (VMs, networks, block storage volumes, security groups, etc.), to the platforms your app runs on (database, web server, etc.), and all the way up to the application modules and code. This entire setup is often referred to as a topology. The role of an orchestration framework is to materialize a certain topology. More advanced orchestrators go beyond materializing the topology, and change it to meet the current workloads and needs of the application.

    As you probably gathered by now, monitoring and log gathering are an essential part of any running app, so they should be an integral part of the orchestrated application topology. Since the orchestration process is topology aware, it can wire and configure monitoring for your application components very easily, which is one of its greatest benefits. Going through these process without a global view of the topology can often be time consuming and error prone. Moreover, as the topology changes , you need to reconfigure and rewire your monitoring tools, and a good orchestrator will that for you as well.

    Next Up: Reactive and Proactive Orchestration, The Devops Holy Grail

    Hopefully by now you see the value of orchestration as a higher form of automation. In the next post I’ll dive deeper into the post-setup phase, and discuss how orchestration tools can react to events and monitoring data and adjust the application’s runtime topology to best fit the current workloads.