The Cloud Is Not About The Cloud

Rob sits down the hall from me.  He sometimes writes some pretty profound stuff that helps me rethink the old sysadmin mindset and understand where enterprise computing is trending, and why.  This is one such post he made.  I’ll just copypasta it here in entirety. 

The industry is aflutter these days about “the cloud,” so much so that the word has almost become meaningless to many in IT. These days, what most vendors associate with the cloud is either some form of virtual hosting or some sort of SaaS product —not exactly what you expect from the future of IT. But the reality is that the shift in IT is not all about the cloud or the technology; it’s about the journey from traditional IT thinking — buying and racking servers, long service delivery times, and limited flexibility — to adopting a more utilitarian approach based on answering a few specific questions: How much compute/storage do I need? What do I need it to do? And where am I best served to source it?

This isn’t about giving up control. All you sysadmins out there want to stop reading when you hear that — I know, I used to be a sysadmin, but don’t leave me yet. I’ll explain.

The utility approach to IT is about quantification and standardization, utilizing new tools to measure and size your existing infrastructure, including both physical and virtual systems. It’s kind of like putting electrical meters on all the rooms and appliances in a house. With this approach, you can immediately see how much “power” you are consuming but where and by whom it is being consumed — across both physical and virtual environments. This gives you insight into how much compute power you have, how much of it is actually being used, and where it is being used across your various customer group. This can really help to reinforce what you already know about your environment, or to highlight that the reality can be far different than what you believe. This process is interesting unto itself.

However, where this becomes exceedingly powerful is to continue to monitor this compute resource consumption on an ongoing basis. As you build up a data history, you can start to see how these systems are used and change. In many cases you’ll see interesting trends emerging. These trends will provide opportunities to rationalize your infrastructure — either relocating workloads among blades to improve balance and performance or optimizing systems to reduce consumption where systems are over provisioned (and here’s a hint, probably all of your VMs are over provisioned). As you begin to expose the systems administrators to the monthly consumption numbers and trends, and then roll that up by department, the system administrators themselves will begin to tweak the systems to minimize consumption. It’s human nature — no one ever wants to be “last.”

By quantifying your supply, demand and consumption patterns you inherently begin the move to a “cloud-like utility” model. With the information gathered by the utility metering software, you’ll begin to use your resources more efficiently, optimize your existing systems, and begin to make fact-based allocation decisions.

As an example, one of the largest public universities in the U.S. is using this approach to measure and meter the workloads on their current VMs, giving them clarity on what they have (supply) and what they need (demand). The first step for this university was profiling their existing environment from a consumption perspective (i.e., what physical resources their various applications, users and departments were consuming). Starting from this profile they were able to begin metering that consumption over time, giving them significant insight into workload demand patterns. Even one week’s worth of data allowed the university to start identifying areas for improvement. This gave them the ability to increase their existing server utilization from 50% to 75% because they cloud deploy workloads into public clouds that were metering consumption using the same unit of measure as the university. This was particularly useful when the university IT group was expanding their compute capacity to meet the needs of some recent new grant projects. They were able to use real data — not estimates, projections or tarot cards — to determine the appropriate scope and type of new infrastructure, which allowed them to get lower-priced hardware that actually performed better for their workloads.

Things get interesting when you overlay a financial model on top of this — nothing will get the business people more out of shape than the IT guys talking economics! By taking the utility model one step further, you can quantify supply and measure overall cost of operations. This provides you with a price – the dollar cost per unit of IT consumption.

As you monitor all compute resource consumption across your datacenter, you can now put prices on the services you offer your users. You’ll quickly determine that newer and faster systems will cost more per unit than older or slower systems. We all know that every user believes that their new VM should be “free” since “it’s just a VM” and you already own the hardware. And of course, it should be on the latest, greatest and fastest hardware. By pre-determining how many resources are needed, you can provide a cost estimate for the latest and greatest as well as the “regular.” Most of us want the Ferrari but drive the Ford or Chevy, and your users are no different. When faced with a real cost decision, many customers will make the rational choice, without IT having to fight with them about it.

