Ops with AWS
Amazon Web Services completed 10 years in 2016, and who would have imagined a computer and storage renting company would compete with the likes of Googles and Microsofts of the world. As a matter of fact, AWS is a leader in cloud infrastructure, as per Gartner’s report, leading past everyone, including Microsoft and Google.
Magic Quadrant for Cloud Infrastructure as a Service, Worldwide:
There can be various reasons as to why AWS is still leading the space. AWS is one of the pioneers in the cloud, which gave them the head-start; its massive partner ecosystem, including vendors who have their integrated solutions with AWS’s services, competitive pricing for the services offered, etc., are, of course, the reasons that have contributed to what is now a more than $10 billion business. But I think what really makes AWS the cloud infrastructure and services giant is its services portfolio and innovation. With more than 70 services from computing, storage, networking, to database, analytics, artificial intelligence, internet of things, and mobile, AWS has an active user base of more than 1 million from all parts of the world.
Being a software enthusiast working in an automation world, I am always captivated by some of these services related to CloudOps, DevOps, and DataOps. It will be impossible to write them down in a single blog, so I will try to restrict myself to some of them.
CloudOps with AWS
Cloud was where it all started for AWS. AWS storage renting business introduced in 2006, when no one used “Cloud” as a term, was then called grid or utility computing. Renting someone else’s storage means migrating your data, applications, and servers. AWS services around these make sure it is a hassle-free journey for organizations to migrate to the AWS cloud.
Application migration: For any application migration, it is important to find out locations where the application is running, which can be on-premise data centers or off-premise or some other cloud, and the dependencies associated with the application and performance measures. Application Discovery Service can take care of all these aspects. It helps Systems Integrators plan application migration reliably. It automatically identifies application locations, configurations, dependencies, servers, storage, networking details, etc., encrypts and exports it in a CSV or XML file to cloud migration or virtualization tool of choice.
With both Agent-based and Agentless models depending on the environment, it is helping system integrators plan migration in the most reliable way. AWS Application Discovery Service is available globally.
Server migration: AWS Server Migration Service (SMS) is an agentless service that enables migration of on-premise servers to AWS. With features like scheduling, tracking, minimum downtime, and automation, it facilitates smoother migration of servers. To get started with AWS, all we need to do is use the wizard in the SMS dashboard of the AWS Management Console. During the migration, each server volume is replicated with a new Amazon Machine Image (AMI), which can be launched as an EC2 instance. We can track the migration progress with a dashboard provided in the console.
AWS server migration service is available in selective areas of East and West US, Asia Pacific, and Europe.
Database Migration: AWS Data Migration Service aids secured migration of data to and from almost all database platforms. Source database platform and destination platform can be homogeneous or heterogeneous; AWS Data Migration Service ensures the data stays operational during transfer without any downtime. I will be discussing AWS database platforms ahead in the blog. In addition, it has a tool called AWS Schema Conversion which can help in the conversion of the source database to AWS database.
DevOps with AWS
DevOps is nothing but an amalgamation of cultural practices and tools that can speed up your software development processes to make it faster and better. And if you talk about DevOps tools, AWS has ample of them.
Microservices
If you are using containers or serverless computing as a platform for your microservices architecture, AWS has ECS and Lambda.
- ECS: ECS stands for EC2 container service, which is a container management service for Docker containers, and with the help of EC2, one can easily run applications on EC2-managed clusters. The best thing about EC2 is scheduling. As per your requirement, we can schedule the placement of containers using ECS, or we can use third-party schedulers or schedulers of our own. Security, flexibility, and the ability to go hand in hand with other AWS services are what I think make ECS a high-performance container management service.
- Lambda: Run the code, pay for only the compute time you are using the servers, and all this without having to worry about managing, provisioning, and administering the servers; this is what Lambda is all about. We just need to upload the code, manage to trigger it, and Lambda will take care of the rest.
Infrastructure as Code
Infrastructure as code is the process of managing and provisioning computer data centers through machine-readable definition files rather than physical hardware configuration or interactive configuration tools. AWS services that can help you monitor AWS infrastructure resources are:
- CloudFormation: Sample templates that are customizable and can be used to manage and run applications as well as describe AWS resources and define dependencies
- OpsWorks: A service that uses Chef and helps in the automation of servers to configure, deploy, and manage them across EC2 instances
Elastic Beanstalk
Elastic Beanstalk lets you deploy, scale, run, and manage web applications without worrying about provisioning and application of the infrastructure and application stack. We don’t need to pay anything in addition for Elastic Beanstalk; just pay for the resources which we are going to use, upload the application in the AWS management console and a git repository or an integrated development environment, choose AWS resources for the application, and Elastic Beanstalk looks after the rest.
CodeCommit
AWS CodeCommit is a private Git repository for developers to store and version their code with enhanced security, scalability, and managed source control. Just sign in to your AWS Management Console, create a repository, and configure the Git client with AWS CodeCommit repositories; that’s all we need to do to get started with CodeCommit. It is not a free service, but the pay-as-you-go model means you pay only for the resources you use.
CI/CD
A typical CI/CD pipeline consists of four steps: commit, build, test, and deploy. With AWS CI/CD services, we can automate these steps for applications, irrespective of the environment it is deployed on.
- CodePipeline: CodePipeline saves us from the hassle of the manual process, which involves building, testing, and deploying every time a change is made with respect to features or updates. The result is a faster release process.
- CodeBuild: CodeBuild can help to compile code, run tests, and produce ready to deploy software, and on top of this, it enables auto-scaling of build servers to automate the build process.
- CodeDeploy: As the name suggests, CodeDeploy automates the deployment process, reducing the time taken and manual efforts for deployment.
DataOps with AWS
DataOps is a term that can cover a number of aspects, and considering the giant AWS is, we can expect no exception in terms of services in DataOps. Regarding database services, it is almost a billion-dollar business for AWS. These database services include Amazon RDS, Amazon DynamoDB, Amazon Redshift, and Amazon ElastiCache. Talk about analytics; AWS offers services from data warehousing and machine learning to data workflow orchestration. And if we are talking about artificial intelligence, we have Amazon Lex for chatbots, both voice and text, Amazon Rekognition introduced in AWS re:Invent 2016 for images, and Polly for text-to-speech.
There are different database services from AWS for different application requirements. Some of the most notable products include:
- Amazon RDS: Amazon Relational Database Service is easy to set up a relational database with the ability to scale as per the requirement. It supports six database engines viz., Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle, and Microsoft SQL Server. The best thing about RDS is it saves you from database administration tasks.
- Amazon Aurora: Amazon Aurora is a MySQL and PostgreSQL-compatible relational database engine. Amazon claims it to be five times better in terms of performance than MySQL. It is a managed database service with features that let you monitor and clone the database.
- Amazon DynamoDB: It is a NoSQL database service that is dynamic to only a few millisecond latencies which makes it suitable for mobile, web, gaming, ad tech, and IoT.
- Amazon Redshift: A fast, cost-effective, and fully managed data warehousing service that can analyze data using any business intelligence tool.
- Amazon ElastiCache: As the name suggests, this service enables you to deploy, operate, and scale cache in the cloud, which can improve performance for applications that need to access information from in-memory data stores like web and gaming applications.
AWS has a huge set of solutions for different needs. In addition, most of these services can be integrated with each other to automate the flow and reduce human intervention to a minimum. The only glitch in the matrix, I don’t think it is a glitch, while most people think it is, is that AWS can be a complex vendor to manage. It requires experts to implement them. But excellent tech support, documentation, training and certifications, and huge partner networks make up for it. Opcito’s expertise in microservices, product engineering, CloudOps, DevOps, and containerization can help you with setting up and implementing AWS services. We have already helped enterprises with migrating their servers and applications to AWS, build CI/CD pipelines using CodeBuild and CodeDeploy, managing containers with ECS, and set up and fully manage databases as per the application requirements using AWS services. It is very easy to get started with AWS and AWS will make sure all your future compute and storage needs are taken care of.