Category Archives: Hosting - Page 2

DevOps. What does it mean?

MeInRedJacketWhat does DevOps mean?
Like many terms, there are a variety of slightly different (in some cases vastly different) definitions. The current definition per Wikipedia seems pretty good:

DevOps is a software development method that stresses communication, collaboration and integration between software developers and information technology (IT) professionals. DevOps is a response to the interdependence of software development and IT operations. It aims to help an organization rapidly produce software products and services.” – Wikipedia

There has always been an important relationship between the people who develop applications, and the people who manage the servers where these applications live long-term. It hasn’t always been a positive relationship, but there is a relationship nonetheless.

What concern does this movement address?
Not everything fits into a generic generalization, but the contention historically relates to:

1)      Developers love to be nimble and make changes (bug fixes, updates, etc.) very quickly as they are ready. This is not a bad thing – especially if your business is dependent on the success of a particular application. A developer makes a change on their development machine, runs through some tests, and wants to push these updates to the production servers… where the contention arises…

2)      Operations people (think server, storage, security, and network administrators) are responsible for the 24x7x365 monitoring, operation, and support of the organization’s IT systems. These people thrive on consistency and plans. To do their jobs well they need to know the operating system, how it was configured, what changes were made, what changes are planned, how will those changes impact the running systems? Will there be performance impacting changes? Will changes push capacity thresholds? Will the changes impact the stability?

See the potential issue there? I can’t count how many times I’ve heard from a developer “but it works fine on my machine” after deploying code and either it doesn’t work as expected or it creates operational support challenges. It is very likely that the development environment isn’t as secure as the production systems. It’s also fairly common for a developer to install an update – perhaps the latest version of some development framework – and assume that it is either already on the server or that installing it there won’t be an issue.

So what’s the solution? What is DevOps?
The solution is actually rather simple in concept (but not always easy to get people to follow). A main ingredient needs to be communication. Operations people need to communicate the environment, its constraints, generalized reasons for certain “restrictions” (permissions, changes, etc.). Developers need to communicate what they’re planning, what dependencies exist, what changes made need to be made to the systems, and generalized reasons justifying the changes.

Another key ingredient needs to be education. It’s fine to communicate things, but both departments need to understand what the other is doing and why. It will make the communication part easier, and will help both departments appreciate the reasons for certain guidelines.

DevOps in hosted world
Addressing the DevOps topic is often a easier in a corporate enterprise environment. Communication not working? Let’s get the IT Director involved and they’ll referee to straighten things out. There are a lot of hosting companies that either hide from this type of interaction or don’t have the experience and expertise to deal with it. The support teams may know operating systems but not know a model view from a case statement from a dynamic query (whatever – you know what I mean). This increases the challenge level but definitely does not rule out successful DevOps implementation. It just takes a bit more work up-front before engaging with a hosting company.

First, successful DevOps interaction with a site or server host is going to require managed hosting. In an unmanaged situation the client is generally on their own. Super-cheap hosting models are generally unmanaged – it costs money to maintain quality, experienced, and educated operations people, and make them available as-needed.

Second, you’ll want a host that doesn’t hide. Does the host respond quickly to email tickets? Do they provide telephone access not only for critical issues, but for talking about plans and changes and working proactively through upcoming deployments?

Third, you’ll want a host with knowledge and experience. Do they have developers on staff that work in the same development stack that you do? Are those people available to help out if needed? Sometimes development topics can be extremely technical and it might help to have a developer-to-developer interaction. Do the support people have some basic development knowledge? If you explain to them that your code is doing X, Y, and Z – do they get it?

Lastly, you’ll want a host who is proactive. Communication should flow both directions – not just from the customer’s developers to the host – but the host should also proactively review the systems and communicate and trends being noticed. Patching and change schedules should be communicated and coordinated. Operations people should make themselves available during deployments to assist and closely monitor for any issues. Scheduling a planning meeting to discuss ideas, plans, and suggestions (from both sides) shouldn’t be a hassle.

Do any hosts really operate at this level?
Yes, some do. Definitely not all of them though – in fact, in a world with thousands of “hosts” available, a small percentage provide this level of quality interaction.