The one thing that I want to make clear, this doesn’t mean you have to do “chargeback.” This financial info can be used for budget justification, quarterly or annual “showback” to customer departments, or for actual chargeback — whichever makes sense for your organization.

Finally, by adopting a utility approach to managing your IT, you start the process of transitioning to a “cloud” mentality. This sets the stage for your organization to take the next steps. Future IT acquisitions will be judged on their productive capacity and cost per unit of production in addition to expected performance and other criteria, allowing you to further optimize your use of IT resources. Your organization will also be able to run at higher average capacity levels since you have much more insight into your consumption and demand patterns.

Phew, that’s a lot. So where does this leave us? For some organizations, moving some virtual machines to a public cloud like the 6fusion iNode Network is “cloud.” For many others however, this transformation is less about where your servers are hosted or about building out a big bad new private cloud and more about gaining insight into how IT is used and transitioning that approach to a consumption-optimized, cost-centered service delivery process. Once you do that, where it’s hosted is simply logistics.

Customizing the OSX Terminal Prompt

The file you want to modify is ~/.bashrc

The parameter to set is:

export PS1=” “

You can fill the quotes with whatever pattern you want, with the following switches.  Other characters are displayed literally.

  • \d – Current date
  • \t – Current time
  • \h – Host name
  • \# – Command number
  • \u – User name
  • \W – Current working directory (ie: Desktop/)
  • \w – Current working directory, full path (ie: /Users/Admin/Desktop)

You can experiment by just using the export PS1 command at the prompt until you’ve got what you want to put in the .bashrc file.

Example:  export PS1=”#\#[\t]\W >”

Creating an OVF File for Cloud Deployment

Obtain the VMware OVF Tool

https://my.vmware.com/group/vmware/get-download?downloadGroup=OVF-TOOL-2-1

If the server you wish to covert to OVF is already an ESXi 4.x or better guest, you can export it directly from vCenter by selecting it in the inventory, clicking File and Export.

Run the OVF Tool Against the VMX File

Syntax is ovftool [source vmx file] [destination ovf file]

For additional options, you can execute ovftool —help

In the above example, the command was:

./ovftool /Users/username/virtualmachines/centos6.vmwarevm/centos6.vmx ~/Desktop/centos6/centos-image.ovf

Note to windows users: Screenshots of this process were captured in OSX Bash terminal, so some Unix conventions apply. For example, the use of ./ to execute a script that is in the current working directory.  In Windows’ command prompt, just CD into the folder where VMware OVF Tool is installed and run it from there - or provide the full file path.

Inspecting the output files, we can see that the VMX file has been changed into an OVF format, the .vmdk remains unchanged, and a .mf (manifest) file has been generated.

Delete the .mf file.  It is unnecessary and can hinder deployment of the OVF.

Edit the OVF File

Look for the “Virtual Hardware Requirments” section. 

 <Info>Virtual hardware requirements</Info>

      <System>

        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>

        <vssd:InstanceID>0</vssd:InstanceID>

        <vssd:VirtualSystemIdentifier>centos6</vssd:VirtualSystemIdentifier>

        <vssd:VirtualSystemType>vmx-07</vssd:VirtualSystemType>

      </System>

Note the “vmx-##” highlighted in red above.  This must be 07.  If not, correct it.

Next, we’ll look for the network interface info and make some cosmetic changes.  There are two sections typically in the OVF where each network connection is referenced.  You must change both.  We suggest using “replace all” type search-and-replace to be sure.

 <NetworkSection>

    <Info>The list of logical networks</Info>

    <Network ovf:name=”bridged“>

      <Description>The bridged network</Description>

    </Network>

  </NetworkSection>

