What is Cloud?
Someone else’s computer🙂. Someone who owns a nearly infinite number of computers worldwide.
Keep it in mind. It will serve as the foundation for all of the points discussed later in the article.
What is Cloud Native?
Your application, service, or architectural design is cloud native if it resonates with all the tenets listed below.
Microservices architecture ensures you are able to leverage or design individual services to be able to use the best available options in the cloud independently. For instance, it might make sense for service X to use a SQL database but for service Y to use a NoSQL database. Having said that, bear in mind — Microservices are a means, not a goal.
Containerization: You have developed an app or a piece of software but it is supposed to run on someone else’s computer(cloud), how do you ensure consistency in the way it runs on your computer vs someone else’s? The answer is containerization — more on containerization here.
Continuous Integration involves doing scans on the code every time a developer makes a commit, in order to guarantee the quality of the code. We don’t want to send bad code to someone else’s computer, after all, 🙂. Especially in a microservices architecture, your system’s performance and quality are as good as the worst component. CI will guarantee that every component complies with a certain standard.
Continuous Deployment is releasing your changes to someone else’s computer(cloud) in short but continuous cycles. Due to the independent development, testing, and deployment of each microservice, many teams can work on various modules at once. This makes it possible to deliver sophisticated cloud native applications quickly and nimbly.
Security: Whether your application is on-premises, in the cloud, or even more so in a public cloud, security is of the utmost importance. Access control, change audit, ingress/egress rules, and encryption should all be used to safeguard your services and data.