If you don’t already know, OrcsWeb was founded 17 years ago (1996) and focuses on exactly this level of interaction with its customers. Its goal is to operate as an extension of the customers IT team and work proactively together for the overall success of the project. The Complete Care Managed Services (CCMS) that is available to all cloud server and dedicated server hosting clients provides all of the above: Proactive system reviews, system operational analysis, performance analysis (slow load pages, long running queries, optimization pointers, etc.), architectural guidance as needed – in addition to 24x7x365 monitoring with immediate alert response, 24x7x265 critical issue resolution, security solutions (VPN, firewall, ISP, etc.)

There may be other options too – I’m just not familiar with any. Before you decide who to partner with, I’d suggest picking up the phone and calling candidates. Chat a little with the person who answers the phone. Ask about the possibility of having a pre-sales architectural call to discuss your project and their solutions. Are you dealing with just a sales person or do they engage experienced architects to understand your concerns and needs?

I hope this helps you better understand the DevOps topic and some of the surrounding challenges (aka opportunities), and I hope it helps you make a good decision with selecting your hosting partners. Remember that group of people is going to be key to your success as a developer/manager/owner, so take the time up front and choose wisely.

Happy hosting!

Basic IIS Performance Statistics

There are some neat counters available in Windows Performance Monitor for showing some IIS (Internet Information Server) statistics. My three favorites are:

  1. Current Anonymous Users: This counter shows the number of current anonymous HTTP connections. Since most web sites serve content to anonymous users, it’s the one that seems to make the most sense to me when trying to gauge current traffic / activity on the site.
  2. Anonymous Users / Second: This counter shows the data above, but how many connections per second those site visitors are generating.
  3. Maximum Anonymous Users: This counter just show the peak number of anonymous users that were connected at a single time. Sometimes it’s neat to see where the site activity peaked.

How do you see these? Here are the steps and screenshots:

First find the Performance Monitor by clicking the Start Menu then Administrative Tools then Performance Monitor:

Find PerfMon

 

Then click on Performance Monitor in the left-hand pane under Monitoring Tools. After that you are presented with the graph window and you can click the green plus icon to add counters to this window (play around and different counters – there is a LOT of really neat information available).

PerfMonIISCounters2

After clicking the green plus icon, you are presented with a huge list of counter groups. Within each of those groups are individual counters. There are a ton – you really do need to just play around and check out the options.

For web (IIS) counters though, look for the group named Web Service and click the plus sign next to it to expand and show the individual counters.

PerfMonIISCounters3

After you add the counters you’ll see them listed at the bottom of the graph window, along with the color of each counter so you can match them easily.

PerfMonIISCounters4

There you go. Play around and have some fun checking out what type of traffic is hitting your site and how well the server is performing.

Happy hosting!

WordPress on Win08, Win12, and CentOS+NGINX

So… I’ve been reading a lot about nginx and how awesome it performs. It sounds magical!

The Issue

My blog (running WordPress) hasn’t been running as fast as I (or Google) would like. The TTFB (time to first bite) is often > 500 ms which is slower than it should be. I thought this would be a great opportunity for nginx to prove itself and impress me!

Right now the live site that you are viewing is running on Windows Server 2008, PHP (of course), MySQL and WinCache. TTFB ~ 500 ms.

The Second Location

I set up another location on a totally different server – running Windows Server 2012, same version of PHP, MySQL, and still running WinCache. I took a backup of the MySQL database and restored it to the new server, and took a copy of all the site files and copied them over. Everything was left default (no additional specific performance tuning). Got it up and running nice and easily (setting up sites on Windows + IIS is so painless!) and started some tests. Guess what… TTFB right around 500 ms. That wasn’t a huge surprise but it at least told me that the issue wasn’t something specific to my Windows 2008 install / configuration.

The Third Location

Okay, so now I moved over to a Basic CentOS 6 configuration. I installed nginx, PHP, and MySQL. There were a lot more steps to get everything set up on Linux, but I’ve been through the routine a few times so it was just a matter of running all the right commands. Got the content copied over, got the MySQL database restored, and got ready for some testing. I’m thinking “I wonder how close to 100 ms it will be.” I run an external page speed test against it… wait eagerly for the results… and there they are! Huh? What? 600 ms? What the…!?!? OK. Maybe something’s wrong so I opened up Chrome developer tools and run some tests there to see what it thinks about the TTFB. Pretty close. Hmm…