<Item>

        <rasd:AddressOnParent>2</rasd:AddressOnParent>

        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>

        <rasd:Connection>bridged</rasd:Connection>

        <rasd:Description>E1000 ethernet adapter on &quot;bridged&quot;</rasd:Description>

        <rasd:ElementName>ethernet0</rasd:ElementName>

        <rasd:InstanceID>9</rasd:InstanceID>

        <rasd:ResourceSubType>E1000</rasd:ResourceSubType>

        <rasd:ResourceType>10</rasd:ResourceType>

      </Item>

In the example above, the network interface is named “bridged” and we’d like it to be called something else in the console when deploying this VM template.  We could use search and replace to change all occurences of “bridged” to “eth0” or “LAN Connection” for example.

Backup and Recovery: A Horror Story

2004, company shall remain nameless…

It was my second week on the job and the other sysadmin was in the hospital having surgery that day, I came into the office to find the application database server being autopsied on my desk like a science class frog. The doctors in this case being the C# and Foxpro programmers.

It was at this point that I should have made a run for it.

Apparently the application database was offline when they came in, and despite repeated attempts at power cycling the machine, it was non-responsive and didn’t show anything on the KVM screen. Perplexed, they ripped it out of the rack and began their poking and prodding of its innards.

I was on the phone trying to get to the vendor when another guy came in and said “Hey, the finance database keeps going offline, and now it’s completely dead.” I looked at the machine labeled “Finance Database” and it was dark. We powered it back on, and someone yelled down the hall “Hey, the app database is back online!”

Everyone looked at the corpse on the table. They looked at the “Finance Database” server in the rack. Then someone very quietly swapped the nameplates back on the correct machines. Haha, this was an easy fix. But… this was just the beginning of the nightmare that would last two weeks.

They racked the server again, and I was behind it hooking the cables up. As I said, I’d just been at this company two weeks and had zero familiarity with their cabling. Also, the other sysadmin was under the knife having his gall bladder out that day. So, I hooked up the SCSI connector for the drive shelf and powered the machine on.

Apparently the machine had asked “Array config has changed. Accept changes? [Y/N]” and one of the coders just whacked yes without mentioning it. The array proceeded to rebuild itself, wiping all data.

At this point, it’s a little difficult to breathe. You’ve got that cold chill going. But, we’ve got backups. I changed the tapes every day myself so I knew they were current and error free. The one problem was that the finance database wasn’t checked in the backup items list.

The discomfort is replaced with your heart in your throat, trying to choke you.

I checked every tape set on the shelf. No database. $300 Million company, and the entirety of financial records were GONE. I called several disk data recovery services, and got the same story… we were toast.

I called the other admin the next day to tell him what happened. He’d set up the backups how long ago? There are only a month of tapes on the shelf here, are the others off-site?

Turns out, they had upgraded from LTO2 to LTO3 tapes a month before hiring me. The old drive and tapes were sitting out back, awaiting proper destruction. I walked out there, retrieved an armload of tapes, and prayed that I’d have a job because I’d just moved across the country to start this job. It would be a real shame if the last day of the company was today.

I found the database. Recovered it, and they had only lost 6 weeks of transaction data. Luckily they were still lo-tech in 2004 and had paper invoices to follow. Some temps that could type fast were hired, and the whole problem sorted inside of a month.

I became a backup and business continuity evangelist that day. Still am. Remember - backups are worthless. It’s recovery that counts. Have you audited your backups lately? Have you tested recovering data? From every critical system? Most people haven’t. Make a plan, test it. Trust nothing you don’t verify to recover usable data regularly.

The Cloud? Why Would I Do That?

This is in response to a couple of statements I read today:

I have to say that I get incredibly irritated with the stream of cold calls that I get wanting me to outsource my email, my phone system, my file server, everything, and then being made to feel like some sort of retard when I explain that no thank you, we have the skills and equipment to do it in house.

There’s almost this incredulation that I don’t want to buy some magic beans.

