It’s that time of year when everyone puts together a list of trends and technologies that will gain popularity in the coming year. Sadly, this blog post is no exception. This list is a bit different though. It’s focused on technologies and skills that have been around the block and have really come into their own over the last few years.
This list is targeted for any developer who spends most of his time building for the back-end. For that reason you won’t find any mobile or web trends below; only skills that a back-end developer should consider learning to deliver high quality products.
There are a few trendy technologies often in the news that didn’t make the cut. I’m talking about Artificial Intelligence, Machine Learning and, the newest buzzword, Deep Learning. They’re all highly specialized fields that are more attuned to a data scientist than a back-end developer. They may become another aspect of every day back-end developer life in the future from an API consumption standpoint but as of right now they haven’t quite proven they are here to stay.
Another candidate that didn’t quite make the list is Blockchain. Limiting the list to three items means that some tough choices had to be made. Blockchain could become a big deal in the near future and it’s definitely worth learning more about its inner workings. As of right now developers aren’t rushing to add blockchain to their line-of-business applications, which is the reason it didn’t make the final cut.
So without further ado, here’s the list:
#3 Improving Security
This isn’t a particular technology but it must become a larger part of everything we do as software developers. Knowing the basics like SQL injection and Cross-Site Scripting aren’t enough anymore. Hackers are finding new ways to exploit code, whether it be through vulnerabilities in outdated packages or by an API with too large of a surface area.
Troy Hunt has an amazing blog post and course on Pluralsight called Hack Yourself First. Take some time to go over your own APIs and applications after you’ve watched it. You’re likely to find vulnerabilities you never even considered.
There’s a new security leak happening almost every week. Do you want to be next on that list?
#2 Serverless (Functions As A Service)
AWS launched Lambda, the first serverless platform, back in late 2014. Since then they’ve continued to expand its capabilities by adding monitoring options via X-Ray, language support for .NET Core 2, and a bunch of other small improvements. As Lambda adoption increased, Azure and Google released their own Serverless platforms in 2016 to compete with Lambda. Lambda is still the front-runner in the space but Azure Functions offers some compelling features, such as the ability to expose a function directly as an HTTP endpoint and a tight integration with Visual Studio 2017.
There are a few features that make serverless a great tool for building applications:
- Pay only for what you use with per-request billing. This means you don’t need a web server running 24×7 for an API that doesn’t get much use.
- It lets you focus on features instead of infrastructure by abstracting away the environment on which the function runs.
- Automagically handle scalability and high-availability by letting the serverless infrastructure decide when to spin up more instances of the function.
- Packaging and deploying an application is a simple matter of zipping the source code and uploading it to the serverless console.
There are times when you need more oomph than what serverless can offer. Maybe your memory needs are too costly for serverless or you want to uplift an existing monolithical application to the cloud without rewriting it. In those cases, containers are the way to go.
The adoption of containers has gone mainstream in a big way over the last few years. It’s hard to find exact numbers on their production use but if you’ve spent any time reading Azure, AWS, and Google blogs it’s easy to see how much the big three cloud providers are investing in containers.
For the longest time containers were mostly the domain of applications that could be run on Linux only. But there’s good news for all the Windows and .NET enthusiasts out there. If you’re building .NET Core apps, you can run your apps directly on Linux. Most importantly though, Microsoft’s investment in Docker means that containers running on Windows are getting better every day.
Oh, and guess what enables the scalability and performance of Lamba’s serverless technology? Containers.