SaaS: Trends in Cloud Development
Nowadays, there is no so huge hype around cloud computing as it was several years ago. On the other hand, cloud development is a robust part of IT industry with its own history and trends. For now, Software as a Service is not just about launching the code in the cloud and scale it in real time. Most Cloud users deploy code weekly or even daily, there are questions on Testing/QA processes, Production/Deployment workflows and more strong software security approaches. Elasticity of cloud structure the key factor to implement Big Data project in the cloud, as well as, storage, analytics and batch processing application. Large companies want more control on their Software as a Service solutions. They can build their own cloud infrastructure based on one of open source solutions. Small teams rather use well-known public clouds.
Cloud development principles
A lot of projects are moving to the cloud these days. Developers face a common set of challenges. There are basic principles to achieve the best results. Document architecture and deployment infrastructure. Designed solution should be highly cohesive and loosely coupled. The best way is splitting a solution into several microservices at line of business logic, domain and common sense. Automation helps a lot. Actually, whole process should be automated as much as possible right after commit to cloud. Continue delivery is another modern approach that helps both programmers and devops with automation. There are configuration management tools (like Chef, Ansible, Puppet) to manage resources and pack artifacts into images or containers with Packer or Docker. After you moved the application to the cloud it needs new mechanism for monitoring. There are solutions to monitor CPU usage, Memory statistics and disk performance.
Container technology is a modern way to organize all workflows of the project ( development, testing and production). Technically based on virtualization, it allows to build, deploy and run any Software as a Service anywhere. Anywhere means in the Cloud as well. Docker [http://www.docker.com] is one of the most popular container technologies for now. Container is a virtual guest OS. Application is running inside a container. The sufficient restriction here is that each container of the host should have the same operation system and environment. That’s why huge enterprises avoid container-based virtualization and use rather hypervisors with option to have multiple operation systems. On the other hand, container technology is the best choice for hosting providers. They provide effective and secured way for the customers to host their solutions.
Security became more important than it was in previous years. And even more, question on standards and general level of security for a cloud provider is as important as problem of common reliability. Customers look at security as the number one factor when choosing a cloud provider. The most important features are encryption, location of data, authentication options, firewalls, dedicated servers.