That’s understandable. I wouldn’t want anyone implying that I don’t have the skills and capability to do the job I’m supposed to be an expert at! Perhaps you can look at it as companies (like Cbeyond) simply wanting to ease the burden put on the IT professional - some of the menial tasks can be outsourced leaving you more time to do the stuff that really needs focusing on. Just my two cents.

and

My two huge concerns: Internet connection speeds and security. Having hundreds of users sharing a 3 or 5 Mbps Internet pipe, especially when the gig network taxers are playing with GIS maps all day long, is just not going to fly at most of the places I’ve worked. Maybe the data storage security isn’t as much of an issue as I fear, but what about credit card or social security numbers that have to be stored and assured to other parties they are not being accessed by anyone outside the agency?

In the hundreds of users range, I can’t see Domain Controllers or print servers ever being outsourced. Most places also have some kind of specialized industry software requiring LAN speeds or access. On a small scale office, I can see potentially putting everything in the cloud as they might not even have an IT position.

I’m all for putting things that need to face the Internet in the cloud, such as email or websites. I still have to partially support them, though.

First point is that what is being discussed here is *public cloud*. It’s multi-tenant, off-premise, pay for utilization compute and storage resources. This is different than the *private cloud* and it’s cousin the *community cloud*.

Public cloud means you don’t own or operate the infrastructure, and you share the resources with the rest of their customers. Private cloud is single tenant (you) and you own and operate it. Do you have virtualized servers? You have a private cloud. Community cloud is a private cloud that you create for usage of multiple private tenants - think one organization with multiple groups.

IaaS is just a framework, so it’s entirely about what you build there, and if building it on that framework vs a local one makes sense (and dollars!) It’s about specialization and abstraction in the marketplace.

IaaS = abstract away the hardware and network physicality. No more hardware refresh cycle, break-fix mechanic work. Reap the benefits of best practices and standardization as assumed qualities of the platform. What servers, storage and network equipment should we buy? Not your problem anymore. Spend your time building applications, because they print money.

PaaS = In addition to the hardware and network being abstracted away, you’re also giving up responsibility for the development and solution stack.

On the foundation of the IaaS and PaaS, you then build your APPLICATION as a service. Applications are income generators. Without an application, there is no reason for the infrastructure to exist.

SaaS = Web hosted software that people subscribe to usage of. Abstracts away the need to create, maintain, and upkeep the server and the application. Example: cloud hosted web mail. Now, you no longer pay up-front for a server, an OS license, an MS Exchange license, CALs for users. You just pay a flat monthly rate per user to the SaaS provider, and don’t concern yourself with how the sausage gets made. Turn the tap, email comes out. It’s now a utility.

If you own an Android or iOS device, you’re already a massive consumer of cloud-based SaaS. Just about every app you run has a SaaS component, if not primary function. Everybody is on the cloud, they just haven’t realized it yet.

Here’s a point a lot of people miss, and then make cloud-dismissive statements. Not EVERY application is suitable for an IaaS deployment. Some things require high bandwidth at low latency for either storage or network. Some applications consume such a high utilization percentage of resources that they’re not cost viable in the current cloud pricing models.

Turns out, that’s OK. Really. This is because you have the “hybrid cloud” option. You can extend your private or community cloud - your in-house virtualization setup - into the public cloud. Set up a VPN tunnel, do some thinking about what machines are good candidates for a consumption based billing model and not tied to latency or bandwidth constraints, and stick them in the public cloud.

Do you have a server that is coming end of life? Check out what the cost of running it in a public cloud provider is like. (We have great tools for doing this.) Do you want to test an application but not commit to the infrastructure to house it? Hybrid cloud it. Have a requirement for housing data off-site but don’t want to invest in a second physical datacenter presence? What about business continuity? Hybrid cloud candidates.

The important thing is… does it make business sense not technology sense. Will it cost more or less in the cloud? Can I split it into in-house and off-premise components without productivity impacts to the users? Does the cloud help satisfy some business case, such as off-site redundancy of data?

If it doesn’t save or create money, a business shouldn’t be doing it.

