The last couple of years have been crazy with the lot of innovation and buzz around Cloud Computing, Big Data, Machine Learning, Artificial Intelligence, and BlockChain.
Big Data has been there for a while, however, access to these technologies was limited and relatively expensive. Overall innovation in the public cloud has led to commodification these technologies and ease of cloud migration. Today processing of a large amount of data in real time is much easier and cheaper. Outsource Software Development will bring in much more value than it has in the recent past because of these advantages.
That means Machine Learning, AI, and IOT was not far away on the radar, today there isn’t much hassle to develop your own ML, AI and IoT Application with managed offering like AWS Sagemaker and AWS IOT Suite
Not just AWS but most of the cloud providers are building their offerings around below drivers and Yes! these are critical ones to build future-ready systems.
Here is my list of 2018 Technology drivers
- Machine Learning & Artificial Intelligence
- Internet of Things
- Conversational or Voice Enabled Systems
- Serverless computing
- Edge Computing
While explaining these drivers I have given AWS managed services examples, that doesn’t mean I am advocating them, these are just an example how cloud Computing services providers commodifying these technologies and tools. Azure and Google might offer similar managed services. The point I want to make is, there are matured set of managed offerings to build your solutions around 2018 technology drivers
Machine Learning & AI
This is undoubtedly hottest topic in the technology community, many companies/startups are building innovative products in this space.
Building & Training Machine Learning models are hard task. There are more 100 tools and libraries available to process a huge amount of data and build ML models, however identifying and configuring the right set of tools is not an easy task, it requires extreme technology and infrastructure understanding and maintaining and scaling it over a period of time is the costly affair.
AWS Sagemaker and AWS EC2 P3 instances are the new addition to cloud services. Amazon SageMaker is a fully-managed service that enables developers and data scientists to quickly and easily build, train, and deploy machine learning models at any scale.
New P3 instances give you GPU power and are ideal for computationally challenging applications, including machine learning, high-performance computing.
One of the base features of Cloud Native application is “Controllable”. Decompose to smaller building blocks so each of them can be controlled separately. That leads to Micro services architecture. You can read about Cloud Services in my other post.
Microservices architecture gives you a power of building software using the variety of different languages and tools and container technology makes it possible to package and run all services that need different ecosystem (os, versions, libraries) together on a single server.
See below representation of one of the applications that my team has been working on. It has 9 - 10 different services written in different languages performing the specific function in isolation but all services are hosted on single server. Of Course below representation is not the production-grade setup :). This kind of architecture gives great flexibility and control to build your application using the technology stack (varied) which suits you.
AWS has services likeAWS Fargate, AWS EKS, AWS ECS to make container management easy at scale.
As it says, no servers. Well, technically there are servers/physical machines but you don't have to worry about containers, memory allocation, packaging, deploying and scaling your application.
This is how the serverless architecture will look like if I try to convert the above-mentioned application to serverless.
All you need to do is, break your service into smaller functions and load them in AWS Lambda, hook up Lambda with AWS API Gateway and use AWS Cognito to authenticate API endpoint. Your application is ready to work in any kind of scale. Not to worry about container orchestration, scaling individual containers and monitoring.
You pay for the number of times your function gets executed. You can use AWS Step Function to achieve statefulness and AWS SAM Local to test the serverless application locally.
Internet Of Things, hearing a lot of buzz around this keyword these days and why not. 15 years back we were imagining our home appliances and manufacturing machines controlled and monitored over the internet and today it is not that hard AWS IoT suite has all possible components like AWS Iot Core, AWS Device Management, AWS Greengrass, AWS FreeRTOS to build, deploy and manage your IoT devices and applications.
No need to worry about MQTT, Network & Device Security, Scaling, Device specific analytics. On another side, Azure IOT and Google IoT are also very mature platforms in this segment.
In re:invent Vogels said “Voice unlocks digital systems for everyone, it represents the first disruption driven by the capabilities of deep learning. Voice represents the next major disruption in computing.”
Amazon, Google, and Apple are investing heavily in conversational technology not just software but hardware as well. The technology that is backing Alexa such as AWS Lex, Polly, Comprehend, Translate, Transcribe is already available. You can build your own Alexa grade applications and devices using these services.
The more data you are putting on the public cloud the more security you need. Security is everyone’s job. Keeping customer applications and data security should be your first priority.
Security automation is very important but commonly ignored area in software development life cycle including custom software development.
AWS has the number of services that you can use to secure your infrastructure and application you can check those here. For security automation you can take a look at services like AWS Trusted Adviser, AWS Config, Amazon Inspector, AWS CloudWatch, AWS CloudTrail, Amazon Macie, Amazon GuardDuty.
Edge computing is a method of optimising cloud computing systems by performing data processing at the edge of the network, near the source of the data. This reduces the latency between devices and the data center.
Deeplense is the first AWS Edge Computing platform. It is a perfect example of designing technology stack that is integrated on device and cloud.
Here is how it happens.
In my opinion, BlockChain at least needs one more year to enter into mainstream technologies market, so it is last on my list for now. Many enterprises are implementing BlockChain on a POC/Pilot level. The handful of BlockChain startup secured decent amount of funding in last quarter of 2017.
Amazon, Microsoft & Google aren't offering any services off-shelf but they are working with partners just to show existence. Here is more info AWS Blockchain Azure Blockchain. I recently stumbled upon an article on Forbs Why Aren't Companies Like Facebook, Amazon, And Google Doing More With Blockchain Technology?
As a solution provider, I spend some time In 2017 on understanding the overall decentralized app ecosystem and building POC on Ethereum platform for various use cases. We can expect some momentum in 2018.
One of my concerns about not just blockchain but software, in general, is for decades software engineers created code with bugs, which wasn’t as consequential as software served for communication and information management. As we transition from internet of information to an internet of value exchange, bugs can mean the far greater loss of capital. That’s something for us as an industry to consider and be mindful as we upgrade legacy code and write next generations of software to support the upcoming internet of value.