Cloud Infrastructure and Cloud-Native Development:
Introduction: Application and infrastructure shape the cloud. Once an investment is made into the choices of the technologies for the cloud, it becomes difficult to move to a newer cloud or public cloud. The choice of private versus public cloud is usually made beforehand and often for reasons different from the considerations of application or infrastructure. So, at this stage, it is merely the organization and utilization of resources, stacks, and technologies for the purpose of the anticipated workload. This article delves into some of those considerations.
Description: Any cloud certification technology will describe the organization of a cloud in terms of SaaS, PaaS, and IaaS which are major cloud delivery layers, where SaaS stands for Software as a service, PaaS stands for Platform as a Service and IaaS stands for Infrastructure as a service. Institutions invest in their being self-service, paid-on-demand, elastic, scalable, programmatically accessible, and available over the internet. The layers formed by these cloud services are stacked up, so they tend to hide complexities to the applications.
A private cloud can improve its value by taking some of the following measures:
Provide container resources in addition to virtual machines to explode the number of computing resources.
Provide services that are customized to frequent usages by private cloud customers. This includes not only making it easier to use some services but also provisioning those that many customers often use.
Anticipate customer requests and suggest compute resources based on history and measurements.
Provide additional services that more customers are drawn to the services and not just to the cloud. Additionally, the customers will not mind when the weight of the services is shifted between public and private cloud infrastructure as the costs dictate.
Provide additional services that will not be offered elsewhere. For example, data tiering, aging, archival, deduplication, file services, backup and restore, naming and labeling, accelerated networks etc. offer major differentiation that does not necessarily have to lean towards machine learning to make the private cloud smart.
Offer major periodic maintenance and activities on behalf of the customer such as monitoring disk space and adding storage, checking for usages, and making in place suggestions on the portal.
Reduce the volume of service desk tickets aggressively with preemptive actions and minimizing them to only failures. This is paying off debt so it may not translate to new services.
Improving regional experiences not only with savvy resources but also improved networks for major regions.
Provide transparency, accounting, and auditing so that users can always choose to get more information for self-help and troubleshooting. FAQs and documentation could be improved preferably with a search field.
Enable subscriptions to any or all alerts that can be set up by the customer on various activities. This gives the user informational emails with subjects that can be used to filter and treat at appropriate levels.
Public clouds provide IaaS storage services with disks and files whereas they offer PaaS with services such as objects, tables, and queues. The storage offerings are built on a unified distributed storage system with guarantees for durability, encryption at Rest, strongly consistent replication, fault tolerance, and auto load balancing. The IaaS is made up of storage arrays, virtual machines, and networking. The PaaS is made up of existing frameworks, web and mobile, microservices, and serverless computing.
Many open-source cloud technologies such as Openstack provided out-of-box technologies that could add core features to the cloud and with easy programmability, but their maintenance was significant even when they used clusters.
Kubernetes addressed both the infrastructure and resource by providing control and data planes that was much cleaner and more well-knit in design. PaaS may be called out as being restrictive to applications, dictating the choice of application frameworks, restricting supported language runtimes, and distinguishing apps from services. Kubernetes aims to support an extremely diverse variety of workloads. If the application has been compiled to run in a container, it will work with Kubernetes. PaaS provides databases, message bus, cluster storage systems but those can run on Kubernetes. There is also no click to deploy the service marketplace. Kubernetes does not build user code or deploy it. However, it facilitates CI workflows to run on it.
We also have integration with Openstack for Linux containers. The plugin allows the hosts to compute nodes while the container takes on the workloads from the user.
PaaS provides Application Gateway which can manage backend with rich diagnostics including access and performance logs, VM scale set support, and custom health probes.
The Web Application Firewall security protects applications from web-based intrusions and is built using ModSecurity and CoreRule set. It is highly available and fully managed.
Native Containers are small and fast. They have two characteristics. First, the containers are isolated from each other and from the host in that they even have their own file system. which makes it portable across cloud and OS distributions. Second, the immutable container images can be created at build/release time rather than the deployment time of the application since each application does not need to be composed with the rest of the application stack nor tied to the production infrastructure environment. Kubernetes extends this idea of app+container all the way where the host can be nodes of a cluster. Kubernetes evolved as an industry effort from the native Linux containers support of the operating system. It can be considered as a step towards a truly container-centric development environment. Containers decouple applications from infrastructure which separates dev from ops.
Conclusion: The choice of investments for a company in private cloud layers, therefore, includes a mix of Datacenter based technologies, Openstack or Mesos-based technologies, Kubernetes, and container orchestration technologies.
#codingexercise
boolean intersects(Circle circle, Rectangle rectangle) {
closestXToCircle =Math.min(Math.max(circle.center.x, rectangle.bottomleft.x), rectangle.bottomleft.x + rectangle.width);
closestYToCircle = Math.min(Math.max(circle.center.y, rectangle.bottomleft.y), rectangle.bottomleft.y + rectangle.heignt);
if (distance(pair(closestXToCircle, closestYToCircle), circle.center.coordinates) <= circle.radius) {
return true;
}
return false;
}
No comments:
Post a Comment