Footnote on Specialization in IT Jobs Market

It used to be that being a “computer guy” meant you had a grasp of all things computery, end to end.  You could program a little, work on hardware a little, maintain an OS and install software, and provide technical support to the less savvy.

As a sysadmin for a small to medium size business that was very productivity and cost conscious, it was seen that being an “army of one” in the admin chair was your best job security and return on investment for the company.  And if things got too busy for a single admin to handle, they could hire a clone of your skill set and have two rounded jack of all trades - which is great insurance against vacations and terminations.

I don’t think the “army of one” skill set is viable anymore.  In fact, I’ve been feeling a lot of stress about being a dinosaur on the verge of extinction.  I’m 42, my skill set is spread across the computing spectrum like - to steal from Tolkien - thin butter spread across too much toast.

I need to address this situation, and I’ve spent quite a while pondering it.  I haven’t arrived at the solution yet, so I’m still pondering, but I do have some thoughts.

From the jack of all trades vantage point, I can see the specialization and division of labor falling into five big silos.

  1. Hardware specialist
  2. Network specialist
  3. Operating system specialist (Win/Unix)
  4. Software and Applications specialists (Integrators, DBAs, etc)
  5. User support

When you’re hiring for a role, do you want the guy who is a generalist and relies on Google and peer consultation, or do you want the specialist who is pre-loaded with best practices and specific experience on topic?  Do you want the weekend warrior of all sports, or the pro athelete focused on gold medals in one sport?

In the datacenter:

  • Hardware - rack-n-stack guys who build infrastructure, pull wires, and crawl under floor tiles.
  • Storage admins - a hybrid combining hardware, network, and storage OS.  Pick a platform and specialize in it.  EMC, Netapp, other.
  • Network - experts in best-practice configuration of networks.  Generally Cisco educated to some degree.

In-House:

  • Operating system specialists - know how to set up, configure, and maintain the Windows and U/Linux servers.  Choose your team: Windows or penguins.
  • Application specialists - sub divided by whatever the application is.  These are your ERP, CRM, Database DBA types. Integrators that sit between the coders and the OS maintainer roles.  Applications come and go, so you can expect to become obsolete and be running against the curve.
  • Automation - a hybrid of OS and Application guys.  You’re the script writer.  Consider this really a sub-skill of any good sysadmin.  There’s a call for specialization though with massive scripting automation projects.  See Puppet and elastic infrastructures.

Outsourceable:

  • Coders - Choose a language and a platform to specialize in. Get used to being mobile.  Coders are the migrant worker bees of the IT field.  Most love to create, and few want to stick around to be bored with maintaining.
  • Support - Support is something that can be taught to a callcenter, and escalated back in-house if they can’t resolve it.  Doing end user support in-house means you’re not big enough to have better things to do, or you’re wasting your time.

So it’s pretty clear that since the level of specialization required to stay competitive in one of these career channels is rather demanding, you’ll have to pick a “major” and possible “minor” and deep dive into them to stay relevant in the market.

I’m thinking about making a list of things I like most, and hate most, and weeding out the non-optimal choices to discover where my actual interest lies.  I’m so used to having a wide view attention deficit inducing role that it’s difficult to force myself to focus on something in particular.

An interesting “alternate option” was brought to my attention by a friend.  What about crossing the gap from “doer” to “director”?  You can’t act every part in the play, but you understand enough about all the roles that you can direct the plan and action.  And that’s still a jack of all trades point of view.  The bonus is, it pays serious bank if you’re good at it.

Is becoming a professional “solutions facilitator” the best solution for the dilemma?  Maybe so.  

Where I was 17 and still struggling to save 16k programs on a cassette tape, the current influx of IT population has had constant exposure to the latest tech, in their homes, and had a chance to direct themselves into a specialty channel.  They’re already focused and in the game.  Don’t believe me?  I’ve met a 15 yr old iOS app developer who can code a circle around all the adults in the room.  He’s no prodigy, he’s just focused on his topic during his formative “agile brain” years.  My topics of focus from that period are all obsolete like a cassette tape.

