You may have seen services offered from cloud vendors labeled as “Micro-Services” but what exactly are these services?.
Microservices are “BlackBox” solutions from providers such as AWS and Azure these services such as RDS (Relational Database Service) from AWS provide full featured
Database services but the management is abstracted from the user you don’t need to be a SQL DBA to be able to use their service. The management and maintenance is taken care of by the cloud provider,
Things like patching and updating are now the responsibility of the cloud provider wherein traditional environments the I.T staff would be responsible for doing that.
These services also can be called on to leverage the infrastructure of the cloud provider such as AI projects or Big data where you use a Micro-Service to accomplish a certain task.
Or say you want to launch an application without having to deal with the underlying infrastructure you can use AWS Lambda which builds the needed infrastructure without you having to administer it all.
Amazon and Microsoft have literally hundreds of these small black box services that are used in application development and other applications there are IOT API’s that are used for analysis and there are also other data mining applications. Google has their neural-network that can be called via an API.
These services, of course, come at a bit higher cost sometimes due to the fully managed nature of the service. You also give up some of the control and customization of the service so if you are doing something funky with SQL you might need to check if that is supported. In the fully managed service from the cloud provider. Others are charged based on how many times you call the API they are usually paid as you go just like most other cloud services.
see the image below for a representation on how this looks
- Abstracted from management means less time maintain the system
- Security patches and updates applied and managed by the provider
- Usually includes an SLA for availability
- No need for in-house expertise to manage and maintain the system
- Easy drop-in API’s allow for extended functionality almost instantly to your apps
- Loss of control of the underlying infrastructure
- can be costly
- may not support customization
- Leaving the management in the hands of another company can make some companies uncomfortable
Some things to consider at the business level would be the cost of hiring in-house I.T staff or contractors to manage a traditional system vs paying for a cloud-managed system.
Take for example RDS which is the database service from AWS to hire a database admin to take care of your database plus the hardware costs you may deem it better to pay for Amazon to manage your database infrastructure than hiring a DBA.
What are you thinking of moving into the cloud ? for example if you have your customer database you may want to take a hard look at SLA’s and SLO’s to ensure your data will be safe you may want to look into the practices of the cloud provider you choose generally Amazon and Microsoft are good decisions as they have a solid ship. But of course, do your due diligence at the end of the day any company big or small makes mistakes.
A good book on this topic is https://www.amazon.com/Building-Microservices-Designing-Fine-Grained-Systems/dp/1491950358
If you have any questions please leave a comment!