• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Tim Cooke
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Knute Snortum
  • paul wheaton
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Ron McLeod
  • Piet Souris
  • Ganesh Patekar
Bartenders:
  • Tim Holloway
  • Carey Brown
  • salvin francis

Cloud Native Patterns: Outsourcing I.T. departments

 
Ranch Hand
Posts: 54
1
Eclipse IDE Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Cornelia,

With more applications moving to the cloud, are we going to see more companies getting rid of their I.T. employees?

Thanks!
 
Marshal
Posts: 65373
248
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
. . . is the process called, “getting rid of,” or, “relocating”?
 
Marshal
Posts: 4662
301
IntelliJ IDE Clojure Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You say "IT employees" but do you really mean the employees who look after the server infrastructure? Just because you don't physically own any server hardware doesn't negate the necessity to manage it. I see it as a change in skill set rather than the elimination of a role.

I have worked in large companies who own their own server hardware but have them located in data centres. From a practical point of view this is not so dissimilar to 'cloud' services. They're both server resources you don't have physical access to. You make some gains in not having to maintain the hardware and manage security updates, and you incur some costs in having to learn and navigate a 3rd party management console application to administer your resources.
 
Carl Byrd
Ranch Hand
Posts: 54
1
Eclipse IDE Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Tim Cooke wrote:You say "IT employees" but do you really mean the employees who look after the server infrastructure? Just because you don't physically own any server hardware doesn't negate the necessity to manage it. I see it as a change in skill set rather than the elimination of a role.

I have worked in large companies who own their own server hardware but have them located in data centres. From a practical point of view this is not so dissimilar to 'cloud' services. They're both server resources you don't have physical access to. You make some gains in not having to maintain the hardware and manage security updates, and you incur some costs in having to learn and navigate a 3rd party management console application to administer your resources.



Hi Tim,

I see what you are saying. And yes, there are situations where you basically move the same applications to an offsite server. However, what I'm noticing is a trend to make applications more SaaS solutions, having basically all setup and maintenance done by the vendor and running at their site. By 'I.T. departments', I was referring to companies that don't sell software, like insurance, gov. agencies, and schools for example. Developers in these areas are going to have a tougher time making a case for their positions. I'm not saying it's a bad thing. It will just be a big change.
 
Tim Cooke
Marshal
Posts: 4662
301
IntelliJ IDE Clojure Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Cloud is just a fancy new name for somebody else's computer. You still need developers to build and maintain the application right?

I think you're conflating the term "developer" here which is causing some confusion, for me at least. To me a developer is the person who builds the application, who writes the code, who packages it up for deployment. I think the developer you are referring to is more of a system administration role rather than software developer.
 
Tim Cooke
Marshal
Posts: 4662
301
IntelliJ IDE Clojure Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In general though I think you're right. The move to cloud computing has removed the need for a certain group of roles within an organisation, primarily relating the maintenance and security of the physical infrastructure and the maintenance and security of the operating system.

Although you might argue that the role has not been eliminated, rather simply moved to the cloud provider companies.
 
Marshal
Posts: 7070
491
Mac OS X VI Editor BSD Linux
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Carl Byrd wrote:However, what I'm noticing is a trend to make applications more SaaS solutions, having basically all setup and maintenance done by the vendor and running at their site.


But that doesn't eliminate the need of setting up cloud environment to be able to host such solution reliably. For instance: how to deploy it on several environments, test, staging, production - that would require to set up projects at cloud provider multiple times manually, you don't want that - so somebody needs to write some scripts to deploy (and replicate) infrastructure first, for instance using Terraform.

Also, in order to set up infrastructure, you still need to have a fair bit of understanding about networking - I would say a big fair bit. So those jobs in my opinion not being done in nowadays by so called sys-admins as used to be some time ago, now they are being done even by dev-ops teams, or software engineers, who have to have knowledge not just about the programming (writing software), but also understand about the cloud technologies, how to set environment for their test, how to deploy...

I'd agree, that sys-admins as such moved to cloud service providers, and software shops don't have those anymore, at least there were no in the recent companies I've worked recently.
 
Bartender
Posts: 20980
128
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This is a large part of why we now have an official function called DevOps.