Q&A: Will the Cloud Affect My Job Security?


My response to a forum topic on Spiceworks today.

Q: 

Do you feel threatened by the cloud? Or do you think it will produce more cloud-focused jobs? I think the cloud affords IT professional more time to focus on other areas of their job and less time on server maintenance, etc. Our customers feel they are able to be more proactive by letting us host their data. How do you all feel about it?

A:

Computer administration will only be an expanding field. As the cloud becomes more and more a commodity, you’ll always need workers on the inside maintaining and building out the infrastructure, and workers on the outside who are plugging functionality into it.

What is changing is the physical hardware aspect. At some point, it becomes highly incentivized to utilize commoditized compute resources remotely, rather than own and operate your private infrastructure in-house. Let the hardware SLA and upgrade cycle be someone else’s problem, because sysadmins have enough to do without having to be hardware gurus too. Specialization is going to divide the labor here.

I think the endgame, however, is that the cloud isn’t about technology at all. It’s about business. The technology will adapt to serve whatever the business requires. Currently, that requirement is economy-of-scale, elastic response to resizing demand, and operational expense replacing capital expenditures. The cloud does this as its true primary function.

So, if you’re in a situation on the business side where you need to eliminate physical asset expenditures, be agile in your ability to shift resources, grow and shrink allocations, and have resources available on very short request-to-fulfillment time scales, you’ll be in the cloud pretty quick.

Your job might change, become more specialized, and will definitely have to incorporate understanding of utilizing remote resources instead of in-house compute. But, tech jobs will expand as a result. The requirement to keep pace with your industry through training, self-educating, and watching trends in the market will only become more vital.

Progress, as a rule, punishes complacency. It also favors the alert and agile. Don’t get caught napping when the balance tips and cloud becomes the normal platform.

OSX Mail: Removing Autocomplete Addresses

The problem: There are addresses in the TO: field’s history that you wish would stop being suggested by autocomplete.

The solution:  Open Mail.app, click Window menu, and Previous Recipients.  Purge out any items you want.

Wow, that was so easy it took me forever to discover it.  I’m not used to such obviousness.  Putting it under the Window menu isn’t initially where I’d think to look, but since that is a popup window it makes sense after you discover it.

Documentation Writing Tip: Capitalization of Headings and Titles.

If you write any documentation, this is going to come up.  I was feeling awkward about my inconsistent urges to capitalize (or not) words in headings in my documentation projects.  So I did the completely irrational thing of looking up the rules.

Hang on, here we go!

  1. All words of four or more letters, no matter what or where the words are (more on this rule later)
  2. The first word of the title and of the subtitle
  3. The last word of the title
  4. All other words with exceptions:
    Conjunctions: and, or, but, nor, yet, so, for
    Articles: a, an, the
    Short prepositions: in, to, of, at, by, up, for, off, on

The short rule:

Capitalize Every Word Except for Little Connective Ones.

NIST’s official definition of Cloud Computing

There is a lot of confusion and uncertainty about what this “cloud” thing is, other than a buzzword your vendors wave around that seemingly applies to anything and everything.    It’s cool to say “cloud this or that” in reference to any product, right?  What does it really mean though?  Let’s define the term so we can converse about it sanely.


NIST (National Institute of Standards and Technology)

Cloud computing is: a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction

This cloud model is composed of five essential characteristics, three service models, and four deployment models.

Essential Characteristics:

  • On-demand self-service. A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider. 
     
  • Broad network access. Capabilities are available over the network and accessed through standard mechanisms that promote use by  heterogeneous thin or thick  client platforms (e.g., mobile phones, tablets, laptops, and workstations).
     
  • Resource pooling. The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, and network bandwidth.
     
  • Rapid elasticity. Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
     
  • Measured service. Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active  user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.