Test Results Summary

So, using the Developer Tools I run some more timing tests on Windows Server 2008, Windows Server 2012, and CentOS/NGINX so that I can get some TTFB averages. When looking at averages the numbers of all three were REALLY close. Just as often as not, the NGINX site was slightly slower (by a minimal number of milliseconds). No clear winner on speed here. With everything being the same, I’ll stick with Windows. Call me crazy but I like Windows Server – always have and always will. I like Linux for certain situations too, but running WordPress has not made it onto that short list of preferred-Linux scenarios.

What Does it Mean?

Other than all three platforms running about the same in speed, which is a pretty interesting point in itself, what else do we know? Well, I’m going to say that the issue is with WordPress itself rather than the platform. To be more precise, and perhaps fair, I’ll say that it is either WordPress, MySQL, PHP, some WordPress plugin, or something in that part of the stack – it isn’t the operating system nor the web service that is causing the less-than-ideal TTFB.

Happy hosting!

 
Brad on Google+

Handler "PHP5x_via_FastCGI" has a bad module "FastCgiModule" in its module list

Below is a guest post by Desiree at OrcsWeb with an IIS/PHP/CGI troubleshooting tip:


I installed WordPress for one of our managed clients recently, and what should have been a simple install, turned into quite a bit of troubleshooting. The client was running Windows Server and using IIS for their site hosting. Before starting the WordPress install I confirmed that the server showed PHP was previously installed and configured.

After the install, the site wouldn’t load and returned the error below:

HTTP Error 500.21 - Internal Server Error
Handler "PHP54_via_FastCGI" has a bad module "FastCgiModule" in its module list

Detailed Error Information
 Module    IIS Web Core
 Notification    ExecuteRequestHandler
 Handler    PHP54_via_FastCGI
 Error Code    0x8007000d
 Requested URL    http://test.domain.com

Physical Path    C:\Data\test.domain.com\wp-admin\setup-config.php
 Logon Method    Anonymous
 Logon User    Anonymous
 Failed Request Tracing Log Directory    C:\inetpub\logs\FailedReqLogFiles

The problem is that the error isn’t very clear. After some troubleshooting and research I figured that to resolve the issue I would need to either install CGI or remove and then reinstall CGI. The server showed that CGI was already installed, but perhaps it wasn’t installed properly? As part of continued troubleshooting, I removed and then reinstalled CGI. The application still didn’t work and was now showing the following error:

clip_image002

If this happens, it is because the removal of CGI removes the registration in PHP Manager. In IIS, open PHP Manager. Click on “Register new PHP version” task and then provide the full path to the location of the main PHP executable file: php-cgi.exe (i.e., C:\Program Files (x86)\PHP\v5.4\php-cgi.exe).

After those changes, we reloaded the site and everything worked properly.

If you run into a similar issue getting PHP and CGI (and perhaps specifically WordPress) working on your IIS server, I hope this helps!

Two Recent OpenStack Articles

OpenStack is getting a lot of buzz lately. I admittedly don’t know a TON about it, but it seems to be an automation and provisioning platform mostly geared toward the KVM and Xen hypervisor platforms. It’s an open source project initially started by Rackspace but appears to be largely driven by Red Hat now.

The two articles I found interesting this morning are:

The secret to OpenStack’s success, which talks about the open platform, the different contributors, and how specifically Red Hat has become the largest contributor – pushing the community project forward at an accelerating pace lately.

The second article is also about Red Hat’s aggressiveness in the OpenStack community and how they are working to integrate OpenStack more tightly into their enterprise Linux offerings. Red Hat’s site doesn’t give much in the way of details, but it will be interesting to see just what they’re doing.

Linux-based hypervisors (Xen and KVM) already have a pretty big market share with Amazon’s backing and use in the EC2 product; but it sounds like perhaps Red Hat is working to enhance the entire ecosystem surrounding the hypervisors to develop a better platform that may give VMware (and Microsoft’s Hyper-V) some serious competition in the enterprise cloud marketspace.

It will be interesting to follow the developments.