When you're hosted in someone else's data centre, you don't need your own staff to maintain the hardware. No one to rack in and out new servers, string cables, setup physical routers, or maintain the plant (power, climate control and so forth). You may not even need someone to install and maintain OS's on the servers or keep them secured from OS/networking vulnerabilities.

But that does not eliminate the need for someone to architect the applications infrastructure, setup and maintain virtual networking, provision the servers, manage application-level security or do any sort of applications design, development and maintenance.

So you can (ahem) "optimise" your in-house IT staff, but there's still no free lunch.
 
Greenhorn
Posts: 22
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The employees that maintain hardware will go work for the Cloud company now.  I'd assume the number of machines to maintain will either stay the same or grow world wide.  The systems admins will just administer the machines through the Cloud companies interface now and still work for the same company.  The application developers will also still work for the same company.  So, it seems that the only people that necessarily have to change their place of employment are the hardware experts.  I'd assume there are economies of scale at these larger data centers so there will probably be a need for fewer hardware people but I think they will get paid more.
 
Tim Holloway
Bartender
Posts: 20980
128
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Matthew Keller wrote: I'd assume the number of machines to maintain will either stay the same or grow world wide.



No. I've worked in corporate IT where the average workload on a machine was under 18% because it was dedicated to a single application. In a cloud setup, I'd be cramming as many VMs and/or containers as I could onto a box. Not only to minimize hardware costs, but because we had so many semi-idle boxes that the power consumption was ridiculous. In a cloud hosting environment, you would load-balance hardware and leverage elastic instances. Hardware is a capital expense and the cloud's bean counters are going to be doing everything they can to minimize that. Although the sales people will definitely try to find new reasons for cloud customers to use their products and that would often translate into more hardware at some point.

Matthew Keller wrote: The systems admins will just administer the machines through the Cloud companies interface now and still work for the same company.



Cloud hosting is not co-location. When you lease cloud resources, the OS images are normally pre-supplied and maintained by the cloud host. You may still have some local sysadmin work, but not as much, and some of it offloads to DevOps.

Matthew Keller wrote: So, it seems that the only people that necessarily have to change their place of employment are the hardware experts.  I'd assume there are economies of scale at these larger data centers so there will probably be a need for fewer hardware people but I think they will get paid more.



Paid more.  
 
Author
Posts: 7
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What an interesting question and resulting dialog!!! Thanks for getting this kicked off Carl and for all those participating.

I see a few different threads going on here and I'll see if I can sort them out a bit.

I'll first note that I assume that there is still software being developed by said company. If a company has stopped building software and instead is using only SaaS services, then sure, they'll probably need very few "IT" people. I will say, though, that in the era where software is a differentiator, sometime THE differentiator, I see it going the other direction - companies are building MORE software themselves rather than less.

Okay, so with that assumption established, here are a few scenarios:

1. Company moving out of their own data centers into cloud data centers. Now, this does not mean they are going “cloud-native.” I make the distinction in the book between “cloud” which is more about the where of computing and “cloud-native” which is how.

1a. A company moving to the cloud can take all of what they have today and simply run it in someone else’s data center. Here I totally agree with Tim that your IT load is not likely to decrease very much. Sure, you’re not racking and stacking hardware anymore, but you are still provisioning and managing the compute, storage and network needed for your software.