Service Models:

  • Software as a Service (SaaS). The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited  userspecific application configuration settings.
     
  • Platform as a Service (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider.

    The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment.
     
  • Infrastructure as a Service (IaaS).  The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).

Deployment Models:

  • Private cloud. The cloud infrastructure is provisioned for exclusive use by a single organization comprising multiple consumers (e.g., business units). It may be  owned,  managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off premises.
     
  • Community  cloud. The cloud infrastructure  is  provisioned for exclusive use by  a specific community of consumers from organizations that  have shared concerns (e.g.,  mission, security requirements,  policy, and compliance considerations). It may be  owned, managed, and operated by  one or more of the organizations in the community, a third party, or some combination of them, and it may exist on or off premises.
     
  • Public cloud. The cloud infrastructure is provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic, or government organization, or some combination of them.  It exists on the premises of the cloud provider.
     
  • Hybrid cloud. The cloud infrastructure is a composition of two or more  distinct  cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables  data and application portability (e.g., cloud bursting for load balancing between clouds). 

Getting VMware Tools (painlessly) on Ubuntu Server

Install your Ubuntu server, open a terminal, and let’s get busy.

1. You need to have the “multiverse” repository enabled. It seems to be by default on mine.  You can check /etc/apt/sources.list and make sure.

2. Install Kernel modules:

apt-get install --no-install-recommends open-vm-dkms

3. Install headless VMware Tools

apt-get install --no-install-recommends open-vm-tools

The —no-install-recommends prevents the xorg stuff from installing.

If you run into complaints about being unable to build due to absence of Linux headers, run this and retry:

apt-get install linux-headers-virtual


If you want to read the full VMware Tools help text - link

Prepping a Centos 6 VM for OVF imaging

I’ve created a generic Centos 6 32bit install using the netinstall iso.  I rolled out a generic blank VM, with 1 cpu, 1024 meg of ram, a thin 80 gig drive.  It’s helpful to go edit VM, options, boot, and change the startup delay to 10000 so you’ve got time to hit ESC and select the cdrom boot device.  Attached the netinstall iso and booted it up.

http://scottlinux.com/2011/07/17/centos-6-netinstall-url/ has the URL’s to feed the netinstaller.  I picked the x32 flavor, because x64 is aimed at machines needing to address over 4 gig of ram, but it causes a 5% impact in ram use due to 64 bit addressing of memory.  Since most VMs are going to have 4 gig or less, we’ll stay at 32 bit OS and save that addressing overhead penalties.

I built the machine by unselecting ALL packages. Nothing but a minimalist setup.  Once it was done installing, I went back and installed Perl because VMware Tools requires it.  Then I ran yum update and patched the system up.

After clicking vm -> guest -> install VMware Tools, mount /dev/cdrom /mnt, and running rpm -i vmware-tools-(filename).rpm you’re presented with a final instruction to run a perl script to apply the tools to the running kernel.  That’s what we installed perl for earlier.  Do it.

Finally, we’re ready to prep for OVF imaging.  In /etc/udev/rules.d are auto-generated scripts that will mess with your image.  Specifically the 70-persistent-net.rules file needs to be deleted.  If you don’t delete it, the network interface eth0 won’t be present, and it will be eth1 instead because the VM will remember its old MAC address and see the new deployment as a new network interface.

You also want to check /etc/sysconfig/network-rules/ifcfg-eth0 and make sure it doesn’t reference a HWADDR.  Here’s my minimalist config:

[root@Centos6 network-scripts]# cat ifcfg-eth0
DEVICE=”eth0”
BOOTPROTO=”dhcp”
NM_CONTROLLED=”yes”
ONBOOT=”yes”
TYPE=”Ethernet”

At this point you can issue a shutdown -h now.  Check to be sure the VM doesn’t have any iso image selected, because OVFtool will include that iso in the package.  You can now export the Centos box as an OVF.

Fixing vCenter Keyboard RRRRepeatinnnnnnng

