Overall, disappointing article.
> Good luck to whoever will manage an AWS infrastructure
> on his spare time between developing one feature and
> another.
The point of the article is that this work will be outsourced to companies that specialize in DevOps, that most companies that develop software will not need the specialist in-house.(edit: Think about $MEGA_RETAIL_CORP. Their main-line of business is not software development, but retailing. Despite being a large company with deep pockets, they have difficulty recruiting the best and the brightest in the DevOps world to come and work with them. When $TURNKEY_DEVOPS_CORP approaches them and offers their devops as a service product, $META_RETAIL_CORP eagerly signs up.)
Given that I've done this a while, I have a bunch of patterns and reusable things, that use to deliver something quite quickly. Once it's up and running, your job is to patch. Obviously developers like to be constantly running the new shiney thing, but if you put a foot down on that, stick to a low number of well known tools, and don't chase fads, you'd have a lot of time to work on features.
However, it also depends on where you are and what you're outsourcing. If you want me to start from nothing and decide we're using a whole bunch of tech I don't have patterns for already, it's going to be a while before you see me come up for air and do any features.
It also depends on what you're hosting though. Much of what we're selling is just a fancy CRUD app, they're easy to run.
We built it on Google App Engine. If you don't like GAE there are other PaaS providers that offer something similar. Developer life on a PaaS consists of building features day in and day out. It's not mucking with Docker, Chef, Ansible, Salt, Puppet, BOSH, apt, yum, or any other low-level systems management tools. This stuff doesn't even waste space in my brain[1]. Instead of learning this stuff, my team has been been learning about the business needs of our customers and building them out in code.
I plan never to hire a devops team. Running servers is like writing assembly language; appropriate only for companies with very specialized needs.
[1] Not quite true - I used to work on the BOSH team. It's a great tool for deploying CloudFoundry. But you shouldn't use BOSH, you should use CF, hosted by someone else.
Then Parse shut down.
I think the lesson here is, you should never trust your core product to a third party. Also, when you use cookie-cutter services, you really limit the kind of things you can do, and vendor lock-in really, really limits your options in the long run.
"The first software companies had thousands of developers. The second wave of software companies had hundreds of developers. The next wave of software companies will have 1 developer."
Can't find the source, might not be the exact quote either, sorry.
This has happened with Parse, and this will happen again.
Does DevOps or SRE's not exist in this realm?
Fyi, the title is using the rhetoric template of:
<SOMETHING> is dead. Long live <SOMETHING>. [1]
...where <SOMETHING> is deliberately the same word in both sentences. The construct is a shortened version of: <SOMETHING> in its previous and more well-known form has evolved to <SOMETHING> with a new variation. That <SOMETHING> is still there the whole time -- which is sort of meta-joke connecting the 2 sentences.It's as if someone wrote "Cars are dead. Long live cars." to signal the change from humans manually driving the cars to AI robots doing it. If you read the "cars" literally, it looks nonsensical because there are obviously cars existing both before and after the shift to automation.
[1] examples:
http://www.pcoitmurphy.com/_books_are_dead__long_live_books_...
https://www.tnooz.com/article/hotels-Airbnb-rented/
http://www.wired.com/insights/2014/08/moocs-are-dead-long-li...
I recently created a private cloud infrastructure on Digital Ocean. It would have been easier and faster (and more polished) if I'd gone with AWS, but then I would know how to use AWS, and would not know how to do these things myself.
Why learn about HAProxy, keepalived, tinc, etc when you've got AWS to handle it all for you?
Answer: Because relying on a service to abstract the inner workings for you is a path to the dark side.
Deadlines, I guess.
Testing was more closer to writing-code - so that got absorbed into the dev side faster. Disappearing QA was a you-blink-and-you-miss revolution.
DevOps is a little farther. Several developers are not able to wrap their heads around the deployment systems, the implications of hardware and network etc. But they will. Eventually. Because they are smart people.
I think the message of the article is that people who solely have DevOps expertise, should look to evolve to developing code as well. That way we have smaller, well-knit teams with each member having an additional speciality other than writing code.
>Developers are responsible for full test automation and making sure their code works.
Is laughable outside of [insert new sexy startup here], if only due to the difference in mindset.
Granted I'm totally biased as a QA Automation, but the analogy actually removed quite a bit of credence that this article might otherwise have held with me.
"Yeah, I'm in team X and I do the Devops part"
So we basically have an "ops" person sitting with the devs, and call the team a "devops" team. The devs have still no idea how to deploy their code. The ops have still no idea how the code looks like. But hey everyone feels better.
This is also true for many job offers in the form of "looking for a devops engineer". No, what they are really looking is for an ops person that has to sit in a dev team and do the part no one likes to do. s/He will be lucky if s/he can actually spend 10% of his time producing application code.
So? What's the problem with this? DevOps generally means someone who uses developer like approaches (e.g. scripting, automation, developing one-off solutions, etc) to solve operational issues. It is a role, and someone has to do it, and I would argue that there are people who love to do this role.
But if someone sought a job in DevOps thinking they'd be producing application code, they only fooled themselves. If someone sees some sort of status issue and forever tries to fight against their role, well that's just detrimental to everyone.
The rub seems to be that quality managed services are widely available and affordable enough to obviate the need for in-house DevOps.
I have yet to find developers who are throwing themselves at carrying a pager.
DevOps isn't going away. Its just less relevant in smaller teams. Larger teams are always going to have an ops team.
Should be fun for the Fortune 500's. Part of the justification of moving to the cloud was laying off the sysadmins and other people that did "DevOps" before it was called that.
Once it's centralized, the human instinct to "ensure survival of the group" means the DevOps team will get bloated in headcount, budget, tools, etc.
I assume that will be followed by some new wave of features called the "AI Cloud" or something that manages itself, allowing you to now lay off the new centralized DevOps team :)
The reality is the field is less welcoming of specialized developers. We all have to develop, test, and deploy our code. Call yourself whatever you want but make sure you comfortable doing it all.
http://www.amazon.com/Site-Reliability-Engineering-Productio...
It would be more precise to say that the era of the code illiterate sysadmin or QA engineer is coming to an end. So is the era of the developer who didn't understand the basics of operating systems and networking.
Furthermore, leveraging QA in an Agile process is critical to continuously improving our software quality.
To me, this article is more about the architectural/business decision of outsourcing as much as possible to 3rd-party services instead of reinventing the wheel in-house. How many Chef repos have the same stupid passenger cookbook vendored in? How many times have you had to fuck with that cookbook because it broke or something got updated? My websites for http://psychedeli.ca, http://brother.ly, and http://www.waxpoeticrecords.com are hosted on Heroku and, apart from the occasional Redis issue, they've been chugging along quite smoothly. I've had little to no issues with my development and continuous deployment process, which give my apps the same safeguards that I get with work (even more) with no one needed to "watch over" the project...other than me of course.
[1] http://www.ryan-williams.net/hacker-news-hiring-trends/2016/...
You need someone to liaise with the Cloud company, set everything up, test it, organize changes, and update the system regularly with new functionality. Even if a Dev had 10 years experience managing infrastructure, they still shouldn't be doing it because they should be developing products. If only there were someone whose job it was to manage Operational changes, and liaise with the Developers... Hmm.
And by the way, not everything is moving to the Cloud. We've had managed services in one form or another since the early 90's, and the result is always the same: the service provider is blamed for things working shittily and the company brings services back in-house.
And his continual refrain that "QA is dead" - does this guy understand product development lifecycle? Whether you're designing a brand new product or just bringing out a new version, you have to have QA. Can you imagine a medical device or medical web service being developed without QA, or QC?
Thanks for the troll, TechCrunch.
Second, this is a really clickbaity article.
You don't have a DevOps guy, or a DevOps team. You have a team that does both development and operations. The less work they have to do (like the reduction of effort with managed services) the better, but it's still work we need to do.
If you call out DevOps as a specific role, they you're not doing DevOps. Just like those practicing "Agile" are likely lacking in actual agility.
The servers and databases are all managed by my one boss, but I'm basically now responsible for every aspect of my application's lifecycle. While I'm a 1-man team now, I know down the line we're looking to expand and I'm trying to set things up right for when that day comes - proper version control, and an automated way to push updates to my Django app.
I was looking at Docker and the likes, but we're unfortunately running Microsoft SQL Servers and Windows Servers which apparently aren't going to see much support for virtualization/containers til the SQL Server 2016 version comes out. My company is an engineering firm, not tech, so paying for an AWS bucket or me making a case to get the fuck away from Microsoft backend stuff (the headaches I've had with MS SQL already...), etc etc probably isn't high on their to-do list.
Maybe due to the sort of company I work for this article just doesn't apply to me anyway, but it seems like the author assumes any company rolling out software or a service is doing so at the cutting edge and as its primary focus.
I'm not sure my struggle to find a sane way to automate our deployment and updates would be helped too much by literally any of the cloud based services anyway. Even if they gave me a green light to go all-out on whatever service I wanted to use, at the end of the day I'd also have to manage all of those services and their connections to the app as well. I'm trading off some work for another kind, and a lot of these cloud solutions are hardly painless.
> HTML used as the screenshot is as horrible as article.
+1
I guess our company didn't get the memo?