1b. If, as a part of the move, the company begins to change their software, leveraging some SaaS services for things like databases and messaging systems, then it is possible that they can move some of the responsibility from their own IT to that of the SaaS (cloud) provider. Take a database, for example, the database provider is going to take care of things like upgrading the DB servers, patching vulnerabilities, etc. but your apps that are leveraging that DB, well, all of the lifecycle events around that won’t be managed by the SaaS provider - that’s still on the company building the software itself. Now, without getting into all of the details, I would point out that:
  • it might be the “application team” (some might call them the DevOps team) rather than some traditional ops team that is doing that management. And
  • 2) that the trickiest thing is that with responsibility for management distributed across the SaaS provider and the company building software that depends on that service (i.e. the database), there is a non-technical problem to solve here; have to figure out what these new operational practices are. How coordinated must the folks managing the DB be with those managing the software that uses it?


  • 2. Company is going “cloud-native.” That is, they are building software that is far more tolerant to change (I almost like the subtitle of my book better than the title “Designing change-tolerant software”). Now, whether that lands in the public cloud or some private cloud, there are implications on the staffing in IT. If private cloud then you still need folks to manage things like the compute capacity (served up by something like Kubernetes, Cloud Foundry, Google App Engine, etc.) and services (like databases, messaging, etc.). If you are in the cloud, you could use some of the same services I talked about in 1b above. What is most interesting in this case, though, is that when your software is more tolerant to change, then that allows you to more loosely couple the management of the services from the management of the compute. It get’s back to the question I posed above:

    How coordinated must the folks managing the DB be with those managing the software that uses it?



    Really, only once they are more loosely coupled can IT resources be shifted.

    So in broad summary:
    * If you are going to the cloud but not cloud-native: probably little reduction in IT staff
    * If you are going cloud-native in a private cloud: probably little reduction in IT staff, but roles change and efficiencies can be achieved.
    * If you are going cloud-native and to a public cloud: you could offload some of the IT responsibilities to the cloud provider. (Even here it’s not a given - need to be deliberate to achieve such things).

    Thanks again for the question and dialog. Super fun!
     
    Matthew Keller
    Greenhorn
    Posts: 22
    1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Great points Cornelia.

    Matthew Keller wrote:The employees that maintain hardware will go work for the Cloud company now.  I'd assume the number of machines to maintain will either stay the same or grow world wide.  The systems admins will just administer the machines through the Cloud companies interface now and still work for the same company.  The application developers will also still work for the same company.  So, it seems that the only people that necessarily have to change their place of employment are the hardware experts.  I'd assume there are economies of scale at these larger data centers so there will probably be a need for fewer hardware people but I think they will get paid more.



    To add a little more detail to my previous post.  I work for a large hotel company and I'd say we are half way into the cloud at the moment, so I'm not just imagining what happens, I'm describing exactly what I see.  Our system admins are very busy because they are still doing all the same things they did with our in house data center.  For example, instead of configuring firewalls and opening ports on an F5, they are doing the same thing on AWS Route 53 and setting up things like Bastions (jump boxes), security groups, etc.  You still have to configure all your own custom security and servers, you just do it the Amazon way.  In fact we even have to SSH into the Amazon EC2's and configure software.  You can start out with a nice cloud native image but you still have to set up your own software.  Of course you can make AMI's and only do it "once" and build your Elastic Group from there, but there is still plenty of work to do.  The really exciting thing is that now there is even more to "play with" like leveraging Cloud Front to cache your content all over the world.  I think a system administrators job has gotten more interesting with all this technology rather than being lost.

    We still develop lots of code in house.  SAAS works great for HR systems like Workday but every business I have ever worked for has plenty of custom stuff they always need written.  The devops code needs to be continally maintained, and updated as well.  I wish every automated deployment only involved copying a war file to a server but a lot of our systems are more complicated than that.  We could probably keep a person busy full time writing nothing but Chef and Ansible.  Also, QA people can no longer just be manual testers.  They have to be developers in their own right because we have them write Selenium scripts in java.  I see application development continually growing.  In fact, we are having a lot of trouble finding java developers at the moment.  I'm becoming burned out on interviews because the recruiters can't seem to send us anyone qualified lately.  Demand is way ahead of supply.

    No doubt that the hardware guys that maintain the racks, the power backup system, the fire supression system, all the stuff in the data room will need to change jobs when this switch over is complete.  Even if economies of scale mean that Amazon will only need half of those employees per customer, I still think the growth of the cloud industry will out race the supply of hardware guys.  The better the cloud gets, the more people will find uses for it, and the more servers will be needed.  That is why I don't think the hardware people will be losing their jobs either.  They will just become more centralized.  Probably a lot more will be living out in the country near the large data centers, and enjoying cheaper housing.
     
    Normally trees don't drive trucks. Does this tiny ad have a license?
    Enterprise-grade Excel API for Java
    https://products.aspose.com/cells/java
    • Post Reply Bookmark Topic Watch Topic
    • New Topic
    Boost this thread!