If you have to remote desktop into a vCenter server, especially if it’s into a Linux box, you know how obnoxious the kkkkkeyboard reppppppeating issue is.

I’ve found the cure for this.  You have to apply it to every VM though, unless I find some miracle blanket fix for it.

Click on Edit Virtual Machine, then Options tab, General, and Configuration Parameters.

Now, click Add Row and enter:

keyboard.typematicMinDelay = 2000000

In pursuit of Inbox Zero

My inbox policy continues to evolve.

When things come in, I sort them into the 5 bins under my inbox.

1. Closed Out - things go here to be archived for reference, but I’m completely through with their situation.

2. Current Working - These are my “open tasks”. I spend most of my time in here. These require actions on my behalf.

3. On Radar - Things I’m aware are headed my way or that I’ll need to reference in the near future, but I can’t act on yet.

4. Waiting - Things that will require action from me, but I have to wait on another person to action on it first.  Parking zone.

5. Someday - Stuff I don’t want to lose track of, but have no urgency about acting on.

At the end of the day, if my inbox is zero, and #2 is in a satisfactory state with no burning fires, I can close my day out and be stress-free knowing everything is under control.

OSI model, TCP/IP Dust-off

Time to dust off my OSI model knowledge. I heard people might start asking this in interviews, so I thought the best way to get it back in my head was to write about it. Here we go:

Programs    = layer 7 Application
Routers     = layer 3 Network
Switches    = layer 2 Data link
Packets     = layer 

7 Application

Where end users interact with the network. Authentication runs on layer 7 (But encryption runs in 6). Anything that requires end user to enter request is layer 7 for sure. So are firewalls.

Email, Telnet, HTTP, FTP, SNMP

6 Presentation

Compatibility with OS, encapsulation, data formatting and compression.

jpg, ascii, gif, midi, mp3

5 Session

Manager of 2-way communication between two remote hosts. This creates, manages, tears down communications.

4 Transport

Establish logical end-to-end connection. Segment data, and ensure it arrives error free and in correct order.

TCP and UDP. Connection-oriented = TCP, Connectionless = UDP

3 Network

Layer 3 is where network admins have greatest interaction with network. IP addressing, routing runs at this layer.

ROUTING! What paths exist from router to destination, and what is the best path to get there?

2 Data Link

Switches. Wifi access points. Ethernet, PPP, Frame Relay.

Data Link = MAC addresses.

Physical addresses aren’t used in physical layer, they’re in the data link layer.

1 Physical

Pins, cables, electrical issues.


DATA    = 7-5 Application, Presentation, Session
SEGMENT = 4 Transport
PACKETS = 3 Network
FRAMES  = 2 Data link

TCP/IP Model

*TCP*           *OSI*
Application     Application, Presentation, Session
Transport       Transport
Internet        Network
Network Access  Datalink, Physical

TCP:

  • Guaranteed delivery
  • Error detection via sequence and ACK numbers
  • Windowing
  • Connection-oriented

UDP:

  • “Best effort” delivery, but no guarantee
  • No error detection
  • No windowing
  • Connectionless

TCP “three way handshake” to establish connection between two hosts. 1. Transmit segment with SYN (syncronization) bit on. “SYN message” 2. Recipient replies with SYN and ACK bits set. 3. Sender replies with ACK

Connection established, and data transmit can begin.

When receiver sends ACK, it’s actually the number of the NEXT segment it wants to see.

PAR = Postitive ACK with retransmission. If ACK doesn’t come back before timer expires, sender retransmits all segments in question.

Windowing = How much data a sender can transmit before it waits for ACK. Recipient is the decider of window size. Recipient controlling window size is called “flow control”.

Sliding Window = dynamic adjustment of window by receiver as it judges reliability of segments.


Port numbers

20,21   FTP
22      SSH
23      Telnet
25      SMTP
80      HTTP
110     POP
443     SSL
67,68   UDP DHCP
69      UDP TFTP
161     UDP SNMP
53      DNS (is TCP and UDP both)