DevOps is a combination of development and operations and represents a culture, movement, or practice
DevOps is a combination of development and operations and represents a culture, and practice. It stresses the collaboration and communication of both software developers (Dev) and Information Technology (IT) Operations and Maintenance (O&M) professionals (Ops) while boosting software delivery and infrastructure changes. It aims at establishing a culture and environment where software building, testing, and releasing can happen more conveniently, frequently, and reliably.
Devops — A Background
DevOps gradually gained predominance in 2016. Tech analysts predict the drive of basic cloud, mobile, and social demands will eventually influence companies to realize the cultural, performance, and economic benefits that DevOps best practices can secure.
Up to date and flexible companies have experienced the advantages of DevOps and continuous delivery. Furthermore, mature, large businesses are aware of the value of DevOps best practices, which has triggered a cultural transformation. However, these enterprises uphold a practical attitude towards DevOps. In 2016, before the extensive application of DevOps, enterprises performed DevOps testing experiments in non-key or new IT programs that involved process, automation, collaboration, and tool aspects. However, the current collaboration has improved work efficiency.
On observing DevOps solutions comment trends posted by real users on IT Central Station, we find that users who research and purchase DevOps solutions have changed. Previously, DevOps managers and release managers authored the majority of comments. Now, the number of comments on DevOps tools composed by architects, customer service managers, middleware software experts, and network engineers are on the rise. Furthermore, more mainstream IT buyers started adding DevOps tools into their budgets in 2016.
Currently, mature DevOps buyers are from software and technical industries that adopted modern practices and technologies at an early stage. On the other hand, large and Fortune 500 companies are experiencing a surge in the adoption rate of the DevOps approach. By the end of 2016, DevOps had proven to be an advantageous strategy thanks to its universal access and practice.
The best companion to DevOps is the public cloud. While the principles and practices of DevOps can be applied to and can benefit private clouds and internal applications, organizations that have applications in the public cloud find that DevOps practitioners can provide even greater benefit.
A Primer on DevOps
First, we need to be very clear about what DevOps means. DevOps comes in two primary flavors: DevOps as a practice, and DevOps principles. The practice involves very specific tactics from DevOps engineers, IT managers, site reliability engineers (SREs), quality engineering, and developers, with a focus on scripted infrastructure, ChatOps, incident management, monitoring, and all other flavors of automation.
DevOps principles guide the tactics. Generally, when you hear the term DevOps, it’s meant to encompass all elements of what makes a sustainable and efficient development environment. It includes organizational structure, DevOps practice, and philosophy. DevOps is not something that is accomplished. It is a means of operating so that the development environment is not at some point beyond its prime, and locked into a specific pipeline toolset or processes.
When we talk about the public cloud enhancing DevOps, we are talking about what can be done at the intersections of practice and principles.
Staking a DevOps Claim
Considering the principle definition of DevOps, you cannot say that one company is or is not doing it. As long as you are focused on building better applications and more frequent and more efficient releases, then you are of the DevOps mindset; therefore, anyone who is building applications can be of the DevOps mindset. But in working to reach some more advanced DevOps practices, the technology stack can be a limiting factor. This includes:
1.) automated testing and continuous testing
2.) continuous integration
3.) continuous delivery and canary releases
These are hard to implement without the flexibility and services you can find in the public cloud. The public cloud removes a collection of barriers to adopting these practices by removing all hardware obstacles, and making the relationship between source repository and production seamless.
“Public” cloud does not presuppose the application is public. Internal line of business applications can also run in production in a public cloud, which removes barriers for some organizations that might claim public cloud is not for them because they are not building a commercial application.
All the principles of modern development practices can be implemented in private clouds. But the rate of adoption and flexibility cannot match that of applications deployed to the public cloud.
What the Public Cloud Offers
Public cloud boosts DevOps in two dimensions: The first is organizational and process- oriented, and the second is technical. The time from infrastructure request to access to that infrastructure is generally considerably shorter with public cloud than with private. This availability unshackles teams. IT is able to service developers without feeling the high pressure of the requests they receive, and developers do not shy away from features and functionality because of the potential hassle of trying to get the resources they need.
From a technology standpoint, public cloud service providers like Alibaba Cloud are more current and advanced in infrastructure. This is what they do and get paid for. Alibaba Cloud offers DevOps-friendly features such as integrated performance monitoring and the ability to set up continuous delivery chains in an easy fashion. Most companies are not in the business of data centers, and because of that, they are not operating at the same levels that a cloud provider like Alibaba Cloud can.
Learn about the best practices when deploying a new website (app) on Alibaba Cloud’s infrastructure, including implementation and maintenance.
In this how-to, I want to talk about some best practices when using Alibaba Cloud to deploy a new website/webapp to their infrastructure, including the implementation of maintenance.
Although you might already be familiar with web development on Alibaba Cloud, I will cover this familiar topic from a different approach. The article is going to focus on the deployment from a pure DevOps perspective, as Alibaba Cloud is a platform with all the potential for you to use the best tools in the industry in order to achieve your goals. Here we will use Terraform from Hashicorp, as it is unarguably the industry leader.
In this article, I will use my own website “El Fotómetro Digital” as the example. It is just a blog about photography that I just started, in which I published technical articles about cameras, photography techniques, and all that kind of stuff. It is still in a very early stage of its life, so in the meanwhile, check the Photography section of my blog.
Why Alibaba Cloud?
Alibaba Cloud, in my opinion, brings the best of both AWS and DigitalOcean giving you the scalability and services of the first but with the transparency of the second. Although Alibaba Cloud has room for improvement in terms of documentation, it is improving every day and the blog has hundreds of entries every month. Stay tuned to the Alibaba Cloud Blog page, as this company is going to give some big news from time to time. I feel Alibaba Cloud is exploring the cloud industry the right way — building everything from scratch.
DevOps on Alibaba Cloud
This guide will look hard to follow at first, but I’ll try to write it in a very detailed way so anyone can follow it. If you finish this how-to, rest assured that you’ll get to another level in the DevOps industry. You’ll also learn about the coolest tools to automate your deployments in Alibaba Cloud/Aliyun.
Getting an Alibaba Cloud account
This must sound obvious, but first you need an account, if you are a new user, there is a $300 free credit waiting for you! So now, create an account and get your profile up and running! It only takes a few minutes for you to register.
In this article, we will discuss how you can integrate your UX team into your agile DevOps culture and ensure that UX keeps pace with development.
Good User Experience (UX) simply makes sense. Without a solid foundation in designing and developing user-first digital experiences, your organization will fail to compete, and your customers will ultimately go elsewhere.
On top of this, the world’s IT leaders are aware of another cultural shift. We’ve seen organizations adopting DevOps strategies and agile development to deliver value-added products and provide improved services to end users.
However, your UX team is in danger of being left behind, thanks to the fast pace of agile DevOps practices. This is because such processes rely on a series of sprints, where iterative changes are made to your product or service.
This can present challenges for your UX team as they now need to analyze and keep up with regular and incremental changes.
So, how can you integrate your UX team into your agile DevOps culture and ensure that UX keeps pace with development?
With every sprint, your UX team needs to be able to validate the changes made, get the right feedback and make sure the appropriate corrections are implemented.
Running your infrastructure on the cloud helps to keep your UX team agile. For example, by using Alibaba Cloud’s Kubernetes container service, your UX team can get immediate feedback on each integration or delivery, allowing you to proactively identify and analyze any issues.
You could also deploy Application Real-Time Monitoring Service (ARMS), which allows you to quickly develop real-time business monitoring capabilities on your frontend, application and also customize your monitoring features.
The frontend monitoring capabilities of ARMS are particularly useful from a user experience perspective. They allow you to view user webpage browsing behavior in real time using dimensions including geographical regions, ISPs and URLs. You can also monitor and diagnose the performance and success rate of any asynchronous API operation calls.
Also, you can set up a series of custom alarms to alert you when an issue arises on your frontend to proactively mitigate any issues.
Understanding User Data
Even during a sprint, your UX team must continually conduct research and lay out core, basic strategies to maintain your brand’s position in the market. As such, your UX team needs to be able to seamlessly access and analyze your user data to extract real value from this information under increasingly shortened timeframes.
Cloud computing supports teams to work in this iterative and flexible way with different tools and services. For example, you can store vast amounts of user-generated content on the cloud with Object Storage Service (OSS) and your UX team can then access this information anywhere, anytime via the Internet.
Our console also comes with a range of data migration tools so your UX team can easily upload, download and manage your user data. They can also process this information easily by integrating one of our powerful big data and analytics tools, such as the Elastic MapReduce (EMR) platform, and get powerful insights through visualization with DataV.
As developers gain more autonomy and access to on-demand services, such as self-provisioned infrastructure, they are gaining more flexibility in how they build and deploy applications. But at the same time, they are inheriting some of the aspects of managing and maintaining a greater library of tools. This, in addition to what they already work with on a regular basis, means that yet another class of tools needs to be created to make sure that they are not also inheriting more work. One such tool is secrets management.
Secrets management tools like Alibaba’s Key Management Service give everyone on the development team a secure place to store, share, and access sensitive keys such as passwords and API tokens.
Many development teams don’t acknowledge how much time they spend searching for keys, or the risk posed by shuffling them around to team members in non-centralized ways, like chat clients. You might think that key management is only for large organizations, but it can benefit a single developer team. It also helps the organization fast-track and improve their DevOps objectives.
Secrets Management: Not Just Housekeeping
In modern application development, elements like application testing and key management can seem like simple housekeeping items — the things you do to have good pipeline hygiene. Yet they end up being ways to do even more with your development practices. Here is how key management is helping development teams look beyond security.
1) Microservices: The application development environment consists of multiple moving parts. There are external APIs, frameworks, application credentials, cloud services credentials, policy tokens, and operating systems, all of which have some sort of associated secret. But when you consider modern architectures like microservices, there are even more. A good microservices-based application architecture means that autonomous services are provisioned on containers automatically, and many more instances with their own credentials can be automatically generated.
2) Communication: With a centralized key management solution, team members do not need to hunt for secrets, or ask team members for secrets they do not have. They also do not need to participate in the risky behavior of sharing secrets via messaging services — or worse, written notes. A strong key management system means that communication about secrets is eliminated completely. If a developer needs access to a container, they know that as long as they are permitted, the credentials are in the key management system, and they do not need to interact with anyone.
3) Agile access control: Not everyone gets access to everything. In the old days of IT and development, IT was usually the gatekeeper of credentials — and in many enterprises, they will continue to be. Traditionally, even if IT understood why a developer might need access to a service or compute, they were constantly leaning toward preventing any access. Instead, they would give log data, or other partial access, which created even more snowflake environment variables. This slowed down development of new functionality, and put a lot of extra work on the IT team to field all requests. With a secrets management system, developers can have access to what they need, without access to what they don’t. There is less worry over developers breaking something with broad access. And because the manual aspects of sharing and updating security are eliminated, IT will have less hesitation, and there will be less administration to be concerned about.
Modern key management solutions need the ability to go beyond access control and storing of key-value pairs. They also need to have integration points (either native or custom) via an API that allows DevOps teams to build in the automation they need for modern development teams and application architectures.
Security is Exciting
Security is no longer a foreign topic in application development. Developers now know that they are accountable for advertently or inadvertently disclosing secrets that are used to exploit applications. For this simple reason, a key management solution is insurance for the company, IT, and Dev. It provides an easy solution when disgruntled employees leave a company. It mitigates human error when credentials are shared in a frenzy, and it builds accountability for everyone. Security needs are constantly changing with every new threat, providing teams with new challenges. Security is job security.
Related Market products
What is DevOps? It’s a combination of cultural philosophies, practices, and tools that increases a team’s ability to rapidly deliver services. In this clouder course, you’ll learn how to conduct DevOps practices on Alibaba Cloud by using Alibaba Cloud services like ECS, some open source tools and GitHub.
Quickly learn the concepts of DevOps and how it should be applied. Its a combination of cultural philosophies, practices, and tools that increases a team’s ability to rapidly deliver services. In this clouder course, you’ll learn the concept and history of DevOps, how it works compared with traditional methodology, tools that support DevOps and recap the ideas with some classic case studies.
This course introduces the basic concepts, features and benifits of CI/CD compared with traditional software developing mode. Then we have a detailed introduction about the features and benefits of Jenkins software and also the installation of Jenkins based on Ubuntu operating system. Finally we introduced the detailed operations on Jenkins console with a brief demonstration.
The goal of this tutorial is to explain how to create a CI/CD pipeline to deploy an application in Kubernetes running on top of Alibaba Cloud.
The procedure can be summarized in two mains steps:
Installing the tooling environment (Gitlab and Kubernetes).
Creating a small Java web application and configuring a CI/CD pipeline around it.
The very first step is to create an Alibaba Cloud account and obtain an AccessKey ID and Secret.
Cloud resources are created with Terraform scripts. If you do not know this tool, follow this tutorial and familiarize yourself with the alicloud provider.
Make sure you are familiarized with Kubernetes. If you need, you can follow this awesome tutorial to learn the basics. You will also need to setup the command line tool kubectl.
You should also have Git installed on your computer.
This topic introduces a simple Continuous Integration pipeline based on GitLab CI/CD. Although we keep it simple now, this pipeline will be extended in the next topic.
This topic is based on a simple web application written on top of Spring Boot (for the backend) and React (for the frontend).
The application consists in a todo list where a user can add or remove items. The goal is to have a simple 3-tier architecture with enough features that allow us to explore important concepts:
- The file organization shows a way to combine backend and frontend code into a single module (to keep it simple).
- The backend is stateless, which means that it does not store any data (for example, no shared variable in the code). Instead, the data is saved in a database. This architecture is particularly useful for horizontal scaling.
- Because a relational database is involved, this project demonstrates how to use Flyway to help to upgrade the schema when the application evolves.
- The build process involves Npm, Babel, Webpack and Maven to compile and package the application for production.
- Code quality is achieved thanks to SonarQube, a tool that can detect bugs in the code and help us to maintain the project over time.
A fully-managed service compatible with Kubernetes to help users focus on their applications rather than managing container infrastructure
Alibaba Cloud Resource Orchestration Service (ROS) provides developers and system managers with a simple method to create and manage their Alibaba Cloud resources. Through ROS you can use text files in JSON format to define any required Alibaba Cloud resources, dependencies between resources, and configuration details.
In efforts to improve your e-commerce or online business, you will not only learn the fundamental philosophies of DevOps workflow, but also learn about the processes and tools needed to release software faster and more reliably, while obtaining industry standard certificates boosting your professional cloud credibility.
What is DevOps? Its a combination of cultural philosophies, practices, and tools that increases a team’s ability to rapidly deliver services. In this clouder course, you’ll learn the concept and history of DevOps, how it works compared with traditional methodology, tools that support DevOps and recap the ideas with some classic case studies.